diff --git a/hash/apple2_flop_clcracked.xml b/hash/apple2_flop_clcracked.xml index fa3b49c8a2d..041aec6c99e 100644 --- a/hash/apple2_flop_clcracked.xml +++ b/hash/apple2_flop_clcracked.xml @@ -487,9 +487,11 @@ Mr. Do (cleanly cracked) - 1983 + 1985 Datasoft + + @@ -502,6 +504,7 @@ Ms. Pac Man (cleanly cracked) 1983 Atari + @@ -531,6 +534,7 @@ Pac-Man (Atari) (cleanly cracked) 1983 Atari + @@ -543,7 +547,8 @@ Pac-Man (Datasoft) (cleanly cracked) 1983 - Datasoft / Namco America + Datasoft + @@ -554,9 +559,10 @@ - Pac-Man (Thunder Mountain copyight) (cleanly cracked) + Pac-Man (Thunder Mountain) (cleanly cracked) 1983 - Thunder Mountain / Namco + Thunder Mountain + @@ -3087,7 +3093,6 @@ Agenda Files (cleanly cracked) 1981 Apple Computer - @@ -5847,11 +5852,13 @@ + + @@ -5908,11 +5915,13 @@ + + diff --git a/hash/apple2_flop_misc.xml b/hash/apple2_flop_misc.xml index 8f4591a5f6e..6b41bdc69da 100644 --- a/hash/apple2_flop_misc.xml +++ b/hash/apple2_flop_misc.xml @@ -45,6 +45,75 @@ + + AppleWorks (Version 1.2, USA) + 1983 + Apple Computer, Inc. + + + + + + + + + + + + + + + + + AppleWorks (Version 1.3, USA) + 1985 + Apple Computer, Inc. + + + + + + + + + + + + + + + + + AppleWorks (Version 2.0, USA) + 1986 + Apple Computer, Inc. + + + + + + + + + + + + + + + + + + + + + + + + + + + AmDOS (v3.5) 1986 diff --git a/hash/apple2_flop_orig.xml b/hash/apple2_flop_orig.xml index d60005aa7c1..2181a066e48 100644 --- a/hash/apple2_flop_orig.xml +++ b/hash/apple2_flop_orig.xml @@ -5353,4 +5353,75 @@ + + Championship Baseball + 1986 + Activision + + + + + + + + + + + + + + + + + + + + The Wizard of Oz + 1985 + Windham Classics + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The Queen of Phobos + 1982 + Phoenix Software + + + + + + + + + + + diff --git a/hash/bbc_rom.xml b/hash/bbc_rom.xml index 18a9413c3c5..08d8bf93449 100644 --- a/hash/bbc_rom.xml +++ b/hash/bbc_rom.xml @@ -842,7 +842,7 @@ - + AMX Design 1987 Advanced Memory Systems @@ -1117,6 +1117,28 @@ + + BBC Teletext 2.38 + 198? + BBC Soft + + + + + + + + + BBC Teletext 2.50 + 1986 + BBC Soft + + + + + + + ATS 2.58 1987 @@ -1183,6 +1205,39 @@ + + ATS+ 1.00 + 1987 + BBC Soft + + + + + + + + + ATS+ 2.00 + 1988 + BBC Soft + + + + + + + + + Barry-Box + 1986 + BML Electronics + + + + + + + BASIC (1981) 1981 @@ -1328,6 +1383,17 @@ + + CUBE BeebFlex + 1984 + Control Universal + + + + + + + BeebFont 1984 @@ -1405,6 +1471,17 @@ + + BeebScan + 1989 + Watford Electronics + + + + + + + Beebtel 2.00 1985 @@ -2660,6 +2737,17 @@ + + DMON A1.03 + 1983 + Alligata + + + + + + + DMON A1.08 1983 @@ -2985,6 +3073,61 @@ + + Eprom Programmer 1.03 + 1986 + Morley Electronics + + + + + + + + + Eprom Programmer 1.06 + 1986 + Morley Electronics + + + + + + + + + Eprom Programmer V2 2.01 + 1987 + Morley Electronics + + + + + + + + + Eprom Programmer V2 2.02 + 1987 + Morley Electronics + + + + + + + + + Eprom Programmer V2 2.03 + 1987 + Morley Electronics + + + + + + + Epson Dump ROM 1984 @@ -3007,6 +3150,28 @@ + + EURO-Beeb Terminal 1 + 1984 + Control Universal + + + + + + + + + EURO-Beeb Terminal 4.13 + 1986 + Control Universal + + + + + + + Everest 1986 @@ -3150,6 +3315,22 @@ + + FIT Test Station + 1982 + Acorn + + + + + + + + + + + + Floppy Copy 1.2 198? @@ -3328,18 +3509,36 @@ - - PMS Genie + + PMS Genie 1.01 1987 Permanent Memory Systems - - - - + + + + + + + + + + + + PMS Genie 1.02 + 1987 + Permanent Memory Systems + + + + + + + + @@ -3634,6 +3833,17 @@ + + Hobbit OS 1.8 + 1983 + Ikon + + + + + + + HyperDriver 1.00 1987 @@ -3656,6 +3866,17 @@ + + HyperDriver 1.11 + 1987 + Dabs Press + + + + + + + HyperDriver 1.40 1987 @@ -3736,7 +3957,7 @@ Image Processor 0.9A 1984 - <unknown> + RH Electronics @@ -3777,6 +3998,17 @@ + + The Informant + 1989 + <unknown> + + + + + + + Inter-Base 2.0A 1987 @@ -4191,7 +4423,7 @@ - LOGO (Logotron) + Logotron LOGO 1984 Logotron @@ -4201,6 +4433,17 @@ + + Logotron LOGO (Cymru) + 1984 + Logotron + + + + + + + LVL Dos 0.91 198? @@ -4582,12 +4825,12 @@ - Midwich WDFS + Midwich MWFS 1985 Midwich Computers - + @@ -5011,6 +5254,22 @@ + + Open LOGO + 1984 + BBC Soft + + + + + + + + + + + + Overlay BASIC 1987 @@ -5276,6 +5535,17 @@ + + Prestel 1.0 + 1984 + Acorn + + + + + + + Prestel 1.1 1984 @@ -5554,6 +5824,18 @@ + + QFS 1.01 + 1984 + Gnomic + + + + + + + + QFS 1.02 1984 @@ -5613,6 +5895,28 @@ + + Ramamp Video 2.40 + 1986 + Ramamp Computers + + + + + + + + + Ramamp Video 2.50 + 1986 + Ramamp Computers + + + + + + + Ramrod 1.82 1986 @@ -5741,6 +6045,17 @@ + + Romit 1.00 + 1985 + Beebugsoft + + + + + + + Romit 1.01 1985 @@ -5994,6 +6309,17 @@ + + Super-Forth 1.5 + 1984 + RH Electronics + + + + + + + Watford SFS 0.90 1985 @@ -6339,6 +6665,17 @@ + + StarBASE 2.11 + 1984 + GCC + + + + + + + StarGraph 2.01 1985 @@ -6814,7 +7151,7 @@ - STL Clock & Desk + STL Clock & Desk 1.00 1986 Solidisk @@ -6826,6 +7163,19 @@ + + STL Clock & Desk 1.10 + 1986 + Solidisk + + + + + + + + + STL Toolkit 1.20 27/09/85 1985 @@ -6870,6 +7220,17 @@ + + SupaStore 1.5 + 198? + ESM + + + + + + + SupaStore 2.0S 1986 @@ -6969,6 +7330,17 @@ + + Techno-Font + 1984 + Kenneth B. Larsen + + + + + + + TED 1.11 1987 @@ -7103,6 +7475,39 @@ + + Acorn TFS 1.00 + 1982 + Acorn + + + + + + + + + Acorn TFS 1.02 + 1982 + Acorn + + + + + + + + + Acorn TFS 1.03 + 1982 + Acorn + + + + + + + Tic-Toc RTC 1988 @@ -7715,6 +8120,18 @@ + + ViewSheet 1.0 + 1983 + Acornsoft + + + + + + + + ViewSheet B1.0 1984 @@ -7845,6 +8262,18 @@ + + Wapping Support 1.21 + 1988 + Watford Electronics + + + + + + + + Watford Electronics DDFS 1.40 1984 @@ -8216,6 +8645,18 @@ + + Wordwise Plus 2.04 + 1987 + Computer Concepts/IFEL + + + + + + + + Workstation 1.4 1983 @@ -8250,7 +8691,7 @@ - WYSIWYG Plus + WYSIWYG Plus 1.2 1986 Technomatic @@ -8260,6 +8701,17 @@ + + WYSIWYG Plus 1.22 + 1986 + Technomatic + + + + + + + Xcal 1983 diff --git a/hash/dragon_flex.xml b/hash/dragon_flex.xml index 8f20dbc2e0b..1a6f06b570a 100644 --- a/hash/dragon_flex.xml +++ b/hash/dragon_flex.xml @@ -96,7 +96,18 @@ Compusense - + + + + + + + DynaFast v1.5.0 + 1984 + Compusense + + + diff --git a/hash/dragon_flop.xml b/hash/dragon_flop.xml index 8958ad622a1..0f8e5678433 100644 --- a/hash/dragon_flop.xml +++ b/hash/dragon_flop.xml @@ -437,6 +437,18 @@ + + Dunjunz + 2018 + Teipen Mwnci + + + + + + + + Duplidisk 2 1986 @@ -448,7 +460,7 @@ - + DynaFast v1.2.4 1984 Compusense @@ -459,7 +471,7 @@ - + DynaFast v1.4.0 1984 Compusense @@ -470,17 +482,6 @@ - - DynaFast v1.5.0 - 1984 - Compusense - - - - - - - DynaMiser v1.4.2 1983 @@ -639,6 +640,7 @@ Forth Compiler (DeltaDOS) 1985 N.D.U.G. + @@ -1319,6 +1321,7 @@ Telewriter Premier DOS 1985 Microdeal + diff --git a/hash/ibm5150.xml b/hash/ibm5150.xml index 25c0d346344..37f18fac5e6 100644 --- a/hash/ibm5150.xml +++ b/hash/ibm5150.xml @@ -7633,19 +7633,19 @@ has been replaced with an all-zero block. --> - + - + - + @@ -7661,13 +7661,13 @@ has been replaced with an all-zero block. --> - + - + @@ -7682,13 +7682,13 @@ has been replaced with an all-zero block. --> - + - + @@ -7701,13 +7701,8 @@ has been replaced with an all-zero block. --> Tasc - - - - - - - + + diff --git a/hash/z88_cart.xml b/hash/z88_cart.xml index eeffaef90d1..c52e977801b 100644 --- a/hash/z88_cart.xml +++ b/hash/z88_cart.xml @@ -14,7 +14,7 @@ - + @@ -27,7 +27,33 @@ - + + + + + + + Code Count + 1990 + Ranger Computers + + + + + + + + + + + + Z88 Data Organiser + 1989 + Harvester Information Systems + + + + @@ -40,7 +66,7 @@ - + @@ -54,7 +80,7 @@ - + @@ -66,13 +92,39 @@ - + - + + + + + + + EP-Copy + 1990 + Ranger Computers + + + + + + + + + + + Event Control System + 1989 + Front Line Computers + + + + + @@ -80,11 +132,11 @@ Examples 1988 - Cambridge Computers + Cambridge Computer - + @@ -96,13 +148,13 @@ - + - + @@ -114,7 +166,7 @@ - + @@ -126,7 +178,7 @@ - + @@ -140,7 +192,7 @@ - + @@ -154,7 +206,7 @@ - + @@ -168,191 +220,191 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -366,7 +418,19 @@ - + + + + + + + PC-Link II + 1988 + Cambridge Computer + + + + @@ -379,13 +443,13 @@ - + - + @@ -398,7 +462,7 @@ - + @@ -410,7 +474,34 @@ - + + + + + + + Stop Watch + 1989 + Front Line Computers + + + + + + + + + + + Toll Tracker v2.0 (Demo) + 1990 + Fieldstar Marketing + + + + + + @@ -422,7 +513,7 @@ - + @@ -435,7 +526,7 @@ - + @@ -448,7 +539,7 @@ - + @@ -460,7 +551,7 @@ - + @@ -473,7 +564,7 @@ - + @@ -486,7 +577,7 @@ - + @@ -499,7 +590,7 @@ - + @@ -512,7 +603,7 @@ - + diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index 6acbb7c32ee..9b073cf4480 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -3545,12 +3545,12 @@ files { createMESSProjects(_target, _subtarget, "tvgames") files { - MAME_DIR .. "src/mame/drivers/rad_eu3a14.cpp", - MAME_DIR .. "src/mame/drivers/rad_eu3a05.cpp", - MAME_DIR .. "src/mame/audio/rad_eu3a05.cpp", - MAME_DIR .. "src/mame/audio/rad_eu3a05.h", - MAME_DIR .. "src/mame/machine/rad_eu3a05gpio.cpp", - MAME_DIR .. "src/mame/machine/rad_eu3a05gpio.h", + MAME_DIR .. "src/mame/drivers/elan_eu3a14.cpp", + MAME_DIR .. "src/mame/drivers/elan_eu3a05.cpp", + MAME_DIR .. "src/mame/audio/elan_eu3a05.cpp", + MAME_DIR .. "src/mame/audio/elan_eu3a05.h", + MAME_DIR .. "src/mame/machine/elan_eu3a05gpio.cpp", + MAME_DIR .. "src/mame/machine/elan_eu3a05gpio.h", MAME_DIR .. "src/mame/drivers/trkfldch.cpp", MAME_DIR .. "src/mame/drivers/tvgame.cpp", MAME_DIR .. "src/mame/drivers/spg110.cpp", @@ -4047,6 +4047,7 @@ files { MAME_DIR .. "src/mame/machine/nl_tp1985.cpp", MAME_DIR .. "src/mame/drivers/palestra.cpp", MAME_DIR .. "src/mame/machine/nl_palestra.cpp", + MAME_DIR .. "src/mame/drivers/mindset.cpp", } end diff --git a/src/devices/cpu/mcs48/mcs48dsm.cpp b/src/devices/cpu/mcs48/mcs48dsm.cpp index 204fb6b389e..2f8363e3926 100644 --- a/src/devices/cpu/mcs48/mcs48dsm.cpp +++ b/src/devices/cpu/mcs48/mcs48dsm.cpp @@ -39,6 +39,7 @@ offs_t mcs48_disassembler::disassemble(std::ostream &stream, offs_t pc, const da switch (opcodes.r8(cpc++)) { case 0x00: util::stream_format(stream, "nop"); break; + case 0x01: util::stream_format(stream, "idl"); break; // CMOS only; called "HALT" by NEC and Toshiba case 0x02: if (m_i802x) util::stream_format(stream, "illegal"); else if (!m_upi41) diff --git a/src/devices/machine/6821pia.cpp b/src/devices/machine/6821pia.cpp index 4171b9c6f82..b5b6b123b0b 100644 --- a/src/devices/machine/6821pia.cpp +++ b/src/devices/machine/6821pia.cpp @@ -237,12 +237,11 @@ uint8_t pia6821_device::get_in_a_value() } } - // - connected pins are always read - // - disconnected pins read the output buffer in output mode - // - disconnected pins are HI in input mode - ret = (~m_port_a_z_mask & port_a_data) | - ( m_port_a_z_mask & m_ddr_a & m_out_a) | - ( m_port_a_z_mask & ~m_ddr_a); + // For port A, when the port is in output mode, other devices can drive the pins too. + // If they load the lines so the voltage changes from what the PIA is outputting, that + // value will be read back. + // TODO: Figure out if any boards do this, and compensate. + ret = (m_out_a & m_ddr_a) | (port_a_data & ~m_ddr_a); return ret; } diff --git a/src/devices/machine/chessmachine.cpp b/src/devices/machine/chessmachine.cpp index 981904e1d84..d5f6673fbad 100644 --- a/src/devices/machine/chessmachine.cpp +++ b/src/devices/machine/chessmachine.cpp @@ -25,6 +25,7 @@ CPU speed. It should be around 14-16MHz. The ARM CPU is rated 12MHz, they probably went for this solution to get optimum possible speed for each module. TODO: +- PC version still gives a sync error on boot sometimes, probably related to quantum - is interrupt handling correct? - timer shouldn't be needed for disabling bootstrap, real ARM has already read the next opcode diff --git a/src/devices/machine/i82439hx.cpp b/src/devices/machine/i82439hx.cpp index c13ce0d8a59..db689808e03 100644 --- a/src/devices/machine/i82439hx.cpp +++ b/src/devices/machine/i82439hx.cpp @@ -8,6 +8,7 @@ DEFINE_DEVICE_TYPE(I82439HX, i82439hx_host_device, "i82439hx", "Intel 82439HX no void i82439hx_host_device::config_map(address_map &map) { pci_host_device::config_map(map); + map(0x10, 0x4f).noprw(); map(0x50, 0x50).rw(FUNC(i82439hx_host_device::pcon_r), FUNC(i82439hx_host_device::pcon_w)); map(0x52, 0x52).rw(FUNC(i82439hx_host_device::cc_r), FUNC(i82439hx_host_device::cc_w)); map(0x56, 0x56).rw(FUNC(i82439hx_host_device::dramec_r), FUNC(i82439hx_host_device::dramec_w)); @@ -46,7 +47,9 @@ void i82439hx_host_device::device_start() io_window_start = 0; io_window_end = 0xffff; io_offset = 0; - status = 0x0010; + command = 0x0006; + command_mask = 0x0106; + status = 0x0200; ram.resize(ram_size/4); } @@ -160,6 +163,11 @@ void i82439hx_host_device::map_extra(uint64_t memory_window_start, uint64_t memo } +READ8_MEMBER (i82439hx_host_device::header_type_r) +{ + return 0x00; // from datasheet +} + READ8_MEMBER (i82439hx_host_device::pcon_r) { return pcon; diff --git a/src/devices/machine/i82439hx.h b/src/devices/machine/i82439hx.h index e05e2c49101..93af4629096 100644 --- a/src/devices/machine/i82439hx.h +++ b/src/devices/machine/i82439hx.h @@ -47,6 +47,7 @@ private: uint8_t drt, drat, smram, errcmd, errsts, errsyn; int smiact_n; + virtual DECLARE_READ8_MEMBER(header_type_r) override; DECLARE_READ8_MEMBER (pcon_r); DECLARE_WRITE8_MEMBER(pcon_w); DECLARE_READ8_MEMBER (cc_r); diff --git a/src/devices/sound/dac.h b/src/devices/sound/dac.h index 434f82ba4f9..613886a5c0e 100644 --- a/src/devices/sound/dac.h +++ b/src/devices/sound/dac.h @@ -265,6 +265,7 @@ DAC_GENERATOR_EPILOG(_dac_type, _dac_class, _dac_description, _dac_shortname) // DAC chips DAC_GENERATOR(AD557, ad557_device, dac_byte_interface, dac_code_binary<8>, dac_gain_r2r, "AD557", "ad557") +DAC_GENERATOR(AD558, ad558_device, dac_byte_interface, dac_code_binary<8>, dac_gain_r2r, "AD558", "ad558") DAC_GENERATOR(AD7224, ad7224_device, dac_byte_interface, dac_code_binary<8>, dac_gain_r2r, "AD7224", "ad7224") DAC_GENERATOR(AD7521, ad7521_device, dac_word_interface, dac_code_binary<12>, dac_gain_r2r, "AD7521", "ad7521") DAC_GENERATOR(AD7523, ad7523_device, dac_byte_interface, dac_code_binary<8>, dac_gain_r2r, "AD7523", "ad7523") diff --git a/src/devices/sound/tms5220.cpp b/src/devices/sound/tms5220.cpp index b28347b1053..4889cd85c60 100644 --- a/src/devices/sound/tms5220.cpp +++ b/src/devices/sound/tms5220.cpp @@ -368,41 +368,40 @@ emulating the tms5220 in MCU code). Look for a 16-pin chip at U6 labeled /* *****debugging defines***** */ +// general, somewhat obsolete, catch all for debugs which don't fit elsewhere #define LOG_GENERAL (1 << 0) -// above is general, somewhat obsolete, catch all for debugs which don't fit elsewhere -#define LOG_DUMP_INPUT_DATA (1 << 1) /* 5220 only; above dumps the data written to the tms52xx to stdout, useful for making logged data dumps for real hardware tests */ -#define LOG_FIFO (1 << 2) +#define LOG_DUMP_INPUT_DATA (1 << 1) // 5220 only; above debugs FIFO stuff: writes, reads and flag updates -#define LOG_PARSE_FRAME_DUMP_BIN (1 << 3) +#define LOG_FIFO (1 << 2) // dumps each speech frame as binary -#define LOG_PARSE_FRAME_DUMP_HEX (1 << 4) +#define LOG_PARSE_FRAME_DUMP_BIN (1 << 3) // dumps each speech frame as hex +#define LOG_PARSE_FRAME_DUMP_HEX (1 << 4) +// dumps info if a frame ran out of data #define LOG_FRAME_ERRORS (1 << 6) -// above dumps info if a frame ran out of data +// dumps all non-speech-data command writes #define LOG_COMMAND_DUMP (1 << 7) -// above dumps all non-speech-data command writes +// dumps decoded info about command writes #define LOG_COMMAND_VERBOSE (1 << 8) -// above dumps decoded info about command writes +// spams the errorlog with i/o ready messages whenever the ready or irq pin is read #define LOG_PIN_READS (1 << 9) -// above spams the errorlog with i/o ready messages whenever the ready or irq pin is read +// dumps debug information related to the sample generation loop, i.e. whether interpolation is inhibited or not, and what the current and target values for each frame are. #define LOG_GENERATION (1 << 10) -// above dumps debug information related to the sample generation loop, i.e. whether interpolation is inhibited or not, and what the current and target values for each frame are. +// dumps MUCH MORE debug information related to the sample generation loop, namely the excitation, energy, pitch, k*, and output values for EVERY SINGLE SAMPLE during a frame. #define LOG_GENERATION_VERBOSE (1 << 11) -// above dumps MUCH MORE debug information related to the sample generation loop, namely the excitation, energy, pitch, k*, and output values for EVERY SINGLE SAMPLE during a frame. +// dumps the lattice filter state data each sample. #define LOG_LATTICE (1 << 12) -// above dumps the lattice filter state data each sample. +// dumps info to stderr whenever the analog clip hardware is (or would be) clipping the signal. #define LOG_CLIP (1 << 13) -// above dumps info to stderr whenever the analog clip hardware is (or would be) clipping the signal. +// debugs the io ready callback timer #define LOG_IO_READY (1 << 14) -// above debugs the io ready callback timer +// debugs the tms5220_data_r and data_w access methods which actually respect rs and ws #define LOG_RS_WS (1 << 15) -// above debugs the tms5220_data_r and data_w access methods which actually respect rs and ws //#define VERBOSE (LOG_GENERAL | LOG_DUMP_INPUT_DATA | LOG_FIFO | LOG_PARSE_FRAME_DUMP_HEX | LOG_FRAME_ERRORS | LOG_COMMAND_DUMP | LOG_COMMAND_VERBOSE | LOG_PIN_READS | LOG_GENERATION | LOG_GENERATION_VERBOSE | LOG_LATTICE | LOG_CLIP | LOG_IO_READY | LOG_RS_WS) #include "logmacro.h" -// TODO: switch the comments to be above the defines instead of below them #define MAX_SAMPLE_CHUNK 512 @@ -1822,9 +1821,10 @@ WRITE_LINE_MEMBER( tms5220_device::rsq_w ) /* upon /RS being activated, /READY goes inactive after 100 nsec from data sheet, through 3 asynchronous gates on patent. This is effectively within one clock, so we immediately set io_ready to 0 and activate the callback. */ m_io_ready = false; update_ready_state(); - /* How long does /READY stay inactive, when /RS is pulled low? It might be always ~16 clocks (25 usec at 800khz as shown on the datasheet) - but the patent schematic implies it might be as short as 4 clock cycles. */ - m_timer_io_ready->adjust(clocks_to_attotime(16), 1); + // The datasheet doesn't give an exact time when /READY should change, but the data is valid 6-11 usec after /RS goes low. + // It looks like /READY goes high soon after that (although the datasheet graph is not to scale). + // The value of 13 was measured on a real chip with an oscilloscope, and it fits the datasheet. + m_timer_io_ready->adjust(attotime::from_usec(13), 1); } } } diff --git a/src/mame/audio/bally.cpp b/src/mame/audio/bally.cpp index 8ac10c5ca12..90576c12f72 100644 --- a/src/mame/audio/bally.cpp +++ b/src/mame/audio/bally.cpp @@ -17,16 +17,17 @@ // GLOBAL VARIABLES //************************************************************************** -DEFINE_DEVICE_TYPE(BALLY_AS2888, bally_as2888_device, "as2888", "Bally AS2888 Sound Board") -DEFINE_DEVICE_TYPE(BALLY_AS3022, bally_as3022_device, "as3022", "Bally AS3022 Sound Board") -DEFINE_DEVICE_TYPE(BALLY_SOUNDS_PLUS, bally_sounds_plus_device, "sounds_plus", "Bally Sounds Plus w/ Vocalizer Board") -DEFINE_DEVICE_TYPE(BALLY_CHEAP_SQUEAK, bally_cheap_squeak_device, "cheap_squeak", "Bally Cheap Squeak Board") +DEFINE_DEVICE_TYPE(BALLY_AS2888, bally_as2888_device, "as2888", "Bally AS2888 Sound Board") +DEFINE_DEVICE_TYPE(BALLY_AS3022, bally_as3022_device, "as3022", "Bally AS3022 Sound Board") +DEFINE_DEVICE_TYPE(BALLY_SOUNDS_PLUS, bally_sounds_plus_device, "sounds_plus", "Bally Sounds Plus w/ Vocalizer Board") +DEFINE_DEVICE_TYPE(BALLY_CHEAP_SQUEAK, bally_cheap_squeak_device, "cheap_squeak", "Bally Cheap Squeak Board") +DEFINE_DEVICE_TYPE(BALLY_SQUAWK_N_TALK, bally_squawk_n_talk_device, "squawk_n_talk", "Bally Squawk & Talk Board") +DEFINE_DEVICE_TYPE(BALLY_SQUAWK_N_TALK_AY, bally_squawk_n_talk_ay_device, "squawk_n_talk_ay", "Bally Squawk & Talk w/ AY8910 Board") //************************************************************************** // AS2888 //************************************************************************** - static const discrete_mixer_desc as2888_digital_mixer_info = { DISC_MIXER_IS_RESISTOR, /* type */ @@ -88,7 +89,6 @@ DISCRETE_SOUND_END //------------------------------------------------- // sound_select - handle an external write to the board //------------------------------------------------- - WRITE8_MEMBER(bally_as2888_device::sound_select) { machine().scheduler().synchronize(timer_expired_delegate(FUNC(bally_as2888_device::sound_select_sync), this), data); @@ -101,10 +101,8 @@ TIMER_CALLBACK_MEMBER(bally_as2888_device::sound_select_sync) } //------------------------------------------------- -// // sound_int - handle an external sound interrupt to the board //------------------------------------------------- - WRITE_LINE_MEMBER(bally_as2888_device::sound_int) { machine().scheduler().synchronize(timer_expired_delegate(FUNC(bally_as2888_device::sound_int_sync), this), state); @@ -112,60 +110,58 @@ WRITE_LINE_MEMBER(bally_as2888_device::sound_int) TIMER_CALLBACK_MEMBER(bally_as2888_device::sound_int_sync) { - if (param) - { - m_snd_sustain_timer->adjust(attotime::from_msec(5)); - m_discrete->write(NODE_08, 11); // 11 volt pulse - } + if (param) + { + m_snd_sustain_timer->adjust(attotime::from_msec(5)); + m_discrete->write(NODE_08, 11); // 11 volt pulse + } } //------------------------------------------------- // device_add_mconfig - add device configuration //------------------------------------------------- - void bally_as2888_device::device_add_mconfig(machine_config &config) { DISCRETE(config, m_discrete, as2888_discrete); m_discrete->add_route(ALL_OUTPUTS, *this, 1.00, AUTO_ALLOC_INPUT, 0); - TIMER(config, "timer_s_freq").configure_periodic(FUNC(bally_as2888_device::timer_s), attotime::from_hz(353000)); // Inverter clock on AS-2888 sound board - TIMER(config, m_snd_sustain_timer).configure_generic(FUNC(bally_as2888_device::timer_as2888)); + TIMER(config, "timer_s_freq").configure_periodic(FUNC(bally_as2888_device::timer_s), attotime::from_hz(353000)); // Inverter clock on AS-2888 sound board + TIMER(config, m_snd_sustain_timer).configure_generic(FUNC(bally_as2888_device::timer_as2888)); } //------------------------------------------------- // device_start - device-specific startup //------------------------------------------------- - void bally_as2888_device::device_start() { - save_item(NAME(m_sound_select)); - save_item(NAME(m_snd_sel)); - save_item(NAME(m_snd_tone_gen)); - save_item(NAME(m_snd_div)); + save_item(NAME(m_sound_select)); + save_item(NAME(m_snd_sel)); + save_item(NAME(m_snd_tone_gen)); + save_item(NAME(m_snd_div)); } TIMER_DEVICE_CALLBACK_MEMBER(bally_as2888_device::timer_s) { - m_snd_tone_gen--; + m_snd_tone_gen--; - if ((m_snd_tone_gen == 0) && (m_snd_sel != 0x01)) - { - m_snd_tone_gen = m_snd_sel; - m_snd_div++; + if ((m_snd_tone_gen == 0) && (m_snd_sel != 0x01)) + { + m_snd_tone_gen = m_snd_sel; + m_snd_div++; - m_discrete->write(NODE_04, BIT(m_snd_div, 2) * 1); - m_discrete->write(NODE_01, BIT(m_snd_div, 0) * 1); - } + m_discrete->write(NODE_04, BIT(m_snd_div, 2) * 1); + m_discrete->write(NODE_01, BIT(m_snd_div, 0) * 1); + } } TIMER_DEVICE_CALLBACK_MEMBER(bally_as2888_device::timer_as2888) { - m_snd_sel = m_snd_prom[m_sound_select]; - m_snd_sel = bitswap<8>(m_snd_sel,0,1,2,3,4,5,6,7); - m_snd_tone_gen = m_snd_sel; + m_snd_sel = m_snd_prom[m_sound_select]; + m_snd_sel = bitswap<8>(m_snd_sel,0,1,2,3,4,5,6,7); + m_snd_tone_gen = m_snd_sel; - m_discrete->write(NODE_08, 0); - m_snd_sustain_timer->adjust(attotime::never); + m_discrete->write(NODE_08, 0); + m_snd_sustain_timer->adjust(attotime::never); } @@ -173,9 +169,9 @@ TIMER_DEVICE_CALLBACK_MEMBER(bally_as2888_device::timer_as2888) // AS3022 //************************************************************************** -//************************************************************************** +//-------------------------------------------------------------------------- // IO ports -//************************************************************************** +//-------------------------------------------------------------------------- static INPUT_PORTS_START(as3022) PORT_START("SW1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE3 ) PORT_NAME("Sound Test") PORT_CHANGED_MEMBER(DEVICE_SELF, bally_as3022_device, sw1, 0) @@ -183,19 +179,18 @@ INPUT_PORTS_END ioport_constructor bally_as3022_device::device_input_ports() const { - return INPUT_PORTS_NAME(as3022); + return INPUT_PORTS_NAME(as3022); } INPUT_CHANGED_MEMBER(bally_as3022_device::sw1) { - if (newval != oldval) - m_cpu->set_input_line(INPUT_LINE_NMI, (newval ? ASSERT_LINE : CLEAR_LINE)); + if (newval != oldval) + m_cpu->set_input_line(INPUT_LINE_NMI, (newval ? ASSERT_LINE : CLEAR_LINE)); } //------------------------------------------------- // sound_select - handle an external write to the board //------------------------------------------------- - WRITE8_MEMBER(bally_as3022_device::sound_select) { machine().scheduler().synchronize(timer_expired_delegate(FUNC(bally_as3022_device::sound_select_sync), this), data); @@ -208,10 +203,8 @@ TIMER_CALLBACK_MEMBER(bally_as3022_device::sound_select_sync) } //------------------------------------------------- -// // sound_int - handle an external sound interrupt to the board //------------------------------------------------- - WRITE_LINE_MEMBER(bally_as3022_device::sound_int) { machine().scheduler().synchronize(timer_expired_delegate(FUNC(bally_as3022_device::sound_int_sync), this), state); @@ -222,23 +215,18 @@ TIMER_CALLBACK_MEMBER(bally_as3022_device::sound_int_sync) m_pia->ca1_w(param); } - //------------------------------------------------- -// -// irq_w - IRQ line state changes +// pia_irq_w - IRQ line state changes //------------------------------------------------- - -WRITE_LINE_MEMBER(bally_as3022_device::irq_w) +WRITE_LINE_MEMBER(bally_as3022_device::pia_irq_w) { int combined_state = m_pia->irq_a_state() | m_pia->irq_b_state(); m_cpu->set_input_line(M6802_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); } - //------------------------------------------------- // CPU map, from schematics //------------------------------------------------- - void bally_as3022_device::as3022_map(address_map &map) { map.unmap_value_high(); @@ -248,11 +236,9 @@ void bally_as3022_device::as3022_map(address_map &map) map(0x1000, 0x1fff).rom(); // 4k RAM space, but could be jumpered for 2k } - //------------------------------------------------- // device_add_mconfig - add device configuration //------------------------------------------------- - void bally_as3022_device::device_add_mconfig(machine_config &config) { M6808(config, m_cpu, DERIVED_CLOCK(1, 1)); @@ -263,10 +249,17 @@ void bally_as3022_device::device_add_mconfig(machine_config &config) m_pia->writepa_handler().set(FUNC(bally_as3022_device::pia_porta_w)); m_pia->writepb_handler().set(FUNC(bally_as3022_device::pia_portb_w)); m_pia->cb2_handler().set(FUNC(bally_as3022_device::pia_cb2_w)); - m_pia->irqa_handler().set(FUNC(bally_as3022_device::irq_w)); - m_pia->irqb_handler().set(FUNC(bally_as3022_device::irq_w)); + m_pia->irqa_handler().set(FUNC(bally_as3022_device::pia_irq_w)); + m_pia->irqb_handler().set(FUNC(bally_as3022_device::pia_irq_w)); + for (required_device &filter : m_ay_filters) + // TODO: Calculate exact filter values. An AC filter is good enough for now + // and required as the chip likes to output a DC offset at idle. + FILTER_RC(config, filter).set_ac().add_route(ALL_OUTPUTS, *this, 1.0); AY8910(config, m_ay, DERIVED_CLOCK(1, 4)); + m_ay->add_route(0, "ay_filter0", 0.33); + m_ay->add_route(1, "ay_filter1", 0.33); + m_ay->add_route(2, "ay_filter2", 0.33); m_ay->port_a_read_callback().set(FUNC(bally_as3022_device::ay_io_r)); m_ay->add_route(ALL_OUTPUTS, *this, 0.33, AUTO_ALLOC_INPUT, 0); } @@ -275,7 +268,6 @@ void bally_as3022_device::device_add_mconfig(machine_config &config) //------------------------------------------------- // device_start - device-specific startup //------------------------------------------------- - void bally_as3022_device::device_start() { // Set volumes to a sane default. @@ -284,16 +276,14 @@ void bally_as3022_device::device_start() m_ay->set_volume(2, 0); save_item(NAME(m_bc1)); - save_item(NAME(m_bdir)); - save_item(NAME(m_sound_select)); - save_item(NAME(m_ay_data)); + save_item(NAME(m_bdir)); + save_item(NAME(m_sound_select)); + save_item(NAME(m_ay_data)); } - //------------------------------------------------- // pia_porta_r - PIA port A reads //------------------------------------------------- - READ8_MEMBER(bally_as3022_device::pia_porta_r) { if (m_bc1 && !m_bdir) @@ -308,11 +298,9 @@ READ8_MEMBER(bally_as3022_device::pia_porta_r) } } - //------------------------------------------------- // pia_porta_w - PIA port A writes //------------------------------------------------- - WRITE8_MEMBER(bally_as3022_device::pia_porta_w) { if (m_bc1 && !m_bdir) @@ -320,14 +308,12 @@ WRITE8_MEMBER(bally_as3022_device::pia_porta_w) logerror("PIA port A bus contention!\n"); } m_ay_data = data; - update_sound_selects(); + update_ay_bus(); } - //------------------------------------------------- // pia_portb_w - PIA port B writes //------------------------------------------------- - WRITE8_MEMBER(bally_as3022_device::pia_portb_w) { m_bc1 = BIT(data, 0); @@ -336,10 +322,9 @@ WRITE8_MEMBER(bally_as3022_device::pia_portb_w) { m_ay_data = m_ay->data_r(); } - update_sound_selects(); + update_ay_bus(); } - //------------------------------------------------- // pia_cb2_w - PIA CB2 writes //------------------------------------------------- @@ -360,19 +345,16 @@ WRITE_LINE_MEMBER(bally_as3022_device::pia_cb2_w) } } - //------------------------------------------------- // ay_io_r - AY8912 IO A reads (B is unconnected) //------------------------------------------------- - READ8_MEMBER(bally_as3022_device::ay_io_r) { // The two high bits are unconnected, the others are inverted. return ~m_sound_select & 0x3f; } - -void bally_as3022_device::update_sound_selects() +void bally_as3022_device::update_ay_bus() { if (m_bc1 && m_bdir) { @@ -384,6 +366,7 @@ void bally_as3022_device::update_sound_selects() } } + //************************************************************************** // SOUNDS PLUS WITH VOCALIZER //************************************************************************** @@ -391,7 +374,6 @@ void bally_as3022_device::update_sound_selects() //------------------------------------------------- // device_add_mconfig - add device configuration //------------------------------------------------- - void bally_sounds_plus_device::device_add_mconfig(machine_config &config) { bally_as3022_device::device_add_mconfig(config); @@ -399,15 +381,18 @@ void bally_sounds_plus_device::device_add_mconfig(machine_config &config) m_cpu->set_addrmap(AS_PROGRAM, &bally_sounds_plus_device::sounds_plus_map); m_pia->writepb_handler().set(FUNC(bally_sounds_plus_device::vocalizer_pia_portb_w)); + // TODO: Calculate exact filter values. An AC filter is good enough for now + // and required as the chip likes to output a DC offset at idle. + FILTER_RC(config, m_mc3417_filter).set_ac(); + m_mc3417_filter->add_route(ALL_OUTPUTS, *this, 1.0); MC3417(config, m_mc3417, 0); // A gain of 2.2 is a guess. It sounds about loud enough and doesn't clip. - m_mc3417->add_route(ALL_OUTPUTS, *this, 2.2, AUTO_ALLOC_INPUT, 0); + m_mc3417->add_route(ALL_OUTPUTS, "mc3417_filter", 2.2); } //------------------------------------------------- // CPU map, from schematics //------------------------------------------------- - void bally_sounds_plus_device::sounds_plus_map(address_map &map) { map.unmap_value_high(); @@ -419,7 +404,6 @@ void bally_sounds_plus_device::sounds_plus_map(address_map &map) //------------------------------------------------- // pia_portb_w - PIA port B writes //------------------------------------------------- - WRITE8_MEMBER(bally_sounds_plus_device::vocalizer_pia_portb_w) { bool speech_clock = BIT(data, 6); @@ -434,9 +418,9 @@ WRITE8_MEMBER(bally_sounds_plus_device::vocalizer_pia_portb_w) // Cheap Squeak //************************************************************************** -//************************************************************************** +//-------------------------------------------------------------------------- // IO ports -//************************************************************************** +//-------------------------------------------------------------------------- static INPUT_PORTS_START(cheap_squeak) PORT_START("SW1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE3 ) PORT_NAME("Sound Test") PORT_CHANGED_MEMBER(DEVICE_SELF, bally_cheap_squeak_device, sw1, 0) @@ -444,19 +428,18 @@ INPUT_PORTS_END ioport_constructor bally_cheap_squeak_device::device_input_ports() const { - return INPUT_PORTS_NAME(cheap_squeak); + return INPUT_PORTS_NAME(cheap_squeak); } INPUT_CHANGED_MEMBER(bally_cheap_squeak_device::sw1) { - if (newval != oldval) - m_cpu->set_input_line(INPUT_LINE_NMI, (newval ? ASSERT_LINE : CLEAR_LINE)); + if (newval != oldval) + m_cpu->set_input_line(INPUT_LINE_NMI, (newval ? ASSERT_LINE : CLEAR_LINE)); } //------------------------------------------------- // sound_select - handle an external write to the board //------------------------------------------------- - WRITE8_MEMBER(bally_cheap_squeak_device::sound_select) { machine().scheduler().synchronize(timer_expired_delegate(FUNC(bally_cheap_squeak_device::sound_select_sync), this), data); @@ -468,10 +451,8 @@ TIMER_CALLBACK_MEMBER(bally_cheap_squeak_device::sound_select_sync) } //------------------------------------------------- -// // sound_int - handle an external sound interrupt to the board //------------------------------------------------- - WRITE_LINE_MEMBER(bally_cheap_squeak_device::sound_int) { machine().scheduler().synchronize(timer_expired_delegate(FUNC(bally_cheap_squeak_device::sound_int_sync), this), state); @@ -481,12 +462,12 @@ TIMER_CALLBACK_MEMBER(bally_cheap_squeak_device::sound_int_sync) { m_sound_int = param; m_cpu->set_input_line(M6801_TIN_LINE, (m_sound_int ? ASSERT_LINE : CLEAR_LINE)); + update_led(); } //------------------------------------------------- // CPU map, from schematics //------------------------------------------------- - void bally_cheap_squeak_device::cheap_squeak_map(address_map &map) { map.unmap_value_high(); @@ -498,7 +479,6 @@ void bally_cheap_squeak_device::cheap_squeak_map(address_map &map) //------------------------------------------------- // device_add_mconfig - add device configuration //------------------------------------------------- - void bally_cheap_squeak_device::device_add_mconfig(machine_config &config) { M6803(config, m_cpu, DERIVED_CLOCK(1, 1)); @@ -508,26 +488,24 @@ void bally_cheap_squeak_device::device_add_mconfig(machine_config &config) m_cpu->out_p2_cb().set(FUNC(bally_cheap_squeak_device::out_p2_cb)); ZN429E(config, "dac", 0).add_route(ALL_OUTPUTS, *this, 1.00, AUTO_ALLOC_INPUT, 0); - voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); - vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); - vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); + voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); + vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); + vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); } //------------------------------------------------- // device_start - device-specific startup //------------------------------------------------- - void bally_cheap_squeak_device::device_start() { m_sound_ack_w_handler.resolve(); - save_item(NAME(m_sound_select)); - save_item(NAME(m_sound_int)); + save_item(NAME(m_sound_select)); + save_item(NAME(m_sound_int)); } //------------------------------------------------- // out_p1_cb - IO port 1 write //------------------------------------------------- - WRITE8_MEMBER(bally_cheap_squeak_device::out_p1_cb) { m_dac->write(data); @@ -536,7 +514,6 @@ WRITE8_MEMBER(bally_cheap_squeak_device::out_p1_cb) //------------------------------------------------- // in_p2_cb - IO port 2 read //------------------------------------------------- - READ8_MEMBER(bally_cheap_squeak_device::in_p2_cb) { int sound_int_bit = m_sound_int ? 1 : 0; @@ -546,12 +523,288 @@ READ8_MEMBER(bally_cheap_squeak_device::in_p2_cb) //------------------------------------------------- // out_p2_cb - IO port 2 write //------------------------------------------------- - WRITE8_MEMBER(bally_cheap_squeak_device::out_p2_cb) { - bool sound_ack = data & 0x01; + m_sound_ack = BIT(data, 0); if (!m_sound_ack_w_handler.isnull()) { - m_sound_ack_w_handler(sound_ack); + m_sound_ack_w_handler(m_sound_ack); + } + update_led(); +} + +void bally_cheap_squeak_device::update_led() +{ + // Either input or output can pull the led line high + bool led_state = m_sound_int || m_sound_ack; + machine().output().set_value("sound_led0", led_state); +} + + +//************************************************************************** +// Squawk & Talk +//************************************************************************** + +//-------------------------------------------------------------------------- +// IO ports +//-------------------------------------------------------------------------- +static INPUT_PORTS_START(squawk_n_talk) + PORT_START("SW1") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE3 ) PORT_NAME("SW1") PORT_CHANGED_MEMBER(DEVICE_SELF, bally_squawk_n_talk_device, sw1, 0) +INPUT_PORTS_END + +ioport_constructor bally_squawk_n_talk_device::device_input_ports() const +{ + return INPUT_PORTS_NAME(squawk_n_talk); +} + +INPUT_CHANGED_MEMBER(bally_squawk_n_talk_device::sw1) +{ + if (newval != oldval) + m_cpu->set_input_line(INPUT_LINE_NMI, (newval ? ASSERT_LINE : CLEAR_LINE)); +} + +//------------------------------------------------- +// sound_select - handle an external write to the board +//------------------------------------------------- +WRITE8_MEMBER(bally_squawk_n_talk_device::sound_select) +{ + machine().scheduler().synchronize(timer_expired_delegate(FUNC(bally_squawk_n_talk_device::sound_select_sync), this), data); +} + +TIMER_CALLBACK_MEMBER(bally_squawk_n_talk_device::sound_select_sync) +{ + m_sound_select = param; +} + +//------------------------------------------------- +// sound_int - handle an external sound interrupt to the board +//------------------------------------------------- +WRITE_LINE_MEMBER(bally_squawk_n_talk_device::sound_int) +{ + machine().scheduler().synchronize(timer_expired_delegate(FUNC(bally_squawk_n_talk_device::sound_int_sync), this), state); +} + +TIMER_CALLBACK_MEMBER(bally_squawk_n_talk_device::sound_int_sync) +{ + // the line runs though in inverter + m_pia2->cb1_w(!param); +} + +//------------------------------------------------- +// CPU map, from schematics +//------------------------------------------------- +void bally_squawk_n_talk_device::squawk_n_talk_map(address_map &map) +{ + map.unmap_value_high(); + map(0x0000, 0x007f).ram(); // internal RAM, could also be jumpered to use a 6808 + map(0x0080, 0x0083).mirror(0x4f6c).rw("pia2", FUNC(pia6821_device::read), FUNC(pia6821_device::write)); + map(0x0090, 0x0093).mirror(0x4f6c).rw("pia1", FUNC(pia6821_device::read), FUNC(pia6821_device::write)); + map(0x1000, 0x1000).mirror(0x40ff).w("dac", FUNC(dac_byte_interface::data_w)); + map(0x8000, 0x8fff).mirror(0x4000).rom(); // U2 + map(0x9000, 0x9fff).mirror(0x4000).rom(); // U3 + map(0xa000, 0xafff).mirror(0x4000).rom(); // U4 + map(0xb000, 0xbfff).mirror(0x4000).rom(); // U5 +} + +//------------------------------------------------- +// device_add_mconfig - add device configuration +//------------------------------------------------- +void bally_squawk_n_talk_device::device_add_mconfig(machine_config &config) +{ + M6802(config, m_cpu, DERIVED_CLOCK(1, 1)); + m_cpu->set_addrmap(AS_PROGRAM, &bally_squawk_n_talk_device::squawk_n_talk_map); + + PIA6821(config, m_pia1, 0); + m_pia1->readpa_handler().set(m_tms5200, FUNC(tms5220_device::status_r)); + m_pia1->writepa_handler().set(m_tms5200, FUNC(tms5220_device::data_w)); + m_pia1->writepb_handler().set(FUNC(bally_squawk_n_talk_device::pia1_portb_w)); + m_pia1->irqa_handler().set(FUNC(bally_squawk_n_talk_device::pia_irq_w)); + m_pia1->irqb_handler().set(FUNC(bally_squawk_n_talk_device::pia_irq_w)); + + PIA6821(config, m_pia2, 0); + m_pia2->readpa_handler().set(FUNC(bally_squawk_n_talk_device::pia2_porta_r)); + m_pia2->ca2_handler().set(FUNC(bally_squawk_n_talk_device::pia2_ca2_w)); + m_pia2->irqa_handler().set(FUNC(bally_squawk_n_talk_device::pia_irq_w)); + m_pia2->irqb_handler().set(FUNC(bally_squawk_n_talk_device::pia_irq_w)); + + FILTER_RC(config, m_dac_filter); + m_dac_filter->add_route(ALL_OUTPUTS, *this, 1.0); + m_dac_filter->set_rc(filter_rc_device::HIGHPASS, 2000, 0, 0, CAP_U(2)); + AD558(config, "dac", 0).add_route(ALL_OUTPUTS, "dac_filter", 0.75); + voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); + vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); + vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); + + // TODO: Calculate exact filter values. An AC filter is good enough for now + // and required as the chip likes to output a DC offset at idle. + FILTER_RC(config, m_speech_filter).set_ac(); + m_speech_filter->add_route(ALL_OUTPUTS, *this, 1.0); + TMS5200(config, m_tms5200, 640000); + m_tms5200->add_route(ALL_OUTPUTS, "speech_filter", 1.0); + m_tms5200->ready_cb().set(m_pia1, FUNC(pia6821_device::ca2_w)); + m_tms5200->irq_cb().set(m_pia1, FUNC(pia6821_device::cb1_w)); +} + +//------------------------------------------------- +// device_start - device-specific startup +//------------------------------------------------- +void bally_squawk_n_talk_device::device_start() +{ + save_item(NAME(m_sound_select)); +} + +//------------------------------------------------- +// pia1_portb_w - PIA 1 port B write +//------------------------------------------------- +WRITE8_MEMBER(bally_squawk_n_talk_device::pia1_portb_w) +{ + m_tms5200->rsq_w(BIT(data, 0)); + m_tms5200->wsq_w(BIT(data, 1)); +} + +//------------------------------------------------- +// pia2_porta_r - PIA 2 port A reads +//------------------------------------------------- +READ8_MEMBER(bally_squawk_n_talk_device::pia2_porta_r) +{ + // 5 lines and they go through inverters + return ~m_sound_select & 0x1f; +} + +//------------------------------------------------- +// pia2_ca2_w - PIA 2 CA2 writes +//------------------------------------------------- +WRITE_LINE_MEMBER(bally_squawk_n_talk_device::pia2_ca2_w) +{ + machine().output().set_value("sound_led0", state); +} + +//------------------------------------------------- +// pia_irq_w - IRQ line state changes +//------------------------------------------------- +WRITE_LINE_MEMBER(bally_squawk_n_talk_device::pia_irq_w) +{ + int combined_state = m_pia1->irq_a_state() | m_pia1->irq_b_state() | m_pia2->irq_a_state() | m_pia2->irq_b_state(); + m_cpu->set_input_line(M6802_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); +} + +//------------------------------------------------- +// device_add_mconfig - add device configuration +//------------------------------------------------- +void bally_squawk_n_talk_ay_device::device_add_mconfig(machine_config &config) +{ + bally_squawk_n_talk_device::device_add_mconfig(config); + + m_pia2->writepa_handler().set(FUNC(bally_squawk_n_talk_ay_device::pia2_porta_w)); + m_pia2->readpa_handler().set(FUNC(bally_squawk_n_talk_ay_device::pia2_porta_r)); + m_pia2->writepb_handler().set(FUNC(bally_squawk_n_talk_ay_device::pia2_portb_w)); + m_pia2->cb2_handler().set(FUNC(bally_squawk_n_talk_ay_device::pia2_cb2_w)); + + for (optional_device &filter : m_ay_filters) + // TODO: Calculate exact filter values. An AC filter is good enough for now + // and required as the chip likes to output a DC offset at idle. + FILTER_RC(config, filter).set_ac().add_route(ALL_OUTPUTS, *this, 1.0); + AY8910(config, m_ay, DERIVED_CLOCK(1, 4)); + m_ay->add_route(0, "ay_filter0", 0.33); + m_ay->add_route(1, "ay_filter1", 0.33); + m_ay->add_route(2, "ay_filter2", 0.33); + m_ay->port_a_read_callback().set(FUNC(bally_squawk_n_talk_ay_device::ay_io_r)); +} + +//------------------------------------------------- +// device_start - device-specific startup +//------------------------------------------------- +void bally_squawk_n_talk_ay_device::device_start() +{ + // Set volumes to a sane default. + m_ay->set_volume(0, 0); + m_ay->set_volume(1, 0); + m_ay->set_volume(2, 0); + + save_item(NAME(m_bc1)); + save_item(NAME(m_bdir)); + save_item(NAME(m_ay_data)); +} + +//------------------------------------------------- +// pia2_porta_r - PIA 2 port A reads +//------------------------------------------------- +READ8_MEMBER(bally_squawk_n_talk_ay_device::pia2_porta_r) +{ + if (m_bc1 && !m_bdir) + { + m_ay_data = m_ay->data_r(); + } + // This should return the open bus, but this method is called even if the PIA + // is in output mode. Self test expects to see the same value. + return m_ay_data; +} + +//------------------------------------------------- +// pia2_porta_w - PIA 2 port A writes +//------------------------------------------------- +WRITE8_MEMBER(bally_squawk_n_talk_ay_device::pia2_porta_w) +{ + if (m_bc1 && !m_bdir) + { + logerror("PIA2 port A bus contention!\n"); + } + m_ay_data = data; + update_ay_bus(); +} + +//------------------------------------------------- +// pia2_portb_w - PIA 2 port B writes +//------------------------------------------------- +WRITE8_MEMBER(bally_squawk_n_talk_ay_device::pia2_portb_w) +{ + m_bc1 = BIT(data, 0); + m_bdir = BIT(data, 1); + if (m_bc1 && !m_bdir) + { + m_ay_data = m_ay->data_r(); + } + update_ay_bus(); +} + +//------------------------------------------------- +// pia2_cb2_w - PIA 2 CB2 writes +//------------------------------------------------- +WRITE_LINE_MEMBER(bally_squawk_n_talk_ay_device::pia2_cb2_w) +{ + // This pin is hooked up to the amp, and disables sounds when hi + if (state) + { + m_ay->set_volume(0, 0); + m_ay->set_volume(1, 0); + m_ay->set_volume(2, 0); + } + else + { + m_ay->set_volume(0, 0xff); + m_ay->set_volume(1, 0xff); + m_ay->set_volume(2, 0xff); + } +} + +//------------------------------------------------- +// ay_io_r - AY8910 read +//------------------------------------------------- +READ8_MEMBER(bally_squawk_n_talk_ay_device::ay_io_r) +{ + // 5 lines and they go through inverters + return ~m_sound_select & 0x1f; +} + +void bally_squawk_n_talk_ay_device::update_ay_bus() +{ + if (m_bc1 && m_bdir) + { + m_ay->address_w(m_ay_data); + } + else if (!m_bc1 && m_bdir) + { + m_ay->data_w(m_ay_data); } } diff --git a/src/mame/audio/bally.h b/src/mame/audio/bally.h index bd55fd6b40b..c00c9c688ae 100644 --- a/src/mame/audio/bally.h +++ b/src/mame/audio/bally.h @@ -21,17 +21,22 @@ #include "sound/ay8910.h" #include "sound/dac.h" #include "sound/discrete.h" +#include "sound/flt_rc.h" #include "sound/hc55516.h" +#include "sound/tms5220.h" + //************************************************************************** // GLOBAL VARIABLES //************************************************************************** -DECLARE_DEVICE_TYPE(BALLY_AS2888, bally_as2888_device) -DECLARE_DEVICE_TYPE(BALLY_AS3022, bally_as3022_device) -DECLARE_DEVICE_TYPE(BALLY_SOUNDS_PLUS, bally_sounds_plus_device) -DECLARE_DEVICE_TYPE(BALLY_CHEAP_SQUEAK, bally_cheap_squeak_device) +DECLARE_DEVICE_TYPE(BALLY_AS2888, bally_as2888_device) +DECLARE_DEVICE_TYPE(BALLY_AS3022, bally_as3022_device) +DECLARE_DEVICE_TYPE(BALLY_SOUNDS_PLUS, bally_sounds_plus_device) +DECLARE_DEVICE_TYPE(BALLY_CHEAP_SQUEAK, bally_cheap_squeak_device) +DECLARE_DEVICE_TYPE(BALLY_SQUAWK_N_TALK, bally_squawk_n_talk_device) +DECLARE_DEVICE_TYPE(BALLY_SQUAWK_N_TALK_AY, bally_squawk_n_talk_ay_device) //************************************************************************** @@ -47,8 +52,8 @@ public: const machine_config &mconfig, const char *tag, device_t *owner, - uint32_t clock = 3'579'545) : - bally_as2888_device(mconfig, BALLY_AS2888, tag, owner, clock) + uint32_t clock = 0) : + bally_as2888_device(mconfig, BALLY_AS2888, tag, owner) { } // read/write @@ -62,14 +67,13 @@ protected: const machine_config &mconfig, device_type type, const char *tag, - device_t *owner, - uint32_t clock) : - device_t(mconfig, type, tag, owner, clock), - device_mixer_interface(mconfig, *this), + device_t *owner) : + device_t(mconfig, type, tag, owner, 0), + device_mixer_interface(mconfig, *this), m_snd_prom(*this, "sound"), - m_discrete(*this, "discrete"), - m_timer_s_freq(*this, "timer_s_freq"), - m_snd_sustain_timer(*this, "timer_as2888") + m_discrete(*this, "discrete"), + m_timer_s_freq(*this, "timer_s_freq"), + m_snd_sustain_timer(*this, "timer_as2888") { } // device-level overrides @@ -78,20 +82,20 @@ protected: private: uint8_t m_sound_select; - uint8_t m_snd_sel; - uint8_t m_snd_tone_gen; - uint8_t m_snd_div; - required_region_ptr m_snd_prom; - required_device m_discrete; - required_device m_timer_s_freq; - required_device m_snd_sustain_timer; + uint8_t m_snd_sel; + uint8_t m_snd_tone_gen; + uint8_t m_snd_div; + required_region_ptr m_snd_prom; + required_device m_discrete; + required_device m_timer_s_freq; + required_device m_snd_sustain_timer; // internal communications TIMER_CALLBACK_MEMBER(sound_select_sync); TIMER_CALLBACK_MEMBER(sound_int_sync); - TIMER_DEVICE_CALLBACK_MEMBER(timer_s); - TIMER_DEVICE_CALLBACK_MEMBER(timer_as2888); + TIMER_DEVICE_CALLBACK_MEMBER(timer_s); + TIMER_DEVICE_CALLBACK_MEMBER(timer_as2888); }; @@ -122,11 +126,13 @@ protected: const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, type, tag, owner, clock), - device_mixer_interface(mconfig, *this), - m_cpu(*this, "cpu"), - m_pia(*this, "pia"), - m_ay(*this, "ay"), + device_t(mconfig, type, tag, owner, clock), + device_mixer_interface(mconfig, *this), + m_cpu(*this, "cpu"), + m_pia(*this, "pia"), + m_ay_filters(*this, "ay_filter%u", 0), + m_ay(*this, "ay"), + m_mc3417_filter(*this, "mc3417_filter"), m_mc3417(*this, "mc3417") { } @@ -139,7 +145,9 @@ protected: // The schematics list an optional 555, but it never seemed to be used required_device m_cpu; required_device m_pia; + required_device_array m_ay_filters; required_device m_ay; + optional_device m_mc3417_filter; optional_device m_mc3417; // overwridden by children @@ -157,10 +165,10 @@ private: DECLARE_READ8_MEMBER(pia_porta_r); DECLARE_WRITE8_MEMBER(pia_porta_w); DECLARE_WRITE_LINE_MEMBER(pia_cb2_w); - DECLARE_WRITE_LINE_MEMBER(irq_w); + DECLARE_WRITE_LINE_MEMBER(pia_irq_w); DECLARE_READ8_MEMBER(ay_io_r); - void update_sound_selects(); + void update_ay_bus(); }; @@ -217,9 +225,9 @@ protected: const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, type, tag, owner, clock), - device_mixer_interface(mconfig, *this), - m_cpu(*this, "cpu"), + device_t(mconfig, type, tag, owner, clock), + device_mixer_interface(mconfig, *this), + m_cpu(*this, "cpu"), m_dac(*this, "dac"), m_sound_ack_w_handler(*this) { } @@ -231,11 +239,12 @@ protected: // devices required_device m_cpu; - required_device m_dac; + required_device m_dac; private: uint8_t m_sound_select; bool m_sound_int; + bool m_sound_ack; devcb_write_line m_sound_ack_w_handler; @@ -245,6 +254,112 @@ private: DECLARE_WRITE8_MEMBER(out_p1_cb); DECLARE_READ8_MEMBER(in_p2_cb); DECLARE_WRITE8_MEMBER(out_p2_cb); + + void update_led(); }; +// ======================> bally_squawk_n_talk_device + +// This board comes in different configurations, with or without the DAC and/or AY8910. + +class bally_squawk_n_talk_device : public device_t, public device_mixer_interface +{ +public: + bally_squawk_n_talk_device( + const machine_config &mconfig, + const char *tag, + device_t *owner, + uint32_t clock = 3'579'545) : + bally_squawk_n_talk_device(mconfig, BALLY_SQUAWK_N_TALK, tag, owner, clock) + { } + + // read/write + DECLARE_INPUT_CHANGED_MEMBER(sw1); + DECLARE_WRITE8_MEMBER(sound_select); + DECLARE_WRITE_LINE_MEMBER(sound_int); + + void squawk_n_talk_map(address_map &map); + +protected: + bally_squawk_n_talk_device( + const machine_config &mconfig, + device_type type, + const char *tag, + device_t *owner, + uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_mixer_interface(mconfig, *this), + m_cpu(*this, "cpu"), + m_pia1(*this, "pia1"), + m_pia2(*this, "pia2"), + m_dac_filter(*this, "dac_filter"), + m_dac(*this, "dac"), + m_speech_filter(*this, "speech_filter"), + m_tms5200(*this, "tms5200"), + m_ay_filters(*this, "ay_filter%u", 0), + m_ay(*this, "ay") + { } + + // device-level overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual void device_start() override; + virtual ioport_constructor device_input_ports() const override; + + // devices + required_device m_cpu; + required_device m_pia1; + required_device m_pia2; + required_device m_dac_filter; + required_device m_dac; + required_device m_speech_filter; + required_device m_tms5200; + optional_device_array m_ay_filters; + optional_device m_ay; + + uint8_t m_sound_select; + + DECLARE_READ8_MEMBER(pia2_porta_r); + +private: + // internal communications + TIMER_CALLBACK_MEMBER(sound_select_sync); + TIMER_CALLBACK_MEMBER(sound_int_sync); + DECLARE_WRITE8_MEMBER(pia1_portb_w); + DECLARE_WRITE_LINE_MEMBER(pia2_ca2_w); + DECLARE_WRITE_LINE_MEMBER(pia_irq_w); +}; + + +class bally_squawk_n_talk_ay_device : public bally_squawk_n_talk_device +{ +public: + bally_squawk_n_talk_ay_device( + const machine_config &mconfig, + const char *tag, + device_t *owner, + uint32_t clock = 3'579'545) : + bally_squawk_n_talk_device(mconfig, BALLY_SQUAWK_N_TALK_AY, tag, owner, clock) + { } + +protected: + // device-level overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual void device_start() override; + + DECLARE_READ8_MEMBER(pia2_porta_r); + +private: + bool m_bc1; + bool m_bdir; + uint8_t m_ay_data; + + DECLARE_WRITE8_MEMBER(pia2_porta_w); + DECLARE_WRITE8_MEMBER(pia2_portb_w); + DECLARE_WRITE_LINE_MEMBER(pia2_cb2_w); + DECLARE_READ8_MEMBER(ay_io_r); + + void update_ay_bus(); +}; + + #endif // MAME_AUDIO_BALLY_H diff --git a/src/mame/audio/rad_eu3a05.cpp b/src/mame/audio/elan_eu3a05.cpp similarity index 64% rename from src/mame/audio/rad_eu3a05.cpp rename to src/mame/audio/elan_eu3a05.cpp index b77e1bdc6a4..84fbd099fc4 100644 --- a/src/mame/audio/rad_eu3a05.cpp +++ b/src/mame/audio/elan_eu3a05.cpp @@ -4,9 +4,17 @@ // Format not understood, it is not OKI ADPCM or IMA ADPCM, maybe something more basic? #include "emu.h" -#include "rad_eu3a05.h" +#include "elan_eu3a05.h" + +DEFINE_DEVICE_TYPE(RADICA6502_SOUND, radica6502_sound_device, "radica6502sound", "Elan EU3A05 / EU3A14 Sound") + +#define LOG_AUDIO (1U << 0) + +#define LOG_ALL (LOG_AUDIO) + +#define VERBOSE (0) +#include "logmacro.h" -DEFINE_DEVICE_TYPE(RADICA6502_SOUND, radica6502_sound_device, "radica6502sound", "Radica 6502 Sound") radica6502_sound_device::radica6502_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, RADICA6502_SOUND, tag, owner, clock) @@ -51,7 +59,7 @@ void radica6502_sound_device::sound_stream_update(sound_stream &stream, stream_s { if (!((m_isstopped >> channel) & 1)) { - //logerror("m_isstopped %02x channel %d is active %08x %06x\n", m_isstopped, channel, m_sound_byte_address[channel], m_sound_current_nib_pos[channel]); + //LOGMASKED( LOG_AUDIO, "m_isstopped %02x channel %d is active %08x %06x\n", m_isstopped, channel, m_sound_byte_address[channel], m_sound_current_nib_pos[channel]); int readoffset = m_sound_byte_address[channel] + (m_sound_current_nib_pos[channel] / 2); @@ -79,7 +87,7 @@ void radica6502_sound_device::sound_stream_update(sound_stream &stream, stream_s } else { - //logerror("m_isstopped %02x channel %d is NOT active %08x %06x\n", m_isstopped, channel, m_sound_byte_address[channel], m_sound_current_nib_pos[channel]); + //LOGMASKED( LOG_AUDIO, "m_isstopped %02x channel %d is NOT active %08x %06x\n", m_isstopped, channel, m_sound_byte_address[channel], m_sound_current_nib_pos[channel]); } } outpos++; @@ -93,17 +101,17 @@ void radica6502_sound_device::handle_sound_addr_w(int which, int offset, uint8_t { case 0x00: m_sound_byte_address[which] = (m_sound_byte_address[which] & 0xffff00) | (data<<0); - logerror("%s: sound_0 (%d) write lo address %02x (real address is now %08x)\n", machine().describe_context(), which, data, m_sound_byte_address[which]); + LOGMASKED( LOG_AUDIO, "%s: sound_0 (%d) write lo address %02x (real address is now %08x)\n", machine().describe_context(), which, data, m_sound_byte_address[which]); break; case 0x01: m_sound_byte_address[which] = (m_sound_byte_address[which] & 0xff00ff) | (data<<8); - logerror("%s: sound_0 (%d) write md address %02x (real address is now %08x)\n", machine().describe_context(), which, data, m_sound_byte_address[which]); + LOGMASKED( LOG_AUDIO, "%s: sound_0 (%d) write md address %02x (real address is now %08x)\n", machine().describe_context(), which, data, m_sound_byte_address[which]); break; case 0x02: m_sound_byte_address[which] = (m_sound_byte_address[which] & 0x00ffff) | (data<<16); - logerror("%s: sound_0 (%d) write hi address %02x (real address is now %08x)\n", machine().describe_context(), which, data, m_sound_byte_address[which]); + LOGMASKED( LOG_AUDIO, "%s: sound_0 (%d) write hi address %02x (real address is now %08x)\n", machine().describe_context(), which, data, m_sound_byte_address[which]); break; } } @@ -113,15 +121,15 @@ uint8_t radica6502_sound_device::handle_sound_addr_r(int which, int offset) switch (offset) { case 0x00: - logerror("%s: sound_0 (%d) read lo address\n", machine().describe_context(), which); + LOGMASKED( LOG_AUDIO, "%s: sound_0 (%d) read lo address\n", machine().describe_context(), which); return (m_sound_byte_address[which]>>0) & 0xff; case 0x01: - logerror("%s: sound_0 (%d) read mid address\n", machine().describe_context(), which); + LOGMASKED( LOG_AUDIO, "%s: sound_0 (%d) read mid address\n", machine().describe_context(), which); return (m_sound_byte_address[which]>>8) & 0xff; case 0x02: - logerror("%s: sound_0 (%d) read hi address\n", machine().describe_context(), which); + LOGMASKED( LOG_AUDIO, "%s: sound_0 (%d) read hi address\n", machine().describe_context(), which); return (m_sound_byte_address[which]>>16) & 0xff; } @@ -146,17 +154,17 @@ void radica6502_sound_device::handle_sound_size_w(int which, int offset, uint8_t { case 0x00: m_sound_byte_len[which] = (m_sound_byte_len[which] & 0xffff00) | (data<<0); - logerror("%s: sound_1 (%d) write lo size %02x (real size is now %08x)\n", machine().describe_context(), which, data, m_sound_byte_len[which]); + LOGMASKED( LOG_AUDIO, "%s: sound_1 (%d) write lo size %02x (real size is now %08x)\n", machine().describe_context(), which, data, m_sound_byte_len[which]); break; case 0x01: m_sound_byte_len[which] = (m_sound_byte_len[which] & 0xff00ff) | (data<<8); - logerror("%s: sound_1 (%d) write md size %02x (real size is now %08x)\n", machine().describe_context(), which, data, m_sound_byte_len[which]); + LOGMASKED( LOG_AUDIO, "%s: sound_1 (%d) write md size %02x (real size is now %08x)\n", machine().describe_context(), which, data, m_sound_byte_len[which]); break; case 0x02: m_sound_byte_len[which] = (m_sound_byte_len[which] & 0x00ffff) | (data<<16); - logerror("%s: sound_1 (%d) write hi size %02x (real size is now %08x)\n", machine().describe_context(), which, data, m_sound_byte_len[which]); + LOGMASKED( LOG_AUDIO, "%s: sound_1 (%d) write hi size %02x (real size is now %08x)\n", machine().describe_context(), which, data, m_sound_byte_len[which]); break; } } @@ -166,15 +174,15 @@ uint8_t radica6502_sound_device::handle_sound_size_r(int which, int offset) switch (offset) { case 0x00: - logerror("%s: sound_1 (%d) read lo size\n", machine().describe_context(), which); + LOGMASKED( LOG_AUDIO, "%s: sound_1 (%d) read lo size\n", machine().describe_context(), which); return (m_sound_byte_len[which]>>0) & 0xff; case 0x01: - logerror("%s: sound_1 (%d) read mid size\n", machine().describe_context(), which); + LOGMASKED( LOG_AUDIO, "%s: sound_1 (%d) read mid size\n", machine().describe_context(), which); return (m_sound_byte_len[which]>>8) & 0xff; case 0x02: - logerror("%s: sound_1 (%d) read hi size\n", machine().describe_context(), which); + LOGMASKED( LOG_AUDIO, "%s: sound_1 (%d) read hi size\n", machine().describe_context(), which); return (m_sound_byte_len[which]>>16) & 0xff; } @@ -197,7 +205,7 @@ READ8_MEMBER(radica6502_sound_device::radicasi_sound_trigger_r) { m_stream->update(); - logerror("%s: sound read from trigger?\n", machine().describe_context()); + LOGMASKED( LOG_AUDIO, "%s: sound read from trigger?\n", machine().describe_context()); return m_sound_trigger; } @@ -206,7 +214,7 @@ WRITE8_MEMBER(radica6502_sound_device::radicasi_sound_trigger_w) { m_stream->update(); - logerror("%s: sound write to trigger? %02x\n", machine().describe_context(), data); + LOGMASKED( LOG_AUDIO, "%s: sound write to trigger? %02x\n", machine().describe_context(), data); m_sound_trigger = data; for (int i = 0; i < 6; i++) @@ -218,39 +226,39 @@ WRITE8_MEMBER(radica6502_sound_device::radicasi_sound_trigger_w) } if (data & 0xc0) - logerror(" UNEXPECTED BITS SET"); + LOGMASKED( LOG_AUDIO, " UNEXPECTED BITS SET"); } /* this is read/written with the same individual bits for each channel as the trigger maybe related to interrupts? */ READ8_MEMBER(radica6502_sound_device::radicasi_sound_unk_r) { - logerror("%s: radicasi_sound_unk_r\n", machine().describe_context()); + LOGMASKED( LOG_AUDIO, "%s: radicasi_sound_unk_r\n", machine().describe_context()); // don't think this reads back what was written probably a status of something instead? return 0x00; //m_sound_unk; } WRITE8_MEMBER(radica6502_sound_device::radicasi_sound_unk_w) { - logerror("%s: radicasi_sound_unk_w %02x\n", machine().describe_context(), data); + LOGMASKED( LOG_AUDIO, "%s: radicasi_sound_unk_w %02x\n", machine().describe_context(), data); for (int i = 0; i < 6; i++) { int bit = (data >> i) & 1; if (bit) - logerror("(unknown operation on channel %d)\n", i); + LOGMASKED( LOG_AUDIO, "(unknown operation on channel %d)\n", i); } m_sound_unk = data; if (data & 0xc0) - logerror(" UNEXPECTED BITS SET"); + LOGMASKED( LOG_AUDIO, " UNEXPECTED BITS SET"); } void radica6502_sound_device::handle_sound_trigger(int which) { - logerror("Triggering operation on channel (%d) with params %08x %08x\n", which, m_sound_byte_address[which], m_sound_byte_len[which]); + LOGMASKED( LOG_AUDIO, "Triggering operation on channel (%d) with params %08x %08x\n", which, m_sound_byte_address[which], m_sound_byte_len[which]); m_sound_current_nib_pos[which] = 0; m_isstopped &= ~(1 << which); @@ -261,6 +269,6 @@ READ8_MEMBER(radica6502_sound_device::radicasi_50a8_r) { m_stream->update(); - logerror("%s: radicasi_50a8_r\n", machine().describe_context()); + LOGMASKED( LOG_AUDIO, "%s: radicasi_50a8_r\n", machine().describe_context()); return m_isstopped; } diff --git a/src/mame/audio/rad_eu3a05.h b/src/mame/audio/elan_eu3a05.h similarity index 100% rename from src/mame/audio/rad_eu3a05.h rename to src/mame/audio/elan_eu3a05.h diff --git a/src/mame/audio/midway.cpp b/src/mame/audio/midway.cpp index f71b0da0ea7..982961ea684 100644 --- a/src/mame/audio/midway.cpp +++ b/src/mame/audio/midway.cpp @@ -20,10 +20,9 @@ // GLOBAL VARIABLES //************************************************************************** -DEFINE_DEVICE_TYPE(MIDWAY_SSIO, midway_ssio_device, "midssio", "Midway SSIO Sound Board") -DEFINE_DEVICE_TYPE(MIDWAY_SOUNDS_GOOD, midway_sounds_good_device, "midsg", "Midway Sounds Good Sound Board") -DEFINE_DEVICE_TYPE(MIDWAY_TURBO_CHEAP_SQUEAK, midway_turbo_cheap_squeak_device, "midtcs", "Midway Turbo Cheap Squeak Sound Board") -DEFINE_DEVICE_TYPE(MIDWAY_SQUAWK_N_TALK, midway_squawk_n_talk_device, "midsnt", "Midway Squawk 'n' Talk Sound Board") +DEFINE_DEVICE_TYPE(MIDWAY_SSIO, midway_ssio_device, "midssio", "Midway SSIO Sound Board") +DEFINE_DEVICE_TYPE(MIDWAY_SOUNDS_GOOD, midway_sounds_good_device, "midsg", "Midway Sounds Good Sound Board") +DEFINE_DEVICE_TYPE(MIDWAY_TURBO_CHEAP_SQUEAK, midway_turbo_cheap_squeak_device, "midtcs", "Midway Turbo Cheap Squeak Sound Board") //************************************************************************** @@ -797,211 +796,3 @@ void midway_turbo_cheap_squeak_device::device_timer(emu_timer &timer, device_tim // important, so we boost the interleave briefly while this happens machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100)); } - - -//************************************************************************** -// SQUAWK 'N' TALK BOARD -//************************************************************************** - -//------------------------------------------------- -// midway_squawk_n_talk_device - constructor -//------------------------------------------------- - -midway_squawk_n_talk_device::midway_squawk_n_talk_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MIDWAY_SQUAWK_N_TALK, tag, owner, clock), - device_mixer_interface(mconfig, *this), - m_cpu(*this, "cpu"), - m_pia0(*this, "pia0"), - m_pia1(*this, "pia1"), - m_tms5200(*this, "tms5200"), - m_tms_command(0), - m_tms_strobes(0) -{ -} - - -//------------------------------------------------- -// write - handle an external write to the input -// latch -//------------------------------------------------- - -WRITE8_MEMBER(midway_squawk_n_talk_device::write) -{ - synchronize(0, data); -} - - -//------------------------------------------------- -// reset_write - write to the reset line -//------------------------------------------------- - -WRITE_LINE_MEMBER(midway_squawk_n_talk_device::reset_write) -{ - m_cpu->set_input_line(INPUT_LINE_RESET, state ? ASSERT_LINE : CLEAR_LINE); -} - - -//------------------------------------------------- -// porta1_w - PIA #1 port A writes -//------------------------------------------------- - -WRITE8_MEMBER(midway_squawk_n_talk_device::porta1_w ) -{ - logerror("Write to AY-8912 = %02X\n", data); -} - - -//------------------------------------------------- -// dac_w - DAC data writes -//------------------------------------------------- - -WRITE8_MEMBER(midway_squawk_n_talk_device::dac_w) -{ - logerror("Write to DAC = %02X\n", data); -} - - -//------------------------------------------------- -// porta2_w - PIA #2 port A writes -//------------------------------------------------- - -WRITE8_MEMBER(midway_squawk_n_talk_device::porta2_w) -{ - m_tms_command = data; -} - - -//------------------------------------------------- -// portb2_w - PIA #2 port B writes -//------------------------------------------------- - -WRITE8_MEMBER(midway_squawk_n_talk_device::portb2_w) -{ - // bits 0-1 select read/write strobes on the TMS5200 - data &= 0x03; - - // write strobe -- pass the current command to the TMS5200 - if (((data ^ m_tms_strobes) & 0x02) && !(data & 0x02)) - { - m_tms5200->data_w(m_tms_command); - - // DoT expects the ready line to transition on a command/write here, so we oblige - m_pia1->ca2_w(1); - m_pia1->ca2_w(0); - } - - // read strobe -- read the current status from the TMS5200 - else if (((data ^ m_tms_strobes) & 0x01) && !(data & 0x01)) - { - m_pia1->write_porta(m_tms5200->status_r()); - - // DoT expects the ready line to transition on a command/write here, so we oblige - m_pia1->ca2_w(1); - m_pia1->ca2_w(0); - } - - // remember the state - m_tms_strobes = data; -} - - -//------------------------------------------------- -// irq_w - IRQ line state changes -//------------------------------------------------- - -WRITE_LINE_MEMBER(midway_squawk_n_talk_device::irq_w) -{ - int combined_state = m_pia0->irq_a_state() | m_pia0->irq_b_state() | m_pia1->irq_a_state() | m_pia1->irq_b_state(); - m_cpu->set_input_line(M6802_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); -} - - -//------------------------------------------------- -// audio CPU map -//------------------------------------------------- - -// address map verified from schematics -// note that jumpers control the ROM sizes; if these are changed, use the alternate -// address map below -void midway_squawk_n_talk_device::squawkntalk_map(address_map &map) -{ - map.unmap_value_high(); - map(0x0000, 0x007f).ram(); // internal RAM - map(0x0080, 0x0083).mirror(0x4f6c).rw("pia0", FUNC(pia6821_device::read), FUNC(pia6821_device::write)); - map(0x0090, 0x0093).mirror(0x4f6c).rw("pia1", FUNC(pia6821_device::read), FUNC(pia6821_device::write)); - map(0x1000, 0x1fff).mirror(0x4000).w(FUNC(midway_squawk_n_talk_device::dac_w)); - map(0x8000, 0xbfff).mirror(0x4000).rom(); -} - -// alternate address map if the ROM jumpers are changed to support a smaller -// ROM size of 2k -#ifdef UNUSED_FUNCTION -void midway_squawk_n_talk_device::squawkntalk_alt_map(address_map &map) -{ - map.unmap_value_high(); - map(0x0000, 0x007f).ram(); // internal RAM - map(0x0080, 0x0083).mirror(0x676c).rw("pia0", FUNC(pia6821_device::read), FUNC(pia6821_device::write)); - map(0x0090, 0x0093).mirror(0x676c).rw("pia1", FUNC(pia6821_device::read), FUNC(pia6821_device::write)); - map(0x0800, 0x0fff).mirror(0x6000).w(FUNC(midway_squawk_n_talk_device::dac_w)); - map(0x8000, 0x9fff).mirror(0x6000).rom(); -} -#endif - - -//------------------------------------------------- -// device_add_mconfig - add device configuration -//------------------------------------------------- - -void midway_squawk_n_talk_device::device_add_mconfig(machine_config &config) -{ - M6802(config, m_cpu, DERIVED_CLOCK(1, 1)); - m_cpu->set_addrmap(AS_PROGRAM, &midway_squawk_n_talk_device::squawkntalk_map); - - PIA6821(config, m_pia0, 0); - m_pia0->writepa_handler().set(FUNC(midway_squawk_n_talk_device::porta1_w)); - m_pia0->irqa_handler().set(FUNC(midway_squawk_n_talk_device::irq_w)); - m_pia0->irqb_handler().set(FUNC(midway_squawk_n_talk_device::irq_w)); - - PIA6821(config, m_pia1, 0); - m_pia1->writepa_handler().set(FUNC(midway_squawk_n_talk_device::porta2_w)); - m_pia1->writepb_handler().set(FUNC(midway_squawk_n_talk_device::portb2_w)); - m_pia1->irqa_handler().set(FUNC(midway_squawk_n_talk_device::irq_w)); - m_pia1->irqb_handler().set(FUNC(midway_squawk_n_talk_device::irq_w)); - - // only used on Discs of Tron, which is stereo - TMS5200(config, m_tms5200, 640000).add_route(ALL_OUTPUTS, *this, 0.60); - - // the board also supports an AY-8912 and/or an 8-bit DAC, neither of - // which are populated on the Discs of Tron board -} - - -//------------------------------------------------- -// device_start - device-specific startup -//------------------------------------------------- - -void midway_squawk_n_talk_device::device_start() -{ - save_item(NAME(m_tms_command)); - save_item(NAME(m_tms_strobes)); -} - - -//------------------------------------------------- -// device_reset - device-specific reset -//------------------------------------------------- - -void midway_squawk_n_talk_device::device_reset() -{ -} - - -//------------------------------------------------- -// device_timer - timer callbacks -//------------------------------------------------- - -void midway_squawk_n_talk_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) -{ - m_pia0->write_porta(~param & 0x0f); - m_pia0->cb1_w(BIT(~param, 4)); -} diff --git a/src/mame/audio/midway.h b/src/mame/audio/midway.h index 0e3aed92f29..5078db354f2 100644 --- a/src/mame/audio/midway.h +++ b/src/mame/audio/midway.h @@ -31,7 +31,6 @@ DECLARE_DEVICE_TYPE(MIDWAY_SSIO, midway_ssio_device) DECLARE_DEVICE_TYPE(MIDWAY_SOUNDS_GOOD, midway_sounds_good_device) DECLARE_DEVICE_TYPE(MIDWAY_TURBO_CHEAP_SQUEAK, midway_turbo_cheap_squeak_device) -DECLARE_DEVICE_TYPE(MIDWAY_SQUAWK_N_TALK, midway_squawk_n_talk_device) @@ -193,48 +192,4 @@ private: DECLARE_WRITE_LINE_MEMBER(irq_w); }; - -// ======================> midway_squawk_n_talk_device - -class midway_squawk_n_talk_device : public device_t, - public device_mixer_interface -{ -public: - // construction/destruction - midway_squawk_n_talk_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 3'579'545); - - // read/write - DECLARE_WRITE8_MEMBER(write); - DECLARE_WRITE_LINE_MEMBER(reset_write); - - // internal communications - DECLARE_WRITE8_MEMBER(dac_w); - - void squawkntalk_alt_map(address_map &map); - void squawkntalk_map(address_map &map); -protected: - // device-level overrides - virtual void device_add_mconfig(machine_config &config) override; - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - -private: - // devices - required_device m_cpu; - required_device m_pia0; - required_device m_pia1; - optional_device m_tms5200; - - // internal state - uint8_t m_tms_command; - uint8_t m_tms_strobes; - - // internal communications - DECLARE_WRITE8_MEMBER(porta1_w); - DECLARE_WRITE8_MEMBER(porta2_w); - DECLARE_WRITE8_MEMBER(portb2_w); - DECLARE_WRITE_LINE_MEMBER(irq_w); -}; - #endif // MAME_AUDIO_MIDWAY_H diff --git a/src/mame/drivers/2mindril.cpp b/src/mame/drivers/2mindril.cpp index 9fe02bc3280..ec603e08ad3 100644 --- a/src/mame/drivers/2mindril.cpp +++ b/src/mame/drivers/2mindril.cpp @@ -55,26 +55,27 @@ public: void init_drill(); +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + private: /* input-related */ required_ioport m_in0; - uint8_t m_defender_sensor; - uint8_t m_shutter_sensor; - uint16_t m_irq_reg; + u8 m_defender_sensor; + u8 m_shutter_sensor; + u16 m_irq_reg; /* devices */ - DECLARE_READ8_MEMBER(arm_pwr_r); - DECLARE_READ8_MEMBER(sensors_r); - DECLARE_WRITE8_MEMBER(coins_w); - DECLARE_WRITE16_MEMBER(sensors_w); - DECLARE_READ16_MEMBER(drill_irq_r); - DECLARE_WRITE16_MEMBER(drill_irq_w); + u8 arm_pwr_r(); + u8 sensors_r(); + void coins_w(u8 data); + void sensors_w(u16 data); + u16 irq_r(); + void irq_w(offs_t offset, u16 data, u16 mem_mask); - DECLARE_MACHINE_START(drill); - DECLARE_MACHINE_RESET(drill); - INTERRUPT_GEN_MEMBER(drill_vblank_irq); + INTERRUPT_GEN_MEMBER(vblank_irq); //INTERRUPT_GEN_MEMBER(drill_device_irq); - void tile_decode(); DECLARE_WRITE_LINE_MEMBER(irqhandler); void drill_map(address_map &map); @@ -92,23 +93,23 @@ protected: }; -READ8_MEMBER(_2mindril_state::arm_pwr_r) +u8 _2mindril_state::arm_pwr_r() { int arm_pwr = m_in0->read();//throw - if(arm_pwr > 0xe0) return ~0x18; - if(arm_pwr > 0xc0) return ~0x14; - if(arm_pwr > 0x80) return ~0x12; - if(arm_pwr > 0x40) return ~0x10; + if (arm_pwr > 0xe0) return ~0x18; + if (arm_pwr > 0xc0) return ~0x14; + if (arm_pwr > 0x80) return ~0x12; + if (arm_pwr > 0x40) return ~0x10; else return ~0x00; } -READ8_MEMBER(_2mindril_state::sensors_r) +u8 _2mindril_state::sensors_r() { return (m_defender_sensor) | (m_shutter_sensor); } -WRITE8_MEMBER(_2mindril_state::coins_w) +void _2mindril_state::coins_w(u8 data) { machine().bookkeeping().coin_counter_w(0, data & 0x04); machine().bookkeeping().coin_counter_w(1, data & 0x08); @@ -147,7 +148,7 @@ void _2mindril_state::device_timer(emu_timer &timer, device_timer_id id, int par } #endif -WRITE16_MEMBER(_2mindril_state::sensors_w) +void _2mindril_state::sensors_w(u16 data) { /*---- xxxx ---- ---- select "lamps" (guess)*/ /*---- ---- ---- -x-- lamp*/ @@ -174,12 +175,12 @@ WRITE16_MEMBER(_2mindril_state::sensors_w) } } -READ16_MEMBER(_2mindril_state::drill_irq_r) +u16 _2mindril_state::irq_r() { return m_irq_reg; } -WRITE16_MEMBER(_2mindril_state::drill_irq_w) +void _2mindril_state::irq_w(offs_t offset, u16 data, u16 mem_mask) { /* (note: could rather be irq mask) @@ -187,13 +188,13 @@ WRITE16_MEMBER(_2mindril_state::drill_irq_w) ---- ---- ---- x--- irq lv 4 ack, 0->1 latch ---- ---- -??- -??? connected to the other levels? */ - if(((m_irq_reg & 8) == 0) && data & 8) + if (((m_irq_reg & 8) == 0) && data & 8) m_maincpu->set_input_line(4, CLEAR_LINE); - if(((m_irq_reg & 0x10) == 0) && data & 0x10) + if (((m_irq_reg & 0x10) == 0) && data & 0x10) m_maincpu->set_input_line(5, CLEAR_LINE); - if(data & 0xffe7) + if (data & 0xffe7) printf("%04x\n",data); COMBINE_DATA(&m_irq_reg); @@ -204,18 +205,18 @@ void _2mindril_state::drill_map(address_map &map) map(0x000000, 0x07ffff).rom(); map(0x200000, 0x20ffff).ram(); map(0x300000, 0x3000ff).ram(); - map(0x400000, 0x40ffff).rw(FUNC(_2mindril_state::f3_spriteram_r), FUNC(_2mindril_state::f3_spriteram_w)); - map(0x410000, 0x41bfff).rw(FUNC(_2mindril_state::f3_pf_data_r), FUNC(_2mindril_state::f3_pf_data_w)); - map(0x41c000, 0x41dfff).rw(FUNC(_2mindril_state::f3_videoram_r), FUNC(_2mindril_state::f3_videoram_w)); - map(0x41e000, 0x41ffff).rw(FUNC(_2mindril_state::f3_vram_r), FUNC(_2mindril_state::f3_vram_w)); - map(0x420000, 0x42ffff).rw(FUNC(_2mindril_state::f3_lineram_r), FUNC(_2mindril_state::f3_lineram_w)); - map(0x430000, 0x43ffff).rw(FUNC(_2mindril_state::f3_pivot_r), FUNC(_2mindril_state::f3_pivot_w)); - map(0x460000, 0x46000f).w(FUNC(_2mindril_state::f3_control_0_w)); - map(0x460010, 0x46001f).w(FUNC(_2mindril_state::f3_control_1_w)); + map(0x400000, 0x40ffff).ram().share("spriteram"); + map(0x410000, 0x41bfff).ram().w(FUNC(_2mindril_state::pf_ram_w)).share("pf_ram"); + map(0x41c000, 0x41dfff).ram().w(FUNC(_2mindril_state::textram_w)).share("textram"); + map(0x41e000, 0x41ffff).ram().w(FUNC(_2mindril_state::charram_w)).share("charram"); + map(0x420000, 0x42ffff).ram().share("line_ram"); + map(0x430000, 0x43ffff).ram().w(FUNC(_2mindril_state::pivot_w)).share("pivot_ram"); + map(0x460000, 0x46000f).w(FUNC(_2mindril_state::control_0_w)); + map(0x460010, 0x46001f).w(FUNC(_2mindril_state::control_1_w)); map(0x500000, 0x501fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); map(0x502022, 0x502023).nopw(); //countinously switches between 0 and 2 map(0x600000, 0x600007).rw("ymsnd", FUNC(ym2610_device::read), FUNC(ym2610_device::write)).umask16(0x00ff); - map(0x60000c, 0x60000d).rw(FUNC(_2mindril_state::drill_irq_r), FUNC(_2mindril_state::drill_irq_w)); + map(0x60000c, 0x60000d).rw(FUNC(_2mindril_state::irq_r), FUNC(_2mindril_state::irq_w)); map(0x60000e, 0x60000f).ram(); // unknown purpose, zeroed at start-up and nothing else map(0x700000, 0x70000f).rw("tc0510nio", FUNC(tc0510nio_device::read), FUNC(tc0510nio_device::write)).umask16(0xff00); map(0x800000, 0x800001).w(FUNC(_2mindril_state::sensors_w)); @@ -269,7 +270,7 @@ static const gfx_layout charlayout = 4, { 0,1,2,3 }, { 20, 16, 28, 24, 4, 0, 12, 8 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, + { STEP8(0,4*8) }, 32*8 }; @@ -280,52 +281,19 @@ static const gfx_layout pivotlayout = 4, { 0,1,2,3 }, { 20, 16, 28, 24, 4, 0, 12, 8 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, + { STEP8(0,4*8) }, 32*8 }; -static const gfx_layout spriteram_layout = -{ - 16,16, - RGN_FRAC(1,2), - 6, /* Palettes have 4 bpp indexes despite up to 6 bpp data */ - { RGN_FRAC(1,2)+0, RGN_FRAC(1,2)+1, 0, 1, 2, 3 }, - { - 4, 0, 12, 8, - 16+4, 16+0, 16+12, 16+8, - 32+4, 32+0, 32+12, 32+8, - 48+4, 48+0, 48+12, 48+8 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 128*8 /* every sprite takes 128 consecutive bytes */ -}; - -static const gfx_layout tile_layout = -{ - 16,16, - RGN_FRAC(1,2), - 6, /* Palettes have 4 bpp indexes despite up to 6 bpp data */ - { RGN_FRAC(1,2)+2, RGN_FRAC(1,2)+3, 0, 1, 2, 3 }, - { - 4, 0, 16+4, 16+0, - 8+4, 8+0, 24+4, 24+0, - 32+4, 32+0, 48+4, 48+0, - 40+4, 40+0, 56+4, 56+0, - }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 128*8 /* every sprite takes 128 consecutive bytes */ -}; - static GFXDECODE_START( gfx_2mindril ) - GFXDECODE_ENTRY( nullptr, 0x000000, charlayout, 0x0000, 0x0400>>4 ) /* Dynamically modified */ - GFXDECODE_ENTRY( "gfx2", 0x000000, tile_layout, 0x0000, 0x2000>>4 ) /* Tiles area */ - GFXDECODE_ENTRY( "gfx1", 0x000000, spriteram_layout, 0x1000, 0x1000>>4 ) /* Sprites area */ - GFXDECODE_ENTRY( nullptr, 0x000000, pivotlayout, 0x0000, 0x400>>4 ) /* Dynamically modified */ + GFXDECODE_ENTRY( nullptr, 0x000000, charlayout, 0x0000, 0x0400>>4 ) /* Dynamically modified */ + GFXDECODE_ENTRY( "tilemap", 0x000000, gfx_16x16x4_packed_lsb, 0x0000, 0x2000>>4 ) /* Tiles area */ + GFXDECODE_ENTRY( "sprites", 0x000000, gfx_16x16x4_packed_lsb, 0x1000, 0x1000>>4 ) /* Sprites area */ + GFXDECODE_ENTRY( nullptr, 0x000000, pivotlayout, 0x0000, 0x400>>4 ) /* Dynamically modified */ GFXDECODE_END -INTERRUPT_GEN_MEMBER(_2mindril_state::drill_vblank_irq) +INTERRUPT_GEN_MEMBER(_2mindril_state::vblank_irq) { device.execute().set_input_line(4, ASSERT_LINE); } @@ -344,14 +312,14 @@ WRITE_LINE_MEMBER(_2mindril_state::irqhandler) } -MACHINE_START_MEMBER(_2mindril_state,drill) +void _2mindril_state::machine_start() { save_item(NAME(m_defender_sensor)); save_item(NAME(m_shutter_sensor)); save_item(NAME(m_irq_reg)); } -MACHINE_RESET_MEMBER(_2mindril_state,drill) +void _2mindril_state::machine_reset() { m_defender_sensor = 0; m_shutter_sensor = 0; @@ -362,7 +330,7 @@ void _2mindril_state::drill(machine_config &config) { M68000(config, m_maincpu, 16000000); m_maincpu->set_addrmap(AS_PROGRAM, &_2mindril_state::drill_map); - m_maincpu->set_vblank_int("screen", FUNC(_2mindril_state::drill_vblank_irq)); + m_maincpu->set_vblank_int("screen", FUNC(_2mindril_state::vblank_irq)); //MCFG_DEVICE_PERIODIC_INT_DRIVER(_2mindril_state, drill_device_irq, 60) GFXDECODE(config, m_gfxdecode, m_palette, gfx_2mindril); @@ -373,16 +341,13 @@ void _2mindril_state::drill(machine_config &config) tc0510nio.write_4_callback().set(FUNC(_2mindril_state::coins_w)); tc0510nio.read_7_callback().set_ioport("COINS"); - MCFG_MACHINE_START_OVERRIDE(_2mindril_state,drill) - MCFG_MACHINE_RESET_OVERRIDE(_2mindril_state,drill) - SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_refresh_hz(60); m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* inaccurate, same as Taito F3? (needs screen raw params anyway) */ m_screen->set_size(40*8+48*2, 32*8); m_screen->set_visarea(46, 40*8-1 + 46, 24, 24+224-1); - m_screen->set_screen_update(FUNC(_2mindril_state::screen_update_f3)); - m_screen->screen_vblank().set(FUNC(_2mindril_state::screen_vblank_f3)); + m_screen->set_screen_update(FUNC(_2mindril_state::screen_update)); + m_screen->screen_vblank().set(FUNC(_2mindril_state::screen_vblank)); PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 0x2000); @@ -400,85 +365,27 @@ void _2mindril_state::drill(machine_config &config) ROM_START( 2mindril ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "d58-38.ic11", 0x00000, 0x40000, CRC(c58e8e4f) SHA1(648db679c3bfb5de1cd6c1b1217773a2fe56f11b) ) + ROM_LOAD16_BYTE( "d58-38.ic11", 0x00000, 0x40000, CRC(c58e8e4f) SHA1(648db679c3bfb5de1cd6c1b1217773a2fe56f11b) ) // Ver 2.93A 1994/02/16 09:45:00 ROM_LOAD16_BYTE( "d58-37.ic9", 0x00001, 0x40000, CRC(19e5cc3c) SHA1(04ac0eef893c579fe90d91d7fd55c5741a2b7460) ) ROM_REGION( 0x200000, "ymsnd", 0 ) /* Samples */ ROM_LOAD( "d58-11.ic31", 0x000000, 0x200000, CRC(dc26d58d) SHA1(cffb18667da18f5367b02af85a2f7674dd61ae97) ) - ROM_REGION( 0x800000, "gfx1", ROMREGION_ERASE00 ) + ROM_REGION( 0x400000, "sprites", ROMREGION_ERASE00 ) + ROM_REGION( 0x200000, "sprites_hi", ROMREGION_ERASE00 ) - ROM_REGION( 0x800000, "gfx2", 0 ) - ROM_LOAD16_BYTE( "d58-09.ic28", 0x000001, 0x200000, CRC(d8f6a86a) SHA1(d6b2ec309e21064574ee63e025ae4716b1982a98) ) - ROM_LOAD16_BYTE( "d58-08.ic27", 0x000000, 0x200000, CRC(9f5a3f52) SHA1(7b696bd823819965b974c853cebc1660750db61e) ) - ROM_LOAD( "d58-10.ic29", 0x400000, 0x200000, CRC(74c87e08) SHA1(f39b3a64f8338ccf5ca6eb76cee92a10fe0aad8f) ) - ROM_RELOAD( 0x600000, 0x200000 ) + ROM_REGION( 0x400000, "tilemap", 0 ) + ROM_LOAD32_WORD( "d58-08.ic27", 0x000000, 0x200000, CRC(9f5a3f52) SHA1(7b696bd823819965b974c853cebc1660750db61e) ) + ROM_LOAD32_WORD( "d58-09.ic28", 0x000002, 0x200000, CRC(d8f6a86a) SHA1(d6b2ec309e21064574ee63e025ae4716b1982a98) ) + + ROM_REGION( 0x200000, "tilemap_hi", 0 ) + ROM_LOAD ( "d58-10.ic29", 0x000000, 0x200000, CRC(74c87e08) SHA1(f39b3a64f8338ccf5ca6eb76cee92a10fe0aad8f) ) ROM_END -void _2mindril_state::tile_decode() -{ - uint8_t lsb,msb; - uint32_t offset,i; - uint8_t *gfx = memregion("gfx2")->base(); - int size=memregion("gfx2")->bytes(); - int data; - - /* Setup ROM formats: - - Some games will only use 4 or 5 bpp sprites, and some only use 4 bpp tiles, - I don't believe this is software or prom controlled but simply the unused data lines - are tied low on the game board if unused. This is backed up by the fact the palette - indices are always related to 4 bpp data, even in 6 bpp games. - - Most (all?) games with 5bpp tiles have the sixth bit set. Also, in Arabian Magic - sprites 1200-120f contain 6bpp data which is probably bogus. - video_start clears the fifth and sixth bit of the decoded graphics according - to the bit depth specified in f3_config_table. - - */ - - offset = size/2; - for (i = size/2+size/4; i>0) | ((lsb&0x02)<<4) | ((lsb&0x01)<<1); - gfx[offset+2]=((msb&0x08)<<1) | ((msb&0x04)>>2) | ((lsb&0x08)<<2) | ((lsb&0x04)>>1); - gfx[offset+1]=((msb&0x20)>>1) | ((msb&0x10)>>4) | ((lsb&0x20)<<0) | ((lsb&0x10)>>3); - gfx[offset+3]=((msb&0x80)>>3) | ((msb&0x40)>>6) | ((lsb&0x80)>>2) | ((lsb&0x40)>>5); - - offset+=4; - } - - gfx = memregion("gfx1")->base(); - size=memregion("gfx1")->bytes(); - - offset = size/2; - for (i = size/2+size/4; i>0) & 3; - d2 = (data>>2) & 3; - d3 = (data>>4) & 3; - d4 = (data>>6) & 3; - - gfx[offset] = (d1<<2) | (d2<<6); - offset++; - - gfx[offset] = (d3<<2) | (d4<<6); - offset++; - } -} - void _2mindril_state::init_drill() { - m_f3_game = TMDRILL; + m_game = TMDRILL; tile_decode(); } -GAME( 1993, 2mindril, 0, drill, drill, _2mindril_state, init_drill, ROT0, "Taito", "Two Minute Drill", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_MECHANICAL) +GAME( 1993, 2mindril, 0, drill, drill, _2mindril_state, init_drill, ROT0, "Taito America Corporation", "Two Minute Drill (Ver 2.93A 1994/02/16)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_MECHANICAL) diff --git a/src/mame/drivers/ashnojoe.cpp b/src/mame/drivers/ashnojoe.cpp index 29d209ef138..b0f86449e6f 100644 --- a/src/mame/drivers/ashnojoe.cpp +++ b/src/mame/drivers/ashnojoe.cpp @@ -85,43 +85,59 @@ Coin B is not used #include "speaker.h" -READ16_MEMBER(ashnojoe_state::fake_4a00a_r) +u16 ashnojoe_state::fake_4a00a_r() { /* If it returns 1 there's no sound. Is it used to sync the game and sound? or just a debug enable/disable register? */ return 0; } +template +void ashnojoe_state::tileram_8x8_w(offs_t offset, u16 data) +{ + m_tileram[Which][offset] = data; + m_tilemap[Which]->mark_tile_dirty(offset); +} + +template +void ashnojoe_state::tileram_16x16_w(offs_t offset, u16 data) +{ + const int buffer = (m_tilemap_reg[0] & 0x02); + m_tileram[Which][offset] = data; + if (((Which == 5 && !buffer) || (Which == 6 && buffer)) || (Which < 5)) + m_tilemap[(Which < 5) ? Which : 5]->mark_tile_dirty(offset / 2); +} + void ashnojoe_state::ashnojoe_map(address_map &map) { map(0x000000, 0x01ffff).rom(); - map(0x040000, 0x041fff).ram().w(FUNC(ashnojoe_state::ashnojoe_tileram3_w)).share("tileram_3"); - map(0x042000, 0x043fff).ram().w(FUNC(ashnojoe_state::ashnojoe_tileram4_w)).share("tileram_4"); - map(0x044000, 0x044fff).ram().w(FUNC(ashnojoe_state::ashnojoe_tileram5_w)).share("tileram_5"); - map(0x045000, 0x045fff).ram().w(FUNC(ashnojoe_state::ashnojoe_tileram2_w)).share("tileram_2"); - map(0x046000, 0x046fff).ram().w(FUNC(ashnojoe_state::ashnojoe_tileram6_w)).share("tileram_6"); - map(0x047000, 0x047fff).ram().w(FUNC(ashnojoe_state::ashnojoe_tileram7_w)).share("tileram_7"); - map(0x048000, 0x048fff).ram().w(FUNC(ashnojoe_state::ashnojoe_tileram_w)).share("tileram"); + map(0x040000, 0x041fff).ram().w(FUNC(ashnojoe_state::tileram_8x8_w<2>)).share("tileram_3"); + map(0x042000, 0x043fff).ram().w(FUNC(ashnojoe_state::tileram_8x8_w<3>)).share("tileram_4"); + map(0x044000, 0x044fff).ram().w(FUNC(ashnojoe_state::tileram_16x16_w<4>)).share("tileram_5"); + map(0x045000, 0x045fff).ram().w(FUNC(ashnojoe_state::tileram_16x16_w<1>)).share("tileram_2"); + map(0x046000, 0x046fff).ram().w(FUNC(ashnojoe_state::tileram_16x16_w<5>)).share("tileram_6"); + map(0x047000, 0x047fff).ram().w(FUNC(ashnojoe_state::tileram_16x16_w<6>)).share("tileram_7"); + map(0x048000, 0x048fff).ram().w(FUNC(ashnojoe_state::tileram_8x8_w<0>)).share("tileram_1"); map(0x049000, 0x049fff).ram().w("palette", FUNC(palette_device::write16)).share("palette"); map(0x04a000, 0x04a001).portr("P1"); map(0x04a002, 0x04a003).portr("P2"); map(0x04a004, 0x04a005).portr("DSW"); - map(0x04a006, 0x04a007).writeonly().share("tilemap_reg"); + map(0x04a006, 0x04a007).w(FUNC(ashnojoe_state::tilemap_regs_w)).share("tilemap_reg"); map(0x04a009, 0x04a009).w(m_soundlatch, FUNC(generic_latch_8_device::write)); map(0x04a00a, 0x04a00b).r(FUNC(ashnojoe_state::fake_4a00a_r)); // ?? - map(0x04a010, 0x04a019).w(FUNC(ashnojoe_state::joe_tilemaps_xscroll_w)); - map(0x04a020, 0x04a029).w(FUNC(ashnojoe_state::joe_tilemaps_yscroll_w)); + map(0x04a010, 0x04a019).w(FUNC(ashnojoe_state::tilemaps_xscroll_w)); + map(0x04a020, 0x04a029).w(FUNC(ashnojoe_state::tilemaps_yscroll_w)); map(0x04c000, 0x04ffff).ram(); map(0x080000, 0x0bffff).rom(); } -WRITE8_MEMBER(ashnojoe_state::adpcm_w) +void ashnojoe_state::adpcm_w(u8 data) { m_adpcm_byte = data; } -READ8_MEMBER(ashnojoe_state::sound_latch_status_r) +u8 ashnojoe_state::sound_latch_status_r() { return m_soundlatch->pending_r(); } @@ -130,7 +146,7 @@ void ashnojoe_state::sound_map(address_map &map) { map(0x0000, 0x5fff).rom(); map(0x6000, 0x7fff).ram(); - map(0x8000, 0xffff).bankr("bank4"); + map(0x8000, 0xffff).bankr("audiobank"); } void ashnojoe_state::sound_portmap(address_map &map) @@ -231,39 +247,15 @@ static INPUT_PORTS_START( ashnojoe ) INPUT_PORTS_END -static const gfx_layout tiles8x8_layout = -{ - 8,8, - RGN_FRAC(1,1), - 4, - { 0, 1, 2, 3 }, - { 0, 4, 8, 12, 16, 20, 24, 28 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 32*8 -}; - -static const gfx_layout tiles16x16_layout = -{ - 16,16, - RGN_FRAC(1,1), - 4, - { 0, 1, 2, 3 }, - { 0, 4, 8, 12, 16, 20, 24, 28, - 32,36,40, 44, 48, 52, 56, 60 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64,10*64,11*64,12*64,13*64,14*64,15*64 }, - 16*64 -}; - static GFXDECODE_START( gfx_ashnojoe ) - GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0, 0x100 ) - GFXDECODE_ENTRY( "gfx2", 0, tiles8x8_layout, 0, 0x100 ) - GFXDECODE_ENTRY( "gfx3", 0, tiles8x8_layout, 0, 0x100 ) - GFXDECODE_ENTRY( "gfx4", 0, tiles16x16_layout, 0, 0x100 ) - GFXDECODE_ENTRY( "gfx5", 0, tiles16x16_layout, 0, 0x100 ) + GFXDECODE_ENTRY( "gfx1", 0, gfx_8x8x4_packed_msb, 0, 0x100 ) + GFXDECODE_ENTRY( "gfx2", 0, gfx_8x8x4_packed_msb, 0, 0x100 ) + GFXDECODE_ENTRY( "gfx3", 0, gfx_8x8x4_packed_msb, 0, 0x100 ) + GFXDECODE_ENTRY( "gfx4", 0, gfx_16x16x4_packed_msb, 0, 0x100 ) + GFXDECODE_ENTRY( "gfx5", 0, gfx_16x16x4_packed_msb, 0, 0x100 ) GFXDECODE_END -WRITE8_MEMBER(ashnojoe_state::ym2203_write_a) +void ashnojoe_state::ym2203_write_a(u8 data) { /* This gets called at 8910 startup with 0xff before the 5205 exists, causing a crash */ if (data == 0xff) @@ -272,9 +264,9 @@ WRITE8_MEMBER(ashnojoe_state::ym2203_write_a) m_msm->reset_w(!(data & 0x01)); } -WRITE8_MEMBER(ashnojoe_state::ym2203_write_b) +void ashnojoe_state::ym2203_write_b(u8 data) { - membank("bank4")->set_entry(data & 0x0f); + m_audiobank->set_entry(data & 0x0f); } WRITE_LINE_MEMBER(ashnojoe_state::ashnojoe_vclk_cb) @@ -322,7 +314,7 @@ void ashnojoe_state::ashnojoe(machine_config &config) screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); screen.set_size(512, 512); screen.set_visarea(14*8, 50*8-1, 3*8, 29*8-1); - screen.set_screen_update(FUNC(ashnojoe_state::screen_update_ashnojoe)); + screen.set_screen_update(FUNC(ashnojoe_state::screen_update)); screen.set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_ashnojoe); @@ -351,8 +343,9 @@ ROM_START( scessjoe ) ROM_LOAD16_BYTE( "6.4s", 0x00001, 0x10000, CRC(eda7a537) SHA1(3bb19fbdfb6c8af4e2078958fa445ac1f4434d0d) ) ROM_LOAD16_WORD_SWAP( "sj201-nw.6m", 0x80000, 0x40000, CRC(5a64ca42) SHA1(660b8bca21ef3c2230adce7cb7e7d1f018714f23) ) - ROM_REGION( 0x10000, "audiocpu", 0 ) /* 32k for Z80 code */ - ROM_LOAD( "9.8q", 0x0000, 0x8000, CRC(8767e212) SHA1(13bf927febedff9d7d164fbf0da7fb3a588c2a94) ) + ROM_REGION( 0x90000, "audiocpu", 0 ) /* 32k for Z80 code */ + ROM_LOAD( "9.8q", 0x00000, 0x08000, CRC(8767e212) SHA1(13bf927febedff9d7d164fbf0da7fb3a588c2a94) ) + ROM_LOAD( "sj401-nw.10r", 0x10000, 0x80000, CRC(25dfab59) SHA1(7d50159204ba05323a2442778f35192e66117dda) ) ROM_REGION( 0x20000, "gfx1", 0 ) ROM_LOAD( "8.5e", 0x00000, 0x10000, CRC(9bcb160e) SHA1(1677048e5ce26562ff7ba36fcc2d0ed5a652b91e) ) @@ -377,9 +370,6 @@ ROM_START( scessjoe ) ROM_LOAD16_WORD_SWAP( "sj407-nw.7f", 0x180000, 0x80000, CRC(5c66ff06) SHA1(9923ba00679e1b47b5da63c1a13e0f8dd4c78bb5) ) ROM_LOAD16_WORD_SWAP( "sj408-nw.7g", 0x200000, 0x80000, CRC(6a3b1ea1) SHA1(e39a6e52d930f291bf237cf9db3d4b3d2fad53e0) ) ROM_LOAD16_WORD_SWAP( "sj409-nw.7j", 0x280000, 0x80000, CRC(d8764213) SHA1(89eadefb956863216c8e3d0380394aba35e8c856) ) - - ROM_REGION( 0x80000, "adpcm", 0 ) - ROM_LOAD( "sj401-nw.10r", 0x00000, 0x80000, CRC(25dfab59) SHA1(7d50159204ba05323a2442778f35192e66117dda) ) ROM_END ROM_START( ashnojoe ) @@ -388,8 +378,9 @@ ROM_START( ashnojoe ) ROM_LOAD16_BYTE( "6.bin", 0x00001, 0x10000, CRC(c0a16338) SHA1(fb127b9d38f2c9807b6e23ff71935fc8a22a2e8f) ) ROM_LOAD16_WORD_SWAP( "sj201-nw.6m", 0x80000, 0x40000, CRC(5a64ca42) SHA1(660b8bca21ef3c2230adce7cb7e7d1f018714f23) ) - ROM_REGION( 0x10000, "audiocpu", 0 ) /* 32k for Z80 code */ - ROM_LOAD( "9.8q", 0x0000, 0x8000, CRC(8767e212) SHA1(13bf927febedff9d7d164fbf0da7fb3a588c2a94) ) + ROM_REGION( 0x90000, "audiocpu", 0 ) /* 32k for Z80 code */ + ROM_LOAD( "9.8q", 0x00000, 0x08000, CRC(8767e212) SHA1(13bf927febedff9d7d164fbf0da7fb3a588c2a94) ) + ROM_LOAD( "sj401-nw.10r", 0x10000, 0x80000, CRC(25dfab59) SHA1(7d50159204ba05323a2442778f35192e66117dda) ) ROM_REGION( 0x20000, "gfx1", 0 ) ROM_LOAD( "8.5e", 0x00000, 0x10000, CRC(9bcb160e) SHA1(1677048e5ce26562ff7ba36fcc2d0ed5a652b91e) ) @@ -414,17 +405,13 @@ ROM_START( ashnojoe ) ROM_LOAD16_WORD_SWAP( "sj407-nw.7f", 0x180000, 0x80000, CRC(5c66ff06) SHA1(9923ba00679e1b47b5da63c1a13e0f8dd4c78bb5) ) ROM_LOAD16_WORD_SWAP( "sj408-nw.7g", 0x200000, 0x80000, CRC(6a3b1ea1) SHA1(e39a6e52d930f291bf237cf9db3d4b3d2fad53e0) ) ROM_LOAD16_WORD_SWAP( "sj409-nw.7j", 0x280000, 0x80000, CRC(d8764213) SHA1(89eadefb956863216c8e3d0380394aba35e8c856) ) - - ROM_REGION( 0x80000, "adpcm", 0 ) - ROM_LOAD( "sj401-nw.10r", 0x00000, 0x80000, CRC(25dfab59) SHA1(7d50159204ba05323a2442778f35192e66117dda) ) ROM_END void ashnojoe_state::init_ashnojoe() { - uint8_t *ROM = memregion("adpcm")->base(); - membank("bank4")->configure_entries(0, 16, &ROM[0x00000], 0x8000); - - membank("bank4")->set_entry(0); + u8 *ROM = memregion("audiocpu")->base(); + m_audiobank->configure_entries(0, 16, &ROM[0x10000], 0x8000); + m_audiobank->set_entry(0); } GAME( 1990, scessjoe, 0, ashnojoe, ashnojoe, ashnojoe_state, init_ashnojoe, ROT0, "Taito Corporation / Wave", "Success Joe (World)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/asuka.cpp b/src/mame/drivers/asuka.cpp index 7dfd972b2a8..eb932832ad4 100644 --- a/src/mame/drivers/asuka.cpp +++ b/src/mame/drivers/asuka.cpp @@ -259,7 +259,7 @@ INTERRUPT_GEN_MEMBER(asuka_state::cadash_interrupt) SOUND ************************************************/ -WRITE8_MEMBER(asuka_state::sound_bankswitch_w) +void asuka_state::sound_bankswitch_w(u8 data) { m_audiobank->set_entry(data & 0x03); } @@ -280,35 +280,35 @@ WRITE_LINE_MEMBER(asuka_state::asuka_msm5205_vck) } } -WRITE8_MEMBER(asuka_state::asuka_msm5205_address_w) +void asuka_state::msm5205_address_w(u8 data) { m_adpcm_pos = (m_adpcm_pos & 0x00ff) | (data << 8); } -WRITE8_MEMBER(asuka_state::asuka_msm5205_start_w) +void asuka_state::msm5205_start_w(u8 data) { m_msm->reset_w(0); m_adpcm_ff = false; } -WRITE8_MEMBER(asuka_state::asuka_msm5205_stop_w) +void asuka_state::msm5205_stop_w(u8 data) { m_msm->reset_w(1); m_adpcm_pos &= 0xff00; } -READ16_MEMBER(asuka_state::cadash_share_r) +u16 asuka_state::cadash_share_r(offs_t offset) { return m_cadash_shared_ram[offset]; } -WRITE16_MEMBER(asuka_state::cadash_share_w) +void asuka_state::cadash_share_w(offs_t offset, u16 data) { m_cadash_shared_ram[offset] = data & 0xff; } -WRITE8_MEMBER(asuka_state::coin_control_w) +void asuka_state::coin_control_w(u8 data) { machine().bookkeeping().coin_lockout_w(0, ~data & 0x01); machine().bookkeeping().coin_lockout_w(1, ~data & 0x02); @@ -409,20 +409,6 @@ void asuka_state::bonzeadv_z80_map(address_map &map) map(0xf200, 0xf200).w(FUNC(asuka_state::sound_bankswitch_w)); } -void asuka_state::z80_map(address_map &map) -{ - map(0x0000, 0x3fff).rom(); - map(0x4000, 0x7fff).bankr("audiobank"); - map(0x8000, 0x8fff).ram(); - map(0x9000, 0x9001).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write)); -// map(0x9002, 0x9100).nopr(); - map(0xa000, 0xa000).w("ciu", FUNC(pc060ha_device::slave_port_w)); - map(0xa001, 0xa001).rw("ciu", FUNC(pc060ha_device::slave_comm_r), FUNC(pc060ha_device::slave_comm_w)); - map(0xb000, 0xb000).w(FUNC(asuka_state::asuka_msm5205_address_w)); - map(0xc000, 0xc000).w(FUNC(asuka_state::asuka_msm5205_start_w)); - map(0xd000, 0xd000).w(FUNC(asuka_state::asuka_msm5205_stop_w)); -} - /* no MSM5205 */ void asuka_state::cadash_z80_map(address_map &map) { @@ -434,6 +420,15 @@ void asuka_state::cadash_z80_map(address_map &map) map(0xa001, 0xa001).rw("ciu", FUNC(pc060ha_device::slave_comm_r), FUNC(pc060ha_device::slave_comm_w)); } +void asuka_state::z80_map(address_map &map) +{ + cadash_z80_map(map); +// map(0x9002, 0x9100).nopr(); + map(0xb000, 0xb000).w(FUNC(asuka_state::msm5205_address_w)); + map(0xc000, 0xc000).w(FUNC(asuka_state::msm5205_start_w)); + map(0xd000, 0xd000).w(FUNC(asuka_state::msm5205_stop_w)); +} + /* Cadash communication CPU is a z180. [0x8000]: at pc=31, z180 checks a byte ... if it's equal to 0x4d ("M") then the board is in master mode, otherwise it's in slave mode. @@ -764,33 +759,9 @@ INPUT_PORTS_END GFX DECODING **************************************************************/ -static const gfx_layout charlayout = -{ - 8,8, - RGN_FRAC(1,1), - 4, - { 0, 1, 2, 3 }, - { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 32*8 -}; - -static const gfx_layout tilelayout = -{ - 16,16, - RGN_FRAC(1,1), - 4, - { 0, 1, 2, 3 }, - { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4, - 10*4, 11*4, 8*4, 9*4, 14*4, 15*4, 12*4, 13*4 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 128*8 -}; - static GFXDECODE_START( gfx_asuka ) - GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0, 256 ) /* OBJ */ - GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 256 ) /* SCR */ + GFXDECODE_ENTRY( "pc090oj", 0, gfx_16x16x4_packed_msb, 0, 256 ) /* OBJ */ + GFXDECODE_ENTRY( "tc0100scn", 0, gfx_8x8x4_packed_msb, 0, 256 ) /* SCR */ GFXDECODE_END @@ -805,16 +776,12 @@ void asuka_state::machine_start() save_item(NAME(m_adpcm_pos)); save_item(NAME(m_adpcm_ff)); - save_item(NAME(m_video_ctrl)); - save_item(NAME(m_video_mask)); } void asuka_state::machine_reset() { m_adpcm_pos = 0; m_adpcm_ff = false; - m_video_ctrl = 0; - m_video_mask = 0; } WRITE_LINE_MEMBER(asuka_state::screen_vblank_asuka) @@ -838,7 +805,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(asuka_state::cchip_irq_clear_cb) m_cchip->ext_interrupt(CLEAR_LINE); } -WRITE8_MEMBER(asuka_state::counters_w) +void asuka_state::counters_w(u8 data) { machine().bookkeeping().coin_lockout_w(1, data & 0x80); machine().bookkeeping().coin_lockout_w(0, data & 0x40); @@ -1181,11 +1148,11 @@ ROM_START( bonzeadv ) ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 ) ROM_LOAD( "cchip_b41-05.43", 0x0000, 0x2000, CRC(75c52553) SHA1(87bbaefab90e7d43f63556fbae3e937baf9d397b) ) - ROM_REGION( 0x80000, "gfx1", 0 ) - ROM_LOAD( "b41-03.1", 0x00000, 0x80000, CRC(736d35d0) SHA1(7d41a7d71e117714bbd2cdda2953589cda6e763a) ) /* SCR tiles (8 x 8) */ + ROM_REGION( 0x80000, "tc0100scn", 0 ) + ROM_LOAD16_WORD_SWAP( "b41-03.1", 0x00000, 0x80000, CRC(736d35d0) SHA1(7d41a7d71e117714bbd2cdda2953589cda6e763a) ) /* SCR tiles (8 x 8) */ - ROM_REGION( 0x80000, "gfx2", 0 ) - ROM_LOAD( "b41-02.7", 0x00000, 0x80000, CRC(29f205d9) SHA1(9e9f0c2755a9aa5acfe2601911bfa07d8d61164c) ) /* Sprites (16 x 16) */ + ROM_REGION( 0x80000, "pc090oj", 0 ) + ROM_LOAD16_WORD_SWAP( "b41-02.7", 0x00000, 0x80000, CRC(29f205d9) SHA1(9e9f0c2755a9aa5acfe2601911bfa07d8d61164c) ) /* Sprites (16 x 16) */ ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "b41-13.20", 0x00000, 0x10000, CRC(9e464254) SHA1(b6f6126b54c15320ecaa652d0eeabaa4cd94bd26) ) /* banked */ @@ -1206,11 +1173,11 @@ ROM_START( bonzeadvo ) ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 ) ROM_LOAD( "cchip_b41-05.43", 0x0000, 0x2000, CRC(75c52553) SHA1(87bbaefab90e7d43f63556fbae3e937baf9d397b) ) - ROM_REGION( 0x80000, "gfx1", 0 ) - ROM_LOAD( "b41-03.1", 0x00000, 0x80000, CRC(736d35d0) SHA1(7d41a7d71e117714bbd2cdda2953589cda6e763a) ) /* SCR tiles (8 x 8) */ + ROM_REGION( 0x80000, "tc0100scn", 0 ) + ROM_LOAD16_WORD_SWAP( "b41-03.1", 0x00000, 0x80000, CRC(736d35d0) SHA1(7d41a7d71e117714bbd2cdda2953589cda6e763a) ) /* SCR tiles (8 x 8) */ - ROM_REGION( 0x80000, "gfx2", 0 ) - ROM_LOAD( "b41-02.7", 0x00000, 0x80000, CRC(29f205d9) SHA1(9e9f0c2755a9aa5acfe2601911bfa07d8d61164c) ) /* Sprites (16 x 16) */ + ROM_REGION( 0x80000, "pc090oj", 0 ) + ROM_LOAD16_WORD_SWAP( "b41-02.7", 0x00000, 0x80000, CRC(29f205d9) SHA1(9e9f0c2755a9aa5acfe2601911bfa07d8d61164c) ) /* Sprites (16 x 16) */ ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "b41-13.20", 0x00000, 0x10000, CRC(9e464254) SHA1(b6f6126b54c15320ecaa652d0eeabaa4cd94bd26) ) /* banked */ @@ -1231,11 +1198,11 @@ ROM_START( bonzeadvu ) ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 ) ROM_LOAD( "cchip_b41-05.43", 0x0000, 0x2000, CRC(75c52553) SHA1(87bbaefab90e7d43f63556fbae3e937baf9d397b) ) - ROM_REGION( 0x80000, "gfx1", 0 ) - ROM_LOAD( "b41-03.1", 0x00000, 0x80000, CRC(736d35d0) SHA1(7d41a7d71e117714bbd2cdda2953589cda6e763a) ) /* SCR tiles (8 x 8) */ + ROM_REGION( 0x80000, "tc0100scn", 0 ) + ROM_LOAD16_WORD_SWAP( "b41-03.1", 0x00000, 0x80000, CRC(736d35d0) SHA1(7d41a7d71e117714bbd2cdda2953589cda6e763a) ) /* SCR tiles (8 x 8) */ - ROM_REGION( 0x80000, "gfx2", 0 ) - ROM_LOAD( "b41-02.7", 0x00000, 0x80000, CRC(29f205d9) SHA1(9e9f0c2755a9aa5acfe2601911bfa07d8d61164c) ) /* Sprites (16 x 16) */ + ROM_REGION( 0x80000, "pc090oj", 0 ) + ROM_LOAD16_WORD_SWAP( "b41-02.7", 0x00000, 0x80000, CRC(29f205d9) SHA1(9e9f0c2755a9aa5acfe2601911bfa07d8d61164c) ) /* Sprites (16 x 16) */ ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "b41-13.20", 0x00000, 0x10000, CRC(9e464254) SHA1(b6f6126b54c15320ecaa652d0eeabaa4cd94bd26) ) /* banked */ @@ -1256,11 +1223,11 @@ ROM_START( jigkmgri ) ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 ) ROM_LOAD( "cchip_b41-05.43", 0x0000, 0x2000, CRC(75c52553) SHA1(87bbaefab90e7d43f63556fbae3e937baf9d397b) ) - ROM_REGION( 0x80000, "gfx1", 0 ) - ROM_LOAD( "b41-03.1", 0x00000, 0x80000, CRC(736d35d0) SHA1(7d41a7d71e117714bbd2cdda2953589cda6e763a) ) /* Tiles (8 x 8) */ + ROM_REGION( 0x80000, "tc0100scn", 0 ) + ROM_LOAD16_WORD_SWAP( "b41-03.1", 0x00000, 0x80000, CRC(736d35d0) SHA1(7d41a7d71e117714bbd2cdda2953589cda6e763a) ) /* Tiles (8 x 8) */ - ROM_REGION( 0x80000, "gfx2", 0 ) - ROM_LOAD( "b41-02.7", 0x00000, 0x80000, CRC(29f205d9) SHA1(9e9f0c2755a9aa5acfe2601911bfa07d8d61164c) ) /* Sprites (16 x 16) */ + ROM_REGION( 0x80000, "pc090oj", 0 ) + ROM_LOAD16_WORD_SWAP( "b41-02.7", 0x00000, 0x80000, CRC(29f205d9) SHA1(9e9f0c2755a9aa5acfe2601911bfa07d8d61164c) ) /* Sprites (16 x 16) */ ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "b41-13.20", 0x00000, 0x10000, CRC(9e464254) SHA1(b6f6126b54c15320ecaa652d0eeabaa4cd94bd26) ) /* banked */ @@ -1284,17 +1251,17 @@ ROM_START( bonzeadvp ) /* Labels consists of hand written checksum values of the ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 ) ROM_LOAD( "cchip_b41-05.43", 0x0000, 0x2000, CRC(75c52553) SHA1(87bbaefab90e7d43f63556fbae3e937baf9d397b) ) /* is the C-Chip the same as the final? */ - ROM_REGION( 0x80000, "gfx1", 0 ) - ROM_LOAD16_BYTE( "abbe.ic9", 0x00000, 0x20000, CRC(50e6581c) SHA1(230724d65c9b1ea5d72117dca077464dd599ad68) ) // first 2 == first half b41-03.1 but split - ROM_LOAD16_BYTE( "0ac8.ic15", 0x00001, 0x20000, CRC(29002fc4) SHA1(5ddbefc0d173865802362990e99a3b542c096412) ) // ^ - ROM_LOAD16_BYTE( "5ebf.ic5", 0x40000, 0x20000, CRC(dac6f11f) SHA1(8c79d05ca539ebfbec35c7426c207937745c1949) ) // these 2 have differences - ROM_LOAD16_BYTE( "77c8.ic12", 0x40001, 0x20000, CRC(d8aaae12) SHA1(240dda7d7e74ffc6a084c39ca19903fd35ad0157) ) // ^ + ROM_REGION( 0x80000, "tc0100scn", 0 ) + ROM_LOAD16_BYTE( "abbe.ic9", 0x00001, 0x20000, CRC(50e6581c) SHA1(230724d65c9b1ea5d72117dca077464dd599ad68) ) // first 2 == first half b41-03.1 but split + ROM_LOAD16_BYTE( "0ac8.ic15", 0x00000, 0x20000, CRC(29002fc4) SHA1(5ddbefc0d173865802362990e99a3b542c096412) ) // ^ + ROM_LOAD16_BYTE( "5ebf.ic5", 0x40001, 0x20000, CRC(dac6f11f) SHA1(8c79d05ca539ebfbec35c7426c207937745c1949) ) // these 2 have differences + ROM_LOAD16_BYTE( "77c8.ic12", 0x40000, 0x20000, CRC(d8aaae12) SHA1(240dda7d7e74ffc6a084c39ca19903fd35ad0157) ) // ^ - ROM_REGION( 0x80000, "gfx2", 0 ) - ROM_LOAD16_BYTE( "9369.ic19", 0x00000, 0x20000, CRC(a9dd7f90) SHA1(c3acf2dcd9325b9a74967d4b9cfff59bdb4045c6) ) // these 4 == b41-02.7 but split - ROM_LOAD16_BYTE( "e3ed.ic25", 0x00001, 0x20000, CRC(7cc66ee2) SHA1(145d3bd0e3ef765874fc679e709391d516e74ef0) ) // ^ - ROM_LOAD16_BYTE( "03eb.ic16", 0x40000, 0x20000, CRC(39f32715) SHA1(5c555fde1ae0bb1e796e0122157bc694392122f3) ) // ^ - ROM_LOAD16_BYTE( "b8e1.ic22", 0x40001, 0x20000, CRC(15b836cf) SHA1(0f7e5cb6a57c336125909e28af664fe7387947d4) ) // ^ + ROM_REGION( 0x80000, "pc090oj", 0 ) + ROM_LOAD16_BYTE( "9369.ic19", 0x00001, 0x20000, CRC(a9dd7f90) SHA1(c3acf2dcd9325b9a74967d4b9cfff59bdb4045c6) ) // these 4 == b41-02.7 but split + ROM_LOAD16_BYTE( "e3ed.ic25", 0x00000, 0x20000, CRC(7cc66ee2) SHA1(145d3bd0e3ef765874fc679e709391d516e74ef0) ) // ^ + ROM_LOAD16_BYTE( "03eb.ic16", 0x40001, 0x20000, CRC(39f32715) SHA1(5c555fde1ae0bb1e796e0122157bc694392122f3) ) // ^ + ROM_LOAD16_BYTE( "b8e1.ic22", 0x40000, 0x20000, CRC(15b836cf) SHA1(0f7e5cb6a57c336125909e28af664fe7387947d4) ) // ^ ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "b41-13.20", 0x00000, 0x10000, CRC(9e464254) SHA1(b6f6126b54c15320ecaa652d0eeabaa4cd94bd26) ) // missing from dump /* banked */ @@ -1313,18 +1280,18 @@ ROM_START( asuka ) /* Taito PCB: ASKA&ASKA - K1100388A / J1100169A */ /* 0x040000 - 0x7ffff is intentionally empty */ ROM_LOAD16_WORD( "b68-03.ic30", 0x80000, 0x80000, CRC(d3a59b10) SHA1(35a2ff18b64e73ac5e17484354c0cc58bc2cd7fc) ) /* Fix ROM */ - ROM_REGION( 0x80000, "gfx1", 0 ) - ROM_LOAD( "b68-01.ic3", 0x00000, 0x80000, CRC(89f32c94) SHA1(74fbb699e05e2336509cb5ac06ed94335ff870d5) ) /* SCR tiles (8 x 8) */ + ROM_REGION( 0x80000, "tc0100scn", 0 ) + ROM_LOAD16_WORD_SWAP( "b68-01.ic3", 0x00000, 0x80000, CRC(89f32c94) SHA1(74fbb699e05e2336509cb5ac06ed94335ff870d5) ) /* SCR tiles (8 x 8) */ - ROM_REGION( 0xa0000, "gfx2", 0 ) - ROM_LOAD ( "b68-02.ic6", 0x00000, 0x80000, CRC(f5018cd3) SHA1(860ce140ae369556d03d5d78987b87c0d6070df5) ) /* 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( 0xa0000, "pc090oj", 0 ) + ROM_LOAD16_WORD_SWAP( "b68-02.ic6", 0x00000, 0x80000, CRC(f5018cd3) SHA1(860ce140ae369556d03d5d78987b87c0d6070df5) ) /* Sprites (16 x 16) */ + ROM_LOAD16_BYTE ( "b68-07.ic5", 0x80001, 0x10000, CRC(c113acc8) SHA1(613c61a78df73dcb0b9c9018ae829e865baac772) ) + ROM_LOAD16_BYTE ( "b68-06.ic4", 0x80000, 0x10000, CRC(f517e64d) SHA1(8be491bfe0f7eed58521de9d31da677acf635c23) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "b68-11.ic27", 0x00000, 0x10000, CRC(c378b508) SHA1(1b145fe736b924f298e02532cf9f26cc18b42ca7) ) /* banked */ - ROM_REGION( 0x10000, "ymsnd", 0 ) /* ADPCM samples */ + ROM_REGION( 0x10000, "msm", 0 ) /* ADPCM samples */ ROM_LOAD( "b68-10.ic24", 0x00000, 0x10000, CRC(387aaf40) SHA1(47c583564ef1d49ece15f97221b2e073e8fb0544) ) ROM_REGION( 0x144, "pals", 0 ) @@ -1339,18 +1306,18 @@ ROM_START( asukaj ) /* Known to exist but not dumped: revision 1 with B68 08-1 & /* 0x040000 - 0x7ffff is intentionally empty */ ROM_LOAD16_WORD( "b68-03.ic30", 0x80000, 0x80000, CRC(d3a59b10) SHA1(35a2ff18b64e73ac5e17484354c0cc58bc2cd7fc) ) /* Fix ROM */ - ROM_REGION( 0x80000, "gfx1", 0 ) - ROM_LOAD( "b68-01.ic3", 0x00000, 0x80000, CRC(89f32c94) SHA1(74fbb699e05e2336509cb5ac06ed94335ff870d5) ) /* SCR tiles (8 x 8) */ + ROM_REGION( 0x80000, "tc0100scn", 0 ) + ROM_LOAD16_WORD_SWAP( "b68-01.ic3", 0x00000, 0x80000, CRC(89f32c94) SHA1(74fbb699e05e2336509cb5ac06ed94335ff870d5) ) /* SCR tiles (8 x 8) */ - ROM_REGION( 0xa0000, "gfx2", 0 ) - ROM_LOAD ( "b68-02.ic6", 0x00000, 0x80000, CRC(f5018cd3) SHA1(860ce140ae369556d03d5d78987b87c0d6070df5) ) /* 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( 0xa0000, "pc090oj", 0 ) + ROM_LOAD16_WORD_SWAP( "b68-02.ic6", 0x00000, 0x80000, CRC(f5018cd3) SHA1(860ce140ae369556d03d5d78987b87c0d6070df5) ) /* Sprites (16 x 16) */ + ROM_LOAD16_BYTE ( "b68-07.ic5", 0x80001, 0x10000, CRC(c113acc8) SHA1(613c61a78df73dcb0b9c9018ae829e865baac772) ) + ROM_LOAD16_BYTE ( "b68-06.ic4", 0x80000, 0x10000, CRC(f517e64d) SHA1(8be491bfe0f7eed58521de9d31da677acf635c23) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "b68-11.ic27", 0x00000, 0x10000, CRC(c378b508) SHA1(1b145fe736b924f298e02532cf9f26cc18b42ca7) ) /* banked */ - ROM_REGION( 0x10000, "ymsnd", 0 ) /* ADPCM samples */ + ROM_REGION( 0x10000, "msm", 0 ) /* ADPCM samples */ ROM_LOAD( "b68-10.ic24", 0x00000, 0x10000, CRC(387aaf40) SHA1(47c583564ef1d49ece15f97221b2e073e8fb0544) ) ROM_REGION( 0x144, "pals", 0 ) @@ -1365,18 +1332,18 @@ ROM_START( mofflott ) /* 0x40000 - 0x7ffff is intentionally empty */ ROM_LOAD16_WORD( "c17-03.bin", 0x80000, 0x80000, CRC(27047fc3) SHA1(1f88a7a42a94bac0e164a69896ae168ab821fbb3) ) /* Fix ROM */ - ROM_REGION( 0x80000, "gfx1", 0 ) - ROM_LOAD( "c17-01.bin", 0x00000, 0x80000, CRC(e9466d42) SHA1(93d533a9a992e3ff537e914577ede41729235826) ) /* SCR tiles (8 x 8) */ + ROM_REGION( 0x80000, "tc0100scn", 0 ) + ROM_LOAD16_WORD_SWAP( "c17-01.bin", 0x00000, 0x80000, CRC(e9466d42) SHA1(93d533a9a992e3ff537e914577ede41729235826) ) /* SCR tiles (8 x 8) */ - ROM_REGION( 0xa0000, "gfx2", 0 ) - ROM_LOAD ( "c17-02.bin", 0x00000, 0x80000, CRC(8860a8db) SHA1(372adea8835a9524ece30ab71181ef9d05b120e9) ) /* Sprites (16 x 16) */ - ROM_LOAD16_BYTE( "c17-05.bin", 0x80000, 0x10000, CRC(57ac4741) SHA1(3188ff0866324c68fba8e9745a0cb186784cb53d) ) - ROM_LOAD16_BYTE( "c17-04.bin", 0x80001, 0x10000, CRC(f4250410) SHA1(1f5f6baca4aa695ce2ae5c65adcb460da872a239) ) + ROM_REGION( 0xa0000, "pc090oj", 0 ) + ROM_LOAD16_WORD_SWAP( "c17-02.bin", 0x00000, 0x80000, CRC(8860a8db) SHA1(372adea8835a9524ece30ab71181ef9d05b120e9) ) /* Sprites (16 x 16) */ + ROM_LOAD16_BYTE ( "c17-05.bin", 0x80001, 0x10000, CRC(57ac4741) SHA1(3188ff0866324c68fba8e9745a0cb186784cb53d) ) + ROM_LOAD16_BYTE ( "c17-04.bin", 0x80000, 0x10000, CRC(f4250410) SHA1(1f5f6baca4aa695ce2ae5c65adcb460da872a239) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c17-07.bin", 0x00000, 0x10000, CRC(cdb7bc2c) SHA1(5113055c954a39918436db75cc06b53c29c60728) ) /* banked */ - ROM_REGION( 0x10000, "ymsnd", 0 ) /* ADPCM samples */ + ROM_REGION( 0x10000, "msm", 0 ) /* ADPCM samples */ ROM_LOAD( "c17-06.bin", 0x00000, 0x10000, CRC(5c332125) SHA1(408f42df18b38347c8a4e177a9484162a66877e1) ) ROM_END @@ -1387,11 +1354,11 @@ ROM_START( cadash ) ROM_LOAD16_BYTE( "c21_13.ic10", 0x40000, 0x20000, CRC(6b9e0ee9) SHA1(06314b9c0be19314e6b6ecb5274a63eb36b642f5) ) ROM_LOAD16_BYTE( "c21_17.ic14", 0x40001, 0x20000, CRC(bf9a578a) SHA1(42bde46081db6be2f61eaf171438ecc9264d18be) ) - ROM_REGION( 0x80000, "gfx1", 0 ) - ROM_LOAD( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */ + ROM_REGION( 0x80000, "tc0100scn", 0 ) + ROM_LOAD16_WORD_SWAP( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */ - ROM_REGION( 0x80000, "gfx2", 0 ) - ROM_LOAD( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */ + ROM_REGION( 0x80000, "pc090oj", 0 ) + ROM_LOAD16_WORD_SWAP( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */ ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c21-08.38", 0x00000, 0x10000, CRC(dca495a0) SHA1(4e0f401f1b967da75f33fd7294860ad0b4bf2dce) ) /* banked */ @@ -1417,11 +1384,11 @@ ROM_START( cadashp ) ROM_LOAD( "com.ic57", 0x00000, 0x08000, CRC(bae1a92f) SHA1(dbe10a02a294dfa7d6052a692c3a49aad85d6ffd) ) // all other ROMs are under some kind of epoxy, assuming to be the same.. - ROM_REGION( 0x80000, "gfx1", 0 ) - ROM_LOAD( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */ + ROM_REGION( 0x80000, "tc0100scn", 0 ) + ROM_LOAD16_WORD_SWAP( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */ - ROM_REGION( 0x80000, "gfx2", 0 ) - ROM_LOAD( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */ + ROM_REGION( 0x80000, "pc090oj", 0 ) + ROM_LOAD16_WORD_SWAP( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */ ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c21-08.38", 0x00000, 0x10000, CRC(dca495a0) SHA1(4e0f401f1b967da75f33fd7294860ad0b4bf2dce) ) /* banked */ @@ -1440,11 +1407,11 @@ ROM_START( cadashj ) ROM_LOAD16_BYTE( "c21_03-2.ic10", 0x40000, 0x20000, CRC(30afc320) SHA1(d4c1d1ef30be633244c6b71b24491d6eb3562cef) ) ROM_LOAD16_BYTE( "c21_05-2.ic14", 0x40001, 0x20000, CRC(2bc93209) SHA1(3352659ea9364ca9462343f03e26dd10087d6834) ) - ROM_REGION( 0x80000, "gfx1", 0 ) - ROM_LOAD( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */ + ROM_REGION( 0x80000, "tc0100scn", 0 ) + ROM_LOAD16_WORD_SWAP( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */ - ROM_REGION( 0x80000, "gfx2", 0 ) - ROM_LOAD( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */ + ROM_REGION( 0x80000, "pc090oj", 0 ) + ROM_LOAD16_WORD_SWAP( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */ ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c21-08.38", 0x00000, 0x10000, CRC(dca495a0) SHA1(4e0f401f1b967da75f33fd7294860ad0b4bf2dce) ) /* banked */ @@ -1466,11 +1433,11 @@ ROM_START( cadashj1 ) ROM_LOAD16_BYTE( "c21_03-1.ic10", 0x40000, 0x20000, CRC(c54888ed) SHA1(8a58da25eb8986a1c6496290e82344840badef0a) ) ROM_LOAD16_BYTE( "c21_05-1.ic14", 0x40001, 0x20000, CRC(834018d2) SHA1(0b1a29316f90a98478b47d7fa3f05c68e5ddd9b3) ) - ROM_REGION( 0x80000, "gfx1", 0 ) - ROM_LOAD( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */ + ROM_REGION( 0x80000, "tc0100scn", 0 ) + ROM_LOAD16_WORD_SWAP( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */ - ROM_REGION( 0x80000, "gfx2", 0 ) - ROM_LOAD( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */ + ROM_REGION( 0x80000, "pc090oj", 0 ) + ROM_LOAD16_WORD_SWAP( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */ ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c21-08.38", 0x00000, 0x10000, CRC(dca495a0) SHA1(4e0f401f1b967da75f33fd7294860ad0b4bf2dce) ) /* banked */ @@ -1492,11 +1459,11 @@ ROM_START( cadashjo ) ROM_LOAD16_BYTE( "c21_03.ic10", 0x40000, 0x20000, CRC(7e31c5a3) SHA1(a0abc5862d594800934a4792de4ec655f60c1f23) ) ROM_LOAD16_BYTE( "c21_05.ic14", 0x40001, 0x20000, CRC(a4f4901d) SHA1(a3e8d9ad033e6fb1c8383669e6e59f2f79386e32) ) - ROM_REGION( 0x80000, "gfx1", 0 ) - ROM_LOAD( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */ + ROM_REGION( 0x80000, "tc0100scn", 0 ) + ROM_LOAD16_WORD_SWAP( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */ - ROM_REGION( 0x80000, "gfx2", 0 ) - ROM_LOAD( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */ + ROM_REGION( 0x80000, "pc090oj", 0 ) + ROM_LOAD16_WORD_SWAP( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */ ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c21-08.38", 0x00000, 0x10000, CRC(dca495a0) SHA1(4e0f401f1b967da75f33fd7294860ad0b4bf2dce) ) /* banked */ @@ -1518,11 +1485,11 @@ ROM_START( cadashu ) ROM_LOAD16_BYTE( "c21_13-2.ic10", 0x40000, 0x20000, CRC(92dcc3ae) SHA1(7d11c6d8b54468f0c56b4f58adc176e4d46a62eb) ) ROM_LOAD16_BYTE( "c21_15-2.ic14", 0x40001, 0x20000, CRC(f915d26a) SHA1(cdc7e6a35077ebff937350aee1eee332352e9383) ) - ROM_REGION( 0x80000, "gfx1", 0 ) - ROM_LOAD( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */ + ROM_REGION( 0x80000, "tc0100scn", 0 ) + ROM_LOAD16_WORD_SWAP( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */ - ROM_REGION( 0x80000, "gfx2", 0 ) - ROM_LOAD( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */ + ROM_REGION( 0x80000, "pc090oj", 0 ) + ROM_LOAD16_WORD_SWAP( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */ ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c21-08.38", 0x00000, 0x10000, CRC(dca495a0) SHA1(4e0f401f1b967da75f33fd7294860ad0b4bf2dce) ) /* banked */ @@ -1544,11 +1511,11 @@ ROM_START( cadashi ) ROM_LOAD16_BYTE( "c21_26-1.ic10", 0x40000, 0x20000, CRC(c9cf6e30) SHA1(872c871cd60e0aa7149660277f67f90748d82743) ) ROM_LOAD16_BYTE( "c21_28-1.ic14", 0x40001, 0x20000, CRC(641fc9dd) SHA1(1497e39f6b250de39ef2785aaca7e68a803612fa) ) - ROM_REGION( 0x80000, "gfx1", 0 ) - ROM_LOAD( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */ + ROM_REGION( 0x80000, "tc0100scn", 0 ) + ROM_LOAD16_WORD_SWAP( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */ - ROM_REGION( 0x80000, "gfx2", 0 ) - ROM_LOAD( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */ + ROM_REGION( 0x80000, "pc090oj", 0 ) + ROM_LOAD16_WORD_SWAP( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */ ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c21-08.38", 0x00000, 0x10000, CRC(dca495a0) SHA1(4e0f401f1b967da75f33fd7294860ad0b4bf2dce) ) /* banked */ @@ -1570,11 +1537,11 @@ ROM_START( cadashf ) ROM_LOAD16_BYTE( "c21_18.ic10", 0x40000, 0x20000, CRC(8a19e59b) SHA1(b42a0c8273ca6f202a5dc6e33965423da3b074d8) ) ROM_LOAD16_BYTE( "c21_20.ic14", 0x40001, 0x20000, CRC(b96acfd9) SHA1(d05b55fd5bbf8fd0e5a7272d1951f27a4900371f) ) - ROM_REGION( 0x80000, "gfx1", 0 ) - ROM_LOAD( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */ + ROM_REGION( 0x80000, "tc0100scn", 0 ) + ROM_LOAD16_WORD_SWAP( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */ - ROM_REGION( 0x80000, "gfx2", 0 ) - ROM_LOAD( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */ + ROM_REGION( 0x80000, "pc090oj", 0 ) + ROM_LOAD16_WORD_SWAP( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */ ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c21-08.38", 0x00000, 0x10000, CRC(dca495a0) SHA1(4e0f401f1b967da75f33fd7294860ad0b4bf2dce) ) /* banked */ @@ -1596,11 +1563,11 @@ ROM_START( cadashg ) ROM_LOAD16_BYTE( "c21_22-1.ic10", 0x40000, 0x20000, CRC(daf58b2d) SHA1(7a64df848f46f27bb6f9757ce0cc81311c2f172f) ) ROM_LOAD16_BYTE( "c21_24-1.ic14", 0x40001, 0x20000, CRC(2359b93e) SHA1(9a5ce34dd8667a987ab8b6e6246f0ad032af868f) ) - ROM_REGION( 0x80000, "gfx1", 0 ) - ROM_LOAD( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */ + ROM_REGION( 0x80000, "tc0100scn", 0 ) + ROM_LOAD16_WORD_SWAP( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */ - ROM_REGION( 0x80000, "gfx2", 0 ) - ROM_LOAD( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */ + ROM_REGION( 0x80000, "pc090oj", 0 ) + ROM_LOAD16_WORD_SWAP( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */ ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c21-08.38", 0x00000, 0x10000, CRC(dca495a0) SHA1(4e0f401f1b967da75f33fd7294860ad0b4bf2dce) ) /* banked */ @@ -1622,11 +1589,11 @@ ROM_START( cadashs ) // no labels on the program ROMs ROM_LOAD16_BYTE( "ic10", 0x40000, 0x20000, CRC(57d659d9) SHA1(6bf0c7d514a65bd1a0d51fe1c6bb208419d016e6) ) ROM_LOAD16_BYTE( "ic14", 0x40001, 0x20000, CRC(53c1b195) SHA1(5985304fa65a3f33a26fbd5dcccb153de6860841) ) - ROM_REGION( 0x80000, "gfx1", 0 ) - ROM_LOAD( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */ + ROM_REGION( 0x80000, "tc0100scn", 0 ) + ROM_LOAD16_WORD_SWAP( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */ - ROM_REGION( 0x80000, "gfx2", 0 ) - ROM_LOAD( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */ + ROM_REGION( 0x80000, "pc090oj", 0 ) + ROM_LOAD16_WORD_SWAP( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */ ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c21-08.38", 0x00000, 0x10000, CRC(dca495a0) SHA1(4e0f401f1b967da75f33fd7294860ad0b4bf2dce) ) /* banked */ @@ -1648,16 +1615,16 @@ ROM_START( galmedes ) /* Taito PCB: K1100388A / J1100169A */ /* 0x40000 - 0x7ffff is intentionally empty */ ROM_LOAD16_WORD( "gm-30.ic30", 0x80000, 0x80000, CRC(4da2a407) SHA1(7bd0eb629dd7022a16e328612c786c544267f7bc) ) /* Fix ROM */ - ROM_REGION( 0x80000, "gfx1", 0 ) - ROM_LOAD( "gm-scn.ic3", 0x00000, 0x80000, CRC(3bab0581) SHA1(56b79a4ffd9f4880a63450b7d1b79f029de75e20) ) /* SCR tiles (8 x 8) */ + ROM_REGION( 0x80000, "tc0100scn", 0 ) + ROM_LOAD16_WORD_SWAP( "gm-scn.ic3", 0x00000, 0x80000, CRC(3bab0581) SHA1(56b79a4ffd9f4880a63450b7d1b79f029de75e20) ) /* SCR tiles (8 x 8) */ - ROM_REGION( 0x80000, "gfx2", 0 ) - ROM_LOAD( "gm-obj.ic6", 0x00000, 0x80000, CRC(7a4a1315) SHA1(e2010ee4222415fd55ba3102003be4151d29e39b) ) /* Sprites (16 x 16) */ + ROM_REGION( 0x80000, "pc090oj", 0 ) + ROM_LOAD16_WORD_SWAP( "gm-obj.ic6", 0x00000, 0x80000, CRC(7a4a1315) SHA1(e2010ee4222415fd55ba3102003be4151d29e39b) ) /* Sprites (16 x 16) */ ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "gm-snd.ic27", 0x00000, 0x10000, CRC(d6f56c21) SHA1(ff9743448ac8ce57a2f8c33a26145e7b92cbe3c3) ) /* banked */ - ROM_REGION( 0x10000, "ymsnd", ROMREGION_ERASEFF ) /* ADPCM samples */ + ROM_REGION( 0x10000, "msm", ROMREGION_ERASEFF ) /* ADPCM samples */ /* Empty socket on Galmedes - but sound chips present */ ROM_REGION( 0x144, "pals", 0 ) @@ -1672,18 +1639,18 @@ ROM_START( earthjkr ) /* Taito PCB: K1100388A / J1100169A */ /* 0x40000 - 0x7ffff is intentionally empty */ ROM_LOAD16_WORD( "ej_30e.ic30", 0x80000, 0x80000, CRC(49d1f77f) SHA1(f6c9b2fc88b77cc9baa5be48da5c3eb72310e471) ) /* Fix ROM */ - ROM_REGION( 0x80000, "gfx1", 0 ) - ROM_LOAD( "ej_chr-0.ic3", 0x00000, 0x80000, CRC(ac675297) SHA1(2a34e1eae3a4be84dbf709053f5e8a781b1073fc) ) /* SCR tiles (8 x 8) - mask ROM */ + ROM_REGION( 0x80000, "tc0100scn", 0 ) + ROM_LOAD16_WORD_SWAP( "ej_chr-0.ic3", 0x00000, 0x80000, CRC(ac675297) SHA1(2a34e1eae3a4be84dbf709053f5e8a781b1073fc) ) /* SCR tiles (8 x 8) - mask ROM */ - ROM_REGION( 0xa0000, "gfx2", 0 ) - ROM_LOAD ( "ej_obj-0.ic6", 0x00000, 0x80000, CRC(5f21ac47) SHA1(45c94ffb53ee9b822b0676f6fb151fed4ce6d967) ) /* Sprites (16 x 16) - mask ROM */ - ROM_LOAD16_BYTE( "ej_1.ic5", 0x80000, 0x10000, CRC(cb4891db) SHA1(af1112608cdd897ef6028ef617f5ca69d7964861) ) - ROM_LOAD16_BYTE( "ej_0.ic4", 0x80001, 0x10000, CRC(b612086f) SHA1(625748fcb698ec57b7b3ce46019cf85de99aaaa1) ) + ROM_REGION( 0xa0000, "pc090oj", 0 ) + ROM_LOAD16_WORD_SWAP( "ej_obj-0.ic6", 0x00000, 0x80000, CRC(5f21ac47) SHA1(45c94ffb53ee9b822b0676f6fb151fed4ce6d967) ) /* Sprites (16 x 16) - mask ROM */ + ROM_LOAD16_BYTE ( "ej_1.ic5", 0x80001, 0x10000, CRC(cb4891db) SHA1(af1112608cdd897ef6028ef617f5ca69d7964861) ) + ROM_LOAD16_BYTE ( "ej_0.ic4", 0x80000, 0x10000, CRC(b612086f) SHA1(625748fcb698ec57b7b3ce46019cf85de99aaaa1) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "ej_2.ic27", 0x00000, 0x10000, CRC(42ba2566) SHA1(c437388684b565c7504d6bad6accd73aa000faca) ) /* banked */ - ROM_REGION( 0x10000, "ymsnd", ROMREGION_ERASEFF ) /* ADPCM samples */ + ROM_REGION( 0x10000, "msm", ROMREGION_ERASEFF ) /* ADPCM samples */ /* Empty socket on U.N. Defense Force: Earth Joker - but sound chips present */ ROM_REGION( 0x144, "pals", 0 ) @@ -1699,18 +1666,18 @@ ROM_START( earthjkra ) /* 0x40000 - 0x7ffff is intentionally empty */ ROM_LOAD16_WORD( "ejok_ic30", 0x80000, 0x80000, CRC(49d1f77f) SHA1(f6c9b2fc88b77cc9baa5be48da5c3eb72310e471) ) /* Fix ROM */ - ROM_REGION( 0x80000, "gfx1", 0 ) - ROM_LOAD( "ej_chr-0.ic3", 0x00000, 0x80000, CRC(ac675297) SHA1(2a34e1eae3a4be84dbf709053f5e8a781b1073fc) ) /* SCR tiles (8 x 8) - mask ROM */ + ROM_REGION( 0x80000, "tc0100scn", 0 ) + ROM_LOAD16_WORD_SWAP( "ej_chr-0.ic3", 0x00000, 0x80000, CRC(ac675297) SHA1(2a34e1eae3a4be84dbf709053f5e8a781b1073fc) ) /* SCR tiles (8 x 8) - mask ROM */ - ROM_REGION( 0xa0000, "gfx2", 0 ) - ROM_LOAD ( "ej_obj-0.ic6", 0x00000, 0x80000, CRC(5f21ac47) SHA1(45c94ffb53ee9b822b0676f6fb151fed4ce6d967) ) /* Sprites (16 x 16) - mask ROM */ - ROM_LOAD16_BYTE( "ejok_ic5", 0x80000, 0x10000, CRC(cb4891db) SHA1(af1112608cdd897ef6028ef617f5ca69d7964861) ) - ROM_LOAD16_BYTE( "ejok_ic4", 0x80001, 0x10000, CRC(b612086f) SHA1(625748fcb698ec57b7b3ce46019cf85de99aaaa1) ) + ROM_REGION( 0xa0000, "pc090oj", 0 ) + ROM_LOAD16_WORD_SWAP( "ej_obj-0.ic6", 0x00000, 0x80000, CRC(5f21ac47) SHA1(45c94ffb53ee9b822b0676f6fb151fed4ce6d967) ) /* Sprites (16 x 16) - mask ROM */ + ROM_LOAD16_BYTE ( "ejok_ic5", 0x80001, 0x10000, CRC(cb4891db) SHA1(af1112608cdd897ef6028ef617f5ca69d7964861) ) + ROM_LOAD16_BYTE ( "ejok_ic4", 0x80000, 0x10000, CRC(b612086f) SHA1(625748fcb698ec57b7b3ce46019cf85de99aaaa1) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "ejok_ic28", 0x00000, 0x10000, CRC(42ba2566) SHA1(c437388684b565c7504d6bad6accd73aa000faca) ) /* banked */ - ROM_REGION( 0x10000, "ymsnd", ROMREGION_ERASEFF ) /* ADPCM samples */ + ROM_REGION( 0x10000, "msm", ROMREGION_ERASEFF ) /* ADPCM samples */ /* Empty socket on U.N. Defense Force: Earth Joker - but sound chips present */ ROM_REGION( 0x144, "pals", 0 ) @@ -1730,18 +1697,18 @@ ROM_START( earthjkrp ) // was production PCB complete with mask ROM, could just /* 0x40000 - 0x7ffff is intentionally empty */ ROM_LOAD16_WORD( "5.ic30", 0x80000, 0x80000, CRC(bf760b2d) SHA1(4aff36623e5a31ab86c77461fa93e40e77f08edd) ) /* Fix ROM */ - ROM_REGION( 0x80000, "gfx1", 0 ) - ROM_LOAD( "ej_chr-0.ic3", 0x00000, 0x80000, CRC(ac675297) SHA1(2a34e1eae3a4be84dbf709053f5e8a781b1073fc) ) /* SCR tiles (8 x 8) - mask ROM */ + ROM_REGION( 0x80000, "tc0100scn", 0 ) + ROM_LOAD16_WORD_SWAP( "ej_chr-0.ic3", 0x00000, 0x80000, CRC(ac675297) SHA1(2a34e1eae3a4be84dbf709053f5e8a781b1073fc) ) /* SCR tiles (8 x 8) - mask ROM */ - ROM_REGION( 0xa0000, "gfx2", 0 ) - ROM_LOAD ( "ej_obj-0.ic6", 0x00000, 0x80000, CRC(5f21ac47) SHA1(45c94ffb53ee9b822b0676f6fb151fed4ce6d967) ) /* Sprites (16 x 16) - mask ROM */ - ROM_LOAD16_BYTE( "1.ic5", 0x80000, 0x10000, CRC(cb4891db) SHA1(af1112608cdd897ef6028ef617f5ca69d7964861) ) - ROM_LOAD16_BYTE( "0.ic4", 0x80001, 0x10000, CRC(b612086f) SHA1(625748fcb698ec57b7b3ce46019cf85de99aaaa1) ) + ROM_REGION( 0xa0000, "pc090oj", 0 ) + ROM_LOAD16_WORD_SWAP( "ej_obj-0.ic6", 0x00000, 0x80000, CRC(5f21ac47) SHA1(45c94ffb53ee9b822b0676f6fb151fed4ce6d967) ) /* Sprites (16 x 16) - mask ROM */ + ROM_LOAD16_BYTE ( "1.ic5", 0x80001, 0x10000, CRC(cb4891db) SHA1(af1112608cdd897ef6028ef617f5ca69d7964861) ) + ROM_LOAD16_BYTE ( "0.ic4", 0x80000, 0x10000, CRC(b612086f) SHA1(625748fcb698ec57b7b3ce46019cf85de99aaaa1) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "2.ic27", 0x00000, 0x10000, CRC(42ba2566) SHA1(c437388684b565c7504d6bad6accd73aa000faca) ) /* banked */ - ROM_REGION( 0x10000, "ymsnd", ROMREGION_ERASEFF ) /* ADPCM samples */ + ROM_REGION( 0x10000, "msm", ROMREGION_ERASEFF ) /* ADPCM samples */ /* Empty socket on U.N. Defense Force: Earth Joker - but sound chips present */ ROM_REGION( 0x144, "pals", 0 ) @@ -1756,11 +1723,11 @@ ROM_START( eto ) /* 0x40000 - 0x7ffff is intentionally empty */ ROM_LOAD16_WORD( "eto-2.ic30", 0x80000, 0x80000, CRC(12f46fb5) SHA1(04db8b6ccd0051668bd2930275efa0265c0cfd2b) ) /* Fix ROM */ - ROM_REGION( 0x80000, "gfx1", 0 ) - ROM_LOAD( "eto-4.ic3", 0x00000, 0x80000, CRC(a8768939) SHA1(a2cbbd3e10ed48ba32a680b2e40ea03900cf33fa) ) /* Sprites (16 x 16) */ + ROM_REGION( 0x80000, "tc0100scn", 0 ) + ROM_LOAD16_WORD_SWAP( "eto-4.ic3", 0x00000, 0x80000, CRC(a8768939) SHA1(a2cbbd3e10ed48ba32a680b2e40ea03900cf33fa) ) /* Sprites (16 x 16) */ - ROM_REGION( 0x80000, "gfx2", 0 ) - ROM_LOAD( "eto-3.ic6", 0x00000, 0x80000, CRC(dd247397) SHA1(53a7bf877fd7e5f3daf295a698f4012447b6f113) ) /* SCR tiles (8 x 8) */ + ROM_REGION( 0x80000, "pc090oj", 0 ) + ROM_LOAD16_WORD_SWAP( "eto-3.ic6", 0x00000, 0x80000, CRC(dd247397) SHA1(53a7bf877fd7e5f3daf295a698f4012447b6f113) ) /* SCR tiles (8 x 8) */ ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "eto-5.ic27", 0x00000, 0x10000, CRC(b3689da0) SHA1(812d2e0a794403df9f0a5035784f14cd070ea080) ) /* banked */ @@ -1773,38 +1740,38 @@ void asuka_state::init_cadash() void asuka_state::init_earthjkr() { - uint16_t *rom = (uint16_t *)memregion("maincpu")->base(); + u16 *rom = (u16 *)memregion("maincpu")->base(); // 357c -> 317c, I think this is bitrot, see ROM loading for which ROM needs redumping, causes rowscroll to be broken on final stage (writes to ROM area instead) // code is correct in the 'prototype?' set rom[0x7aaa/2] = 0x317c; } -GAME( 1988, bonzeadv, 0, bonzeadv, bonzeadv, asuka_state, empty_init, ROT0, "Taito Corporation Japan", "Bonze Adventure (World, Newer)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, bonzeadvo, bonzeadv, bonzeadv, bonzeadv, asuka_state, empty_init, ROT0, "Taito Corporation Japan", "Bonze Adventure (World, Older)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, bonzeadvu, bonzeadv, bonzeadv, jigkmgri, asuka_state, empty_init, ROT0, "Taito America Corporation", "Bonze Adventure (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, jigkmgri, bonzeadv, bonzeadv, jigkmgri, asuka_state, empty_init, ROT0, "Taito Corporation", "Jigoku Meguri (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, bonzeadvp, bonzeadv, bonzeadv, jigkmgri, asuka_state, empty_init, ROT0, "Taito Corporation Japan", "Bonze Adventure (World, prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, bonzeadv, 0, bonzeadv, bonzeadv, asuka_state, empty_init, ROT0, "Taito Corporation Japan", "Bonze Adventure (World, Newer)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, bonzeadvo, bonzeadv, bonzeadv, bonzeadv, asuka_state, empty_init, ROT0, "Taito Corporation Japan", "Bonze Adventure (World, Older)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, bonzeadvu, bonzeadv, bonzeadv, jigkmgri, asuka_state, empty_init, ROT0, "Taito America Corporation", "Bonze Adventure (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, jigkmgri, bonzeadv, bonzeadv, jigkmgri, asuka_state, empty_init, ROT0, "Taito Corporation", "Jigoku Meguri (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, bonzeadvp, bonzeadv, bonzeadv, jigkmgri, asuka_state, empty_init, ROT0, "Taito Corporation Japan", "Bonze Adventure (World, prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, asuka, 0, asuka, asuka, asuka_state, empty_init, ROT270, "Taito Corporation", "Asuka & Asuka (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, asukaj, asuka, asuka, asuka, asuka_state, empty_init, ROT270, "Taito Corporation", "Asuka & Asuka (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, asuka, 0, asuka, asuka, asuka_state, empty_init, ROT270, "Taito Corporation", "Asuka & Asuka (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, asukaj, asuka, asuka, asuka, asuka_state, empty_init, ROT270, "Taito Corporation", "Asuka & Asuka (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, mofflott, 0, mofflott, mofflott, asuka_state, empty_init, ROT270, "Taito Corporation", "Maze of Flott (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, mofflott, 0, mofflott, mofflott, asuka_state, empty_init, ROT270, "Taito Corporation", "Maze of Flott (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, cadash, 0, cadash, cadash, asuka_state, init_cadash, ROT0, "Taito Corporation Japan", "Cadash (World)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) -GAME( 1989, cadashj, cadash, cadash, cadashj, asuka_state, init_cadash, ROT0, "Taito Corporation", "Cadash (Japan, version 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) -GAME( 1989, cadashj1, cadash, cadash, cadashj, asuka_state, init_cadash, ROT0, "Taito Corporation", "Cadash (Japan, version 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) -GAME( 1989, cadashjo, cadash, cadash, cadashj, asuka_state, init_cadash, ROT0, "Taito Corporation", "Cadash (Japan, oldest version)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) -GAME( 1989, cadashu, cadash, cadash, cadashu, asuka_state, init_cadash, ROT0, "Taito America Corporation", "Cadash (US, version 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) -GAME( 1989, cadashi, cadash, cadash, cadash, asuka_state, init_cadash, ROT0, "Taito Corporation Japan", "Cadash (Italy)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) -GAME( 1989, cadashf, cadash, cadash, cadash, asuka_state, init_cadash, ROT0, "Taito Corporation Japan", "Cadash (France)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) -GAME( 1989, cadashg, cadash, cadash, cadash, asuka_state, init_cadash, ROT0, "Taito Corporation Japan", "Cadash (Germany, version 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) -GAME( 1989, cadashp, cadash, cadash, cadashj, asuka_state, init_cadash, ROT0, "Taito Corporation Japan", "Cadash (World, prototype)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN) -GAME( 1989, cadashs, cadash, cadash, cadash, asuka_state, init_cadash, ROT0, "Taito Corporation Japan", "Cadash (Spain, version 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) +GAME( 1989, cadash, 0, cadash, cadash, asuka_state, init_cadash, ROT0, "Taito Corporation Japan", "Cadash (World)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) +GAME( 1989, cadashj, cadash, cadash, cadashj, asuka_state, init_cadash, ROT0, "Taito Corporation", "Cadash (Japan, version 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) +GAME( 1989, cadashj1, cadash, cadash, cadashj, asuka_state, init_cadash, ROT0, "Taito Corporation", "Cadash (Japan, version 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) +GAME( 1989, cadashjo, cadash, cadash, cadashj, asuka_state, init_cadash, ROT0, "Taito Corporation", "Cadash (Japan, oldest version)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) +GAME( 1989, cadashu, cadash, cadash, cadashu, asuka_state, init_cadash, ROT0, "Taito America Corporation", "Cadash (US, version 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) +GAME( 1989, cadashi, cadash, cadash, cadash, asuka_state, init_cadash, ROT0, "Taito Corporation Japan", "Cadash (Italy)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) +GAME( 1989, cadashf, cadash, cadash, cadash, asuka_state, init_cadash, ROT0, "Taito Corporation Japan", "Cadash (France)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) +GAME( 1989, cadashg, cadash, cadash, cadash, asuka_state, init_cadash, ROT0, "Taito Corporation Japan", "Cadash (Germany, version 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) +GAME( 1989, cadashp, cadash, cadash, cadashj, asuka_state, init_cadash, ROT0, "Taito Corporation Japan", "Cadash (World, prototype)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN) +GAME( 1989, cadashs, cadash, cadash, cadash, asuka_state, init_cadash, ROT0, "Taito Corporation Japan", "Cadash (Spain, version 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) -GAME( 1992, galmedes, 0, asuka, galmedes, asuka_state, empty_init, ROT270, "Visco", "Galmedes (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, galmedes, 0, asuka, galmedes, asuka_state, empty_init, ROT270, "Visco", "Galmedes (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, earthjkr, 0, asuka, earthjkr, asuka_state, init_earthjkr, ROT270, "Visco", "U.N. Defense Force: Earth Joker (US / Japan, set 1)", MACHINE_SUPPORTS_SAVE ) // sets 1 + 2 have ROMSTAR (US?) license and no region disclaimer if you change the dipswitch -GAME( 1993, earthjkra, earthjkr, asuka, earthjkr, asuka_state, empty_init, ROT270, "Visco", "U.N. Defense Force: Earth Joker (US / Japan, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, earthjkrp, earthjkr, asuka, earthjkrp,asuka_state, empty_init, ROT270, "Visco", "U.N. Defense Force: Earth Joker (Japan, prototype?)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, earthjkr, 0, asuka, earthjkr, asuka_state, init_earthjkr, ROT270, "Visco", "U.N. Defense Force: Earth Joker (US / Japan, set 1)", MACHINE_SUPPORTS_SAVE ) // sets 1 + 2 have ROMSTAR (US?) license and no region disclaimer if you change the dipswitch +GAME( 1993, earthjkra, earthjkr, asuka, earthjkr, asuka_state, empty_init, ROT270, "Visco", "U.N. Defense Force: Earth Joker (US / Japan, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, earthjkrp, earthjkr, asuka, earthjkrp,asuka_state, empty_init, ROT270, "Visco", "U.N. Defense Force: Earth Joker (Japan, prototype?)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, eto, 0, eto, eto, asuka_state, empty_init, ROT0, "Visco", "Kokontouzai Eto Monogatari (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, eto, 0, eto, eto, asuka_state, empty_init, ROT0, "Visco", "Kokontouzai Eto Monogatari (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/by35.cpp b/src/mame/drivers/by35.cpp index 2536ac78f6f..4b3b458f59b 100644 --- a/src/mame/drivers/by35.cpp +++ b/src/mame/drivers/by35.cpp @@ -56,7 +56,7 @@ Cheap Squeak 1390,1391,0A17,0A40,0A44,0B42 ToDo: - The Nuova Bell games don't boot. - The Bell games have major problems -- Sound +- Sound for the non-Bally games - Dips, Inputs, Solenoids vary per game - Bally: Add Strobe 5 (ST5) for extra inputs on later games - Bally: Add support for Solenoid Expanders on later games @@ -105,6 +105,8 @@ public: void as3022(machine_config &config); void sounds_plus(machine_config &config); void cheap_squeak(machine_config &config); + void squawk_n_talk(machine_config &config); + void squawk_n_talk_ay(machine_config &config); protected: typedef uint8_t solenoid_feature_data[20][4]; @@ -135,6 +137,8 @@ protected: , m_as3022(*this, "as3022") , m_sounds_plus(*this, "sounds_plus") , m_cheap_squeak(*this, "cheap_squeak") + , m_squawk_n_talk(*this, "squawk_n_talk") + , m_squawk_n_talk_ay(*this, "squawk_n_talk_ay") , m_sound_select_handler(*this) , m_sound_int_handler(*this) { } @@ -208,8 +212,10 @@ private: optional_device m_as3022; optional_device m_sounds_plus; optional_device m_cheap_squeak; - devcb_write8 m_sound_select_handler; - devcb_write_line m_sound_int_handler; + optional_device m_squawk_n_talk; + optional_device m_squawk_n_talk_ay; + devcb_write8 m_sound_select_handler; + devcb_write_line m_sound_int_handler; }; class playboy_state : public by35_state @@ -1546,6 +1552,29 @@ void by35_state::cheap_squeak(machine_config &config) m_cheap_squeak->sound_ack_w_handler().set(FUNC(by35_state::sound_ack_w)); } +void by35_state::squawk_n_talk(machine_config &config) +{ + by35(config); + + BALLY_SQUAWK_N_TALK(config, m_squawk_n_talk); + SPEAKER(config, "mono").front_center(); + m_squawk_n_talk->add_route(ALL_OUTPUTS, "mono", 1.00); + + m_sound_select_handler.bind().set(m_squawk_n_talk, FUNC(bally_squawk_n_talk_device::sound_select)); + m_sound_int_handler.bind().set(m_squawk_n_talk, FUNC(bally_squawk_n_talk_device::sound_int)); +} + +void by35_state::squawk_n_talk_ay(machine_config &config) +{ + by35(config); + + BALLY_SQUAWK_N_TALK_AY(config, m_squawk_n_talk_ay); + SPEAKER(config, "mono").front_center(); + m_squawk_n_talk_ay->add_route(ALL_OUTPUTS, "mono", 1.00); + + m_sound_select_handler.bind().set(m_squawk_n_talk_ay, FUNC(bally_squawk_n_talk_ay_device::sound_select)); + m_sound_int_handler.bind().set(m_squawk_n_talk_ay, FUNC(bally_squawk_n_talk_ay_device::sound_int)); +} /*-------------------------------- / Supersonic #1106 @@ -1869,9 +1898,9 @@ ROM_START(flashgdn) ROM_LOAD( "720-52_6.732", 0x1800, 0x0800, CRC(2a43d9fb) SHA1(9ff903c32b80780383578a9abaa3ef9d3bcecbc7)) ROM_CONTINUE( 0x5800, 0x0800) ROM_RELOAD( 0x7000, 0x1000) - ROM_REGION(0x10000, "cpu2", 0) - ROM_LOAD("834-20_2.532", 0xc000, 0x1000, CRC(2f8ced3e) SHA1(ecdeb07c31c22ec313b55774f4358a9923c5e9e7)) - ROM_LOAD("834-18_5.532", 0xf000, 0x1000, CRC(8799e80e) SHA1(f255b4e7964967c82cfc2de20ebe4b8d501e3cb0)) + ROM_REGION(0x10000, "squawk_n_talk_ay:cpu", 0) + ROM_LOAD("834-20_2.532", 0x8000, 0x1000, CRC(2f8ced3e) SHA1(ecdeb07c31c22ec313b55774f4358a9923c5e9e7)) + ROM_LOAD("834-18_5.532", 0xb000, 0x1000, CRC(8799e80e) SHA1(f255b4e7964967c82cfc2de20ebe4b8d501e3cb0)) ROM_END ROM_START(flashgdnf) @@ -1881,9 +1910,9 @@ ROM_START(flashgdnf) ROM_LOAD( "720-52_6.732", 0x1800, 0x0800, CRC(2a43d9fb) SHA1(9ff903c32b80780383578a9abaa3ef9d3bcecbc7)) ROM_CONTINUE( 0x5800, 0x0800) ROM_RELOAD( 0x7000, 0x1000) - ROM_REGION(0x10000, "cpu2", 0) - ROM_LOAD("834-35_2.532", 0xc000, 0x1000, CRC(dff3f711) SHA1(254a5670775ecb6c347f33af8ba7c350e4cfa550)) - ROM_LOAD("834-36_5.532", 0xf000, 0x1000, CRC(18691897) SHA1(3b445e0756c07d80f14c01af5a7f87744474ae15)) + ROM_REGION(0x10000, "squawk_n_talk_ay:cpu", 0) + ROM_LOAD("834-35_2.532", 0x8000, 0x1000, CRC(dff3f711) SHA1(254a5670775ecb6c347f33af8ba7c350e4cfa550)) + ROM_LOAD("834-36_5.532", 0xb000, 0x1000, CRC(18691897) SHA1(3b445e0756c07d80f14c01af5a7f87744474ae15)) ROM_END ROM_START(flashgdnv) @@ -1929,9 +1958,9 @@ ROM_START(fball_ii) ROM_LOAD( "720-52_6.732", 0x1800, 0x0800, CRC(2a43d9fb) SHA1(9ff903c32b80780383578a9abaa3ef9d3bcecbc7)) ROM_CONTINUE( 0x5800, 0x0800) ROM_RELOAD( 0x7000, 0x1000) - ROM_REGION(0x10000, "cpu2", 0) - ROM_LOAD("839-01_2.532", 0xc000, 0x1000, CRC(4aa473bd) SHA1(eaa12ded76f9999d33ce0fe6198df1708e007e12)) - ROM_LOAD("839-02_5.532", 0xf000, 0x1000, CRC(8bf904ff) SHA1(de78d08bddd546abac65c2f95f1d52797e716362)) + ROM_REGION(0x10000, "squawk_n_talk_ay:cpu", 0) + ROM_LOAD("839-01_2.532", 0x8000, 0x1000, CRC(4aa473bd) SHA1(eaa12ded76f9999d33ce0fe6198df1708e007e12)) + ROM_LOAD("839-02_5.532", 0xb000, 0x1000, CRC(8bf904ff) SHA1(de78d08bddd546abac65c2f95f1d52797e716362)) ROM_END /*-------------------------------- @@ -1944,11 +1973,11 @@ ROM_START(eballdlx) ROM_LOAD( "720-52_6.732", 0x1800, 0x0800, CRC(2a43d9fb) SHA1(9ff903c32b80780383578a9abaa3ef9d3bcecbc7)) ROM_CONTINUE( 0x5800, 0x0800) ROM_RELOAD( 0x7000, 0x1000) - ROM_REGION(0x10000, "cpu2", 0) - ROM_LOAD("838-08_3.532", 0xd000, 0x1000, CRC(c39478d7) SHA1(8148aca7c4113921ab882da32d6d88e66abb22cc)) - ROM_LOAD("838-09_4.716", 0xe000, 0x0800, CRC(518ea89e) SHA1(a387274ef530bb57f31819733b35615a39260126)) - ROM_RELOAD(0xe800, 0x0800) - ROM_LOAD("838-10_5.532", 0xf000, 0x1000, CRC(9c63925d) SHA1(abd1fa6308d3569e16ee10bfabce269a124d8f26)) + ROM_REGION(0x10000, "squawk_n_talk_ay:cpu", 0) + ROM_LOAD("838-08_3.532", 0x9000, 0x1000, CRC(c39478d7) SHA1(8148aca7c4113921ab882da32d6d88e66abb22cc)) + ROM_LOAD("838-09_4.716", 0xa000, 0x0800, CRC(518ea89e) SHA1(a387274ef530bb57f31819733b35615a39260126)) + ROM_RELOAD(0xa800, 0x0800) + ROM_LOAD("838-10_5.532", 0xb000, 0x1000, CRC(9c63925d) SHA1(abd1fa6308d3569e16ee10bfabce269a124d8f26)) ROM_END ROM_START(eballd14) @@ -1958,11 +1987,11 @@ ROM_START(eballd14) ROM_LOAD( "720-52_6.732", 0x1800, 0x0800, CRC(2a43d9fb) SHA1(9ff903c32b80780383578a9abaa3ef9d3bcecbc7)) ROM_CONTINUE( 0x5800, 0x0800) ROM_RELOAD( 0x7000, 0x1000) - ROM_REGION(0x10000, "cpu2", 0) - ROM_LOAD("838-08_3.532", 0xd000, 0x1000, CRC(c39478d7) SHA1(8148aca7c4113921ab882da32d6d88e66abb22cc)) - ROM_LOAD("838-09_4.716", 0xe000, 0x0800, CRC(518ea89e) SHA1(a387274ef530bb57f31819733b35615a39260126)) - ROM_RELOAD(0xe800, 0x0800) - ROM_LOAD("838-10_5.532", 0xf000, 0x1000, CRC(9c63925d) SHA1(abd1fa6308d3569e16ee10bfabce269a124d8f26)) + ROM_REGION(0x10000, "squawk_n_talk_ay:cpu", 0) + ROM_LOAD("838-08_3.532", 0x9000, 0x1000, CRC(c39478d7) SHA1(8148aca7c4113921ab882da32d6d88e66abb22cc)) + ROM_LOAD("838-09_4.716", 0xa000, 0x0800, CRC(518ea89e) SHA1(a387274ef530bb57f31819733b35615a39260126)) + ROM_RELOAD(0xa800, 0x0800) + ROM_LOAD("838-10_5.532", 0xb000, 0x1000, CRC(9c63925d) SHA1(abd1fa6308d3569e16ee10bfabce269a124d8f26)) ROM_END /*-------------------------------- @@ -1975,10 +2004,10 @@ ROM_START(embryon) ROM_LOAD( "720-52_6.732", 0x1800, 0x0800, CRC(2a43d9fb) SHA1(9ff903c32b80780383578a9abaa3ef9d3bcecbc7)) ROM_CONTINUE( 0x5800, 0x0800) ROM_RELOAD( 0x7000, 0x1000) - ROM_REGION(0x10000, "cpu2", 0) - ROM_LOAD("841-01_4.716", 0xe000, 0x0800, CRC(e8b234e3) SHA1(584e553748b1c6571491150e346d815005948b68)) - ROM_RELOAD(0xe800, 0x0800) - ROM_LOAD("841-02_5.532", 0xf000, 0x1000, CRC(9cd8c04e) SHA1(7d74d8f33a98c9832fda1054187eb7300dbf5f5e)) + ROM_REGION(0x10000, "squawk_n_talk:cpu", 0) + ROM_LOAD("841-01_4.716", 0xa000, 0x0800, CRC(e8b234e3) SHA1(584e553748b1c6571491150e346d815005948b68)) + ROM_RELOAD(0xa800, 0x0800) + ROM_LOAD("841-02_5.532", 0xb000, 0x1000, CRC(9cd8c04e) SHA1(7d74d8f33a98c9832fda1054187eb7300dbf5f5e)) ROM_END /*-------------------------------- @@ -1991,9 +2020,9 @@ ROM_START(fathom) ROM_LOAD( "720-53_6.732", 0x1800, 0x0800, CRC(c2e92f80) SHA1(61de956a4b6e9fb9ef2b25c01bff1fb5972284ad)) ROM_CONTINUE( 0x5800, 0x0800) ROM_RELOAD( 0x7000, 0x1000) - ROM_REGION(0x10000, "cpu2", 0) - ROM_LOAD("842-01_4.532", 0xe000, 0x1000, CRC(2ac02093) SHA1(a89c1d24f4f3e1f58ca4e476f408835efb368a90)) - ROM_LOAD("842-02_5.532", 0xf000, 0x1000, CRC(736800bc) SHA1(2679d4d76e7258ad18ffe05cf333f21c35adfe0e)) + ROM_REGION(0x10000, "squawk_n_talk:cpu", 0) + ROM_LOAD("842-01_4.532", 0xa000, 0x1000, CRC(2ac02093) SHA1(a89c1d24f4f3e1f58ca4e476f408835efb368a90)) + ROM_LOAD("842-02_5.532", 0xb000, 0x1000, CRC(736800bc) SHA1(2679d4d76e7258ad18ffe05cf333f21c35adfe0e)) ROM_END /*-------------------------------- @@ -2006,11 +2035,11 @@ ROM_START(centaur) ROM_LOAD( "720-53_6.732", 0x1800, 0x0800, CRC(c2e92f80) SHA1(61de956a4b6e9fb9ef2b25c01bff1fb5972284ad)) ROM_CONTINUE( 0x5800, 0x0800) ROM_RELOAD( 0x7000, 0x1000) - ROM_REGION(0x10000, "cpu2", 0) - ROM_LOAD("848-01_3.532", 0xd000, 0x1000, CRC(88322c8a) SHA1(424fd2b107f5fbc3ab8b58e3fa8c285170b1f09a)) - ROM_LOAD("848-02_4.532", 0xe000, 0x1000, CRC(d6dbd0e4) SHA1(62e4c8c1a747c5f6a3a4bf4d0bc80b06a1f70d13)) - ROM_LOAD("848-05_5.716", 0xf000, 0x0800, CRC(cbd765ba) SHA1(bdfae28af46c805f253f02d449dd81575aa9305b)) - ROM_RELOAD(0xf800, 0x0800) + ROM_REGION(0x10000, "squawk_n_talk:cpu", 0) + ROM_LOAD("848-01_3.532", 0x9000, 0x1000, CRC(88322c8a) SHA1(424fd2b107f5fbc3ab8b58e3fa8c285170b1f09a)) + ROM_LOAD("848-02_4.532", 0xa000, 0x1000, CRC(d6dbd0e4) SHA1(62e4c8c1a747c5f6a3a4bf4d0bc80b06a1f70d13)) + ROM_LOAD("848-05_5.716", 0xb000, 0x0800, CRC(cbd765ba) SHA1(bdfae28af46c805f253f02d449dd81575aa9305b)) + ROM_RELOAD(0xb800, 0x0800) ROM_END /*-------------------------------- @@ -2023,11 +2052,11 @@ ROM_START(medusa) ROM_LOAD( "720-53_6.732", 0x1800, 0x0800, CRC(c2e92f80) SHA1(61de956a4b6e9fb9ef2b25c01bff1fb5972284ad)) ROM_CONTINUE( 0x5800, 0x0800) ROM_RELOAD( 0x7000, 0x1000) - ROM_REGION(0x10000, "cpu2", 0) - ROM_LOAD("845-01_3.532", 0xd000, 0x1000, CRC(32200e02) SHA1(e75356a20f81a68e6b27d2fa04b8cc9b17f3976a)) - ROM_LOAD("845-02_4.532", 0xe000, 0x1000, CRC(ab95885a) SHA1(fa91cef2a244d25d408585d1e14e1ed8fdc8c845)) - ROM_LOAD("845-05_5.716", 0xf000, 0x0800, CRC(3792a812) SHA1(5c7cc43e57d8e8ded1cc109aa65c4f08052899b9)) - ROM_RELOAD(0xf800, 0x0800) + ROM_REGION(0x10000, "squawk_n_talk:cpu", 0) + ROM_LOAD("845-01_3.532", 0x9000, 0x1000, CRC(32200e02) SHA1(e75356a20f81a68e6b27d2fa04b8cc9b17f3976a)) + ROM_LOAD("845-02_4.532", 0xa000, 0x1000, CRC(ab95885a) SHA1(fa91cef2a244d25d408585d1e14e1ed8fdc8c845)) + ROM_LOAD("845-05_5.716", 0xb000, 0x0800, CRC(3792a812) SHA1(5c7cc43e57d8e8ded1cc109aa65c4f08052899b9)) + ROM_RELOAD(0xb800, 0x0800) ROM_END /*-------------------------------- @@ -2040,11 +2069,11 @@ ROM_START(vector) ROM_LOAD( "720-53_6.732", 0x1800, 0x0800, CRC(c2e92f80) SHA1(61de956a4b6e9fb9ef2b25c01bff1fb5972284ad)) ROM_CONTINUE( 0x5800, 0x0800) ROM_RELOAD( 0x7000, 0x1000) - ROM_REGION(0x10000, "cpu2", 0) - ROM_LOAD("858-01_2.532", 0xc000, 0x1000, CRC(bd2edef9) SHA1(8f129016440bad5e78d4b073268e76e542b61684)) - ROM_LOAD("858-02_3.532", 0xd000, 0x1000, CRC(c592fb35) SHA1(5201824f129812c907e7d8a4600de23d95fd1eb0)) - ROM_LOAD("858-03_4.532", 0xe000, 0x1000, CRC(8661d312) SHA1(36d04d875382ff5387991d660d031c662b414698)) - ROM_LOAD("858-06_5.532", 0xf000, 0x1000, CRC(3050edf6) SHA1(e028192d9a8c17123b07566c6d73302cec07b440)) + ROM_REGION(0x10000, "squawk_n_talk_ay:cpu", 0) + ROM_LOAD("858-01_2.532", 0x8000, 0x1000, CRC(bd2edef9) SHA1(8f129016440bad5e78d4b073268e76e542b61684)) + ROM_LOAD("858-02_3.532", 0x9000, 0x1000, CRC(c592fb35) SHA1(5201824f129812c907e7d8a4600de23d95fd1eb0)) + ROM_LOAD("858-03_4.532", 0xa000, 0x1000, CRC(8661d312) SHA1(36d04d875382ff5387991d660d031c662b414698)) + ROM_LOAD("858-06_5.532", 0xb000, 0x1000, CRC(3050edf6) SHA1(e028192d9a8c17123b07566c6d73302cec07b440)) ROM_END /*-------------------------------- @@ -2057,10 +2086,10 @@ ROM_START(elektra) ROM_LOAD( "720-53_6.732", 0x1800, 0x0800, CRC(c2e92f80) SHA1(61de956a4b6e9fb9ef2b25c01bff1fb5972284ad)) ROM_CONTINUE( 0x5800, 0x0800) ROM_RELOAD( 0x7000, 0x1000) - ROM_REGION(0x10000, "cpu2", 0) - ROM_LOAD("857-01_3.532", 0xd000, 0x1000, CRC(031548cc) SHA1(1f0204afd32dc07a301f404b4b064e34a83bd783)) - ROM_LOAD("857-02_4.532", 0xe000, 0x1000, CRC(efc870d9) SHA1(45132c123b3191d616e2e9372948ab66ff221228)) - ROM_LOAD("857-03_5.716", 0xf000, 0x0800, CRC(eae2c6a6) SHA1(ee3a9b01fa07e2df4eb6d2ab26da5f7f0e12475b)) + ROM_REGION(0x10000, "squawk_n_talk_ay:cpu", 0) + ROM_LOAD("857-01_3.532", 0x9000, 0x1000, CRC(031548cc) SHA1(1f0204afd32dc07a301f404b4b064e34a83bd783)) + ROM_LOAD("857-02_4.532", 0xa000, 0x1000, CRC(efc870d9) SHA1(45132c123b3191d616e2e9372948ab66ff221228)) + ROM_LOAD("857-03_5.716", 0xb000, 0x0800, CRC(eae2c6a6) SHA1(ee3a9b01fa07e2df4eb6d2ab26da5f7f0e12475b)) ROM_RELOAD(0xf800, 0x0800) ROM_END @@ -2074,11 +2103,11 @@ ROM_START(spectrm) ROM_LOAD( "720-53_6.732", 0x1800, 0x0800, CRC(c2e92f80) SHA1(61de956a4b6e9fb9ef2b25c01bff1fb5972284ad)) ROM_CONTINUE( 0x5800, 0x0800) ROM_RELOAD( 0x7000, 0x1000) - ROM_REGION(0x10000, "cpu2", 0) - ROM_LOAD("868-01_3.532", 0xd000, 0x1000, CRC(c3a16c66) SHA1(8c0a8b50fac0e218515b471621e80000ae475296)) - ROM_LOAD("868-02_4.532", 0xe000, 0x1000, CRC(6b441399) SHA1(aae9e805f76cd6bc264bf69dd2d57629ee58bfc2)) - ROM_LOAD("868-03_5.716", 0xf000, 0x0800, CRC(4a5ac3b8) SHA1(288feba40efd65f4eec5c0b2fcf013904e3dc24e)) - ROM_RELOAD(0xf800, 0x0800) + ROM_REGION(0x10000, "squawk_n_talk:cpu", 0) + ROM_LOAD("868-01_3.532", 0x9000, 0x1000, CRC(c3a16c66) SHA1(8c0a8b50fac0e218515b471621e80000ae475296)) + ROM_LOAD("868-02_4.532", 0xa000, 0x1000, CRC(6b441399) SHA1(aae9e805f76cd6bc264bf69dd2d57629ee58bfc2)) + ROM_LOAD("868-03_5.716", 0xb000, 0x0800, CRC(4a5ac3b8) SHA1(288feba40efd65f4eec5c0b2fcf013904e3dc24e)) + ROM_RELOAD(0xb800, 0x0800) ROM_END ROM_START(spectrm4) @@ -2088,11 +2117,11 @@ ROM_START(spectrm4) ROM_LOAD( "720-53_6.732", 0x1800, 0x0800, CRC(c2e92f80) SHA1(61de956a4b6e9fb9ef2b25c01bff1fb5972284ad)) ROM_CONTINUE( 0x5800, 0x0800) ROM_RELOAD( 0x7000, 0x1000) - ROM_REGION(0x10000, "cpu2", 0) - ROM_LOAD("868-01_3.532", 0xd000, 0x1000, CRC(c3a16c66) SHA1(8c0a8b50fac0e218515b471621e80000ae475296)) - ROM_LOAD("868-02_4.532", 0xe000, 0x1000, CRC(6b441399) SHA1(aae9e805f76cd6bc264bf69dd2d57629ee58bfc2)) - ROM_LOAD("868-03_5.716", 0xf000, 0x0800, CRC(4a5ac3b8) SHA1(288feba40efd65f4eec5c0b2fcf013904e3dc24e)) - ROM_RELOAD(0xf800, 0x0800) + ROM_REGION(0x10000, "squawk_n_talk:cpu", 0) + ROM_LOAD("868-01_3.532", 0x9000, 0x1000, CRC(c3a16c66) SHA1(8c0a8b50fac0e218515b471621e80000ae475296)) + ROM_LOAD("868-02_4.532", 0xa000, 0x1000, CRC(6b441399) SHA1(aae9e805f76cd6bc264bf69dd2d57629ee58bfc2)) + ROM_LOAD("868-03_5.716", 0xb000, 0x0800, CRC(4a5ac3b8) SHA1(288feba40efd65f4eec5c0b2fcf013904e3dc24e)) + ROM_RELOAD(0xb800, 0x0800) ROM_END /*-------------------------------------------------- @@ -2146,8 +2175,8 @@ ROM_START(rapidfip) ROM_LOAD( "869-03_6.732", 0x1800, 0x0800, CRC(f6af5e8d) SHA1(3cf782d4a0ca38e3953a20d23d0eb01af87ba445)) ROM_CONTINUE( 0x5800, 0x0800) ROM_RELOAD( 0x7000, 0x1000) - ROM_REGION(0x10000, "cpu2", 0) - ROM_LOAD("869-02_5.532", 0xf000, 0x1000, CRC(5a74cb86) SHA1(4fd09b0bc4257cb7b48cd8087b8b15fe768f7ddf)) + ROM_REGION(0x10000, "squawk_n_talk:cpu", 0) + ROM_LOAD("869-02_5.532", 0xb000, 0x1000, CRC(5a74cb86) SHA1(4fd09b0bc4257cb7b48cd8087b8b15fe768f7ddf)) ROM_END /*-------------------------------------- @@ -2160,9 +2189,9 @@ ROM_START(m_mpac) ROM_LOAD( "720-53_6.732", 0x1800, 0x0800, CRC(c2e92f80) SHA1(61de956a4b6e9fb9ef2b25c01bff1fb5972284ad)) ROM_CONTINUE( 0x5800, 0x0800) ROM_RELOAD( 0x7000, 0x1000) - ROM_REGION(0x10000, "cpu2", 0) - ROM_LOAD("872-01_4.532", 0xe000, 0x1000, CRC(d21ce16d) SHA1(3ee6e2629530e7e6e4d7eac713d34c48297a1047)) - ROM_LOAD("872-03_5.532", 0xf000, 0x1000, CRC(8fcdf853) SHA1(7c6bffcd974d2684e7f2c69d926f6cabb53e2f90)) + ROM_REGION(0x10000, "squawk_n_talk_ay:cpu", 0) + ROM_LOAD("872-01_4.532", 0xa000, 0x1000, CRC(d21ce16d) SHA1(3ee6e2629530e7e6e4d7eac713d34c48297a1047)) + ROM_LOAD("872-03_5.532", 0xb000, 0x1000, CRC(8fcdf853) SHA1(7c6bffcd974d2684e7f2c69d926f6cabb53e2f90)) ROM_END /*----------------------------------------------------------- @@ -2698,10 +2727,10 @@ ROM_START(bigbat) ROM_LOAD( "u6.bin", 0x1800, 0x0800, CRC(8f13469d) SHA1(00c626f7eb166f627f6498d75906b3c56bccdd62)) ROM_CONTINUE( 0x5800, 0x0800) ROM_RELOAD( 0x7000, 0x1000) - ROM_REGION(0x10000, "cpu2", 0) - ROM_LOAD("u3.bin", 0xd000, 0x1000, CRC(b87a9335) SHA1(8a21bcbcbe91da1bab0af06b71604bb8f247d0d4)) - ROM_LOAD("u4.bin", 0xe000, 0x1000, CRC(4ab75b31) SHA1(46acd1c9250a635b51bffccd77ea4e67a0c5edf5)) - ROM_LOAD("u5.bin", 0xf000, 0x1000, CRC(0aec8204) SHA1(f44216cccc3652399549345d8c74bcae54662aa3)) + ROM_REGION(0x10000, "squawk_n_talk_ay:cpu", 0) + ROM_LOAD("u3.bin", 0x9000, 0x1000, CRC(b87a9335) SHA1(8a21bcbcbe91da1bab0af06b71604bb8f247d0d4)) + ROM_LOAD("u4.bin", 0xa000, 0x1000, CRC(4ab75b31) SHA1(46acd1c9250a635b51bffccd77ea4e67a0c5edf5)) + ROM_LOAD("u5.bin", 0xb000, 0x1000, CRC(0aec8204) SHA1(f44216cccc3652399549345d8c74bcae54662aa3)) ROM_END /*----------------------------------------------------------------------------------------------- @@ -2714,9 +2743,9 @@ ROM_START(mdntmrdr) ROM_LOAD( "mdru6.732", 0x1800, 0x0800, CRC(ff55fb57) SHA1(4a44fc8732c8cbce38c9605c7958b02a6bc95da1)) ROM_CONTINUE( 0x5800, 0x0800) ROM_RELOAD( 0x7000, 0x1000) - ROM_REGION(0x10000, "cpu2", 0) - ROM_LOAD("u3.bin", 0xd000, 0x1000, CRC(3ba474e4) SHA1(4ee5c3ad2c9dca49e9394521506e97a95e3d9a17)) - ROM_LOAD("u5.bin", 0xf000, 0x1000, CRC(3ab40e35) SHA1(63b2ee074e5993a2616e67d3383bc3d3ac51b400)) + ROM_REGION(0x10000, "squawk_n_talk_ay:cpu", 0) + ROM_LOAD("u3.bin", 0x9000, 0x1000, CRC(3ba474e4) SHA1(4ee5c3ad2c9dca49e9394521506e97a95e3d9a17)) + ROM_LOAD("u5.bin", 0xb000, 0x1000, CRC(3ab40e35) SHA1(63b2ee074e5993a2616e67d3383bc3d3ac51b400)) ROM_END /*---------------------------- @@ -2779,22 +2808,22 @@ GAME( 1983, goldball, 0, as3022, by35, by35_state, init_by35_ GAME( 1983, goldballn, goldball, as3022, by35, by35_state, init_by35_7, ROT0, "Bally", "Gold Ball (Field Service Upgrade)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) // Squawk & Talk sound -GAME( 1981, flashgdn, 0, by35, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Flash Gordon", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1981, flashgdnf, flashgdn, by35, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Flash Gordon (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1981, flashgdnv, flashgdn, sounds_plus, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Flash Gordon (Vocalizer sound)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) -GAME( 1981, fball_ii, 0, by35, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Fireball II", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1981, eballdlx, 0, by35, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Eight Ball Deluxe (rev. 15)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1981, eballd14, eballdlx, by35, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Eight Ball Deluxe (rev. 14)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1981, embryon, 0, by35, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Embryon", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1981, fathom, 0, by35, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Fathom", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1981, centaur, 0, by35, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Centaur", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1981, medusa, 0, by35, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Medusa", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1982, vector, 0, by35, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Vector", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1981, elektra, 0, by35, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Elektra", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1982, spectrm, 0, by35, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Spectrum", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1982, spectrm4, spectrm, by35, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Spectrum (ver 4)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1982, rapidfip, 0, by35, by35, by35_state, init_by35_7, ROT0, "Bally", "Rapid Fire", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1982, m_mpac, 0, by35, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Mr. and Mrs. PacMan", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1981, flashgdn, 0, squawk_n_talk_ay, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Flash Gordon", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1981, flashgdnf, flashgdn, squawk_n_talk_ay, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Flash Gordon (French)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1981, flashgdnv, flashgdn, sounds_plus, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Flash Gordon (Vocalizer sound)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1981, fball_ii, 0, squawk_n_talk_ay, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Fireball II", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1981, eballdlx, 0, squawk_n_talk_ay, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Eight Ball Deluxe (rev. 15)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1981, eballd14, eballdlx, squawk_n_talk_ay, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Eight Ball Deluxe (rev. 14)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1981, embryon, 0, squawk_n_talk, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Embryon", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1981, fathom, 0, squawk_n_talk, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Fathom", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1981, centaur, 0, squawk_n_talk, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Centaur", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1981, medusa, 0, squawk_n_talk, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Medusa", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1982, vector, 0, squawk_n_talk_ay, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Vector", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1981, elektra, 0, squawk_n_talk_ay, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Elektra", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1982, spectrm, 0, squawk_n_talk, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Spectrum", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1982, spectrm4, spectrm, squawk_n_talk, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Spectrum (ver 4)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1982, rapidfip, 0, squawk_n_talk, by35, by35_state, init_by35_7, ROT0, "Bally", "Rapid Fire", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1982, m_mpac, 0, squawk_n_talk_ay, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Mr. and Mrs. PacMan", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) // Cheap Squeak sound GAME( 1984, kosteel, 0, cheap_squeak, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Kings of Steel", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) @@ -2805,25 +2834,25 @@ GAME( 1984, blakpyra, 0, cheap_squeak, by35_os5x, by35_state, init_by35_7, ROT0, GAME( 1985, cybrnaut, 0, cheap_squeak, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Cybernaut", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) // Other manufacturers -GAME( 1984, suprbowl, xsandos, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "Super Bowl", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1984, tigerrag, kosteel, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "Tiger Rag", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1985, cosflash, flashgdn, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "Cosmic Flash", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1985, newwave, blakpyra, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "New Wave", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1985, saturn2, spyhuntr, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "Saturn 2", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1985, worlddef, 0, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "World Defender", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1986, spacehaw, cybrnaut, by35, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Space Hawks", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1986, darkshad, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Dark Shadow", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1986, skflight, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Skill Flight", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1987, cobrap, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Cobra", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1987, futrquen, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Future Queen", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1987, f1gpp, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "F1 Grand Prix (Nuova Bell Games)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1988, toppin, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Top Pin", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1988, uboat65, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "U-boat 65", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1986, bullseye, 0, by35, by35, by35_state, init_by35_7, ROT0, "Grand Products", "301/Bullseye (301 Darts Scoring)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1986, bullseyn, bullseye, by35, by35, by35_state, init_by35_7, ROT0, "Grand Products", "301/Bullseye (Traditional Scoring)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1988, bbbowlin, 0, by35, by35, by35_state, init_by35_7, ROT0, "United", "Big Ball Bowling (Bowler)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1988, monrobwl, 0, by35, by35, by35_state, init_by35_7, ROT0, "Monroe Bowling Co.", "Stars & Strikes (Bowler)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1984, bigbat, 0, by35, by35, by35_state, init_by35_7, ROT0, "Bally Midway", "Big Bat (Bat game)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1984, mdntmrdr, 0, by35, by35, by35_state, init_by35_6, ROT0, "Bally Midway", "Midnight Marauders (Gun game)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1988, blbeauty, 0, by35, by35, by35_state, init_by35_7, ROT0, "Stern", "Black Beauty (Shuffle)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1984, myststar, 0, by35, by35, by35_state, init_by35_6, ROT0, "Zaccaria", "Mystic Star", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1984, suprbowl, xsandos, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "Super Bowl", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1984, tigerrag, kosteel, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "Tiger Rag", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1985, cosflash, flashgdn, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "Cosmic Flash", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1985, newwave, blakpyra, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "New Wave", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1985, saturn2, spyhuntr, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "Saturn 2", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1985, worlddef, 0, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "World Defender", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1986, spacehaw, cybrnaut, by35, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Space Hawks", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1986, darkshad, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Dark Shadow", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1986, skflight, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Skill Flight", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1987, cobrap, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Cobra", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1987, futrquen, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Future Queen", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1987, f1gpp, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "F1 Grand Prix (Nuova Bell Games)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1988, toppin, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Top Pin", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1988, uboat65, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "U-boat 65", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1986, bullseye, 0, by35, by35, by35_state, init_by35_7, ROT0, "Grand Products", "301/Bullseye (301 Darts Scoring)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1986, bullseyn, bullseye, by35, by35, by35_state, init_by35_7, ROT0, "Grand Products", "301/Bullseye (Traditional Scoring)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1988, bbbowlin, 0, by35, by35, by35_state, init_by35_7, ROT0, "United", "Big Ball Bowling (Bowler)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1988, monrobwl, 0, by35, by35, by35_state, init_by35_7, ROT0, "Monroe Bowling Co.", "Stars & Strikes (Bowler)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1984, bigbat, 0, squawk_n_talk_ay, by35, by35_state, init_by35_7, ROT0, "Bally Midway", "Big Bat (Bat game)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1984, mdntmrdr, 0, squawk_n_talk_ay, by35, by35_state, init_by35_6, ROT0, "Bally Midway", "Midnight Marauders (Gun game)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1988, blbeauty, 0, by35, by35, by35_state, init_by35_7, ROT0, "Stern", "Black Beauty (Shuffle)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1984, myststar, 0, by35, by35, by35_state, init_by35_6, ROT0, "Zaccaria", "Mystic Star", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/chihiro.cpp b/src/mame/drivers/chihiro.cpp index bb90cd92ff5..9165e5fddb7 100644 --- a/src/mame/drivers/chihiro.cpp +++ b/src/mame/drivers/chihiro.cpp @@ -622,7 +622,7 @@ class chihiro_state : public xbox_base_state public: chihiro_state(const machine_config &mconfig, device_type type, const char *tag) : xbox_base_state(mconfig, type, tag) - , m_ide(*this, "ide") + , m_ide(*this, "ide1") , m_dimmboard(*this, "rom_board") , m_hack_index(-1) , m_hack_counter(0) @@ -1763,13 +1763,11 @@ WRITE32_MEMBER(chihiro_state::mediaboard_w) void chihiro_state::chihiro_map(address_map &map) { - xbox_base_map(map); map(0xff000000, 0xff07ffff).rom().region("bios", 0).mirror(0x00f80000); } void chihiro_state::chihiro_map_io(address_map &map) { - xbox_base_map_io(map); map(0x4000, 0x40ff).rw(FUNC(chihiro_state::mediaboard_r), FUNC(chihiro_state::mediaboard_w)); } @@ -1915,7 +1913,7 @@ void chihiro_state::chihiro_base(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &chihiro_state::chihiro_map); m_maincpu->set_addrmap(AS_IO, &chihiro_state::chihiro_map_io); - subdevice(":pci:09.0:ide")->options(ide_baseboard, nullptr, "bb", true); + subdevice(":pci:09.0:ide1")->options(ide_baseboard, nullptr, "bb", true); OHCI_USB_CONNECTOR(config, ":pci:02.0:port1", usb_baseboard, "an2131qc", true).set_option_machine_config("an2131qc", an2131qc_configuration); OHCI_USB_CONNECTOR(config, ":pci:02.0:port2", usb_baseboard, "an2131sc", true).set_option_machine_config("an2131sc", an2131sc_configuration); diff --git a/src/mame/drivers/rad_eu3a05.cpp b/src/mame/drivers/elan_eu3a05.cpp similarity index 99% rename from src/mame/drivers/rad_eu3a05.cpp rename to src/mame/drivers/elan_eu3a05.cpp index 4c9c33be6b3..8cd87632152 100644 --- a/src/mame/drivers/rad_eu3a05.cpp +++ b/src/mame/drivers/elan_eu3a05.cpp @@ -158,8 +158,8 @@ #include "screen.h" #include "speaker.h" #include "machine/bankdev.h" -#include "audio/rad_eu3a05.h" -#include "machine/rad_eu3a05gpio.h" +#include "audio/elan_eu3a05.h" +#include "machine/elan_eu3a05gpio.h" class radica_eu3a05_state : public driver_device { diff --git a/src/mame/drivers/rad_eu3a14.cpp b/src/mame/drivers/elan_eu3a14.cpp similarity index 68% rename from src/mame/drivers/rad_eu3a14.cpp rename to src/mame/drivers/elan_eu3a14.cpp index c3f74a1f661..a73a0b7a434 100644 --- a/src/mame/drivers/rad_eu3a14.cpp +++ b/src/mame/drivers/elan_eu3a14.cpp @@ -30,6 +30,34 @@ The Basketball camera also uses an ETOMS CU5502. It’s different from the others (XaviXport + Real Swing Golf) in that the sensor is on a small PCB with a 3.58MHz resonator with 16 wires going to another small PCB that has a glob and a 4MHz resonator. 6 wires go from that PCB to the main game PCB. + To access hidden test mode in Football hold enter and right during power on. + + Football test mode tests X pos, Y pos, Z pos, direction and speed. This data must all be coming from the camera in the unit as the shinpads are simply + reflective objects, they don't contain any electronics. It could be a useful test case for better understanding these things. + + To access hidden test mode in Golden Tee Home hold back/backspin and left during power on. + + To access hidden test mode in Basketball hold left and Button 1 during power on. + + To access hidden test mode in Real Swing Golf hold left and down during power on. + - test mode check + 77B6: lda $5041 + 77B9: eor #$ed + 77BB: beq $77be + + To access hidden test mode in Baseball 3 hold down during power on. + - test mode check + 686E: lda $5041 + 6871: eor #$f7 + 6873: bne $68c8 + + It is not clear how to access Huntin'3 Test Mode (if possible) there do appear to be tiles for it tho + + Huntin'3 appears to use the hardware much more extensively than other games and shows we need the following features + - Raster Interrupt (Rowscroll in most game modes) + - RAM based tiles (status bar in Shooting Range, text descriptions on menus etc.) + these aren't yet emulated. + */ #include "emu.h" @@ -38,7 +66,7 @@ #include "screen.h" #include "speaker.h" #include "machine/bankdev.h" -#include "audio/rad_eu3a05.h" +#include "audio/elan_eu3a05.h" #include "machine/timer.h" /* @@ -80,7 +108,7 @@ public: m_palram(*this, "palram"), m_scrollregs(*this, "scrollregs"), m_tilecfg(*this, "tilecfg"), - m_tilebase(*this, "tilebase"), + m_ramtilecfg(*this, "ramtilecfg"), m_spriteaddr(*this, "spriteaddr"), m_spritebase(*this, "spritebase"), m_mainram(*this, "mainram"), @@ -88,6 +116,7 @@ public: m_bank(*this, "bank"), m_palette(*this, "palette"), m_gfxdecode(*this, "gfxdecode"), + m_screen(*this, "screen"), m_tvtype(*this, "TV") { } @@ -154,7 +183,7 @@ private: required_shared_ptr m_palram; required_shared_ptr m_scrollregs; required_shared_ptr m_tilecfg; - required_shared_ptr m_tilebase; + required_shared_ptr m_ramtilecfg; required_shared_ptr m_spriteaddr; required_shared_ptr m_spritebase; required_shared_ptr m_mainram; @@ -162,29 +191,34 @@ private: required_device m_bank; required_device m_palette; required_device m_gfxdecode; + required_device m_screen; required_ioport m_tvtype; uint8_t m_rombank_hi; uint8_t m_rombank_lo; int m_tilerambase; int m_spriterambase; - int m_pagewidth; - int m_pageheight; - int m_bytespertile; + + bitmap_ind8 m_prioritybitmap; uint8_t m_portdir[3]; - void draw_tile(bitmap_ind16 &bitmap, const rectangle &cliprect, int gfxno, int tileno, int base, int palette, int flipx, int flipy, int xpos, int ypos, int transpen, int size); void handle_palette(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void draw_page(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int xbase, int ybase, int size); + + void draw_background_ramlayer(screen_device& screen, bitmap_ind16& bitmap, const rectangle& cliprect); + + void draw_background_tile(bitmap_ind16 &bitmap, const rectangle &cliprect, int bpp, int tileno, int palette, int priority, int flipx, int flipy, int xpos, int ypos, int transpen, int size, int base, int drawfromram); + void draw_background_page(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int ramstart, int ramend, int xbase, int ybase, int size, int bpp, int base, int pagewidth,int pageheight, int bytespertile, int palettepri, int drawfromram); void draw_background(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void draw_sprite_line(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int offset, int count, int pal, int flipx, int flipy, int xpos, int ypos, int gfxno); - void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int drawpri); + void draw_sprite_pix(const rectangle& cliprect, uint16_t* dst, uint8_t* pridst, int realx, int priority, uint8_t pix, uint8_t mask, uint8_t shift, int palette); + void draw_sprite_line(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int offset, int line, int pal, int flipx, int pri, int xpos, int ypos, int bpp); + void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; void radica_eu3a14_state::video_start() { + m_screen->register_screen_bitmap(m_prioritybitmap); } double radica_eu3a14_state::hue2rgb(double p, double q, double t) @@ -236,20 +270,59 @@ void radica_eu3a14_state::handle_palette(screen_device &screen, bitmap_ind16 &bi } } -void radica_eu3a14_state::draw_tile(bitmap_ind16 &bitmap, const rectangle &cliprect, int gfxno, int tileno, int base, int palette, int flipx, int flipy, int xpos, int ypos, int transpen, int size) +void radica_eu3a14_state::draw_background_tile(bitmap_ind16 &bitmap, const rectangle &cliprect, int bpp, int tileno, int palette, int priority, int flipx, int flipy, int xpos, int ypos, int transpen, int size, int base, int drawfromram) { int bppdiv = 1; int baseaddr = base * 256; + + int backtiletype = 0; - switch (gfxno) + if (bpp == 4) // 4bpp selection { - case 0x03: bppdiv = 1; baseaddr += tileno * 256; break; // 16x16 8bpp - case 0x04: bppdiv = 2; baseaddr += tileno * 128; break; // 16x16 4bpp - case 0x05: bppdiv = 1; baseaddr += tileno * 64; break; // 8x8 8bpp - case 0x06: bppdiv = 2; baseaddr += tileno * 64; break; // 8x8 4bpp + backtiletype = 1; // 16x16 4bpp + + if (size == 8) + { + backtiletype = 3; // 8x8 4bpp + } + } + else if (bpp == 8) // 8bpp selection + { + backtiletype = 0; // 16x16 8bpp + + if (size == 8) + { + backtiletype = 2; // 8x8 8bpp + } + + palette &= 0x100; // only top bit valid, as there are only 2 palettes? + } + else // 2bpp? + { + backtiletype = 4; + } + + switch (backtiletype) + { + case 0x00: bppdiv = 1; baseaddr += tileno * 256; break; // 16x16 8bpp + case 0x01: bppdiv = 2; baseaddr += tileno * 128; break; // 16x16 4bpp + case 0x02: bppdiv = 1; baseaddr += tileno * 64; break; // 8x8 8bpp + case 0x03: bppdiv = 2; baseaddr += tileno * 32; break; // 8x8 4bpp + case 0x04: bppdiv = 4; baseaddr += tileno * 64; break; // 16x16 2bpp + default: break; } - const uint8_t *gfxdata = &m_mainregion[baseaddr & 0x3fffff]; + + uint8_t* gfxdata; + + if (drawfromram) + { + gfxdata = &m_mainram[baseaddr & 0x3fff]; + } + else + { + gfxdata = &m_mainregion[baseaddr & 0x3fffff]; + } int xstride = size / bppdiv; @@ -258,6 +331,7 @@ void radica_eu3a14_state::draw_tile(bitmap_ind16 &bitmap, const rectangle &clipr { int realy = ypos + y; uint16_t* dst = &bitmap.pix16(ypos + y); + uint8_t* pridst = &m_prioritybitmap.pix8(ypos + y); for (int x = 0; x < xstride; x++) { @@ -271,7 +345,14 @@ void radica_eu3a14_state::draw_tile(bitmap_ind16 &bitmap, const rectangle &clipr if (realx >= cliprect.min_x && realx <= cliprect.max_x) { if (pix) - dst[realx] = pix; + { + if (pridst[realx] <= priority) + { + dst[realx] = pix | palette; + pridst[realx] = priority; + } + + } } } else if (bppdiv == 2) // 4bpp @@ -280,7 +361,13 @@ void radica_eu3a14_state::draw_tile(bitmap_ind16 &bitmap, const rectangle &clipr if (realx >= cliprect.min_x && realx <= cliprect.max_x) { if (pix & 0xf0) - dst[realx] = (pix & 0xf0) >> 4; + { + if (pridst[realx] <= priority) + { + dst[realx] = ((pix & 0xf0) >> 4) | palette; + pridst[realx] = priority; + } + } } realx++; @@ -288,7 +375,70 @@ void radica_eu3a14_state::draw_tile(bitmap_ind16 &bitmap, const rectangle &clipr if (realx >= cliprect.min_x && realx <= cliprect.max_x) { if (pix & 0x0f) - dst[realx] = pix & 0x0f; + { + if (pridst[realx] <= priority) + { + dst[realx] = (pix & 0x0f) | palette; + pridst[realx] = priority; + } + } + } + } + else if (bppdiv == 4) // 2bpp (hnt3 ram text) + { + int realx = (x * 4) + xpos; + if (realx >= cliprect.min_x && realx <= cliprect.max_x) + { + if (pix & 0xc0) + { + if (pridst[realx] <= priority) + { + dst[realx] = ((pix & 0xc0) >> 6) | palette; + pridst[realx] = priority; + } + } + } + + realx++; + + if (realx >= cliprect.min_x && realx <= cliprect.max_x) + { + if (pix & 0x30) + { + if (pridst[realx] <= priority) + { + dst[realx] = ((pix & 0x30) >> 4) | palette; + pridst[realx] = priority; + } + } + } + + realx++; + + if (realx >= cliprect.min_x && realx <= cliprect.max_x) + { + if (pix & 0x0c) + { + if (pridst[realx] <= priority) + { + dst[realx] = ((pix & 0x0c) >> 2) | palette; + pridst[realx] = priority; + } + } + } + + realx++; + + if (realx >= cliprect.min_x && realx <= cliprect.max_x) + { + if (pix & 0x03) + { + if (pridst[realx] <= priority) + { + dst[realx] = ((pix & 0x03) >> 0) | palette; + pridst[realx] = priority; + } + } } } } @@ -297,131 +447,248 @@ void radica_eu3a14_state::draw_tile(bitmap_ind16 &bitmap, const rectangle &clipr } } -void radica_eu3a14_state::draw_page(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int xbase, int ybase, int size) +void radica_eu3a14_state::draw_background_page(screen_device& screen, bitmap_ind16& bitmap, const rectangle& cliprect, int ramstart, int ramend, int xbase, int ybase, int size, int bpp, int base, int pagewidth, int pageheight, int bytespertile, int palettepri, int drawfromram) { - int gfxno = 0; - int pagesize = m_pagewidth * m_pageheight * 2; + int palette = ((palettepri & 0xf0) >> 4) | ((palettepri & 0x08) << 1); + palette = palette << 4; + int priority = palettepri & 0x07; - int base = (m_tilebase[1] << 8) | m_tilebase[0]; - if (m_tilecfg[2] & 0x04) // 4bpp selection - { - gfxno = 4; // 16x16 4bpp - if (size == 8) - { - gfxno = 6; // 8x8 4bpp - } - } - else // 8bpp selection - { - gfxno = 3; // 16x16 8bpp - - if (size == 8) - { - gfxno = 5; // 8x8 8bpp - } - } int xdraw = xbase; int ydraw = ybase; int count = 0; - for (int i = m_tilerambase + pagesize * which; i < m_tilerambase + pagesize * (which + 1); i += m_bytespertile) + for (int i = ramstart; i < ramend; i += bytespertile) { int tile = 0; - if (m_bytespertile == 2) + int realpalette = palette; + int realpriority = priority; + int realbpp = bpp; + + if (bytespertile == 2) { tile = m_mainram[i + 0] | (m_mainram[i + 1] << 8); } - else if (m_bytespertile == 4) // rad_foot hidden test mode, rad_hnt3 shooting range (not yet correct) + else if (bytespertile == 4) // rad_foot hidden test mode, rad_hnt3 shooting range (not yet correct) { tile = m_mainram[i + 0] | (m_mainram[i + 1] << 8);// | (m_mainram[i + 2] << 16) | | (m_mainram[i + 3] << 24); + + // m_mainram[i + 3] & 0x04 is set in both seen cases, maybe per-tile bpp? + // this would match up with this mode being inline replacements for m_tilecfg[1] (palettepri) and m_tilecfg[2] (bpp); + + int newpalette = ((m_mainram[i + 2] & 0xf0) >> 4) | ((m_mainram[i + 2] & 0x08) << 1); + newpalette = newpalette << 4; + realpalette = newpalette; + realpriority = m_mainram[i + 2] & 0x07; + realbpp = m_mainram[i + 3] & 0x07; + if (realbpp == 0) + realbpp = 8; + } - draw_tile(bitmap, cliprect, gfxno, tile, base, 0, 0, 0, xdraw, ydraw, 0, size); + draw_background_tile(bitmap, cliprect, realbpp, tile, realpalette, realpriority, 0, 0, xdraw, ydraw, 0, size, base, drawfromram); xdraw += size; count++; - if (((count % m_pagewidth) == 0)) + if (((count % pagewidth) == 0)) { - xdraw -= size * m_pagewidth; + xdraw -= size * pagewidth; ydraw += size; } } } +void radica_eu3a14_state::draw_background_ramlayer(screen_device& screen, bitmap_ind16& bitmap, const rectangle& cliprect) +{ + // this register use is questionable + if (m_ramtilecfg[0] & 0x80) + { + int rtm_size;; + int rtm_pagewidth; + int rtm_pageheight; + int rtm_xscroll;; + int rtm_yscroll; + int rtm_bpp; + int rtm_bytespertile = 2; + uint8_t palettepri = m_ramtilecfg[1]; + + rtm_xscroll = 0; + rtm_yscroll = 0; + + // disable layer in shooting gallery for now until we understand it + //if (m_ramtilecfg[5] == 0x06) + // return; + + // force same mode as other tilemap? +#if 0 + if (m_tilecfg[0] & 0x80) + { + rtm_bytespertile = 4; + } + else + { + rtm_bytespertile = 2; + } +#endif + + // this is the gfxbase in ram for all cases seen + int rtm_base = (0x2000 - 0x200) / 256; + + // same as regular layer? + if (m_ramtilecfg[0] & 0x10) + { + rtm_size = 8; + rtm_pagewidth = 32; + rtm_pageheight = 28; + } + else + { + rtm_size = 16; + rtm_pagewidth = 32 / 2; + rtm_pageheight = 28 / 2; + } + + rtm_bpp = m_ramtilecfg[2] & 0x07; + if (rtm_bpp == 0) + rtm_bpp = 8; + + // this is in the same place even when the first tilemap is in 16x16 mode, probably a base register somewhere + int ramstart = m_tilerambase + 0x700; + int ramend = m_tilerambase + 0x700 + 0x700; + + // hack for shooting gallery mode + if (m_ramtilecfg[5] == 0x06) + { + ramstart = 0x3980-0x200; + ramend = 0x3980-0x200 + 0x700; + } + + // normal + draw_background_page(screen, bitmap, cliprect, ramstart, ramend, 0 - rtm_xscroll, 0 - rtm_yscroll, rtm_size, rtm_bpp, rtm_base, rtm_pagewidth, rtm_pageheight, rtm_bytespertile, palettepri, 1); + // wrap x + draw_background_page(screen, bitmap, cliprect, ramstart, ramend, (rtm_size * rtm_pagewidth) + 0 - rtm_xscroll, 0 - rtm_yscroll, rtm_size, rtm_bpp, rtm_base, rtm_pagewidth, rtm_pageheight, rtm_bytespertile, palettepri, 1); + // wrap y + draw_background_page(screen, bitmap, cliprect, ramstart, ramend, 0 - rtm_xscroll, (rtm_size * rtm_pageheight) + 0 - rtm_yscroll, rtm_size, rtm_bpp, rtm_base, rtm_pagewidth, rtm_pageheight, rtm_bytespertile, palettepri, 1); + // wrap x+y + draw_background_page(screen, bitmap, cliprect, ramstart, ramend, (rtm_size * rtm_pagewidth) + 0 - rtm_xscroll, (rtm_size * rtm_pageheight) + 0 - rtm_yscroll, rtm_size, rtm_bpp, rtm_base, rtm_pagewidth, rtm_pageheight, rtm_bytespertile, palettepri, 1); + } +} + + void radica_eu3a14_state::draw_background(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { int xscroll = m_scrollregs[0] | (m_scrollregs[1] << 8); int yscroll = m_scrollregs[2] | (m_scrollregs[3] << 8); + int base = (m_tilecfg[5] << 8) | m_tilecfg[4]; + uint8_t palettepri = m_tilecfg[1]; + + int pagewidth = 1, pageheight = 1; + int bytespertile = 2; int size; // m_tilecfg[0] b-as ?-hh b = bytes per tile s = tilesize / page size? a = always set when tilemaps are in use - check? h = related to page positions, when set uses 2x2 pages? ? = used - // m_tilecfg[1] ---- ---? ? = used foot - // m_tilecfg[2] ---- -B-- B = 4bpp tiles + // m_tilecfg[1] pppp x--? ? = used foot x = used, huntin3 summary (palette bank?) p = palette (used for different stages in huntin3 and the hidden test modes in others) + // m_tilecfg[2] ---- bbbb b = bpp mode (0 = 8bpp) + // m_tilecfg[3] ---- ---- (unused or more gfxbase?) + // m_tilecfg[4] gggg gggg gfxbase (lower bits) + // m_tilecfg[5] gggg gggg gfxbase (upper bits) + + // ramtilecfg appears to be a similar format, except for the other layer with ram base tiles + // however 'a' in m_tilecfg[0] is NOT set + // also m_tilecfg[0] has 0x80 set, which would be 4 bytes per tile, but it isn't? + // the layer seems to be disabled by setting m_tilecfg[0] to 0? if (m_tilecfg[0] & 0x10) { size = 8; - m_pagewidth = 32; - m_pageheight = 28; + pagewidth = 32; + pageheight = 28; } else { size = 16; - m_pagewidth = 16; - m_pageheight = 14; + pagewidth = 16; + pageheight = 14; } if (m_tilecfg[0] & 0x80) { - m_bytespertile = 4; + bytespertile = 4; } else { - m_bytespertile = 2; + bytespertile = 2; } + int bpp = (m_tilecfg[2] & 0x07); + if (bpp == 0) + bpp = 8; + + int ramstart = 0; + int ramend = 0; + + int pagesize = pagewidth * pageheight * 2; + + if (bytespertile == 4) + { + pagesize <<= 1; // shift because we need twice as much ram for this mode + } if ((m_tilecfg[0] & 0x03) == 0x00) // tilemaps arranged as 2x2 pages? { - // normal - draw_page(screen, bitmap, cliprect, 0, 0 - xscroll, 0 - yscroll, size); - draw_page(screen, bitmap, cliprect, 1, (size * m_pagewidth) - xscroll, 0 - yscroll, size); - draw_page(screen, bitmap, cliprect, 2, 0 - xscroll, (size * m_pageheight) - yscroll, size); - draw_page(screen, bitmap, cliprect, 3, (size * m_pagewidth) - xscroll, (size * m_pageheight) - yscroll, size); + ramstart = m_tilerambase + pagesize * 0; + ramend = m_tilerambase + pagesize * 1; - // wrap x - draw_page(screen, bitmap, cliprect, 0, (size * m_pagewidth * 2) + 0 - xscroll, 0 - yscroll, size); - draw_page(screen, bitmap, cliprect, 1, (size * m_pagewidth * 3) - xscroll, 0 - yscroll, size); - draw_page(screen, bitmap, cliprect, 2, (size * m_pagewidth * 2) + 0 - xscroll, (size * m_pageheight) - yscroll, size); - draw_page(screen, bitmap, cliprect, 3, (size * m_pagewidth * 3) - xscroll, (size * m_pageheight) - yscroll, size); + draw_background_page(screen, bitmap, cliprect, ramstart,ramend, 0 - xscroll, 0 - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); // normal + draw_background_page(screen, bitmap, cliprect, ramstart,ramend, (size * pagewidth * 2) + 0 - xscroll, 0 - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); // wrap x + draw_background_page(screen, bitmap, cliprect, ramstart,ramend, 0 - xscroll, (size * pageheight * 2) + 0 - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); // wrap y + draw_background_page(screen, bitmap, cliprect, ramstart,ramend, (size * pagewidth * 2) + 0 - xscroll, (size * pageheight * 2) + 0 - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); // wrap x+y - // wrap y - draw_page(screen, bitmap, cliprect, 0, 0 - xscroll, (size * m_pageheight * 2) + 0 - yscroll, size); - draw_page(screen, bitmap, cliprect, 1, (size * m_pagewidth) - xscroll, (size * m_pageheight * 2) + 0 - yscroll, size); - draw_page(screen, bitmap, cliprect, 2, 0 - xscroll, (size * m_pageheight * 3) - yscroll, size); - draw_page(screen, bitmap, cliprect, 3, (size * m_pagewidth) - xscroll, (size * m_pageheight * 3) - yscroll, size); + ramstart = m_tilerambase + pagesize * 1; + ramend = m_tilerambase + pagesize * 2; - // wrap x+y - draw_page(screen, bitmap, cliprect, 0, (size * m_pagewidth * 2) + 0 - xscroll, (size * m_pageheight * 2) + 0 - yscroll, size); - draw_page(screen, bitmap, cliprect, 1, (size * m_pagewidth * 3) - xscroll, (size * m_pageheight * 2) + 0 - yscroll, size); - draw_page(screen, bitmap, cliprect, 2, (size * m_pagewidth * 2) + 0 - xscroll, (size * m_pageheight * 3) - yscroll, size); - draw_page(screen, bitmap, cliprect, 3, (size * m_pagewidth * 3) - xscroll, (size * m_pageheight * 3) - yscroll, size); + draw_background_page(screen, bitmap, cliprect, ramstart,ramend, (size * pagewidth) - xscroll, 0 - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); // normal + draw_background_page(screen, bitmap, cliprect, ramstart,ramend, (size * pagewidth * 3) - xscroll, 0 - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); // wrap x + draw_background_page(screen, bitmap, cliprect, ramstart,ramend, (size * pagewidth) - xscroll, (size * pageheight * 2) + 0 - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); // wrap y + draw_background_page(screen, bitmap, cliprect, ramstart,ramend, (size * pagewidth * 3) - xscroll, (size * pageheight * 2) + 0 - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); // wrap x+y + + ramstart = m_tilerambase + pagesize * 2; + ramend = m_tilerambase + pagesize * 3; + + draw_background_page(screen, bitmap, cliprect, ramstart,ramend, 0 - xscroll, (size * pageheight) - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); // normal + draw_background_page(screen, bitmap, cliprect, ramstart,ramend, (size * pagewidth * 2) + 0 - xscroll, (size * pageheight) - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); // wrap x + draw_background_page(screen, bitmap, cliprect, ramstart,ramend, 0 - xscroll, (size * pageheight * 3) - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); // wrap y + draw_background_page(screen, bitmap, cliprect, ramstart,ramend, (size * pagewidth * 2) + 0 - xscroll, (size * pageheight * 3) - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); // wrap x+y + + ramstart = m_tilerambase + pagesize * 3; + ramend = m_tilerambase + pagesize * 4; + + draw_background_page(screen, bitmap, cliprect, ramstart,ramend, (size * pagewidth) - xscroll, (size * pageheight) - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); // normal + draw_background_page(screen, bitmap, cliprect, ramstart,ramend, (size * pagewidth * 3) - xscroll, (size * pageheight) - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); // wrap x + draw_background_page(screen, bitmap, cliprect, ramstart,ramend, (size * pagewidth) - xscroll, (size * pageheight * 3) - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0);// wrap y + draw_background_page(screen, bitmap, cliprect, ramstart,ramend, (size * pagewidth * 3) - xscroll, (size * pageheight * 3) - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); // wrap x+y } else if ((m_tilecfg[0] & 0x03) == 0x03) // individual tilemaps? multiple layers? { + // popmessage("m_tilecfg[0] & 0x03 multiple layers config %04x", base); + ramstart = m_tilerambase + pagesize * 0; + ramend = m_tilerambase + pagesize * 1; + // normal - draw_page(screen, bitmap, cliprect, 0, 0 - xscroll, 0 - yscroll, size); + draw_background_page(screen, bitmap, cliprect, ramstart, ramend, 0 - xscroll, 0 - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); // wrap x - draw_page(screen, bitmap, cliprect, 0, (size * m_pagewidth) + 0 - xscroll, 0 - yscroll, size); + draw_background_page(screen, bitmap, cliprect, ramstart, ramend, (size * pagewidth) + 0 - xscroll, 0 - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); // wrap y - draw_page(screen, bitmap, cliprect, 0, 0 - xscroll, (size * m_pageheight) + 0 - yscroll, size); + draw_background_page(screen, bitmap, cliprect, ramstart, ramend, 0 - xscroll, (size * pageheight) + 0 - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); // wrap x+y - draw_page(screen, bitmap, cliprect, 0, (size * m_pagewidth) + 0 - xscroll, (size * m_pageheight) + 0 - yscroll, size); + draw_background_page(screen, bitmap, cliprect, ramstart, ramend, (size * pagewidth) + 0 - xscroll, (size * pageheight) + 0 - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); + + // RAM based tile layer + draw_background_ramlayer(screen, bitmap, cliprect); } else { @@ -430,25 +697,145 @@ void radica_eu3a14_state::draw_background(screen_device &screen, bitmap_ind16 &b } -void radica_eu3a14_state::draw_sprite_line(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int offset, int count, int pal, int flipx, int flipy, int xpos, int ypos, int gfxno) +void radica_eu3a14_state::draw_sprite_pix(const rectangle& cliprect, uint16_t* dst, uint8_t* pridst, int realx, int priority, uint8_t pix, uint8_t mask, uint8_t shift, int palette) { - int tileno = offset + count; - gfx_element *gfx = m_gfxdecode->gfx(gfxno); - gfx->transpen(bitmap, cliprect, tileno, pal, flipx, flipy, xpos, ypos, 0); + if (realx >= cliprect.min_x && realx <= cliprect.max_x) + { + if (pridst[realx] <= priority) + { + if (pix & mask) + { + dst[realx] = ((pix & mask) >> shift) | palette; + pridst[realx] = priority; + } + } + } +} + +void radica_eu3a14_state::draw_sprite_line(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int offset, int line, int palette, int flipx, int priority, int xpos, int ypos, int bpp) +{ + offset = offset * 2; + + int bppdiv = 0; + + switch (bpp) + { + default: + case 0x8: + case 0x7: + case 0x6: + case 0x5: + offset += line * 8; + bppdiv = 1; + break; + + case 0x4: + case 0x3: + offset += line * 4; + bppdiv = 2; + break; + + case 0x2: + offset += line * 2; + bppdiv = 4; + break; + + case 0x1: + offset += line * 1; + bppdiv = 8; + break; + } + + uint8_t* gfxdata = &m_mainregion[offset & 0x3fffff]; + + if (ypos >= cliprect.min_y && ypos <= cliprect.max_y) + { + uint16_t* dst = &bitmap.pix16(ypos); + uint8_t* pridst = &m_prioritybitmap.pix8(ypos); + + int count = 0; + for (int x = 0; x < 8/bppdiv;x++) + { + if (bpp == 8) + { + int pix,mask,shift; + if (flipx) { pix = gfxdata[7 - count]; } else { pix = gfxdata[count]; } + int realx = xpos + x * 1; + if (flipx) { mask = 0xff; shift = 0; } else { mask = 0xff; shift = 0; } + draw_sprite_pix(cliprect, dst, pridst, realx, priority, pix, mask, shift, palette); + } + else if (bpp == 7) + { + int pix,mask,shift; + if (flipx) { pix = gfxdata[7 - count]; } else { pix = gfxdata[count]; } + int realx = xpos + x * 1; + // stride doesn't change, data isn't packed, just don't use top bit + if (flipx) { mask = 0x7f; shift = 0; } else { mask = 0x7f; shift = 0; } + draw_sprite_pix(cliprect, dst, pridst, realx, priority, pix, mask, shift, palette); + } + else if (bpp == 6) + { + popmessage("6bpp sprite\n"); + } + else if (bpp == 5) + { + popmessage("5bpp sprite\n"); + } + else if (bpp == 4) + { + int pix,mask,shift; + if (flipx) { pix = gfxdata[3 - count]; } else { pix = gfxdata[count]; } + int realx = xpos + x * 2; + if (flipx) { mask = 0x0f; shift = 0; } else { mask = 0xf0; shift = 4; } + draw_sprite_pix(cliprect, dst, pridst, realx, priority, pix, mask, shift, palette); + realx++; + if (flipx) { mask = 0xf0; shift = 4; } else { mask = 0x0f; shift = 0; } + draw_sprite_pix(cliprect, dst, pridst, realx, priority, pix, mask, shift, palette); + } + else if (bpp == 3) + { + popmessage("3bpp sprite\n"); + } + else if (bpp == 2) + { + int pix,mask,shift; + if (flipx) { pix = gfxdata[1 - count]; } else { pix = gfxdata[count]; } + int realx = xpos + x * 4; + if (flipx) { mask = 0x03; shift = 0; } else { mask = 0xc0; shift = 6; } + draw_sprite_pix(cliprect, dst, pridst, realx, priority, pix, mask, shift, palette); + realx++; + if (flipx) { mask = 0x0c; shift = 2; } else { mask = 0x30; shift = 4; } + draw_sprite_pix(cliprect, dst, pridst, realx, priority, pix, mask, shift, palette); + realx++; + if (flipx) { mask = 0x30; shift = 4; } else { mask = 0x0c; shift = 2; } + draw_sprite_pix(cliprect, dst, pridst, realx, priority, pix, mask, shift, palette); + realx++; + if (flipx) { mask = 0xc0; shift = 6; } else { mask = 0x03; shift = 0; } + draw_sprite_pix(cliprect, dst, pridst, realx, priority, pix, mask, shift, palette); + } + else if (bpp == 1) + { + popmessage("1bpp sprite\n"); + } + + count++; + } + } + } -void radica_eu3a14_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int drawpri) +void radica_eu3a14_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { // first 4 sprite entries seem to be garbage sprites, so we start at 0x20 // likely we're just interpreting them wrong and they're used for blanking things or clipping? - for (int i = m_spriterambase; i < m_spriterambase + 0x7e0; i += 8) + for (int i = m_spriterambase; i < m_spriterambase + 0x800; i += 8) { /* +0 e-ff hhww flip yx, enable, height, width +1 yyyy yyyy ypos +2 xxxx xxxx xpos - +3 pppp ---- palette + +3 pppp Pzzz p = palette, P = upper palette bank, z = priority +4 tttt tttt tile bits +5 tttt tttt +6 --TT TPPP TTT = tile bank PPP = bpp select (+more?) @@ -459,7 +846,7 @@ void radica_eu3a14_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitm int attr = m_mainram[i + 0]; int y = m_mainram[i + 1]; int x = m_mainram[i + 2]; - int attr2 = m_mainram[i + 3]; + int palettepri = m_mainram[i + 3]; int h = attr & 0x0c; int w = attr & 0x03; @@ -468,16 +855,11 @@ void radica_eu3a14_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitm int height = 0; int width = 0; - int pal = attr2 >> 4; - int pri = attr2 & 0x07; + int pri = palettepri & 0x07; - if (pri != drawpri) - continue; - - // no idea - if (attr2 & 0x08) - pal += 0x10; + int palette = ((palettepri & 0xf0) >> 4) | ((palettepri & 0x08) << 1); + palette = palette << 4; switch (h) { @@ -501,46 +883,20 @@ void radica_eu3a14_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitm height *= 4; - x -= 8; + x -= 6; y -= 4; int offset = ((m_mainram[i + 5] << 8) + (m_mainram[i + 4] << 0)); int extra = m_mainram[i + 6]; - int gfxno = 1; int spritebase = (m_spritebase[1] << 8) | m_spritebase[0]; offset += (extra & 0xf8) << 13; - extra &= ~0xf8; offset += spritebase << 7; - switch (extra & 0x07) - { - case 0x00: // 8bpp - case 0x07: // 8bpp - offset >>= 1; - gfxno = 2; - break; - - case 0x02: // 2bpp - offset <<= 1; - gfxno = 0; - pal = 0; - break; - - case 0x04: // 4bpp - gfxno = 1; - break; - - case 0x01: // unknowns - case 0x03: - case 0x05: - case 0x06: - pal = machine().rand(); - break; - } - - offset = offset >> 1; + int bpp = extra & 0x07; + if (bpp == 0) + bpp = 8; if (attr & 0x80) { @@ -553,7 +909,7 @@ void radica_eu3a14_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitm { int xoff = flipx ? (((width - 1) * 8) - (xx * 8)) : (xx * 8); - draw_sprite_line(screen, bitmap, cliprect, offset, count, pal, flipx, flipy, x + xoff, y + yoff, gfxno); + draw_sprite_line(screen, bitmap, cliprect, offset, count, palette, flipx, pri, x + xoff, y + yoff, bpp); count++; } } @@ -568,14 +924,12 @@ uint32_t radica_eu3a14_state::screen_update(screen_device &screen, bitmap_ind16 m_spriterambase = (m_spriteaddr[0] * 0x200) - 0x200; bitmap.fill(0, cliprect); + m_prioritybitmap.fill(0, cliprect); handle_palette(screen, bitmap, cliprect); draw_background(screen, bitmap, cliprect); - for (int i = 0; i < 8; i++) - { - draw_sprites(screen, bitmap, cliprect, i); - } + draw_sprites(screen, bitmap, cliprect); return 0; } @@ -735,19 +1089,40 @@ void radica_eu3a14_state::radica_eu3a14_map(address_map &map) map(0x50a8, 0x50a8).r("6ch_sound", FUNC(radica6502_sound_device::radicasi_50a8_r)); map(0x50a9, 0x50a9).nopw(); // startup, read foot - // video regs are here this time + // video regs are in the 51xx range + + // huntin'3 seems to use some registers for a windowing / highlight effect on the trophy room names and gallery mode timer?? + // 5100 - 0x0f when effect is enabled, 0x00 otherwise? + // 5101 - 0x0e in both modes + // 5102 - 0x86 in both modes + // 5103 - 0x0e in tropy room (left?) / 0x2a in gallery mode (left position?) + // 5104 - trophy room window / highlight top, move with cursor / 0xbf in gallery mode (top?) + // 5105 - 0x52 in trophy room (right?) / counts from 0xa1 to 0x2a (right position?) + // 5106 - trophy room window / highlight bottom, move with cursor / 0xcb in gallery mode (bottom?) + // 5107 - 0x00 + // 5108 - 0x04 in both modes + // 5109 - 0xc2 in both modes + map(0x5100, 0x5100).ram(); map(0x5101, 0x5101).ram(); map(0x5102, 0x5102).ram(); map(0x5103, 0x5106).ram(); map(0x5107, 0x5107).ram(); // on transitions, maybe layer disables? - map(0x5110, 0x5112).ram().share("tilecfg"); - map(0x5113, 0x5113).ram(); // written with tilebase? - map(0x5114, 0x5115).ram().share("tilebase"); - map(0x5116, 0x5117).ram(); - map(0x5121, 0x5124).ram().share("scrollregs"); + map(0x5108, 0x5109).ram(); // hnt3, frequently rewrites same values, maybe something to do with raster irq? - map(0x5140, 0x5140).ram(); + // layer specific regs? + map(0x5110, 0x5115).ram().share("tilecfg"); + map(0x5116, 0x5117).ram(); + map(0x511a, 0x511e).ram(); // hnt3 + + map(0x5121, 0x5124).ram().share("scrollregs"); + map(0x5125, 0x512c).ram(); // hnt3 + + // layer specific regs? + map(0x5140, 0x5145).ram().share("ramtilecfg"); // hnt3 + map(0x5148, 0x514b).ram(); // hnt3 + + // sprite specific regs? map(0x5150, 0x5150).ram().share("spriteaddr"); // startup 01 bb3,gtg,rsg, (na) foot 0c hnt3 map(0x5151, 0x5152).ram().share("spritebase"); map(0x5153, 0x5153).ram(); // startup @@ -791,7 +1166,6 @@ WRITE8_MEMBER(radica_eu3a14_state::dma_trigger_w) } -// hold back/backspin and left during power on for test mode static INPUT_PORTS_START( rad_gtg ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) @@ -848,6 +1222,7 @@ static INPUT_PORTS_START( rad_gtg ) PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END + static INPUT_PORTS_START( rad_rsg ) // base unit just has 4 directions + enter and a sensor to swing the club over PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) // aiming @@ -928,11 +1303,11 @@ static INPUT_PORTS_START( rad_rsgp ) PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END -// hold enter and left during power on for test mode + static INPUT_PORTS_START( radica_foot ) PORT_START("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) // enter? PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) @@ -1077,8 +1452,8 @@ INPUT_PORTS_END static INPUT_PORTS_START( radica_bask ) PORT_START("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_DIPNAME( 0x08, 0x08, "IN0" ) PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) @@ -1254,7 +1629,7 @@ void radica_eu3a14_state::machine_reset() m_portdir[1] = 0x00; m_portdir[2] = 0x00; - m_spriteaddr[0] = 0x14; // ?? rad_foot never writes, other games seem to use it to se sprite location + m_spriteaddr[0] = 0x14; // ?? rad_foot never writes, other games seem to use it to set sprite location } @@ -1288,39 +1663,6 @@ INTERRUPT_GEN_MEMBER(radica_eu3a14_state::interrupt) } -static const gfx_layout helper8x1x2_layout = -{ - 8,1, - RGN_FRAC(1,1), - 2, - { STEP2(0,1) }, - { STEP8(0,2) }, - { 0 }, - 8 * 2 -}; - -static const gfx_layout helper8x1x4_layout = -{ - 8,1, - RGN_FRAC(1,1), - 4, - { STEP4(0,1) }, - { STEP8(0,4) }, - { 0 }, - 8 * 4 -}; - -static const gfx_layout helper8x1x8_layout = -{ - 8,1, - RGN_FRAC(1,1), - 8, - { STEP8(0,1) }, - { STEP8(0,8) }, - { 0 }, - 8 * 8 -}; - // background static const gfx_layout helper16x16x8_layout = { @@ -1329,7 +1671,7 @@ static const gfx_layout helper16x16x8_layout = 8, { STEP8(0,1) }, { STEP16(0,8) }, - { STEP16(0,16*8) }, + { STEP16(0,16*8) }, 16 * 16 * 8 }; @@ -1340,7 +1682,7 @@ static const gfx_layout helper16x16x4_layout = 4, { STEP4(0,1) }, { STEP16(0,4) }, - { STEP16(0,16*4) }, + { STEP16(0,16*4) }, 16 * 16 * 4 }; @@ -1351,7 +1693,7 @@ static const gfx_layout helper8x8x8_layout = 8, { STEP8(0,1) }, { STEP8(0,8) }, - { STEP8(0,8*8) }, + { STEP8(0,8*8) }, 8 * 8 * 8 }; @@ -1368,10 +1710,7 @@ static const gfx_layout helper8x8x4_layout = static GFXDECODE_START( gfx_helper ) - GFXDECODE_ENTRY( "maincpu", 0, helper8x1x2_layout, 0x0, 128 ) - GFXDECODE_ENTRY( "maincpu", 0, helper8x1x4_layout, 0x0, 32 ) - GFXDECODE_ENTRY( "maincpu", 0, helper8x1x8_layout, 0x0, 2 ) - // standard decodes + // dummy standard decodes to see background tiles, not used for drawing GFXDECODE_ENTRY( "maincpu", 0, helper16x16x8_layout, 0x0, 2 ) GFXDECODE_ENTRY( "maincpu", 0, helper16x16x4_layout, 0x0, 32 ) GFXDECODE_ENTRY( "maincpu", 0, helper8x8x8_layout, 0x0, 2 ) @@ -1482,7 +1821,7 @@ ROM_END ROM_START( rad_hnt3p ) ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASE00 ) - ROM_LOAD( "huntin3.bin", 0x000000, 0x400000, CRC(c8e3e40b) SHA1(81eb16ac5ab6d93525fcfadbc6703b2811d7de7f) ) + ROM_LOAD( "huntin3.bin", 0x000000, 0x400000, CRC(c8e3e40b) SHA1(81eb16ac5ab6d93525fcfadbc6703b2811d7de7f) ) ROM_END ROM_START( rad_bask ) @@ -1498,6 +1837,7 @@ ROM_END CONS( 2006, rad_gtg, 0, 0, radica_eu3a14_adc, rad_gtg, radica_eu3a14_state, init_rad_gtg, "Radica / FarSight Studios (licensed from Incredible Technologies)", "Golden Tee Golf: Home Edition", MACHINE_NOT_WORKING ) CONS( 2005, rad_rsg, 0, 0, radica_eu3a14, rad_rsg, radica_eu3a14_state, init_rad_gtg, "Radica / FarSight Studios", "Play TV Real Swing Golf", MACHINE_NOT_WORKING ) +// some Connectv branded Real Swing Golf units have a language selection, so there are likely other PAL revisions of this CONS( 2005, rad_rsgp, rad_rsg, 0, radica_eu3a14p, rad_rsgp, radica_eu3a14_state, init_rad_gtg, "Radica / FarSight Studios", "Connectv Real Swing Golf", MACHINE_NOT_WORKING ) // also has a Connectv Real Soccer logo in the roms, apparently unused, maybe that was to be the US title (without the logo being changed to Play TV) but Play TV Soccer ended up being a different game licensed from Epoch instead. diff --git a/src/mame/drivers/elwro800.cpp b/src/mame/drivers/elwro800.cpp index 2029f99e877..660a83dff53 100644 --- a/src/mame/drivers/elwro800.cpp +++ b/src/mame/drivers/elwro800.cpp @@ -266,7 +266,7 @@ READ8_MEMBER(elwro800_state::elwro800jr_io_r) /* cassette input from wav */ if (m_cassette->input() > 0.0038 ) { - data &= ~0x40; + data |= 0x40; } } else diff --git a/src/mame/drivers/galastrm.cpp b/src/mame/drivers/galastrm.cpp index cff62bb8df1..8ab7c33347c 100644 --- a/src/mame/drivers/galastrm.cpp +++ b/src/mame/drivers/galastrm.cpp @@ -158,26 +158,15 @@ static const gfx_layout tile16x16_layout = 16,16, /* 16*16 sprites */ RGN_FRAC(1,1), 4, /* 4 bits per pixel */ - { STEP4(0,8) }, - { STEP8(8*4,1), STEP8(0,1) }, - { STEP16(0,8*4*2) }, + { STEP4(0,16) }, + { STEP16(0,1) }, + { STEP16(0,16*4) }, 64*16 /* every sprite takes 128 consecutive bytes */ }; -static const gfx_layout charlayout = -{ - 16,16, /* 16*16 characters */ - RGN_FRAC(1,1), - 4, /* 4 bits per pixel */ - { STEP4(0,1) }, - { STEP8(7*4,-4), STEP8(15*4,-4) }, - { STEP16(0,16*4) }, - 128*8 /* every sprite takes 128 consecutive bytes */ -}; - static GFXDECODE_START( gfx_galastrm ) - GFXDECODE_ENTRY( "gfx2", 0x0, tile16x16_layout, 0, 4096 ) - GFXDECODE_ENTRY( "gfx1", 0x0, charlayout, 0, 4096 ) + GFXDECODE_ENTRY( "sprites", 0x0, tile16x16_layout, 0, 4096/16 ) + GFXDECODE_ENTRY( "tc0480scp", 0x0, gfx_16x16x4_packed_lsb, 0, 4096/16 ) GFXDECODE_END @@ -252,15 +241,15 @@ ROM_START( galastrm ) ROM_LOAD16_BYTE( "c99_23.ic8", 0x100000, 0x20000, CRC(5718ee92) SHA1(33cfa60c5bceb1525498f27b598067d2dc620431) ) ROM_LOAD16_BYTE( "c99_22.ic7", 0x100001, 0x20000, CRC(b90f7c42) SHA1(e2fa9ee10ad61ae1a672c3357c0072b79ec7fbcb) ) - ROM_REGION( 0x200000, "gfx1", 0 ) - ROM_LOAD32_WORD_SWAP( "c99-05.ic1", 0x000002, 0x100000, CRC(a91ffba4) SHA1(467af9646ddad5fbb520b6bc13517ed4deacf479) ) /* SCR 16x16 tiles */ - ROM_LOAD32_WORD_SWAP( "c99-06.ic2", 0x000000, 0x100000, CRC(812ed3ae) SHA1(775904dd42643d0e3a30890590d5f8eac1fe78db) ) + ROM_REGION( 0x200000, "tc0480scp", 0 ) + ROM_LOAD32_WORD( "c99-05.ic1", 0x000000, 0x100000, CRC(a91ffba4) SHA1(467af9646ddad5fbb520b6bc13517ed4deacf479) ) /* SCR 16x16 tiles */ + ROM_LOAD32_WORD( "c99-06.ic2", 0x000002, 0x100000, CRC(812ed3ae) SHA1(775904dd42643d0e3a30890590d5f8eac1fe78db) ) - ROM_REGION( 0x400000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "c99-02.ic50", 0x000000, 0x100000, CRC(81e9fc6f) SHA1(4495a7d130b755b5a48eaa814d884d6bb8243bcb) ) /* OBJ 16x16 tiles */ - ROM_LOAD32_BYTE( "c99-01.ic51", 0x000001, 0x100000, CRC(9dda1267) SHA1(c639ba064496dcadf5f1e55332a12bb442e9dc86) ) - ROM_LOAD32_BYTE( "c99-04.ic66", 0x000002, 0x100000, CRC(a681760f) SHA1(23d4fc7eb778c8a25c4bc7cee1d0c8cdd828a996) ) - ROM_LOAD32_BYTE( "c99-03.ic67", 0x000003, 0x100000, CRC(a2807a27) SHA1(977e395ea2ab2fb82807d3cf5fe5f1dbbde99da0) ) + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "c99-02.ic50", 0x000000, 0x100000, CRC(81e9fc6f) SHA1(4495a7d130b755b5a48eaa814d884d6bb8243bcb) ) /* OBJ 16x16 tiles */ + ROM_LOAD64_WORD_SWAP( "c99-01.ic51", 0x000002, 0x100000, CRC(9dda1267) SHA1(c639ba064496dcadf5f1e55332a12bb442e9dc86) ) + ROM_LOAD64_WORD_SWAP( "c99-04.ic66", 0x000004, 0x100000, CRC(a681760f) SHA1(23d4fc7eb778c8a25c4bc7cee1d0c8cdd828a996) ) + ROM_LOAD64_WORD_SWAP( "c99-03.ic67", 0x000006, 0x100000, CRC(a2807a27) SHA1(977e395ea2ab2fb82807d3cf5fe5f1dbbde99da0) ) ROM_REGION16_LE( 0x80000, "sprmaprom", 0 ) ROM_LOAD16_WORD( "c99-11.ic90", 0x00000, 0x80000, CRC(26a6926c) SHA1(918860e2829131e9ecfe983b2ae3e49e1c9ecd72) ) /* STY, spritemap */ diff --git a/src/mame/drivers/mcr.cpp b/src/mame/drivers/mcr.cpp index 7ffb68a44cd..1b56fa9afcf 100644 --- a/src/mame/drivers/mcr.cpp +++ b/src/mame/drivers/mcr.cpp @@ -621,7 +621,8 @@ WRITE8_MEMBER(mcr_state::dotron_op4_w) /* bit 4 = SEL0 (J1-8) on squawk n talk board */ /* bits 3-0 = MD3-0 connected to squawk n talk (J1-4,3,2,1) */ - m_squawk_n_talk->write(space, offset, data); + m_squawk_n_talk->sound_select(machine().dummy_space(), offset, data & 0x0f); + m_squawk_n_talk->sound_int(BIT(data, 4)); } @@ -650,7 +651,8 @@ WRITE8_MEMBER(mcr_nflfoot_state::op4_w) /* bit 4 = SEL0 (J1-8) on squawk n talk board */ /* bits 3-0 = MD3-0 connected to squawk n talk (J1-4,3,2,1) */ - m_squawk_n_talk->write(space, offset, data); + m_squawk_n_talk->sound_select(machine().dummy_space(), offset, data & 0x0f); + m_squawk_n_talk->sound_int(BIT(data, 4)); } @@ -1861,7 +1863,7 @@ void mcr_state::mcr_91490_snt(machine_config &config) mcr_91490(config); /* basic machine hardware */ - MIDWAY_SQUAWK_N_TALK(config, m_squawk_n_talk); + BALLY_SQUAWK_N_TALK(config, m_squawk_n_talk); m_squawk_n_talk->add_route(ALL_OUTPUTS, "lspeaker", 1.0); m_squawk_n_talk->add_route(ALL_OUTPUTS, "rspeaker", 1.0); } diff --git a/src/mame/drivers/mindset.cpp b/src/mame/drivers/mindset.cpp new file mode 100644 index 00000000000..eae34379647 --- /dev/null +++ b/src/mame/drivers/mindset.cpp @@ -0,0 +1,112 @@ +// license:BSD-3-Clause +// copyright-holders:Olivier Galibert + +#include "emu.h" +#include "cpu/i86/i186.h" +#include "cpu/mcs48/mcs48.h" +#include "imagedev/floppy.h" +#include "machine/upd765.h" + +#include "screen.h" +#include "speaker.h" + +class mindset_state: public driver_device +{ +public: + mindset_state(const machine_config &mconfig, device_type type, const char *tag); + virtual ~mindset_state() = default; + + void mindset(machine_config &config); + +protected: + required_device m_maincpu; + required_device m_syscpu, m_soundcpu; + required_device m_screen; + required_shared_ptr m_vram; + + void maincpu_mem(address_map &map); + void maincpu_io(address_map &map); + + u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); +}; + +mindset_state::mindset_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu"), + m_syscpu(*this, "syscpu"), + m_soundcpu(*this, "soundcpu"), + m_screen(*this, "screen"), + m_vram(*this, "vram") +{ +} + +u32 mindset_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +{ + static const u32 pal[4] = { 0x000000, 0x555555, 0xaaaaaa, 0xffffff }; + + for(u32 y=0; y<200; y++) { + // Interleaved + const u16 *src = m_vram + 40*(y >> 1) + 4096*(y & 1); + u32 *dest = &bitmap.pix32(y); + for(u32 x=0; x<320; x+=8) { + u16 sv = *src++; + *dest++ = pal[(sv >> 6) & 3]; + *dest++ = pal[(sv >> 4) & 3]; + *dest++ = pal[(sv >> 2) & 3]; + *dest++ = pal[(sv >> 0) & 3]; + *dest++ = pal[(sv >> 14) & 3]; + *dest++ = pal[(sv >> 12) & 3]; + *dest++ = pal[(sv >> 10) & 3]; + *dest++ = pal[(sv >> 8) & 3]; + } + } + return 0; +} + + +void mindset_state::maincpu_mem(address_map &map) +{ + map(0x00000, 0x07fff).ram(); + map(0xb8000, 0xbffff).ram().share("vram"); + map(0xf8000, 0xfffff).rom().region("maincpu", 0); +} + +void mindset_state::maincpu_io(address_map &map) +{ +} + +void mindset_state::mindset(machine_config &config) +{ + I80186(config, m_maincpu, 6000000); + m_maincpu->set_addrmap(AS_PROGRAM, &mindset_state::maincpu_mem); + m_maincpu->set_addrmap(AS_IO, &mindset_state::maincpu_io); + + I8042(config, m_syscpu, 6000000); + + I8042(config, m_soundcpu, 6000000); + + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(320, 200); + m_screen->set_visarea(0, 319, 0, 199); + m_screen->set_screen_update(FUNC(mindset_state::screen_update)); +} + +static INPUT_PORTS_START(mindset) +INPUT_PORTS_END + +ROM_START(mindset) + ROM_REGION(0x8000, "maincpu", 0) + ROM_LOAD16_BYTE("1.7_lo.u60", 0, 0x4000, CRC(00474dc1) SHA1(676f30f170c14174dbff3b5cbf98d0f23472b7c4)) + ROM_LOAD16_BYTE("1.7_hi.u59", 1, 0x4000, CRC(1434af10) SHA1(39105eacdd7ddc13e449e2c32743e828bef33595)) + + ROM_REGION(0x0800, "syscpu", 0) + ROM_LOAD("253002-001.u17", 0, 0x800, CRC(69da82c9) SHA1(2f0bf5b134dc703cbc72e0c6df5b7beda1b39e70)) + + ROM_REGION(0x0800, "soundcpu", 0) + ROM_LOAD("253006-001.u16", 0, 0x800, CRC(7bea5edd) SHA1(30cdc0dedaa5246f4952df452a99ca22e3cd0636)) +ROM_END + +COMP( 1984, mindset, 0, 0, mindset, mindset, mindset_state, empty_init, "Mindset Corporation", "Mindset Video Production System", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) + diff --git a/src/mame/drivers/mtx.cpp b/src/mame/drivers/mtx.cpp index e322d4ab9c2..a62e17814fd 100644 --- a/src/mame/drivers/mtx.cpp +++ b/src/mame/drivers/mtx.cpp @@ -10,7 +10,6 @@ TODO: - - cassette - FDX floppy - HDX hard disk - HRX high resolution graphics @@ -260,9 +259,14 @@ static const z80_daisy_config rs128_daisy_chain[] = TIMER_DEVICE_CALLBACK_MEMBER(mtx_state::cassette_tick) { - int data = ((m_cassette)->input() > +0.0) ? 0 : 1; + bool cass_ws = (m_cassette->input() > +0.04) ? 1 : 0; - m_z80ctc->trg3(data); + if (cass_ws != m_cassold) + { + m_cassold = cass_ws; + m_z80ctc->trg3(1); + m_z80ctc->trg3(0); // this causes interrupt + } } /*------------------------------------------------- diff --git a/src/mame/drivers/nforcepc.cpp b/src/mame/drivers/nforcepc.cpp index 154857f3be7..e1fff78311b 100644 --- a/src/mame/drivers/nforcepc.cpp +++ b/src/mame/drivers/nforcepc.cpp @@ -26,6 +26,8 @@ #include "machine/pci.h" #include "machine/pci-ide.h" #include "machine/intelfsh.h" +#include "machine/atapicdr.h" +#include "machine/idehd.h" #include "includes/xbox_pci.h" #include "includes/nforcepc.h" @@ -53,6 +55,12 @@ static const uint8_t test_spd_data[] = { }; #endif +void nforcepc_ata_devices(device_slot_interface &device) +{ + device.option_add("hdd", IDE_HARDDISK); + device.option_add("cdrom", ATAPI_CDROM); +} + /* Pci devices */ @@ -64,10 +72,16 @@ DEFINE_DEVICE_TYPE(CRUSH11, crush11_host_device, "crush11", "NVIDIA Corporation void crush11_host_device::config_map(address_map &map) { pci_host_device::config_map(map); + map(0x10, 0x27).rw(FUNC(pci_device::address_base_r), FUNC(pci_device::address_base_w)); map(0x84, 0x87).rw(FUNC(crush11_host_device::ram_size_r), FUNC(crush11_host_device::ram_size_w)); map(0xf0, 0xf0).rw(FUNC(crush11_host_device::unknown_r), FUNC(crush11_host_device::unknown_w)); } +READ8_MEMBER(crush11_host_device::header_type_r) +{ + return 0x80; // from lspci dump +} + crush11_host_device::crush11_host_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : pci_host_device(mconfig, CRUSH11, tag, owner, clock) , cpu(*this, finder_base::DUMMY_TAG) @@ -79,6 +93,7 @@ crush11_host_device::crush11_host_device(const machine_config &mconfig, const ch void crush11_host_device::device_start() { pci_host_device::device_start(); + set_multifunction_device(true); memory_space = &cpu->space(AS_DATA); io_space = &cpu->space(AS_IO); @@ -88,7 +103,7 @@ void crush11_host_device::device_start() io_window_start = 0; io_window_end = 0xffff; io_offset = 0; - status = 0x0010; + status = 0x00b0; } void crush11_host_device::reset_all_mappings() @@ -172,9 +187,11 @@ void crush11_memory_device::device_start() device_t *r = owner()->subdevice("00.0"); pci_device::device_start(); + set_multifunction_device(true); ram.resize(ddr_ram_size * 1024 * 1024 / 4); host = dynamic_cast(r); ram_space = host->get_cpu_space(AS_PROGRAM); + status = 0x0020; } void crush11_memory_device::device_reset() @@ -703,13 +720,13 @@ void nforcepc_state::nforcepc(machine_config &config) maincpu.set_addrmap(AS_PROGRAM, &nforcepc_state::nforce_map); maincpu.set_addrmap(AS_IO, &nforcepc_state::nforce_map_io); maincpu.set_irq_acknowledge_callback(FUNC(nforcepc_state::irq_callback)); - //maincpu.smiact().set("pci:01.0", FUNC(i82439hx_host_device::smi_act_w)); + //maincpu.smiact().set("pci:01.0", FUNC(???_host_device::smi_act_w)); PCI_ROOT(config, ":pci", 0); CRUSH11(config, ":pci:00.0", 0, "maincpu", "bios"); // 10de:01a4 NVIDIA Corporation nForce CPU bridge - CRUSH11_MEMORY(config, ":pci:00.1", 0, 2); /* 10de:01ac NVIDIA Corporation nForce 220/420 Memory Controller - 10de:01ad NVIDIA Corporation nForce 220/420 Memory Controller - 10de:01ab NVIDIA Corporation nForce 420 Memory Controller (DDR)*/ + CRUSH11_MEMORY(config, ":pci:00.1", 0, 2); // 10de:01ac NVIDIA Corporation nForce 220/420 Memory Controller + // 10de:01ad NVIDIA Corporation nForce 220/420 Memory Controller + // 10de:01ab NVIDIA Corporation nForce 420 Memory Controller (DDR) mcpx_isalpc_device &isa(MCPX_ISALPC(config, ":pci:01.0", 0, 0x10430c11)); // 10de:01b2 NVIDIA Corporation nForce ISA Bridge (LPC bus) isa.smi().set_inputline(":maincpu", INPUT_LINE_SMI); isa.boot_state_hook().set(FUNC(nforcepc_state::boot_state_award_w)); @@ -725,20 +742,21 @@ void nforcepc_state::nforcepc(machine_config &config) AS99127F(config, ":pci:01.1:12d", 0); AS99127F_SENSOR2(config, ":pci:01.1:148", 0); AS99127F_SENSOR3(config, ":pci:01.1:149", 0); + MCPX_OHCI(config, ":pci:02.0", 0); // 10de:01c2 NVIDIA Corporation nForce USB Controller + // .interrupt_handler().set(FUNC(nforcepc_state::ohci_usb_interrupt_changed)); + MCPX_OHCI(config, ":pci:03.0", 0); // 10de:01c2 NVIDIA Corporation nForce USB Controller + MCPX_ETH(config, ":pci:04.0", 0); // 10de:01c3 NVIDIA Corporation nForce Ethernet Controller + MCPX_APU(config, ":pci:05.0", 0, m_maincpu); // 10de:01b0 NVIDIA Corporation nForce Audio Processing Unit + MCPX_AC97_AUDIO(config, ":pci:06.0", 0); // 10de:01b1 NVIDIA Corporation nForce AC'97 Audio Controller + PCI_BRIDGE(config, ":pci:08.0", 0, 0x10de01b8, 0); // 10de:01b8 NVIDIA Corporation nForce PCI-to-PCI bridge + // 10ec:8139 Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (behind bridge) + MCPX_IDE(config, ":pci:09.0", 0); // 10de:01bc NVIDIA Corporation nForce IDE + /* subdevice(":pci:09.0:ide")->options(nforcepc_ata_devices, "hdd", "cdrom", true); + .interrupt_handler().set(FUNC(nforcepc_state::ide_interrupt_changed)); + ide.irq_pri().set(":pci:01.0", FUNC(mcpx_isalpc_device::pc_irq14_w)); + ide.irq_sec().set(":pci:01.0", FUNC(mcpx_isalpc_device::pc_irq15_w));*/ + NV2A_AGP(config, ":pci:1e.0", 0, 0x10de01b7, 0); // 10de:01b7 NVIDIA Corporation nForce AGP to PCI Bridge SST_49LF020(config, "bios", 0); - /*10de:01c2 NVIDIA Corporation nForce USB Controller - 10de:01c2 NVIDIA Corporation nForce USB Controller - 10de:01b0 NVIDIA Corporation nForce Audio Processing Unit - 10de:01b1 NVIDIA Corporation nForce AC'97 Audio Controller - 10de:01b8 NVIDIA Corporation nForce PCI-to-PCI bridge - 10de:01bc NVIDIA Corporation nForce IDE - 10de:01b7 NVIDIA Corporation nForce AGP to PCI Bridge - */ - /* maincpu.smiact().set("pci:00.0", FUNC(i82439hx_host_device::smi_act_w)); - - i82371sb_ide_device &ide(I82371SB_IDE(config, ":pci:07.1", 0)); - ide.irq_pri().set(":pci:07.0", FUNC(i82371sb_isa_device::pc_irq14_w)); - ide.irq_sec().set(":pci:07.0", FUNC(i82371sb_isa_device::pc_irq15_w));*/ } ROM_START(nforcepc) diff --git a/src/mame/drivers/ninjaw.cpp b/src/mame/drivers/ninjaw.cpp index 8318edb6ad4..f5eda7d6f8f 100644 --- a/src/mame/drivers/ninjaw.cpp +++ b/src/mame/drivers/ninjaw.cpp @@ -327,7 +327,7 @@ rumbling on a subwoofer in the cabinet.) #include "ninjaw.lh" -void ninjaw_state::parse_control( ) /* assumes Z80 sandwiched between 68Ks */ +void ninjaw_state::parse_control() /* assumes Z80 sandwiched between 68Ks */ { /* bit 0 enables cpu B */ /* however this fails when recovering from a save state @@ -336,7 +336,7 @@ void ninjaw_state::parse_control( ) /* assumes Z80 sandwiched between 68Ks */ } -WRITE16_MEMBER(ninjaw_state::cpua_ctrl_w) +void ninjaw_state::cpua_ctrl_w(u16 data) { if ((data &0xff00) && ((data &0xff) == 0)) data = data >> 8; @@ -388,7 +388,7 @@ void ninjaw_state::pancontrol_w(offs_t offset, u8 data) } -WRITE16_MEMBER(ninjaw_state::tc0100scn_triple_screen_w) +void ninjaw_state::tc0100scn_triple_screen_w(offs_t offset, u16 data, u16 mem_mask) { m_tc0100scn[0]->ram_w(offset, data, mem_mask); m_tc0100scn[1]->ram_w(offset, data, mem_mask); @@ -590,34 +590,25 @@ static const gfx_layout tilelayout = 16,16, /* 16*16 sprites */ RGN_FRAC(1,1), 4, /* 4 bits per pixel */ - { 8, 12, 0, 4 }, /* pixel bits separated, jump 4 to get to next one */ - { 3, 2, 1, 0, 19, 18, 17, 16, - 3+ 32*8, 2+ 32*8, 1+ 32*8, 0+ 32*8, 19+ 32*8, 18+ 32*8, 17+ 32*8, 16+ 32*8 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, - 64*8 + 0*32, 64*8 + 1*32, 64*8 + 2*32, 64*8 + 3*32, - 64*8 + 4*32, 64*8 + 5*32, 64*8 + 6*32, 64*8 + 7*32 }, + { STEP4(0,4) }, /* pixel bits separated, jump 4 to get to next one */ + { STEP4(3,-1), STEP4(4*4+3,-1), STEP4(4*4*2*8+3,-1), STEP4(4*4*2*8+4*4+3,-1) }, + { STEP8(0,4*4*2), STEP8(4*4*2*8*2,4*4*2) }, 128*8 /* every sprite takes 128 consecutive bytes */ }; -static const gfx_layout charlayout = -{ - 8,8, /* 8*8 characters */ - RGN_FRAC(1,1), - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, - { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 32*8 /* every sprite takes 32 consecutive bytes */ -}; - static GFXDECODE_START( gfx_ninjaw_1 ) - GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0, 256 ) /* sprites */ - GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 256 ) /* scr tiles (screen 1) */ + GFXDECODE_ENTRY( "sprites", 0, tilelayout, 0, 256 ) /* sprites */ + GFXDECODE_ENTRY( "tc0100scn_1", 0, gfx_8x8x4_packed_msb, 0, 256 ) /* scr tiles (screen 1) */ GFXDECODE_END -static GFXDECODE_START( gfx_ninjaw_23 ) - GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0, 256 ) /* sprites */ - GFXDECODE_ENTRY( "gfx3", 0, charlayout, 0, 256 ) /* scr tiles (screens 2+) */ +static GFXDECODE_START( gfx_ninjaw_2 ) + GFXDECODE_ENTRY( "sprites", 0, tilelayout, 0, 256 ) /* sprites */ + GFXDECODE_ENTRY( "tc0100scn_2", 0, gfx_8x8x4_packed_msb, 0, 256 ) /* scr tiles (screen 2) */ +GFXDECODE_END + +static GFXDECODE_START( gfx_ninjaw_3 ) + GFXDECODE_ENTRY( "sprites", 0, tilelayout, 0, 256 ) /* sprites */ + GFXDECODE_ENTRY( "tc0100scn_3", 0, gfx_8x8x4_packed_msb, 0, 256 ) /* scr tiles (screen 3) */ GFXDECODE_END @@ -630,7 +621,7 @@ class subwoofer_device : public device_t, public device_sound_interface { public: - subwoofer_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + subwoofer_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); ~subwoofer_device() {} protected: @@ -649,7 +640,7 @@ extern const device_type SUBWOOFER; const device_type SUBWOOFER = device_creator; -subwoofer_device::subwoofer_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) +subwoofer_device::subwoofer_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : device_t(mconfig, SUBWOOFER, "Subwoofer", tag, owner, clock), device_sound_interface(mconfig, *this) { @@ -695,7 +686,7 @@ to the scrolling background. Darius2: arbitrary interleaving of 10 to keep cpus synced. *************************************************************/ -void ninjaw_state::postload() +void ninjaw_state::device_post_load() { parse_control(); } @@ -706,7 +697,6 @@ void ninjaw_state::machine_start() save_item(NAME(m_cpua_ctrl)); save_item(NAME(m_pandata)); - machine().save().register_postload(save_prepost_delegate(FUNC(ninjaw_state::postload), this)); } void ninjaw_state::machine_reset() @@ -748,8 +738,8 @@ void ninjaw_state::ninjaw(machine_config &config) /* video hardware */ GFXDECODE(config, m_gfxdecode[0], m_tc0110pcr[0], gfx_ninjaw_1); - GFXDECODE(config, m_gfxdecode[1], m_tc0110pcr[1], gfx_ninjaw_23); - GFXDECODE(config, m_gfxdecode[2], m_tc0110pcr[2], gfx_ninjaw_23); + GFXDECODE(config, m_gfxdecode[1], m_tc0110pcr[1], gfx_ninjaw_2); + GFXDECODE(config, m_gfxdecode[2], m_tc0110pcr[2], gfx_ninjaw_3); config.set_default_layout(layout_ninjaw); @@ -860,8 +850,8 @@ void ninjaw_state::darius2(machine_config &config) /* video hardware */ GFXDECODE(config, m_gfxdecode[0], m_tc0110pcr[0], gfx_ninjaw_1); - GFXDECODE(config, m_gfxdecode[1], m_tc0110pcr[1], gfx_ninjaw_23); - GFXDECODE(config, m_gfxdecode[2], m_tc0110pcr[2], gfx_ninjaw_23); + GFXDECODE(config, m_gfxdecode[1], m_tc0110pcr[1], gfx_ninjaw_2); + GFXDECODE(config, m_gfxdecode[2], m_tc0110pcr[2], gfx_ninjaw_3); config.set_default_layout(layout_ninjaw); @@ -972,24 +962,23 @@ ROM_START( ninjaw ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "b31_37.11", 0x00000, 0x20000, CRC(0ca5799d) SHA1(6485dde076d15b69b9ee65880dda57ad4f8d129c) ) - ROM_REGION( 0x100000, "gfx1", 0 ) - ROM_LOAD( "b31-01.23", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 1) */ - ROM_LOAD( "b31-02.24", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_WORD_SWAP( "b31-07.176", 0x000000, 0x80000, CRC(33568cdb) SHA1(87abf56bbbd3659a1bd3e6ce9e43176be7950b41) ) /* OBJ */ + ROM_LOAD16_WORD_SWAP( "b31-06.175", 0x080000, 0x80000, CRC(0d59439e) SHA1(54d844492888e7fe2c3bc61afe64f8d47fdee8dc) ) + ROM_LOAD16_WORD_SWAP( "b31-05.174", 0x100000, 0x80000, CRC(0a1fc9fb) SHA1(a5d6975fd4f7e689c8cafd7c9cd3787797955779) ) + ROM_LOAD16_WORD_SWAP( "b31-04.173", 0x180000, 0x80000, CRC(2e1e4cb5) SHA1(4733cfc015a68e021108a9e1e8ea807b0e7eac7a) ) - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD( "b31-07.176", 0x000000, 0x80000, CRC(33568cdb) SHA1(87abf56bbbd3659a1bd3e6ce9e43176be7950b41) ) /* OBJ */ - ROM_LOAD( "b31-06.175", 0x080000, 0x80000, CRC(0d59439e) SHA1(54d844492888e7fe2c3bc61afe64f8d47fdee8dc) ) - ROM_LOAD( "b31-05.174", 0x100000, 0x80000, CRC(0a1fc9fb) SHA1(a5d6975fd4f7e689c8cafd7c9cd3787797955779) ) - ROM_LOAD( "b31-04.173", 0x180000, 0x80000, CRC(2e1e4cb5) SHA1(4733cfc015a68e021108a9e1e8ea807b0e7eac7a) ) + ROM_REGION( 0x100000, "tc0100scn_1", 0 ) + ROM_LOAD16_WORD_SWAP( "b31-01.23", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 1) */ + ROM_LOAD16_WORD_SWAP( "b31-02.24", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) ) - ROM_REGION( 0x100000, "gfx3", 0 ) - ROM_COPY( "gfx1", 0x000000, 0x000000, 0x100000 ) /* SCR (screens 2+) */ + ROM_REGION( 0x100000, "tc0100scn_2", 0 ) + ROM_LOAD16_WORD_SWAP( "b31-01.26", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 2) */ + ROM_LOAD16_WORD_SWAP( "b31-02.27", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) ) -/* The actual board duplicates the SCR gfx roms for 2nd/3rd TC0100SCN */ -// ROM_LOAD( "b31-01.26", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 2) */ -// ROM_LOAD( "b31-02.27", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) ) -// ROM_LOAD( "b31-01.28", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 3) */ -// ROM_LOAD( "b31-02.29", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) ) + ROM_REGION( 0x100000, "tc0100scn_3", 0 ) + ROM_LOAD16_WORD_SWAP( "b31-01.28", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 3) */ + ROM_LOAD16_WORD_SWAP( "b31-02.29", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) ) ROM_REGION( 0x180000, "ymsnd", 0 ) /* ADPCM samples */ ROM_LOAD( "b31-09.18", 0x000000, 0x80000, CRC(60a73382) SHA1(0ddeb86fcd4d19a58e62bf8564f996d17e36e5c5) ) @@ -1027,24 +1016,23 @@ ROM_START( ninjaw1 ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "b31_37.11", 0x00000, 0x20000, CRC(0ca5799d) SHA1(6485dde076d15b69b9ee65880dda57ad4f8d129c) ) - ROM_REGION( 0x100000, "gfx1", 0 ) - ROM_LOAD( "b31-01.23", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 1) */ - ROM_LOAD( "b31-02.24", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_WORD_SWAP( "b31-07.176", 0x000000, 0x80000, CRC(33568cdb) SHA1(87abf56bbbd3659a1bd3e6ce9e43176be7950b41) ) /* OBJ */ + ROM_LOAD16_WORD_SWAP( "b31-06.175", 0x080000, 0x80000, CRC(0d59439e) SHA1(54d844492888e7fe2c3bc61afe64f8d47fdee8dc) ) + ROM_LOAD16_WORD_SWAP( "b31-05.174", 0x100000, 0x80000, CRC(0a1fc9fb) SHA1(a5d6975fd4f7e689c8cafd7c9cd3787797955779) ) + ROM_LOAD16_WORD_SWAP( "b31-04.173", 0x180000, 0x80000, CRC(2e1e4cb5) SHA1(4733cfc015a68e021108a9e1e8ea807b0e7eac7a) ) - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD( "b31-07.176", 0x000000, 0x80000, CRC(33568cdb) SHA1(87abf56bbbd3659a1bd3e6ce9e43176be7950b41) ) /* OBJ */ - ROM_LOAD( "b31-06.175", 0x080000, 0x80000, CRC(0d59439e) SHA1(54d844492888e7fe2c3bc61afe64f8d47fdee8dc) ) - ROM_LOAD( "b31-05.174", 0x100000, 0x80000, CRC(0a1fc9fb) SHA1(a5d6975fd4f7e689c8cafd7c9cd3787797955779) ) - ROM_LOAD( "b31-04.173", 0x180000, 0x80000, CRC(2e1e4cb5) SHA1(4733cfc015a68e021108a9e1e8ea807b0e7eac7a) ) + ROM_REGION( 0x100000, "tc0100scn_1", 0 ) + ROM_LOAD16_WORD_SWAP( "b31-01.23", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 1) */ + ROM_LOAD16_WORD_SWAP( "b31-02.24", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) ) - ROM_REGION( 0x100000, "gfx3", 0 ) - ROM_COPY( "gfx1", 0x000000, 0x000000, 0x100000 ) /* SCR (screens 2+) */ + ROM_REGION( 0x100000, "tc0100scn_2", 0 ) + ROM_LOAD16_WORD_SWAP( "b31-01.26", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 2) */ + ROM_LOAD16_WORD_SWAP( "b31-02.27", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) ) -/* The actual board duplicates the SCR gfx roms for 2nd/3rd TC0100SCN */ -// ROM_LOAD( "b31-01.26", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 2) */ -// ROM_LOAD( "b31-02.27", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) ) -// ROM_LOAD( "b31-01.28", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 3) */ -// ROM_LOAD( "b31-02.29", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) ) + ROM_REGION( 0x100000, "tc0100scn_3", 0 ) + ROM_LOAD16_WORD_SWAP( "b31-01.28", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 3) */ + ROM_LOAD16_WORD_SWAP( "b31-02.29", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) ) ROM_REGION( 0x180000, "ymsnd", 0 ) /* ADPCM samples */ ROM_LOAD( "b31-09.18", 0x000000, 0x80000, CRC(60a73382) SHA1(0ddeb86fcd4d19a58e62bf8564f996d17e36e5c5) ) @@ -1082,24 +1070,23 @@ ROM_START( ninjawu ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "b31_37.11", 0x00000, 0x20000, CRC(0ca5799d) SHA1(6485dde076d15b69b9ee65880dda57ad4f8d129c) ) - ROM_REGION( 0x100000, "gfx1", 0 ) - ROM_LOAD( "b31-01.23", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 1) */ - ROM_LOAD( "b31-02.24", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_WORD_SWAP( "b31-07.176", 0x000000, 0x80000, CRC(33568cdb) SHA1(87abf56bbbd3659a1bd3e6ce9e43176be7950b41) ) /* OBJ */ + ROM_LOAD16_WORD_SWAP( "b31-06.175", 0x080000, 0x80000, CRC(0d59439e) SHA1(54d844492888e7fe2c3bc61afe64f8d47fdee8dc) ) + ROM_LOAD16_WORD_SWAP( "b31-05.174", 0x100000, 0x80000, CRC(0a1fc9fb) SHA1(a5d6975fd4f7e689c8cafd7c9cd3787797955779) ) + ROM_LOAD16_WORD_SWAP( "b31-04.173", 0x180000, 0x80000, CRC(2e1e4cb5) SHA1(4733cfc015a68e021108a9e1e8ea807b0e7eac7a) ) - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD( "b31-07.176", 0x000000, 0x80000, CRC(33568cdb) SHA1(87abf56bbbd3659a1bd3e6ce9e43176be7950b41) ) /* OBJ */ - ROM_LOAD( "b31-06.175", 0x080000, 0x80000, CRC(0d59439e) SHA1(54d844492888e7fe2c3bc61afe64f8d47fdee8dc) ) - ROM_LOAD( "b31-05.174", 0x100000, 0x80000, CRC(0a1fc9fb) SHA1(a5d6975fd4f7e689c8cafd7c9cd3787797955779) ) - ROM_LOAD( "b31-04.173", 0x180000, 0x80000, CRC(2e1e4cb5) SHA1(4733cfc015a68e021108a9e1e8ea807b0e7eac7a) ) + ROM_REGION( 0x100000, "tc0100scn_1", 0 ) + ROM_LOAD16_WORD_SWAP( "b31-01.23", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 1) */ + ROM_LOAD16_WORD_SWAP( "b31-02.24", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) ) - ROM_REGION( 0x100000, "gfx3", 0 ) - ROM_COPY( "gfx1", 0x000000, 0x000000, 0x100000 ) /* SCR (screens 2+) */ + ROM_REGION( 0x100000, "tc0100scn_2", 0 ) + ROM_LOAD16_WORD_SWAP( "b31-01.26", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 2) */ + ROM_LOAD16_WORD_SWAP( "b31-02.27", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) ) -/* The actual board duplicates the SCR gfx roms for 2nd/3rd TC0100SCN */ -// ROM_LOAD( "b31-01.26", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 2) */ -// ROM_LOAD( "b31-02.27", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) ) -// ROM_LOAD( "b31-01.28", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 3) */ -// ROM_LOAD( "b31-02.29", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) ) + ROM_REGION( 0x100000, "tc0100scn_3", 0 ) + ROM_LOAD16_WORD_SWAP( "b31-01.28", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 3) */ + ROM_LOAD16_WORD_SWAP( "b31-02.29", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) ) ROM_REGION( 0x180000, "ymsnd", 0 ) /* ADPCM samples */ ROM_LOAD( "b31-09.18", 0x000000, 0x80000, CRC(60a73382) SHA1(0ddeb86fcd4d19a58e62bf8564f996d17e36e5c5) ) @@ -1137,24 +1124,23 @@ ROM_START( ninjawj ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "b31_37.11", 0x00000, 0x20000, CRC(0ca5799d) SHA1(6485dde076d15b69b9ee65880dda57ad4f8d129c) ) - ROM_REGION( 0x100000, "gfx1", 0 ) - ROM_LOAD( "b31-01.23", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 1) */ - ROM_LOAD( "b31-02.24", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_WORD_SWAP( "b31-07.176", 0x000000, 0x80000, CRC(33568cdb) SHA1(87abf56bbbd3659a1bd3e6ce9e43176be7950b41) ) /* OBJ */ + ROM_LOAD16_WORD_SWAP( "b31-06.175", 0x080000, 0x80000, CRC(0d59439e) SHA1(54d844492888e7fe2c3bc61afe64f8d47fdee8dc) ) + ROM_LOAD16_WORD_SWAP( "b31-05.174", 0x100000, 0x80000, CRC(0a1fc9fb) SHA1(a5d6975fd4f7e689c8cafd7c9cd3787797955779) ) + ROM_LOAD16_WORD_SWAP( "b31-04.173", 0x180000, 0x80000, CRC(2e1e4cb5) SHA1(4733cfc015a68e021108a9e1e8ea807b0e7eac7a) ) - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD( "b31-07.176", 0x000000, 0x80000, CRC(33568cdb) SHA1(87abf56bbbd3659a1bd3e6ce9e43176be7950b41) ) /* OBJ */ - ROM_LOAD( "b31-06.175", 0x080000, 0x80000, CRC(0d59439e) SHA1(54d844492888e7fe2c3bc61afe64f8d47fdee8dc) ) - ROM_LOAD( "b31-05.174", 0x100000, 0x80000, CRC(0a1fc9fb) SHA1(a5d6975fd4f7e689c8cafd7c9cd3787797955779) ) - ROM_LOAD( "b31-04.173", 0x180000, 0x80000, CRC(2e1e4cb5) SHA1(4733cfc015a68e021108a9e1e8ea807b0e7eac7a) ) + ROM_REGION( 0x100000, "tc0100scn_1", 0 ) + ROM_LOAD16_WORD_SWAP( "b31-01.23", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 1) */ + ROM_LOAD16_WORD_SWAP( "b31-02.24", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) ) - ROM_REGION( 0x100000, "gfx3", 0 ) - ROM_COPY( "gfx1", 0x000000, 0x000000, 0x100000 ) /* SCR (screens 2+) */ + ROM_REGION( 0x100000, "tc0100scn_2", 0 ) + ROM_LOAD16_WORD_SWAP( "b31-01.26", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 2) */ + ROM_LOAD16_WORD_SWAP( "b31-02.27", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) ) -/* The actual board duplicates the SCR gfx roms for 2nd/3rd TC0100SCN */ -// ROM_LOAD( "b31-01.26", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 2) */ -// ROM_LOAD( "b31-02.27", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) ) -// ROM_LOAD( "b31-01.28", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 3) */ -// ROM_LOAD( "b31-02.29", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) ) + ROM_REGION( 0x100000, "tc0100scn_3", 0 ) + ROM_LOAD16_WORD_SWAP( "b31-01.28", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 3) */ + ROM_LOAD16_WORD_SWAP( "b31-02.29", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) ) ROM_REGION( 0x180000, "ymsnd", 0 ) /* ADPCM samples */ ROM_LOAD( "b31-09.18", 0x000000, 0x80000, CRC(60a73382) SHA1(0ddeb86fcd4d19a58e62bf8564f996d17e36e5c5) ) @@ -1192,16 +1178,20 @@ ROM_START( darius2 ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c07-28", 0x00000, 0x20000, CRC(da304bc5) SHA1(689b4f329d9a640145f82e12dff3dd1fcf8a28c8) ) - ROM_REGION( 0x100000, "gfx1", 0 ) - ROM_LOAD( "c07-03.12", 0x00000, 0x80000, CRC(189bafce) SHA1(d885e444523489fe24269b90dec58e0d92cfbd6e) ) /* SCR (screen 1) */ - ROM_LOAD( "c07-04.11", 0x80000, 0x80000, CRC(50421e81) SHA1(27ac420602f1dac00dc32903543a518e6f47fb2f) ) + ROM_REGION( 0x100000, "sprites", 0 ) + ROM_LOAD16_WORD_SWAP( "c07-01", 0x00000, 0x80000, CRC(3cf0f050) SHA1(f5a1f7e327a2617fb95ce2837e72945fd7447346) ) /* OBJ */ + ROM_LOAD16_WORD_SWAP( "c07-02", 0x80000, 0x80000, CRC(75d16d4b) SHA1(795423278b66eca41accce1f8a4425d65af7b629) ) - ROM_REGION( 0x100000, "gfx2", 0 ) - ROM_LOAD( "c07-01", 0x00000, 0x80000, CRC(3cf0f050) SHA1(f5a1f7e327a2617fb95ce2837e72945fd7447346) ) /* OBJ */ - ROM_LOAD( "c07-02", 0x80000, 0x80000, CRC(75d16d4b) SHA1(795423278b66eca41accce1f8a4425d65af7b629) ) + ROM_REGION( 0x100000, "tc0100scn_1", 0 ) + ROM_LOAD16_WORD_SWAP( "c07-03.12", 0x00000, 0x80000, CRC(189bafce) SHA1(d885e444523489fe24269b90dec58e0d92cfbd6e) ) /* SCR (screen 1) */ + ROM_LOAD16_WORD_SWAP( "c07-04.11", 0x80000, 0x80000, CRC(50421e81) SHA1(27ac420602f1dac00dc32903543a518e6f47fb2f) ) - ROM_REGION( 0x100000, "gfx3", 0 ) - ROM_COPY( "gfx1", 0x000000, 0x000000, 0x100000 ) /* SCR (screens 2+) */ + // The actual board duplicates the SCR gfx ROMs for each TC0100SCNs; TODO : ic position + ROM_REGION( 0x100000, "tc0100scn_2", 0 ) + ROM_COPY( "tc0100scn_1", 0x000000, 0x000000, 0x100000 ) /* SCR (screen 2) */ + + ROM_REGION( 0x100000, "tc0100scn_3", 0 ) + ROM_COPY( "tc0100scn_1", 0x000000, 0x000000, 0x100000 ) /* SCR (screen 3) */ ROM_REGION( 0x100000, "ymsnd", 0 ) /* ADPCM samples */ ROM_LOAD( "c07-10.95", 0x00000, 0x80000, CRC(4bbe0ed9) SHA1(081b73c4e4d4fa548445e5548573099bcb1e9213) ) diff --git a/src/mame/drivers/osi.cpp b/src/mame/drivers/osi.cpp index 583ee49bdbc..40991a1595a 100644 --- a/src/mame/drivers/osi.cpp +++ b/src/mame/drivers/osi.cpp @@ -164,17 +164,18 @@ Notes: TODO: - - fix uk101 video to 64x16 - floppy PIA is actually a 6820 - break key - power on reset - Superboard II revisions A/C/D - uk101 medium resolution graphics - uk101 ay-3-8910 sound - - cassette - faster cassette - floppy + - need floppies to test with + - support for BAS files and other formats - wemon? + - rs232 */ @@ -220,6 +221,7 @@ PRINT FRE(0) #include "includes/osi.h" #include "machine/clock.h" +#include "sound/wave.h" #include "screen.h" #include "speaker.h" @@ -454,7 +456,7 @@ void sb2m600_state::osi600_mem(address_map &map) map(0xa000, 0xbfff).rom(); map(0xd000, 0xd3ff).ram().share("video_ram"); map(0xdf00, 0xdf00).rw(FUNC(sb2m600_state::keyboard_r), FUNC(sb2m600_state::keyboard_w)); - map(0xf000, 0xf001).rw(m_acia_0, FUNC(acia6850_device::read), FUNC(acia6850_device::write)); + map(0xf000, 0xf001).rw(m_acia, FUNC(acia6850_device::read), FUNC(acia6850_device::write)); map(0xf800, 0xffff).rom(); } @@ -465,7 +467,7 @@ void uk101_state::uk101_mem(address_map &map) map(0xd000, 0xd3ff).ram().share("video_ram"); map(0xd400, 0xd7ff).noprw(); // bios sets this to spaces at boot map(0xdc00, 0xdfff).r(FUNC(uk101_state::keyboard_r)).w(FUNC(uk101_state::keyboard_w)); - map(0xf000, 0xf001).mirror(0x00fe).rw(m_acia_0, FUNC(acia6850_device::read), FUNC(acia6850_device::write)); + map(0xf000, 0xf001).mirror(0x00fe).rw(m_acia, FUNC(acia6850_device::read), FUNC(acia6850_device::write)); map(0xf800, 0xffff).rom(); } @@ -480,7 +482,7 @@ void c1p_state::c1p_mem(address_map &map) map(0xd400, 0xd7ff).ram().share("color_ram"); map(0xd800, 0xd800).w(FUNC(c1p_state::ctrl_w)); map(0xdf00, 0xdf00).rw(FUNC(c1p_state::keyboard_r), FUNC(c1p_state::keyboard_w)); - map(0xf000, 0xf001).rw(m_acia_0, FUNC(acia6850_device::read), FUNC(acia6850_device::write)); + map(0xf000, 0xf001).rw(m_acia, FUNC(acia6850_device::read), FUNC(acia6850_device::write)); map(0xf7c0, 0xf7c0).w(FUNC(c1p_state::osi630_sound_w)); map(0xf7e0, 0xf7e0).w(FUNC(c1p_state::osi630_ctrl_w)); map(0xf800, 0xffff).rom(); @@ -499,7 +501,7 @@ void c1pmf_state::c1pmf_mem(address_map &map) map(0xd400, 0xd7ff).ram().share("color_ram"); map(0xd800, 0xd800).w(FUNC(c1pmf_state::ctrl_w)); map(0xdf00, 0xdf00).rw(FUNC(c1pmf_state::keyboard_r), FUNC(c1pmf_state::keyboard_w)); - map(0xf000, 0xf001).rw(m_acia_0, FUNC(acia6850_device::read), FUNC(acia6850_device::write)); + map(0xf000, 0xf001).rw(m_acia, FUNC(acia6850_device::read), FUNC(acia6850_device::write)); map(0xf7c0, 0xf7c0).w(FUNC(c1pmf_state::osi630_sound_w)); map(0xf7e0, 0xf7e0).w(FUNC(c1pmf_state::osi630_ctrl_w)); map(0xf800, 0xffff).rom(); @@ -609,17 +611,34 @@ INPUT_PORTS_END /* Machine Start */ -WRITE_LINE_MEMBER( sb2m600_state::write_cassette_clock ) +TIMER_DEVICE_CALLBACK_MEMBER( sb2m600_state::kansas_w ) { - m_acia_0->write_rxd((m_cassette->input() > 0.0) ? 1 : 0); + m_cass_data[3]++; - m_acia_0->write_txc(state); - m_acia_0->write_rxc(state); + if (m_cassbit != m_cassold) + { + m_cass_data[3] = 0; + m_cassold = m_cassbit; + } + + if (m_cassbit) + m_cass->output(BIT(m_cass_data[3], 0) ? -1.0 : +1.0); // 2400Hz + else + m_cass->output(BIT(m_cass_data[3], 1) ? -1.0 : +1.0); // 1200Hz } -WRITE_LINE_MEMBER( sb2m600_state::cassette_tx ) +TIMER_DEVICE_CALLBACK_MEMBER( sb2m600_state::kansas_r) { - m_cassette->output(state ? +1.0 : -1.0); + /* cassette - turn 1200/2400Hz to a bit */ + m_cass_data[1]++; + uint8_t cass_ws = (m_cass->input() > +0.03) ? 1 : 0; + + if (cass_ws != m_cass_data[0]) + { + m_cass_data[0] = cass_ws; + m_acia->write_rxd((m_cass_data[1] < 12) ? 1 : 0); + m_cass_data[1] = 0; + } } void sb2m600_state::machine_start() @@ -723,18 +742,23 @@ void sb2m600_state::osi600(machine_config &config) /* sound hardware */ SPEAKER(config, "mono").front_center(); + WAVE(config, "wave", m_cass).add_route(ALL_OUTPUTS, "mono", 0.05); DISCRETE(config, m_discrete); m_discrete->set_intf(osi600_discrete_interface); m_discrete->add_route(ALL_OUTPUTS, "mono", 0.50); /* cassette ACIA */ - ACIA6850(config, m_acia_0, 0); - m_acia_0->txd_handler().set(FUNC(sb2m600_state::cassette_tx)); + ACIA6850(config, m_acia, 0); + m_acia->txd_handler().set([this] (bool state) { m_cassbit = state; }); - CLOCK(config, "cassette_clock", X1/32).signal_handler().set(FUNC(sb2m600_state::write_cassette_clock)); + clock_device &acia_clock(CLOCK(config, "acia_clock", 4'800)); // 300 baud x 16(divider) = 4800 + acia_clock.signal_handler().set(m_acia, FUNC(acia6850_device::write_txc)); + acia_clock.signal_handler().append(m_acia, FUNC(acia6850_device::write_rxc)); /* cassette */ - CASSETTE(config, m_cassette); + CASSETTE(config, m_cass); + TIMER(config, "kansas_w").configure_periodic(FUNC(sb2m600_state::kansas_w), attotime::from_hz(4800)); // cass write + TIMER(config, "kansas_r").configure_periodic(FUNC(sb2m600_state::kansas_r), attotime::from_hz(40000)); // cass read /* internal ram */ RAM(config, m_ram); @@ -752,14 +776,22 @@ void uk101_state::uk101(machine_config &config) uk101_video(config); GFXDECODE(config, "gfxdecode", "palette", gfx_osi); - /* cassette ACIA */ - ACIA6850(config, m_acia_0, 0); - m_acia_0->txd_handler().set(FUNC(uk101_state::cassette_tx)); + /* sound hardware */ + SPEAKER(config, "mono").front_center(); + WAVE(config, "wave", m_cass).add_route(ALL_OUTPUTS, "mono", 0.05); - CLOCK(config, "cassette_clock", 500000).signal_handler().set(FUNC(uk101_state::write_cassette_clock)); + /* cassette ACIA */ + ACIA6850(config, m_acia, 0); + m_acia->txd_handler().set([this] (bool state) { m_cassbit = state; }); + + clock_device &acia_clock(CLOCK(config, "acia_clock", 4'800)); // 300 baud x 16(divider) = 4800 + acia_clock.signal_handler().set(m_acia, FUNC(acia6850_device::write_txc)); + acia_clock.signal_handler().append(m_acia, FUNC(acia6850_device::write_rxc)); /* cassette */ - CASSETTE(config, m_cassette); + CASSETTE(config, m_cass); + TIMER(config, "kansas_w").configure_periodic(FUNC(uk101_state::kansas_w), attotime::from_hz(4800)); // cass write + TIMER(config, "kansas_r").configure_periodic(FUNC(uk101_state::kansas_r), attotime::from_hz(40000)); // cass read /* internal ram */ RAM(config, m_ram); @@ -779,6 +811,7 @@ void c1p_state::c1p(machine_config &config) /* sound hardware */ SPEAKER(config, "mono").front_center(); + WAVE(config, "wave", m_cass).add_route(ALL_OUTPUTS, "mono", 0.05); DISCRETE(config, m_discrete); m_discrete->set_intf(osi600c_discrete_interface); m_discrete->add_route(ALL_OUTPUTS, "mono", 0.50); @@ -789,13 +822,17 @@ void c1p_state::c1p(machine_config &config) PIA6821(config, "pia_3", 0); /* cassette ACIA */ - ACIA6850(config, m_acia_0, 0); - m_acia_0->txd_handler().set(FUNC(c1p_state::cassette_tx)); + ACIA6850(config, m_acia, 0); + m_acia->txd_handler().set([this] (bool state) { m_cassbit = state; }); - CLOCK(config, "cassette_clock", X1/32).signal_handler().set(FUNC(c1p_state::write_cassette_clock)); + clock_device &acia_clock(CLOCK(config, "acia_clock", 4'800)); // 300 baud x 16(divider) = 4800 + acia_clock.signal_handler().set(m_acia, FUNC(acia6850_device::write_txc)); + acia_clock.signal_handler().append(m_acia, FUNC(acia6850_device::write_rxc)); /* cassette */ - CASSETTE(config, m_cassette); + CASSETTE(config, m_cass); + TIMER(config, "kansas_w").configure_periodic(FUNC(c1p_state::kansas_w), attotime::from_hz(4800)); // cass write + TIMER(config, "kansas_r").configure_periodic(FUNC(c1p_state::kansas_r), attotime::from_hz(40000)); // cass read /* internal ram */ RAM(config, m_ram); @@ -895,8 +932,8 @@ void c1p_state::init_c1p() /* System Drivers */ // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP( 1978, sb2m600b, 0, 0, osi600, osi600, sb2m600_state, empty_init, "Ohio Scientific", "Superboard II Model 600 (Rev. B)", MACHINE_NOT_WORKING) +COMP( 1978, sb2m600b, 0, 0, osi600, osi600, sb2m600_state, empty_init, "Ohio Scientific", "Superboard II Model 600 (Rev. B)", 0 ) //COMP( 1980, sb2m600c, 0, 0, osi600c, osi600, sb2m600_state, empty_init, "Ohio Scientific", "Superboard II Model 600 (Rev. C)", MACHINE_NOT_WORKING) -COMP( 1980, c1p, sb2m600b, 0, c1p, osi600, c1p_state, init_c1p, "Ohio Scientific", "Challenger 1P Series 2", MACHINE_NOT_WORKING) +COMP( 1980, c1p, sb2m600b, 0, c1p, osi600, c1p_state, init_c1p, "Ohio Scientific", "Challenger 1P Series 2", 0 ) COMP( 1980, c1pmf, sb2m600b, 0, c1pmf, osi600, c1pmf_state, init_c1p, "Ohio Scientific", "Challenger 1P MF Series 2", MACHINE_NOT_WORKING) -COMP( 1979, uk101, sb2m600b, 0, uk101, uk101, uk101_state, empty_init, "Compukit", "UK101", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) +COMP( 1979, uk101, sb2m600b, 0, uk101, uk101, uk101_state, empty_init, "Compukit", "UK101", 0 ) diff --git a/src/mame/drivers/othunder.cpp b/src/mame/drivers/othunder.cpp index 776d075ae1e..26ebdcc476a 100644 --- a/src/mame/drivers/othunder.cpp +++ b/src/mame/drivers/othunder.cpp @@ -368,7 +368,7 @@ void othunder_state::coins_w(u8 data) void othunder_state::sound_bankswitch_w(u8 data) { - membank("z80bank")->set_entry(data & 3); + m_z80bank->set_entry(data & 3); } void othunder_state::tc0310fam_w(offs_t offset, u8 data) @@ -555,26 +555,15 @@ static const gfx_layout tile16x8_layout = 16,8, RGN_FRAC(1,1), 4, - { 0, 8, 16, 24 }, - { 32, 33, 34, 35, 36, 37, 38, 39, 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64 }, + { STEP4(0,16) }, + { STEP16(0,1) }, + { STEP8(0,16*4) }, 64*8 }; -static const gfx_layout charlayout = -{ - 8,8, - RGN_FRAC(1,1), - 4, - { 0, 1, 2, 3 }, - { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 32*8 -}; - static GFXDECODE_START( gfx_othunder ) - GFXDECODE_ENTRY( "gfx2", 0, tile16x8_layout, 0, 256 ) /* sprite parts */ - GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 256 ) /* sprites & playfield */ + GFXDECODE_ENTRY( "sprites", 0, tile16x8_layout, 0, 256 ) /* sprite parts */ + GFXDECODE_ENTRY( "tc0100scn", 0, gfx_8x8x4_packed_msb, 0, 256 ) /* sprites & playfield */ GFXDECODE_END @@ -584,7 +573,7 @@ GFXDECODE_END void othunder_state::machine_start() { - membank("z80bank")->configure_entries(0, 4, memregion("audiocpu")->base(), 0x4000); + m_z80bank->configure_entries(0, 4, memregion("audiocpu")->base(), 0x4000); save_item(NAME(m_pan)); } @@ -661,7 +650,6 @@ void othunder_state::othunder(machine_config &config) } - /*************************************************************************** DRIVERS ***************************************************************************/ @@ -676,16 +664,16 @@ ROM_START( othunder ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "b67-13.ic40", 0x00000, 0x10000, CRC(2936b4b1) SHA1(39b41643464dd89e456ab6eb15a0ff0aef30afde) ) - ROM_REGION( 0x80000, "gfx1", 0 ) - ROM_LOAD( "b67-06.ic66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */ + ROM_REGION( 0x80000, "tc0100scn", 0 ) + ROM_LOAD16_WORD_SWAP( "b67-06.ic66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */ - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "b67-01.ic1", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */ - ROM_LOAD32_BYTE( "b67-02.ic2", 0x00001, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) ) - ROM_LOAD32_BYTE( "b67-03.ic3", 0x00002, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) ) - ROM_LOAD32_BYTE( "b67-04.ic4", 0x00003, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "b67-01.ic1", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */ + ROM_LOAD64_WORD_SWAP( "b67-02.ic2", 0x00002, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) ) + ROM_LOAD64_WORD_SWAP( "b67-03.ic3", 0x00004, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) ) + ROM_LOAD64_WORD_SWAP( "b67-04.ic4", 0x00006, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) ) - ROM_REGION16_LE( 0x80000, "user1", 0 ) + ROM_REGION16_LE( 0x80000, "sprmap_rom", 0 ) ROM_LOAD16_WORD( "b67-05.ic43", 0x00000, 0x80000, CRC(9593e42b) SHA1(54b5538c302a1734ff4b752ab87a8c45d5c6b23d) ) /* index used to create 64x64 sprites on the fly */ ROM_REGION( 0x80000, "ymsnd", 0 ) /* ADPCM samples */ @@ -714,16 +702,16 @@ ROM_START( othundero ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "b67-13.ic40", 0x00000, 0x10000, CRC(2936b4b1) SHA1(39b41643464dd89e456ab6eb15a0ff0aef30afde) ) - ROM_REGION( 0x80000, "gfx1", 0 ) - ROM_LOAD( "b67-06.ic66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */ + ROM_REGION( 0x80000, "tc0100scn", 0 ) + ROM_LOAD16_WORD_SWAP( "b67-06.ic66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */ - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "b67-01.ic1", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */ - ROM_LOAD32_BYTE( "b67-02.ic2", 0x00001, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) ) - ROM_LOAD32_BYTE( "b67-03.ic3", 0x00002, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) ) - ROM_LOAD32_BYTE( "b67-04.ic4", 0x00003, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "b67-01.ic1", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */ + ROM_LOAD64_WORD_SWAP( "b67-02.ic2", 0x00002, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) ) + ROM_LOAD64_WORD_SWAP( "b67-03.ic3", 0x00004, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) ) + ROM_LOAD64_WORD_SWAP( "b67-04.ic4", 0x00006, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) ) - ROM_REGION16_LE( 0x80000, "user1", 0 ) + ROM_REGION16_LE( 0x80000, "sprmap_rom", 0 ) ROM_LOAD16_WORD( "b67-05.ic43", 0x00000, 0x80000, CRC(9593e42b) SHA1(54b5538c302a1734ff4b752ab87a8c45d5c6b23d) ) /* index used to create 64x64 sprites on the fly */ ROM_REGION( 0x80000, "ymsnd", 0 ) /* ADPCM samples */ @@ -752,16 +740,16 @@ ROM_START( othunderu ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "b67-13.ic40", 0x00000, 0x10000, CRC(2936b4b1) SHA1(39b41643464dd89e456ab6eb15a0ff0aef30afde) ) - ROM_REGION( 0x80000, "gfx1", 0 ) - ROM_LOAD( "b67-06.ic66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */ + ROM_REGION( 0x80000, "tc0100scn", 0 ) + ROM_LOAD16_WORD_SWAP( "b67-06.ic66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */ - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "b67-01.ic1", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */ - ROM_LOAD32_BYTE( "b67-02.ic2", 0x00001, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) ) - ROM_LOAD32_BYTE( "b67-03.ic3", 0x00002, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) ) - ROM_LOAD32_BYTE( "b67-04.ic4", 0x00003, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "b67-01.ic1", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */ + ROM_LOAD64_WORD_SWAP( "b67-02.ic2", 0x00002, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) ) + ROM_LOAD64_WORD_SWAP( "b67-03.ic3", 0x00004, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) ) + ROM_LOAD64_WORD_SWAP( "b67-04.ic4", 0x00006, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) ) - ROM_REGION16_LE( 0x80000, "user1", 0 ) + ROM_REGION16_LE( 0x80000, "sprmap_rom", 0 ) ROM_LOAD16_WORD( "b67-05.ic43", 0x00000, 0x80000, CRC(9593e42b) SHA1(54b5538c302a1734ff4b752ab87a8c45d5c6b23d) ) /* index used to create 64x64 sprites on the fly */ ROM_REGION( 0x80000, "ymsnd", 0 ) /* ADPCM samples */ @@ -790,16 +778,16 @@ ROM_START( othunderuo ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "b67-13.ic40", 0x00000, 0x10000, CRC(2936b4b1) SHA1(39b41643464dd89e456ab6eb15a0ff0aef30afde) ) - ROM_REGION( 0x80000, "gfx1", 0 ) - ROM_LOAD( "b67-06.ic66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */ + ROM_REGION( 0x80000, "tc0100scn", 0 ) + ROM_LOAD16_WORD_SWAP( "b67-06.ic66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */ - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "b67-01.ic1", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */ - ROM_LOAD32_BYTE( "b67-02.ic2", 0x00001, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) ) - ROM_LOAD32_BYTE( "b67-03.ic3", 0x00002, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) ) - ROM_LOAD32_BYTE( "b67-04.ic4", 0x00003, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "b67-01.ic1", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */ + ROM_LOAD64_WORD_SWAP( "b67-02.ic2", 0x00002, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) ) + ROM_LOAD64_WORD_SWAP( "b67-03.ic3", 0x00004, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) ) + ROM_LOAD64_WORD_SWAP( "b67-04.ic4", 0x00006, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) ) - ROM_REGION16_LE( 0x80000, "user1", 0 ) + ROM_REGION16_LE( 0x80000, "sprmap_rom", 0 ) ROM_LOAD16_WORD( "b67-05.ic43", 0x00000, 0x80000, CRC(9593e42b) SHA1(54b5538c302a1734ff4b752ab87a8c45d5c6b23d) ) /* index used to create 64x64 sprites on the fly */ ROM_REGION( 0x80000, "ymsnd", 0 ) /* ADPCM samples */ @@ -828,16 +816,16 @@ ROM_START( othunderj ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "b67-13.ic40", 0x00000, 0x10000, CRC(2936b4b1) SHA1(39b41643464dd89e456ab6eb15a0ff0aef30afde) ) - ROM_REGION( 0x80000, "gfx1", 0 ) - ROM_LOAD( "b67-06.ic66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */ + ROM_REGION( 0x80000, "tc0100scn", 0 ) + ROM_LOAD16_WORD_SWAP( "b67-06.ic66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */ - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "b67-01.ic1", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */ - ROM_LOAD32_BYTE( "b67-02.ic2", 0x00001, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) ) - ROM_LOAD32_BYTE( "b67-03.ic3", 0x00002, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) ) - ROM_LOAD32_BYTE( "b67-04.ic4", 0x00003, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "b67-01.ic1", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */ + ROM_LOAD64_WORD_SWAP( "b67-02.ic2", 0x00002, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) ) + ROM_LOAD64_WORD_SWAP( "b67-03.ic3", 0x00004, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) ) + ROM_LOAD64_WORD_SWAP( "b67-04.ic4", 0x00006, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) ) - ROM_REGION16_LE( 0x80000, "user1", 0 ) + ROM_REGION16_LE( 0x80000, "sprmap_rom", 0 ) ROM_LOAD16_WORD( "b67-05.ic43", 0x00000, 0x80000, CRC(9593e42b) SHA1(54b5538c302a1734ff4b752ab87a8c45d5c6b23d) ) /* index used to create 64x64 sprites on the fly */ ROM_REGION( 0x80000, "ymsnd", 0 ) /* ADPCM samples */ @@ -866,16 +854,16 @@ ROM_START( othunderjsc ) // SC stands for Shopping Center. It was put in a small ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "b67-13.ic40", 0x00000, 0x10000, CRC(2936b4b1) SHA1(39b41643464dd89e456ab6eb15a0ff0aef30afde) ) - ROM_REGION( 0x80000, "gfx1", 0 ) - ROM_LOAD( "b67-06.ic66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */ + ROM_REGION( 0x80000, "tc0100scn", 0 ) + ROM_LOAD16_WORD_SWAP( "b67-06.ic66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */ - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "b67-01.ic1", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */ - ROM_LOAD32_BYTE( "b67-02.ic2", 0x00001, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) ) - ROM_LOAD32_BYTE( "b67-03.ic3", 0x00002, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) ) - ROM_LOAD32_BYTE( "b67-04.ic4", 0x00003, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "b67-01.ic1", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */ + ROM_LOAD64_WORD_SWAP( "b67-02.ic2", 0x00002, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) ) + ROM_LOAD64_WORD_SWAP( "b67-03.ic3", 0x00004, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) ) + ROM_LOAD64_WORD_SWAP( "b67-04.ic4", 0x00006, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) ) - ROM_REGION16_LE( 0x80000, "user1", 0 ) + ROM_REGION16_LE( 0x80000, "sprmap_rom", 0 ) ROM_LOAD16_WORD( "b67-05.ic43", 0x00000, 0x80000, CRC(9593e42b) SHA1(54b5538c302a1734ff4b752ab87a8c45d5c6b23d) ) /* index used to create 64x64 sprites on the fly */ ROM_REGION( 0x80000, "ymsnd", 0 ) /* ADPCM samples */ diff --git a/src/mame/drivers/polgar.cpp b/src/mame/drivers/polgar.cpp index db60525646c..7a6534bebc0 100644 --- a/src/mame/drivers/polgar.cpp +++ b/src/mame/drivers/polgar.cpp @@ -4,6 +4,8 @@ Mephisto Polgar and RISC +The chess engine in Mephisto Risc is also compatible with Tasc's The ChessMachine. + TODO: - Mephisto Risc maincpu is more likely 5MHz, but LCD doesn't like it diff --git a/src/mame/drivers/psikyo.cpp b/src/mame/drivers/psikyo.cpp index ca2e2365af8..d974cab3999 100644 --- a/src/mame/drivers/psikyo.cpp +++ b/src/mame/drivers/psikyo.cpp @@ -125,18 +125,9 @@ static const u8 s1945j_table[256] = { 0x00, 0x00, 0x32, 0x90, 0x00, 0x00, 0xac, 0x64, 0x00, 0x00, 0x2b, 0xc0 }; -WRITE32_MEMBER(psikyo_state::s1945_mcu_w) +void psikyo_state::s1945_mcu_w(offs_t offset, uint8_t data) { - // Accesses are always bytes, so resolve it - int suboff; - - for (suboff = 0; suboff < 3; suboff++) - if ((0xff << (8 * suboff)) & mem_mask) - break; - data >>= 8 * suboff; - offset = offset * 4 + 4 + (3 - suboff); - - switch (offset) + switch (offset + 4) { case 0x06: m_s1945_mcu_inlatch = data; diff --git a/src/mame/drivers/risc2500.cpp b/src/mame/drivers/risc2500.cpp index 86eea5d52a4..67b3474a9d6 100644 --- a/src/mame/drivers/risc2500.cpp +++ b/src/mame/drivers/risc2500.cpp @@ -2,7 +2,9 @@ // copyright-holders:Sandro Ronco /****************************************************************************** - Saitek RISC 2500 + Saitek RISC 2500, Mephisto Montreux + + The chess engine is also compatible with Tasc's The ChessMachine software. TODO: - Sound is too short and high pitch, better when you underclock the cpu. @@ -363,6 +365,6 @@ ROM_START( montreux ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -CONS( 1992, risc, 0, 0, risc2500, risc2500, risc2500_state, empty_init, "Saitek", "RISC 2500", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1995, montreux, 0, 0, risc2500, risc2500, risc2500_state, empty_init, "Saitek / Hegener & Glaser", "Mephisto Montreux", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +CONS( 1992, risc, 0, 0, risc2500, risc2500, risc2500_state, empty_init, "Saitek", "Kasparov RISC 2500", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1995, montreux, 0, 0, risc2500, risc2500, risc2500_state, empty_init, "Saitek", "Mephisto Montreux", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // after Saitek bought Hegener & Glaser diff --git a/src/mame/drivers/segas16b.cpp b/src/mame/drivers/segas16b.cpp index 080b81ba6e8..0f7a8a9373f 100644 --- a/src/mame/drivers/segas16b.cpp +++ b/src/mame/drivers/segas16b.cpp @@ -4085,7 +4085,6 @@ ROM_START( aliensyn ) ROM_LOAD( "epr-10726.a10", 0x30000, 0x8000, CRC(d50b7736) SHA1(b1f8e3b0cf2ffee5382098100cfabe21b383cd51) ) ROM_END - //************************************************************************************************************************* // Alien Syndrome, Sega System 16B // CPU: FD1089A (317-0033) @@ -4128,7 +4127,6 @@ ROM_START( aliensyn3 ) ROM_LOAD( "317-0033.key", 0x0000, 0x2000, CRC(68bb7745) SHA1(f0c60d8a503a90ba6a2443be856b18322e3ec759) ) ROM_END - //************************************************************************************************************************* // Alien Syndrome, Sega System 16B // CPU: 68000 + MC8123B (317-00xx) (sorry missing code, scratched off label) @@ -4171,7 +4169,6 @@ ROM_START( aliensyn7 ) ROM_LOAD( "317-00xx.key", 0x0000, 0x2000, CRC(76b370cd) SHA1(996a4a24dec085caf93cbe614d3b0888379c91dd) ) ROM_END - //************************************************************************************************************************* // Alien Syndrome, Sega System 16B // CPU: FD1089A (317-0033) @@ -4219,8 +4216,7 @@ ROM_END //************************************************************************************************************************* //************************************************************************************************************************* // Action Fighter, Sega System 16B - - +// ROM_START( afightere ) ROM_REGION( 0x30000, "maincpu", 0 ) // 68000 code ROM_LOAD16_BYTE( "epr10269.bin", 0x00001, 0x08000, CRC(688b4ff7) SHA1(8972b75b6fa72513a6ebb3a5ed5988a43f1b6266) ) @@ -4280,7 +4276,6 @@ ROM_START( afighterf ) ROM_LOAD( "317-0018.key", 0x0000, 0x2000, CRC(65b5b1af) SHA1(9a236c0c223064f9a2a56561e10b9ffed0f567a3) ) ROM_END - ROM_START( afighterg ) ROM_REGION( 0x30000, "maincpu", 0 ) // 68000 code ROM_LOAD16_BYTE( "epr10160.bin", 0x00001, 0x08000, CRC(86f020da) SHA1(e7ac4b70dc375d9e2491f1a90ae154699e7627a2) ) // == encrypted 10169 (not perfect match) (same rev as 10354) @@ -4312,7 +4307,6 @@ ROM_START( afighterg ) ROM_LOAD( "317-0018.key", 0x0000, 0x2000, CRC(65b5b1af) SHA1(9a236c0c223064f9a2a56561e10b9ffed0f567a3) ) ROM_END - ROM_START( afighterh ) ROM_REGION( 0x30000, "maincpu", 0 ) // 68000 code ROM_LOAD16_BYTE( "epr10354.bin", 0x00001, 0x08000, CRC(6dad6dd1) SHA1(8cdd1c10d60cda09f888b2f03b7d4c76100b4ad0) ) // == encrypted 10169 (not perfect match) (same rev as 10160) @@ -4789,6 +4783,7 @@ ROM_START( snapper ) ROM_LOAD( "snap5.r05", 0x10000, 0x8000, CRC(378e08eb) SHA1(f2c10bd9e885c185ac2d0d51d907ceca1f21dd7a) ) ROM_END + //************************************************************************************************************************* //************************************************************************************************************************* //************************************************************************************************************************* @@ -4824,7 +4819,6 @@ ROM_START( lockonph ) ROM_END - //************************************************************************************************************************* //************************************************************************************************************************* //************************************************************************************************************************* @@ -5024,7 +5018,6 @@ ROM_START( aurailj ) ROM_LOAD( "317-0167.key", 0x0000, 0x2000, CRC(fed38390) SHA1(b5f458bc70c069542be16d476645c153ed1d1b45) ) ROM_END - ROM_START( aurailjd ) ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code ROM_LOAD16_BYTE( "bootleg_epr-13446.a7", 0x000000, 0x20000, CRC(25221510) SHA1(8c461db9438bc785c5f81e3cb3bcea9adbd2be9c) ) @@ -5064,6 +5057,7 @@ ROM_START( aurailjd ) ROM_RELOAD( 0x30000, 0x20000 ) ROM_END + //************************************************************************************************************************* //************************************************************************************************************************* //************************************************************************************************************************* @@ -5122,7 +5116,6 @@ ROM_START( bayrouted ) ROM_LOAD( "mpr-12461.a12", 0x30000, 0x20000, CRC(b03b8b46) SHA1(b0283ac377d464f3d9374a992192ec6c515a3c2f) ) ROM_END - //************************************************************************************************************************* // Bay Route, Sega System 16B // CPU: FD1094 (317-0115) @@ -5265,7 +5258,6 @@ ROM_START( bullet ) ROM_LOAD( "epr-10998.a8", 0x10000, 0x8000, CRC(f971a817) SHA1(502c95638e4fd5f87e5fc837cb44b39a5d62f4e4) ) ROM_END - ROM_START( bulletd ) ROM_REGION( 0x30000, "maincpu", 0 ) // 68000 code ROM_LOAD16_BYTE( "bootleg_epr-11010.a4", 0x000000, 0x08000, CRC(c4b7cb63) SHA1(c35fceab2a03f23d9690432a582064d12de950f6) ) @@ -5295,6 +5287,7 @@ ROM_START( bulletd ) ROM_LOAD( "epr-10998.a8", 0x10000, 0x8000, CRC(f971a817) SHA1(502c95638e4fd5f87e5fc837cb44b39a5d62f4e4) ) ROM_END + //************************************************************************************************************************* //************************************************************************************************************************* //************************************************************************************************************************* @@ -5639,6 +5632,7 @@ ROM_START( cottonjad ) ROM_LOAD( "opr-13061.a11", 0x10000, 0x20000, CRC(4d21153f) SHA1(173ddd9633f255c39ca508c37d0562e374704e7b) ) ROM_END + //************************************************************************************************************************* //************************************************************************************************************************* //************************************************************************************************************************* @@ -5730,7 +5724,6 @@ ROM_START( dunkshota ) // several ROMs had replacement? (different style to othe ROM_LOAD( "317-0022.key", 0x0000, 0x2000, CRC(3f218333) SHA1(6f73801070a2c9748fc319cc95ab7a802f8ea7b6) ) ROM_END - ROM_START( dunkshoto ) ROM_REGION( 0x30000, "maincpu", 0 ) // 68000 code ROM_LOAD16_BYTE( "epr-10467.a1", 0x000001, 0x8000, CRC(29774114) SHA1(3a88739213afd4ef7807ddbd3acdfddeb9636fd3) ) @@ -6264,7 +6257,6 @@ ROM_START( exctleag ) ROM_LOAD( "epr-11143.a11", 0x40000, 0x8000, CRC(848b7b77) SHA1(8903a39f8f0ffb4ce32117d33282876196516c30) ) ROM_END - ROM_START( exctleagd ) ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code ROM_LOAD16_BYTE( "bootleg_epr-11939.a4", 0x00000, 0x10000, CRC(42db9082) SHA1(3ac03ad9dc9b5554b0e4ded4520f957e7dc4bf6e) ) @@ -6297,6 +6289,7 @@ ROM_START( exctleagd ) ROM_LOAD( "epr-11143.a11", 0x40000, 0x8000, CRC(848b7b77) SHA1(8903a39f8f0ffb4ce32117d33282876196516c30) ) ROM_END + //************************************************************************************************************************* //************************************************************************************************************************* //************************************************************************************************************************* @@ -6434,7 +6427,6 @@ ROM_START( fpointbla ) ROM_LOAD( "b1-ic19.bin", 0x0000, 0x8000, CRC(9a8c11bb) SHA1(399f8e9bdd7aaa4d25817fa9cd4bbf413e5baebe) ) ROM_END - //************************************************************************************************************************* // Flash Point, Sega System 16B // CPU: FD1094 (317-0127A) @@ -6498,6 +6490,7 @@ ROM_START( fpoint1d ) ROM_LOAD( "epr-12592.a10", 0x0000, 0x8000, CRC(9a8c11bb) SHA1(399f8e9bdd7aaa4d25817fa9cd4bbf413e5baebe) ) ROM_END + //************************************************************************************************************************* //************************************************************************************************************************* //************************************************************************************************************************* @@ -6860,6 +6853,7 @@ ROM_START( goldnaxe1d ) ROM_LOAD( "mpr-12384.ic6", 0x10000, 0x20000, CRC(6218d8e7) SHA1(5a745c750efb4a61716f99befb7ed14cc84e9973) ) ROM_END + //************************************************************************************************************************* //************************************************************************************************************************* //************************************************************************************************************************* @@ -6997,6 +6991,7 @@ ROM_START( hwchampjd ) ROM_LOAD( "pls153.bin", 0x0000, 0x00eb, CRC(39b47212) SHA1(432b47aee5ecbf08a8a6dc2f8379c816feb86328) ) ROM_END + //************************************************************************************************************************* //************************************************************************************************************************* //************************************************************************************************************************* @@ -7396,7 +7391,6 @@ ROM_START( cencourt ) ROM_END - //************************************************************************************************************************* //************************************************************************************************************************* //************************************************************************************************************************* @@ -7443,16 +7437,18 @@ ROM_END //************************************************************************************************************************* //************************************************************************************************************************* // Ryukyu, Sega System 16B -// CPU: FD1094 8J2 (317-5023) -// ROM Board type: 171-5521 +// CPU: FD1094 8M2 (317-5023A) +// ROM Board type: 171-5704 +// Sega game ID: 836-7666 RYUKYU +// ROM board: 836-7667 // ROM_START( ryukyu ) ROM_REGION( 0x20000, "maincpu", 0 ) // 68000 code - ROM_LOAD16_BYTE( "epr-13348.a7", 0x00000, 0x10000, CRC(5f0e0c86) SHA1(f8f5912a190d0755cc5158e2e43cceb825f95b4f) ) - ROM_LOAD16_BYTE( "epr-13347.a5", 0x00001, 0x10000, CRC(398031fa) SHA1(5c118c85b7af1a83726b95bbeb85cb5020254f57) ) + ROM_LOAD16_BYTE( "epr-13348a.a7", 0x00000, 0x10000, CRC(64f6ada9) SHA1(31e2adc8697c21ca4aa2d9357f7303644168d0a2) ) + ROM_LOAD16_BYTE( "epr-13347a.a5", 0x00001, 0x10000, CRC(fade1f50) SHA1(46e6224060d526aa362df1a1026ba445832ad7f3) ) ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key - ROM_LOAD( "317-5023.key", 0x0000, 0x2000, CRC(43704331) SHA1(e827547fa2e80fe641687cb41bb33cb9c5783f56) ) + ROM_LOAD( "317-5023a.key", 0x0000, 0x2000, CRC(5e372b89) SHA1(885e56e5a54ed46a230396654696e2fd5f31a382) ) ROM_REGION( 0x60000, "gfx1", 0 ) // tiles ROM_LOAD( "opr-13351.a14", 0x00000, 0x20000, CRC(a68a4e6d) SHA1(ee3e317c7184b41af5dd383d41f7be3eebff0d04) ) @@ -7472,18 +7468,16 @@ ROM_END //************************************************************************************************************************* // Ryukyu, Sega System 16B -// CPU: FD1094 8M2 (317-5023A) -// ROM Board type: 171-5704 -// Sega game ID: 836-7666 RYUKYU -// ROM board: 836-7667 +// CPU: FD1094 8J2 (317-5023) +// ROM Board type: 171-5521 // ROM_START( ryukyua ) ROM_REGION( 0x20000, "maincpu", 0 ) // 68000 code - ROM_LOAD16_BYTE( "epr-13348a.a7", 0x00000, 0x10000, CRC(64f6ada9) SHA1(31e2adc8697c21ca4aa2d9357f7303644168d0a2) ) - ROM_LOAD16_BYTE( "epr-13347a.a5", 0x00001, 0x10000, CRC(fade1f50) SHA1(46e6224060d526aa362df1a1026ba445832ad7f3) ) + ROM_LOAD16_BYTE( "epr-13348.a7", 0x00000, 0x10000, CRC(5f0e0c86) SHA1(f8f5912a190d0755cc5158e2e43cceb825f95b4f) ) + ROM_LOAD16_BYTE( "epr-13347.a5", 0x00001, 0x10000, CRC(398031fa) SHA1(5c118c85b7af1a83726b95bbeb85cb5020254f57) ) ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key - ROM_LOAD( "317-5023a.key", 0x0000, 0x2000, NO_DUMP ) + ROM_LOAD( "317-5023.key", 0x0000, 0x2000, CRC(43704331) SHA1(e827547fa2e80fe641687cb41bb33cb9c5783f56) ) ROM_REGION( 0x60000, "gfx1", 0 ) // tiles ROM_LOAD( "opr-13351.a14", 0x00000, 0x20000, CRC(a68a4e6d) SHA1(ee3e317c7184b41af5dd383d41f7be3eebff0d04) ) @@ -7522,6 +7516,7 @@ ROM_START( ryukyud ) ROM_LOAD( "opr-13350.a11", 0x10000, 0x20000, CRC(3c59a658) SHA1(2cef13ee9e666bb850fe6c6e6954d7b75df665a9) ) ROM_END + //************************************************************************************************************************* //************************************************************************************************************************* //************************************************************************************************************************* @@ -7625,8 +7620,6 @@ ROM_START( sdibl ) ROM_LOAD( "a7.rom", 0x0000, 0x8000, CRC(793f9f7f) SHA1(9e4fde376db9e99a83eb2fc734c6721c122ba9af) ) ROM_END - - ROM_START(sdibl2) ROM_REGION16_BE(0x40000, "maincpu", 0) // 68000 data ROM_LOAD16_BYTE("de1", 0x00000, 0x08000, CRC(56f6fd26) SHA1(15ca2567102f931329163b76a2be4cf8fb634cc4) ) @@ -8093,6 +8086,7 @@ ROM_START( sonicbomd ) ROM_LOAD( "epr-11349.a9", 0x20000, 0x8000, CRC(8e4b6204) SHA1(ec0a2812b4726b5ff236f2fbb63fd2dd13cf4935) ) ROM_END + //************************************************************************************************************************* //************************************************************************************************************************* //************************************************************************************************************************* @@ -8290,6 +8284,7 @@ ROM_START( tetris1d ) ROM_LOAD( "epr-12168.a7", 0x0000, 0x8000, CRC(bd9ba01b) SHA1(fafa7dc36cc057a50ae4cdf7a35f3594292336f4) ) ROM_END + //************************************************************************************************************************* //************************************************************************************************************************* //************************************************************************************************************************* @@ -8514,7 +8509,6 @@ ROM_START( wb3 ) ROM_LOAD( "317-0098.c2", 0x00000, 0x1000, NO_DUMP ) ROM_END - //************************************************************************************************************************* // Wonder Boy III, Sega System 16B // CPU: FD1094 (317-0087) @@ -8707,6 +8701,7 @@ ROM_START( wb32d ) ROM_LOAD( "epr-12127.a7", 0x0000, 0x8000, CRC(0bb901bb) SHA1(c81b198df8e3b0ec568032c76addf0d1a1711194) ) ROM_END + //************************************************************************************************************************* //************************************************************************************************************************* //************************************************************************************************************************* @@ -8883,7 +8878,6 @@ ROM_START( wrestwar1 ) ROM_LOAD( "mpr-12149.a12", 0x30000, 0x20000, CRC(d6617b19) SHA1(aa36d257eaa52c8c871a39aaa2f29c203525dbaf) ) ROM_END - ROM_START( wrestwar1d ) ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code ROM_LOAD16_BYTE( "bootleg_epr-12145.a7", 0x00000, 0x20000, CRC(6a50d373) SHA1(bc4ff28f02a326ca535251cc59399149e625b266) ) @@ -8916,6 +8910,7 @@ ROM_START( wrestwar1d ) ROM_LOAD( "mpr-12149.a12", 0x30000, 0x20000, CRC(d6617b19) SHA1(aa36d257eaa52c8c871a39aaa2f29c203525dbaf) ) ROM_END + //************************************************************************************************************************* //************************************************************************************************************************* //************************************************************************************************************************* @@ -9314,8 +9309,8 @@ GAME( 1988, cencourt, passsht, system16b_mc8123, cencourt, segas16b_stat GAME( 1991, riotcity, 0, system16b, riotcity, segas16b_state, init_generic_5704, ROT0, "Sega / Westone", "Riot City (Japan)", 0 ) -GAME( 1990, ryukyu, 0, system16b_fd1094, ryukyu, segas16b_state, init_generic_5704, ROT0, "Success / Sega", "RyuKyu (Japan) (FD1094 317-5023)", 0 ) -GAME( 1990, ryukyua, ryukyu, system16b_fd1094, ryukyu, segas16b_state, init_generic_5704, ROT0, "Success / Sega", "RyuKyu (Japan) (FD1094 317-5023A)", MACHINE_NOT_WORKING ) // decryption key not available +GAME( 1990, ryukyu, 0, system16b_fd1094, ryukyu, segas16b_state, init_generic_5704, ROT0, "Success / Sega", "RyuKyu (Rev A, Japan) (FD1094 317-5023A)", 0 ) +GAME( 1990, ryukyua, ryukyu, system16b_fd1094, ryukyu, segas16b_state, init_generic_5704, ROT0, "Success / Sega", "RyuKyu (Japan) (FD1094 317-5023)", 0 ) GAME( 1987, defense, sdi, system16b_fd1089a, sdi, segas16b_state, init_defense_5358_small, ROT0, "Sega", "Defense (System 16B, FD1089A 317-0028)", 0 ) GAME( 1987, sdib, sdi, system16b_fd1089a, sdi, segas16b_state, init_defense_5358_small, ROT0, "Sega", "SDI - Strategic Defense Initiative (System 16B, FD1089A 317-0028)", 0 ) diff --git a/src/mame/drivers/stratos.cpp b/src/mame/drivers/stratos.cpp index 42b7a8364e8..d77f9859ce5 100644 --- a/src/mame/drivers/stratos.cpp +++ b/src/mame/drivers/stratos.cpp @@ -375,5 +375,5 @@ ROM_START( stratos ) ROM_FILL(0x00000, 0x10000, 0xff) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -CONS( 1986, stratos, 0, 0, stratos, stratos, stratos_state, init_stratos, "SciSys", "Kasparov Chess Computer: Stratos", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +CONS( 1986, stratos, 0, 0, stratos, stratos, stratos_state, init_stratos, "SciSys", "Kasparov Stratos", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/subsino2.cpp b/src/mame/drivers/subsino2.cpp index 0a271eb356b..ebb171dc9ec 100644 --- a/src/mame/drivers/subsino2.cpp +++ b/src/mame/drivers/subsino2.cpp @@ -98,6 +98,7 @@ public: , m_screen(*this, "screen") , m_palette(*this, "palette") , m_hopper(*this, "hopper") + , m_ticket(*this, "ticket") , m_keyb(*this, "KEYB_%u", 0U) , m_dsw(*this, "DSW%u", 1U) , m_system(*this, "SYSTEM") @@ -203,7 +204,6 @@ private: void xplan_io(address_map &map); void xplan_map(address_map &map); void xtrain_io(address_map &map); - void ptrain_io(address_map &map); virtual void machine_start() override { m_leds.resolve(); } @@ -227,6 +227,7 @@ private: required_device m_screen; required_device m_palette; optional_device m_hopper; + optional_device m_ticket; optional_ioport_array<5> m_keyb; optional_ioport_array<4> m_dsw; optional_ioport m_system; @@ -1504,10 +1505,14 @@ WRITE8_MEMBER(subsino2_state::xtrain_outputs_w) switch (offset) { case 0: // D + m_hopper->motor_w(BIT(data, 2)); // 0x40 = serial out ? (at boot) break; case 1: // C + if (m_ticket.found()) + m_ticket->motor_w(BIT(data, 0)); + m_leds[0] = BIT(data, 1); // re-double m_leds[1] = BIT(data, 2); // half double break; @@ -1521,8 +1526,10 @@ WRITE8_MEMBER(subsino2_state::xtrain_outputs_w) break; case 3: // A - machine().bookkeeping().coin_counter_w(0, data & 0x01 ); // coin in - machine().bookkeeping().coin_counter_w(1, data & 0x02 ); // key in + machine().bookkeeping().coin_counter_w(0, BIT(data, 0)); // coin in + machine().bookkeeping().coin_counter_w(1, BIT(data, 1)); // key in + machine().bookkeeping().coin_counter_w(2, BIT(data, 2)); // hopper out + machine().bookkeeping().coin_counter_w(3, BIT(data, 3)); // ticket out m_leds[7] = BIT(data, 4); // start break; @@ -1533,8 +1540,6 @@ WRITE8_MEMBER(subsino2_state::xtrain_outputs_w) READ8_MEMBER(subsino2_state::xtrain_subsino_r) { - // xtrain immediately ends the payout when this matches - // but mtrain refuses to payout if this doesn't match static const char data[] = { "SUBSINO" }; return data[offset]; } @@ -1553,11 +1558,6 @@ void subsino2_state::xtrain_io(address_map &map) // 306 = d, 307 = c, 308 = b, 309 = a map(0x0306, 0x0309).w(FUNC(subsino2_state::xtrain_outputs_w)).share("outputs"); -} - -void subsino2_state::ptrain_io(address_map &map) -{ - xtrain_io(map); map(0x0313, 0x0319).r(FUNC(subsino2_state::xtrain_subsino_r)); } @@ -2212,46 +2212,54 @@ static INPUT_PORTS_START( xtrain ) // JAMMA inputs: PORT_START("IN A") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Re-Double") PORT_CODE(KEYCODE_N) // re-double - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_HALF ) PORT_NAME("Half Double") // half double - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start") // start - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Hold 3 / Small") // hold 3 / small / decrease sample in test mode - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) PORT_NAME("Bet") // bet + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Re-Double") PORT_CODE(KEYCODE_N) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_GAMBLE_HALF) PORT_NAME("Half Double") + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNKNOWN) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNKNOWN) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNKNOWN) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_START1) PORT_NAME("Start") + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_POKER_HOLD3) PORT_NAME("Hold 3 / Small") + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_GAMBLE_BET) PORT_NAME("Bet") PORT_START("IN B") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Hold 1 / Take" ) // hold 1 / take - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_D_UP ) PORT_NAME("Double Up / Help") // double up / help - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME("Hold 2 / Big") // hold 2 / big / increase sample in test mode - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) // coin in - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD1) PORT_NAME("Hold 1 / Take" ) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_GAMBLE_D_UP) PORT_NAME("Double Up / Help") + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNKNOWN) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNKNOWN) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD2) PORT_NAME("Hold 2 / Big") + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNKNOWN) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_COIN1) PORT_NAME("Coin In") + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_START("IN C") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) // stats (keep pressed during boot for service mode) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN ) // key in - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_IMPULSE(1) // service mode - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) // pay-out + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK) // keep pressed during boot for service mode + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNKNOWN) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNKNOWN) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNKNOWN) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_SERVICE) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT) PORT_START("IN D") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Reset") PORT_CODE(KEYCODE_F1) // reset - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_CUSTOM ) // serial in? + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNKNOWN) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNKNOWN) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNKNOWN) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_CUSTOM) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Reset") PORT_CODE(KEYCODE_F1) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNKNOWN) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNKNOWN) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_CUSTOM) // serial in? INPUT_PORTS_END +static INPUT_PORTS_START( ptrain ) + PORT_INCLUDE(xtrain) + + PORT_MODIFY("IN B") + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_CUSTOM) PORT_READ_LINE_DEVICE_MEMBER("ticket", ticket_dispenser_device, line_r) +INPUT_PORTS_END + + /*************************************************************************** Water-Nymph ***************************************************************************/ @@ -2570,12 +2578,15 @@ void subsino2_state::xtrain(machine_config &config) { xplan(config); m_maincpu->set_addrmap(AS_IO, &subsino2_state::xtrain_io); + + HOPPER(config, m_hopper, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH); } void subsino2_state::ptrain(machine_config &config) { xtrain(config); - m_maincpu->set_addrmap(AS_IO, &subsino2_state::ptrain_io); + + TICKET_DISPENSER(config, m_ticket, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH); } void subsino2_state::expcard(machine_config &config) @@ -3352,7 +3363,7 @@ GAME( 1998, saklove, 0, saklove, saklove, subsino2_state, init_saklove GAME( 1999, xtrain, 0, xtrain, xtrain, subsino2_state, init_xtrain, ROT0, "Subsino", "X-Train (Ver. 1.3)", 0 ) -GAME( 1999, ptrain, 0, ptrain, xtrain, subsino2_state, init_ptrain, ROT0, "Subsino", "Panda Train (Novamatic 1.7)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1999, ptrain, 0, ptrain, ptrain, subsino2_state, init_ptrain, ROT0, "Subsino", "Panda Train (Novamatic 1.7)", MACHINE_IMPERFECT_GRAPHICS ) GAME( 1999, bishjan, 0, bishjan, bishjan, subsino2_state, init_bishjan, ROT0, "Subsino", "Bishou Jan (Japan, Ver. 203)", MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/taito_f2.cpp b/src/mame/drivers/taito_f2.cpp index bfd8be92126..2df2827c9eb 100644 --- a/src/mame/drivers/taito_f2.cpp +++ b/src/mame/drivers/taito_f2.cpp @@ -2691,85 +2691,25 @@ INPUT_PORTS_END GFX DECODING ***********************************************************/ -static const gfx_layout finalb_tilelayout = -{ - 16,16, /* 16*16 sprites */ - RGN_FRAC(1,2), - 6, /* 6 bits per pixel */ - { RGN_FRAC(1,2)+0, RGN_FRAC(1,2)+1, STEP4(0,1) }, - { STEP4(3*4,-4), STEP4(7*4,-4), STEP4(11*4,-4), STEP4(15*4,-4) }, - { STEP16(0,16*4) }, - 128*8 /* every sprite takes 128 consecutive bytes */ -}; - -static const gfx_layout tilelayout = -{ - 16,16, /* 16*16 sprites */ - RGN_FRAC(1,1), - 4, /* 4 bits per pixel */ - { STEP4(0,1) }, - { STEP4(3*4,-4), STEP4(7*4,-4), STEP4(11*4,-4), STEP4(15*4,-4) }, - { STEP16(0,16*4) }, - 128*8 /* every sprite takes 128 consecutive bytes */ -}; - -static const gfx_layout charlayout = -{ - 8,8, /* 8*8 characters */ - RGN_FRAC(1,1), - 4, /* 4 bits per pixel */ - { STEP4(0,1) }, - { STEP8(0,4) }, - { STEP8(0,4*8) }, - 32*8 /* every sprite takes 32 consecutive bytes */ -}; - -static const gfx_layout yuyugogo_charlayout = -{ - 8,8, /* 8*8 characters */ - RGN_FRAC(1,1), - 1, /* 1 bit per pixel */ - { 0 }, - { STEP8(0,1) }, - { STEP8(0,8) }, - 8*8 /* every sprite takes 8 consecutive bytes */ -}; - -static GFXDECODE_START( gfx_finalb ) - GFXDECODE_ENTRY( "gfx2", 0, finalb_tilelayout, 0, 64 ) /* sprites, 6-bit deep */ - GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 256 ) /* playfield */ -GFXDECODE_END - static GFXDECODE_START( gfx_taitof2 ) - GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0, 256 ) /* sprites */ - GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 256 ) /* playfield */ + GFXDECODE_ENTRY( "sprites", 0, gfx_16x16x4_packed_lsb, 0, 256 ) /* sprites */ + GFXDECODE_ENTRY( "tc0100scn_1", 0, gfx_8x8x4_packed_msb, 0, 256 ) /* playfield */ GFXDECODE_END -static GFXDECODE_START( gfx_pivot ) - GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0, 256 ) /* sprites */ - GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 256 ) /* playfield */ - GFXDECODE_ENTRY( "gfx3", 0, charlayout, 0, 256 ) /* playfield */ +static GFXDECODE_START( gfx_thundfox ) + GFXDECODE_ENTRY( "sprites", 0, gfx_16x16x4_packed_lsb, 0, 256 ) /* sprites */ + GFXDECODE_ENTRY( "tc0100scn_1", 0, gfx_8x8x4_packed_msb, 0, 256 ) /* playfield */ + GFXDECODE_ENTRY( "tc0100scn_2", 0, gfx_8x8x4_packed_msb, 0, 256 ) /* playfield */ GFXDECODE_END static GFXDECODE_START( gfx_yuyugogo ) - GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0, 256 ) /* sprites */ - GFXDECODE_ENTRY( "gfx1", 0, yuyugogo_charlayout, 0, 256 ) /* playfield */ + GFXDECODE_ENTRY( "sprites", 0, gfx_16x16x4_packed_lsb, 0, 256 ) /* sprites */ + GFXDECODE_ENTRY( "tc0100scn_1", 0, gfx_8x8x1, 0, 256 ) /* playfield */ GFXDECODE_END -static const gfx_layout deadconx_charlayout = -{ - 16,16, /* 16*16 characters */ - RGN_FRAC(1,1), - 4, /* 4 bits per pixel */ - { STEP4(0,1) }, - { STEP8(7*4,-4), STEP8(15*4,-4) }, - { STEP16(0,16*4) }, - 128*8 /* every sprite takes 128 consecutive bytes */ -}; - static GFXDECODE_START( gfx_deadconx ) - GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0, 256 ) /* sprites */ - GFXDECODE_ENTRY( "gfx1", 0, deadconx_charlayout, 0, 256 ) /* playfield */ + GFXDECODE_ENTRY( "sprites", 0, gfx_16x16x4_packed_lsb, 0, 256 ) /* sprites */ + GFXDECODE_ENTRY( "tc0480scp", 0, gfx_16x16x4_packed_lsb, 0, 256 ) /* playfield */ GFXDECODE_END static const gfx_layout footchmpbl_tilelayout = @@ -2795,14 +2735,14 @@ static const gfx_layout footchmpbl_charlayout = }; static GFXDECODE_START( gfx_footchmpbl ) - GFXDECODE_ENTRY( "gfx2", 0, footchmpbl_tilelayout, 0, 256 ) /* sprites */ - GFXDECODE_ENTRY( "gfx1", 0, footchmpbl_tilelayout, 0, 256 ) /* playfield */ - GFXDECODE_ENTRY( "gfx3", 0, footchmpbl_charlayout, 0, 256 ) // gets wiped out by the dynamic decode atm - GFXDECODE_ENTRY( "gfx3", 0, footchmpbl_charlayout, 0, 256 ) // bootleg should clearly use this instead of the uploaded tiles + GFXDECODE_ENTRY( "sprites", 0, footchmpbl_tilelayout, 0, 256 ) /* sprites */ + GFXDECODE_ENTRY( "tc0480scp", 0, footchmpbl_tilelayout, 0, 256 ) /* playfield */ + GFXDECODE_ENTRY( "gfx3", 0, footchmpbl_charlayout, 0, 256 ) // gets wiped out by the dynamic decode atm + GFXDECODE_ENTRY( "gfx3", 0, footchmpbl_charlayout, 0, 256 ) // bootleg should clearly use this instead of the uploaded tiles GFXDECODE_END -WRITE8_MEMBER(taitof2_state::cameltrya_porta_w) +void taitof2_state::cameltrya_porta_w(u8 data) { // Implement // } @@ -2931,7 +2871,7 @@ void taitof2_state::finalb(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::finalb_map); /* video hardware */ - m_gfxdecode->set_info(gfx_finalb); + m_gfxdecode->set_info(gfx_taitof2); MCFG_VIDEO_START_OVERRIDE(taitof2_state,finalb) m_screen->screen_vblank().set(FUNC(taitof2_state::screen_vblank_partial_buffer_delayed)); @@ -2950,7 +2890,7 @@ void taitof2_state::dondokod(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::dondokod_map); /* video hardware */ - m_gfxdecode->set_info(gfx_pivot); + m_gfxdecode->set_info(gfx_taitof2); MCFG_VIDEO_START_OVERRIDE(taitof2_state,dondokod) m_screen->screen_vblank().set(FUNC(taitof2_state::screen_vblank_partial_buffer_delayed)); m_screen->set_screen_update(FUNC(taitof2_state::screen_update_pri_roz)); @@ -2962,8 +2902,8 @@ void taitof2_state::dondokod(machine_config &config) m_tc0100scn[0]->set_palette(m_palette); TC0280GRD(config, m_tc0280grd, 0); - m_tc0280grd->set_gfx_region(2); - m_tc0280grd->set_gfxdecode_tag(m_gfxdecode); + m_tc0280grd->set_color_base(0); + m_tc0280grd->set_palette(m_palette); TC0360PRI(config, m_tc0360pri, 0); } @@ -3002,7 +2942,7 @@ void taitof2_state::thundfox(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::thundfox_map); /* video hardware */ - m_gfxdecode->set_info(gfx_pivot); + m_gfxdecode->set_info(gfx_thundfox); MCFG_VIDEO_START_OVERRIDE(taitof2_state,thundfox) m_screen->set_screen_update(FUNC(taitof2_state::screen_update_thundfox)); m_screen->screen_vblank().set(FUNC(taitof2_state::screen_vblank_partial_buffer_delayed_thundfox)); @@ -3036,7 +2976,7 @@ void taitof2_state::cameltry(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::cameltry_map); /* video hardware */ - m_gfxdecode->set_info(gfx_pivot); + m_gfxdecode->set_info(gfx_taitof2); MCFG_VIDEO_START_OVERRIDE(taitof2_state,dondokod) m_screen->set_screen_update(FUNC(taitof2_state::screen_update_pri_roz)); @@ -3047,8 +2987,8 @@ void taitof2_state::cameltry(machine_config &config) m_tc0100scn[0]->set_palette(m_palette); TC0280GRD(config, m_tc0280grd, 0); - m_tc0280grd->set_gfx_region(2); - m_tc0280grd->set_gfxdecode_tag(m_gfxdecode); + m_tc0280grd->set_color_base(0); + m_tc0280grd->set_palette(m_palette); TC0360PRI(config, m_tc0360pri, 0); } @@ -3373,7 +3313,7 @@ void taitof2_state::pulirula(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::pulirula_map); /* video hardware */ - m_gfxdecode->set_info(gfx_pivot); + m_gfxdecode->set_info(gfx_taitof2); MCFG_VIDEO_START_OVERRIDE(taitof2_state,pulirula) m_screen->set_screen_update(FUNC(taitof2_state::screen_update_pri_roz)); @@ -3384,8 +3324,8 @@ void taitof2_state::pulirula(machine_config &config) m_tc0100scn[0]->set_palette(m_palette); TC0430GRW(config, m_tc0430grw, 0); - m_tc0430grw->set_gfx_region(2); - m_tc0430grw->set_gfxdecode_tag(m_gfxdecode); + m_tc0430grw->set_color_base(0); + m_tc0430grw->set_palette(m_palette); TC0360PRI(config, m_tc0360pri, 0); } @@ -3603,7 +3543,7 @@ void taitof2_state::driftout(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::driftout_map); /* video hardware */ - m_gfxdecode->set_info(gfx_pivot); + m_gfxdecode->set_info(gfx_taitof2); MCFG_VIDEO_START_OVERRIDE(taitof2_state,driftout) m_screen->set_screen_update(FUNC(taitof2_state::screen_update_pri_roz)); @@ -3615,8 +3555,8 @@ void taitof2_state::driftout(machine_config &config) m_tc0100scn[0]->set_palette(m_palette); TC0430GRW(config, m_tc0430grw, 0); - m_tc0430grw->set_gfx_region(2); - m_tc0430grw->set_gfxdecode_tag(m_gfxdecode); + m_tc0430grw->set_color_base(0); + m_tc0430grw->set_palette(m_palette); TC0360PRI(config, m_tc0360pri, 0); } @@ -3649,7 +3589,7 @@ void taitof2_state::cameltrya(machine_config &config) m_screen->screen_vblank().set(FUNC(taitof2_state::screen_vblank_no_buffer)); m_screen->set_palette(m_palette); - GFXDECODE(config, m_gfxdecode, m_palette, gfx_pivot); + GFXDECODE(config, m_gfxdecode, m_palette, gfx_taitof2); PALETTE(config, m_palette).set_format(palette_device::RGBx_444, 4096); MCFG_VIDEO_START_OVERRIDE(taitof2_state,dondokod) @@ -3661,8 +3601,8 @@ void taitof2_state::cameltrya(machine_config &config) m_tc0100scn[0]->set_palette(m_palette); TC0280GRD(config, m_tc0280grd, 0); - m_tc0280grd->set_gfx_region(2); - m_tc0280grd->set_gfxdecode_tag(m_gfxdecode); + m_tc0280grd->set_color_base(0); + m_tc0280grd->set_palette(m_palette); TC0360PRI(config, m_tc0360pri, 0); @@ -3713,7 +3653,7 @@ void taitof2_state::driveout(machine_config &config) m_screen->screen_vblank().set(FUNC(taitof2_state::screen_vblank_no_buffer)); m_screen->set_palette(m_palette); - GFXDECODE(config, m_gfxdecode, m_palette, gfx_pivot); + GFXDECODE(config, m_gfxdecode, m_palette, gfx_taitof2); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 4096); MCFG_VIDEO_START_OVERRIDE(taitof2_state,driftout) @@ -3725,8 +3665,8 @@ void taitof2_state::driveout(machine_config &config) m_tc0100scn[0]->set_palette(m_palette); TC0430GRW(config, m_tc0430grw, 0); - m_tc0430grw->set_gfx_region(2); - m_tc0430grw->set_gfxdecode_tag(m_gfxdecode); + m_tc0430grw->set_color_base(0); + m_tc0430grw->set_palette(m_palette); TC0360PRI(config, m_tc0360pri, 0); @@ -3754,20 +3694,21 @@ ROM_START( finalb ) ROM_LOAD16_BYTE( "b82-09.10", 0x00000, 0x20000, CRC(632f1ecd) SHA1(aa3d1c2059b0dd619d1f6e3e0705b65b4f4be74e) ) ROM_LOAD16_BYTE( "b82-17.11", 0x00001, 0x20000, CRC(e91b2ec9) SHA1(c854104b8d48d20ab9278ecd122c987c3d886a26) ) - ROM_REGION( 0x040000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x040000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_BYTE( "b82-06.19", 0x00001, 0x20000, CRC(fc450a25) SHA1(6929bd2d47549cab037e8807b778741b3c215788) ) ROM_LOAD16_BYTE( "b82-07.18", 0x00000, 0x20000, CRC(ec3df577) SHA1(37a0bb87a12f0332c8e67b22f91c24584f3d46ce) ) - ROM_REGION( 0x200000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_BYTE( "b82-04.4", 0x000000, 0x80000, CRC(6346f98e) SHA1(3fac5ea56b5ae280cd7ca0e0c6c308376056e1ba) ) /* sprites 4-bit format*/ - ROM_LOAD16_BYTE( "b82-03.5", 0x000001, 0x80000, CRC(daa11561) SHA1(81dd596c1b36138904971c36466ec29d08d4fd84) ) /* sprites 4-bit format*/ + ROM_REGION( 0x100000, "sprites", 0 ) /* OBJ */ + ROM_LOAD16_BYTE( "b82-04.4", 0x000001, 0x80000, CRC(6346f98e) SHA1(3fac5ea56b5ae280cd7ca0e0c6c308376056e1ba) ) /* sprites 4-bit format*/ + ROM_LOAD16_BYTE( "b82-03.5", 0x000000, 0x80000, CRC(daa11561) SHA1(81dd596c1b36138904971c36466ec29d08d4fd84) ) /* sprites 4-bit format*/ /* Note: this is intentional to load at 0x180000, not at 0x100000 because finalb_driver_init will move some bits around before data will be 'gfxdecoded'. The whole thing is because this data is 2bits- while above is 4bits-packed format, for a total of 6 bits per pixel. */ - ROM_LOAD( "b82-05.3", 0x180000, 0x80000, CRC(aa90b93a) SHA1(06f41052659959c58d72c9f68f9f6069cb835672) ) /* sprites 2-bit format */ + ROM_REGION( 0x080000, "sprites_hi", 0 ) + ROM_LOAD ( "b82-05.3", 0x000000, 0x80000, CRC(aa90b93a) SHA1(06f41052659959c58d72c9f68f9f6069cb835672) ) /* sprites 2-bit format */ ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "b82_10.16", 0x00000, 0x10000, CRC(a38aaaed) SHA1(d476ea516a797e71e0306da54c17ed1759fe1ccd) ) @@ -3791,20 +3732,21 @@ ROM_START( finalbj ) ROM_LOAD16_BYTE( "b82-09.10", 0x00000, 0x20000, CRC(632f1ecd) SHA1(aa3d1c2059b0dd619d1f6e3e0705b65b4f4be74e) ) ROM_LOAD16_BYTE( "b82-08.11", 0x00001, 0x20000, CRC(07154fe5) SHA1(4772362375c8c2984a305c3bb0320ea80a2e9a40) ) - ROM_REGION( 0x040000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x040000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_BYTE( "b82-06.19", 0x00001, 0x20000, CRC(fc450a25) SHA1(6929bd2d47549cab037e8807b778741b3c215788) ) ROM_LOAD16_BYTE( "b82-07.18", 0x00000, 0x20000, CRC(ec3df577) SHA1(37a0bb87a12f0332c8e67b22f91c24584f3d46ce) ) - ROM_REGION( 0x200000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_BYTE( "b82-04.4", 0x000000, 0x80000, CRC(6346f98e) SHA1(3fac5ea56b5ae280cd7ca0e0c6c308376056e1ba) ) /* sprites 4-bit format*/ - ROM_LOAD16_BYTE( "b82-03.5", 0x000001, 0x80000, CRC(daa11561) SHA1(81dd596c1b36138904971c36466ec29d08d4fd84) ) /* sprites 4-bit format*/ + ROM_REGION( 0x100000, "sprites", 0 ) /* OBJ */ + ROM_LOAD16_BYTE( "b82-04.4", 0x000001, 0x80000, CRC(6346f98e) SHA1(3fac5ea56b5ae280cd7ca0e0c6c308376056e1ba) ) /* sprites 4-bit format*/ + ROM_LOAD16_BYTE( "b82-03.5", 0x000000, 0x80000, CRC(daa11561) SHA1(81dd596c1b36138904971c36466ec29d08d4fd84) ) /* sprites 4-bit format*/ /* Note: this is intentional to load at 0x180000, not at 0x100000 because finalb_driver_init will move some bits around before data will be 'gfxdecoded'. The whole thing is because this data is 2bits- while above is 4bits-packed format, for a total of 6 bits per pixel. */ - ROM_LOAD( "b82-05.3", 0x180000, 0x80000, CRC(aa90b93a) SHA1(06f41052659959c58d72c9f68f9f6069cb835672) ) /* sprites 2-bit format */ + ROM_REGION( 0x080000, "sprites_hi", 0 ) + ROM_LOAD ( "b82-05.3", 0x000000, 0x80000, CRC(aa90b93a) SHA1(06f41052659959c58d72c9f68f9f6069cb835672) ) /* sprites 2-bit format */ ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "b82_10.16", 0x00000, 0x10000, CRC(a38aaaed) SHA1(d476ea516a797e71e0306da54c17ed1759fe1ccd) ) @@ -3829,20 +3771,21 @@ ROM_START( finalbu ) ROM_LOAD16_BYTE( "b82-09-1", 0x00000, 0x20000, CRC(66729cb9) SHA1(f265c07966cf3930a9b5e2dd63d49554705c60f7) ) ROM_LOAD16_BYTE( "b82-6-14", 0x00001, 0x20000, CRC(879387fa) SHA1(9d7aa8ece6cfc66e7c131d9c7a3db792a0336e09) ) - ROM_REGION( 0x040000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x040000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_BYTE( "b82-06.19", 0x00001, 0x20000, CRC(fc450a25) SHA1(6929bd2d47549cab037e8807b778741b3c215788) ) ROM_LOAD16_BYTE( "b82-07.18", 0x00000, 0x20000, CRC(ec3df577) SHA1(37a0bb87a12f0332c8e67b22f91c24584f3d46ce) ) - ROM_REGION( 0x200000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_BYTE( "b82-04.4", 0x000000, 0x80000, CRC(6346f98e) SHA1(3fac5ea56b5ae280cd7ca0e0c6c308376056e1ba) ) /* sprites 4-bit format*/ - ROM_LOAD16_BYTE( "b82-03.5", 0x000001, 0x80000, CRC(daa11561) SHA1(81dd596c1b36138904971c36466ec29d08d4fd84) ) /* sprites 4-bit format*/ + ROM_REGION( 0x100000, "sprites", 0 ) /* OBJ */ + ROM_LOAD16_BYTE( "b82-04.4", 0x000001, 0x80000, CRC(6346f98e) SHA1(3fac5ea56b5ae280cd7ca0e0c6c308376056e1ba) ) /* sprites 4-bit format*/ + ROM_LOAD16_BYTE( "b82-03.5", 0x000000, 0x80000, CRC(daa11561) SHA1(81dd596c1b36138904971c36466ec29d08d4fd84) ) /* sprites 4-bit format*/ /* Note: this is intentional to load at 0x180000, not at 0x100000 because finalb_driver_init will move some bits around before data will be 'gfxdecoded'. The whole thing is because this data is 2bits- while above is 4bits-packed format, for a total of 6 bits per pixel. */ - ROM_LOAD( "b82-05.3", 0x180000, 0x80000, CRC(aa90b93a) SHA1(06f41052659959c58d72c9f68f9f6069cb835672) ) /* sprites 2-bit format */ + ROM_REGION( 0x080000, "sprites_hi", 0 ) + ROM_LOAD ( "b82-05.3", 0x000000, 0x80000, CRC(aa90b93a) SHA1(06f41052659959c58d72c9f68f9f6069cb835672) ) /* sprites 2-bit format */ ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "b82_10.16", 0x00000, 0x10000, CRC(a38aaaed) SHA1(d476ea516a797e71e0306da54c17ed1759fe1ccd) ) @@ -3868,13 +3811,13 @@ ROM_START( dondokod ) ROM_LOAD16_BYTE( "b95-10.bin", 0x40000, 0x20000, CRC(a46e1f0b) SHA1(4adfa7a788d31860e557c4059f77440fe12ac110) ) ROM_LOAD16_BYTE( "b95-14.bin", 0x40001, 0x20000, CRC(6e4e1351) SHA1(207db5f08904d36c1d27cf326eb9260771a836c2) ) // needs name verfied - ROM_REGION( 0x080000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x080000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "b95-02.bin", 0x00000, 0x80000, CRC(67b4e979) SHA1(e709cc24e001bccde1178f7e645fc7aec442540c) ) - ROM_REGION( 0x080000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "b95-01.bin", 0x00000, 0x80000, CRC(51c176ce) SHA1(2866e8bd57b301a0d4690f194be95784c53f9fcb) ) + ROM_REGION( 0x080000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "b95-01.bin", 0x00000, 0x80000, CRC(51c176ce) SHA1(2866e8bd57b301a0d4690f194be95784c53f9fcb) ) - ROM_REGION( 0x080000, "gfx3", 0 ) /* pivot gfx */ + ROM_REGION( 0x080000, "tc0280grd", 0 ) /* pivot gfx */ ROM_LOAD( "b95-03.bin", 0x00000, 0x80000, CRC(543aa0d1) SHA1(38282ae36a94cc3a354d343cf7d5262e0e309d1f) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ @@ -3893,13 +3836,13 @@ ROM_START( dondokodu ) ROM_LOAD16_BYTE( "b95-10.bin", 0x40000, 0x20000, CRC(a46e1f0b) SHA1(4adfa7a788d31860e557c4059f77440fe12ac110) ) ROM_LOAD16_BYTE( "b95-13.bin", 0x40001, 0x20000, CRC(350d2c65) SHA1(60e8651256867648a24719e1bbd1367e89784e30) ) // needs name verfied - ROM_REGION( 0x080000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x080000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "b95-02.bin", 0x00000, 0x80000, CRC(67b4e979) SHA1(e709cc24e001bccde1178f7e645fc7aec442540c) ) - ROM_REGION( 0x080000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "b95-01.bin", 0x00000, 0x80000, CRC(51c176ce) SHA1(2866e8bd57b301a0d4690f194be95784c53f9fcb) ) + ROM_REGION( 0x080000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "b95-01.bin", 0x00000, 0x80000, CRC(51c176ce) SHA1(2866e8bd57b301a0d4690f194be95784c53f9fcb) ) - ROM_REGION( 0x080000, "gfx3", 0 ) /* pivot gfx */ + ROM_REGION( 0x080000, "tc0280grd", 0 ) /* pivot gfx */ ROM_LOAD( "b95-03.bin", 0x00000, 0x80000, CRC(543aa0d1) SHA1(38282ae36a94cc3a354d343cf7d5262e0e309d1f) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ @@ -3918,13 +3861,13 @@ ROM_START( dondokodj ) ROM_LOAD16_BYTE( "b95-10.bin", 0x40000, 0x20000, CRC(a46e1f0b) SHA1(4adfa7a788d31860e557c4059f77440fe12ac110) ) ROM_LOAD16_BYTE( "b95-09.bin", 0x40001, 0x20000, CRC(d8c86d39) SHA1(43a6a9d545c953e72b6a10bc9d7b2aa2f0ab4764) ) - ROM_REGION( 0x080000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x080000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "b95-02.bin", 0x00000, 0x80000, CRC(67b4e979) SHA1(e709cc24e001bccde1178f7e645fc7aec442540c) ) - ROM_REGION( 0x080000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "b95-01.bin", 0x00000, 0x80000, CRC(51c176ce) SHA1(2866e8bd57b301a0d4690f194be95784c53f9fcb) ) + ROM_REGION( 0x080000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "b95-01.bin", 0x00000, 0x80000, CRC(51c176ce) SHA1(2866e8bd57b301a0d4690f194be95784c53f9fcb) ) - ROM_REGION( 0x080000, "gfx3", 0 ) /* pivot gfx */ + ROM_REGION( 0x080000, "tc0280grd", 0 ) /* pivot gfx */ ROM_LOAD( "b95-03.bin", 0x00000, 0x80000, CRC(543aa0d1) SHA1(38282ae36a94cc3a354d343cf7d5262e0e309d1f) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ @@ -3946,12 +3889,12 @@ ROM_START( megablst ) ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 ) ROM_LOAD( "c11-15.ic59", 0x0000, 0x2000, CRC(af49ee7f) SHA1(824d7ed371c19f31768b20117027edba6ffc890e) ) - ROM_REGION( 0x080000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x080000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "c11-05.58", 0x00000, 0x80000, CRC(733e6d8e) SHA1(47f3360f7c41b7e4a42e8198fc1bcce4e819181f) ) - ROM_REGION( 0x100000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_BYTE( "c11-03.32", 0x00001, 0x80000, CRC(46718c7a) SHA1(c10308a282bf0c618108e4afc7ce6f0f6cb8c6c0) ) - ROM_LOAD16_BYTE( "c11-04.31", 0x00000, 0x80000, CRC(663f33cc) SHA1(5d3d3e77b7a84f6a3d4e744eef9b63bef91180e8) ) + ROM_REGION( 0x100000, "sprites", 0 ) /* OBJ */ + ROM_LOAD16_BYTE( "c11-03.32", 0x00000, 0x80000, CRC(46718c7a) SHA1(c10308a282bf0c618108e4afc7ce6f0f6cb8c6c0) ) + ROM_LOAD16_BYTE( "c11-04.31", 0x00001, 0x80000, CRC(663f33cc) SHA1(5d3d3e77b7a84f6a3d4e744eef9b63bef91180e8) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c11-12.3", 0x00000, 0x10000, CRC(b11094f1) SHA1(a01e9f7d1f616bb379eaa85ad81b94173b067782) ) @@ -3981,12 +3924,12 @@ ROM_START( megablstu ) ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 ) ROM_LOAD( "c11-15.ic59", 0x0000, 0x2000, CRC(af49ee7f) SHA1(824d7ed371c19f31768b20117027edba6ffc890e) ) - ROM_REGION( 0x080000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x080000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "c11-05.58", 0x00000, 0x80000, CRC(733e6d8e) SHA1(47f3360f7c41b7e4a42e8198fc1bcce4e819181f) ) - ROM_REGION( 0x100000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_BYTE( "c11-03.32", 0x00001, 0x80000, CRC(46718c7a) SHA1(c10308a282bf0c618108e4afc7ce6f0f6cb8c6c0) ) - ROM_LOAD16_BYTE( "c11-04.31", 0x00000, 0x80000, CRC(663f33cc) SHA1(5d3d3e77b7a84f6a3d4e744eef9b63bef91180e8) ) + ROM_REGION( 0x100000, "sprites", 0 ) /* OBJ */ + ROM_LOAD16_BYTE( "c11-03.32", 0x00000, 0x80000, CRC(46718c7a) SHA1(c10308a282bf0c618108e4afc7ce6f0f6cb8c6c0) ) + ROM_LOAD16_BYTE( "c11-04.31", 0x00001, 0x80000, CRC(663f33cc) SHA1(5d3d3e77b7a84f6a3d4e744eef9b63bef91180e8) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c11-12.3", 0x00000, 0x10000, CRC(b11094f1) SHA1(a01e9f7d1f616bb379eaa85ad81b94173b067782) ) @@ -4008,12 +3951,12 @@ ROM_START( megablstj ) ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 ) ROM_LOAD( "c11-15.ic59", 0x0000, 0x2000, CRC(af49ee7f) SHA1(824d7ed371c19f31768b20117027edba6ffc890e) ) - ROM_REGION( 0x080000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x080000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "c11-05.58", 0x00000, 0x80000, CRC(733e6d8e) SHA1(47f3360f7c41b7e4a42e8198fc1bcce4e819181f) ) - ROM_REGION( 0x100000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_BYTE( "c11-03.32", 0x00001, 0x80000, CRC(46718c7a) SHA1(c10308a282bf0c618108e4afc7ce6f0f6cb8c6c0) ) - ROM_LOAD16_BYTE( "c11-04.31", 0x00000, 0x80000, CRC(663f33cc) SHA1(5d3d3e77b7a84f6a3d4e744eef9b63bef91180e8) ) + ROM_REGION( 0x100000, "sprites", 0 ) /* OBJ */ + ROM_LOAD16_BYTE( "c11-03.32", 0x00000, 0x80000, CRC(46718c7a) SHA1(c10308a282bf0c618108e4afc7ce6f0f6cb8c6c0) ) + ROM_LOAD16_BYTE( "c11-04.31", 0x00001, 0x80000, CRC(663f33cc) SHA1(5d3d3e77b7a84f6a3d4e744eef9b63bef91180e8) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c11-12.3", 0x00000, 0x10000, CRC(b11094f1) SHA1(a01e9f7d1f616bb379eaa85ad81b94173b067782) ) @@ -4032,14 +3975,14 @@ ROM_START( thundfox ) /* Thunder Fox */ ROM_LOAD16_BYTE( "c28-08.50", 0x40000, 0x20000, CRC(38e038f1) SHA1(4b8ed31e35927671ce313f4575e622ecab2c27cb) ) ROM_LOAD16_BYTE( "c28-07.39", 0x40001, 0x20000, CRC(24419abb) SHA1(7d3e70213ae04dd921fc1bce8abb385747c90a38) ) - ROM_REGION( 0x080000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x100000, "sprites", 0 ) /* OBJ */ + ROM_LOAD16_BYTE( "c28-03.29", 0x00000, 0x80000, CRC(51bdc7af) SHA1(e36a063932fa5bd6609930c3708fee1e6feb5389) ) + ROM_LOAD16_BYTE( "c28-04.28", 0x00001, 0x80000, CRC(ba7ed535) SHA1(be7e010f6788d1b82cebc932c793a0a976647832) ) + + ROM_REGION( 0x080000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "c28-02.61", 0x000000, 0x80000, CRC(6230a09d) SHA1(780aff5d4511c5e08cbf78784b163d60358f9283) ) /* TC0100SCN #1 */ - ROM_REGION( 0x100000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_BYTE( "c28-03.29", 0x00001, 0x80000, CRC(51bdc7af) SHA1(e36a063932fa5bd6609930c3708fee1e6feb5389) ) - ROM_LOAD16_BYTE( "c28-04.28", 0x00000, 0x80000, CRC(ba7ed535) SHA1(be7e010f6788d1b82cebc932c793a0a976647832) ) - - ROM_REGION( 0x080000, "gfx3", 0 ) /* SCR */ + ROM_REGION( 0x080000, "tc0100scn_2", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "c28-01.63", 0x000000, 0x80000, CRC(44552b25) SHA1(850c085e3dacd4867f6bcdfab641eb07934e620f) ) /* TC0100SCN #2 */ ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ @@ -4067,14 +4010,14 @@ ROM_START( thundfoxu ) /* Thunder Fox */ ROM_LOAD16_BYTE( "c28-08.50", 0x40000, 0x20000, CRC(38e038f1) SHA1(4b8ed31e35927671ce313f4575e622ecab2c27cb) ) ROM_LOAD16_BYTE( "c28-07.39", 0x40001, 0x20000, CRC(24419abb) SHA1(7d3e70213ae04dd921fc1bce8abb385747c90a38) ) - ROM_REGION( 0x080000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x100000, "sprites", 0 ) /* OBJ */ + ROM_LOAD16_BYTE( "c28-03.29", 0x00000, 0x80000, CRC(51bdc7af) SHA1(e36a063932fa5bd6609930c3708fee1e6feb5389) ) + ROM_LOAD16_BYTE( "c28-04.28", 0x00001, 0x80000, CRC(ba7ed535) SHA1(be7e010f6788d1b82cebc932c793a0a976647832) ) + + ROM_REGION( 0x080000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "c28-02.61", 0x000000, 0x80000, CRC(6230a09d) SHA1(780aff5d4511c5e08cbf78784b163d60358f9283) ) /* TC0100SCN #1 */ - ROM_REGION( 0x100000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_BYTE( "c28-03.29", 0x00001, 0x80000, CRC(51bdc7af) SHA1(e36a063932fa5bd6609930c3708fee1e6feb5389) ) - ROM_LOAD16_BYTE( "c28-04.28", 0x00000, 0x80000, CRC(ba7ed535) SHA1(be7e010f6788d1b82cebc932c793a0a976647832) ) - - ROM_REGION( 0x080000, "gfx3", 0 ) /* SCR */ + ROM_REGION( 0x080000, "tc0100scn_2", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "c28-01.63", 0x000000, 0x80000, CRC(44552b25) SHA1(850c085e3dacd4867f6bcdfab641eb07934e620f) ) /* TC0100SCN #2 */ ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ @@ -4096,14 +4039,14 @@ ROM_START( thundfoxj ) /* Thunder Fox */ ROM_LOAD16_BYTE( "c28-08.50", 0x40000, 0x20000, CRC(38e038f1) SHA1(4b8ed31e35927671ce313f4575e622ecab2c27cb) ) ROM_LOAD16_BYTE( "c28-07.39", 0x40001, 0x20000, CRC(24419abb) SHA1(7d3e70213ae04dd921fc1bce8abb385747c90a38) ) - ROM_REGION( 0x080000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x100000, "sprites", 0 ) /* OBJ */ + ROM_LOAD16_BYTE( "c28-03.29", 0x00000, 0x80000, CRC(51bdc7af) SHA1(e36a063932fa5bd6609930c3708fee1e6feb5389) ) + ROM_LOAD16_BYTE( "c28-04.28", 0x00001, 0x80000, CRC(ba7ed535) SHA1(be7e010f6788d1b82cebc932c793a0a976647832) ) + + ROM_REGION( 0x080000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "c28-02.61", 0x000000, 0x80000, CRC(6230a09d) SHA1(780aff5d4511c5e08cbf78784b163d60358f9283) ) /* TC0100SCN #1 */ - ROM_REGION( 0x100000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_BYTE( "c28-03.29", 0x00001, 0x80000, CRC(51bdc7af) SHA1(e36a063932fa5bd6609930c3708fee1e6feb5389) ) - ROM_LOAD16_BYTE( "c28-04.28", 0x00000, 0x80000, CRC(ba7ed535) SHA1(be7e010f6788d1b82cebc932c793a0a976647832) ) - - ROM_REGION( 0x080000, "gfx3", 0 ) /* SCR */ + ROM_REGION( 0x080000, "tc0100scn_2", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "c28-01.63", 0x000000, 0x80000, CRC(44552b25) SHA1(850c085e3dacd4867f6bcdfab641eb07934e620f) ) /* TC0100SCN #2 */ ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ @@ -4121,13 +4064,13 @@ ROM_START( cameltry ) ROM_LOAD16_BYTE( "c38-11", 0x00000, 0x20000, CRC(be172da0) SHA1(e4915bf25832175591a014aa1abac5edae09380d) ) ROM_LOAD16_BYTE( "c38-14", 0x00001, 0x20000, CRC(ffa430de) SHA1(a3cdb35151a92ddfa2090c1f8710500925e7ad0c) ) - ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF ) + ROM_REGION( 0x100000, "tc0100scn_1", ROMREGION_ERASEFF ) /* empty! */ - ROM_REGION( 0x080000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "c38-01.bin", 0x00000, 0x80000, CRC(c170ff36) SHA1(6a19cc99847ed35ac8a8e9ba0e2e91bfac662203) ) + ROM_REGION( 0x080000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "c38-01.bin", 0x00000, 0x80000, CRC(c170ff36) SHA1(6a19cc99847ed35ac8a8e9ba0e2e91bfac662203) ) - ROM_REGION( 0x080000, "gfx3", 0 ) /* pivot gfx */ + ROM_REGION( 0x080000, "tc0280grd", 0 ) /* pivot gfx */ ROM_LOAD( "c38-02.bin", 0x00000, 0x20000, CRC(1a11714b) SHA1(419f5ec37161fd6b4ca962768e720adf541271d5) ) /* this is on the PCB twice, probably one for each ROZ layer, we load it twice to make this clear */ ROM_LOAD( "c38-02.bin", 0x00000, 0x20000, CRC(1a11714b) SHA1(419f5ec37161fd6b4ca962768e720adf541271d5) ) @@ -4146,13 +4089,13 @@ ROM_START( cameltryj ) ROM_LOAD16_BYTE( "c38-09.bin", 0x00000, 0x20000, CRC(2ae01120) SHA1(6da4155fde0edd76976264f929c5da3c79db5017) ) ROM_LOAD16_BYTE( "c38-10.bin", 0x00001, 0x20000, CRC(48d8ff56) SHA1(73da47b0f9e67defcd0072b71a3661f2c3534f55) ) - ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF ) + ROM_REGION( 0x100000, "tc0100scn_1", ROMREGION_ERASEFF ) /* empty! */ - ROM_REGION( 0x080000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "c38-01.bin", 0x00000, 0x80000, CRC(c170ff36) SHA1(6a19cc99847ed35ac8a8e9ba0e2e91bfac662203) ) + ROM_REGION( 0x080000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "c38-01.bin", 0x00000, 0x80000, CRC(c170ff36) SHA1(6a19cc99847ed35ac8a8e9ba0e2e91bfac662203) ) - ROM_REGION( 0x080000, "gfx3", 0 ) /* pivot gfx */ + ROM_REGION( 0x080000, "tc0280grd", 0 ) /* pivot gfx */ ROM_LOAD( "c38-02.bin", 0x00000, 0x20000, CRC(1a11714b) SHA1(419f5ec37161fd6b4ca962768e720adf541271d5) ) /* this is on the PCB twice, probably one for each ROZ layer, we load it twice to make this clear */ ROM_LOAD( "c38-02.bin", 0x00000, 0x20000, CRC(1a11714b) SHA1(419f5ec37161fd6b4ca962768e720adf541271d5) ) @@ -4172,13 +4115,13 @@ ROM_START( cameltrya ) ROM_LOAD16_BYTE( "c38-11", 0x00000, 0x20000, CRC(be172da0) SHA1(e4915bf25832175591a014aa1abac5edae09380d) ) ROM_LOAD16_BYTE( "c38-16", 0x00001, 0x20000, CRC(66ad6164) SHA1(2df22a6a1d6e194a467e6a6c6b6c2fc9f8441852) ) - ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF ) + ROM_REGION( 0x100000, "tc0100scn_1", ROMREGION_ERASEFF ) /* empty! */ - ROM_REGION( 0x080000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "c38-01.bin", 0x00000, 0x80000, CRC(c170ff36) SHA1(6a19cc99847ed35ac8a8e9ba0e2e91bfac662203) ) + ROM_REGION( 0x080000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "c38-01.bin", 0x00000, 0x80000, CRC(c170ff36) SHA1(6a19cc99847ed35ac8a8e9ba0e2e91bfac662203) ) - ROM_REGION( 0x080000, "gfx3", 0 ) /* pivot gfx */ + ROM_REGION( 0x080000, "tc0280grd", 0 ) /* pivot gfx */ ROM_LOAD( "c38-02.bin", 0x00000, 0x20000, CRC(1a11714b) SHA1(419f5ec37161fd6b4ca962768e720adf541271d5) ) /* this is on the PCB twice, probably one for each ROZ layer, we load it twice to make this clear */ ROM_LOAD( "c38-02.bin", 0x00000, 0x20000, CRC(1a11714b) SHA1(419f5ec37161fd6b4ca962768e720adf541271d5) ) @@ -4196,13 +4139,13 @@ ROM_START( cameltryau ) ROM_LOAD16_BYTE( "c38-11", 0x00000, 0x20000, CRC(be172da0) SHA1(e4915bf25832175591a014aa1abac5edae09380d) ) ROM_LOAD16_BYTE( "c38-14", 0x00001, 0x20000, CRC(ffa430de) SHA1(a3cdb35151a92ddfa2090c1f8710500925e7ad0c) ) - ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF ) + ROM_REGION( 0x100000, "tc0100scn_1", ROMREGION_ERASEFF ) /* empty! */ - ROM_REGION( 0x080000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "c38-01.bin", 0x00000, 0x80000, CRC(c170ff36) SHA1(6a19cc99847ed35ac8a8e9ba0e2e91bfac662203) ) + ROM_REGION( 0x080000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "c38-01.bin", 0x00000, 0x80000, CRC(c170ff36) SHA1(6a19cc99847ed35ac8a8e9ba0e2e91bfac662203) ) - ROM_REGION( 0x080000, "gfx3", 0 ) /* pivot gfx */ + ROM_REGION( 0x080000, "tc0280grd", 0 ) /* pivot gfx */ ROM_LOAD( "c38-02.bin", 0x00000, 0x20000, CRC(1a11714b) SHA1(419f5ec37161fd6b4ca962768e720adf541271d5) ) /* this is on the PCB twice, probably one for each ROZ layer, we load it twice to make this clear */ ROM_LOAD( "c38-02.bin", 0x00000, 0x20000, CRC(1a11714b) SHA1(419f5ec37161fd6b4ca962768e720adf541271d5) ) @@ -4222,12 +4165,12 @@ ROM_START( qtorimon ) /* Quiz Torimonochou */ ROM_LOAD16_BYTE( "mask-51.bin", 0x40000, 0x20000, CRC(12e14aca) SHA1(8f7dc54f68984c82420abf96436743c0654a71ea) ) /* char defs, read by cpu */ ROM_LOAD16_BYTE( "mask-52.bin", 0x40001, 0x20000, CRC(b3ef66f3) SHA1(4766a1ed9b4adcc2f0d2857633ce95194eb80694) ) /* char defs, read by cpu */ - ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF ) + ROM_REGION( 0x100000, "tc0100scn_1", ROMREGION_ERASEFF ) /* empty! */ - ROM_REGION( 0x040000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_BYTE( "c41-02.bin", 0x00001, 0x20000, CRC(05dcd36d) SHA1(f32c5b40e0adad7991bac29ecffcd5dff330e118) ) - ROM_LOAD16_BYTE( "c41-01.bin", 0x00000, 0x20000, CRC(39ff043c) SHA1(a4b0c6763c43a7ad16e98a938ffbb8aef4882eac) ) + ROM_REGION( 0x040000, "sprites", 0 ) /* OBJ */ + ROM_LOAD16_BYTE( "c41-02.bin", 0x00000, 0x20000, CRC(05dcd36d) SHA1(f32c5b40e0adad7991bac29ecffcd5dff330e118) ) + ROM_LOAD16_BYTE( "c41-01.bin", 0x00001, 0x20000, CRC(39ff043c) SHA1(a4b0c6763c43a7ad16e98a938ffbb8aef4882eac) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c41-06.bin", 0x00000, 0x10000, CRC(753a98d8) SHA1(a832a4789194a67a2201da4e4484ab08210e5ccc) ) @@ -4245,12 +4188,12 @@ ROM_START( liquidk ) ROM_LOAD16_BYTE( "c49-10.ic45", 0x40000, 0x20000, CRC(50bef2e0) SHA1(54afd46dde81ac0fc272417c53aba1e9e8c90606) ) ROM_LOAD16_BYTE( "c49-12.ic46", 0x40001, 0x20000, CRC(cb16bad5) SHA1(900c28761200f261cb217f09f492895753ef16f7) ) - ROM_REGION( 0x080000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x080000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "c49-03.ic76", 0x00000, 0x80000, CRC(c3364f9b) SHA1(3512a8c352df8b8f19590c859afb8fdec758eb91) ) - ROM_REGION( 0x100000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "c49-01.ic54", 0x00000, 0x80000, CRC(67cc3163) SHA1(f898d52c136f07497ec6be214f016cbadc700055) ) - ROM_LOAD16_WORD_SWAP( "c49-02.ic53", 0x80000, 0x80000, CRC(d2400710) SHA1(082aa0336dbc066d8bb0dd6eb362340f49e87b67) ) + ROM_REGION( 0x100000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "c49-01.ic54", 0x00000, 0x80000, CRC(67cc3163) SHA1(f898d52c136f07497ec6be214f016cbadc700055) ) + ROM_LOAD( "c49-02.ic53", 0x80000, 0x80000, CRC(d2400710) SHA1(082aa0336dbc066d8bb0dd6eb362340f49e87b67) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c49-08.ic32", 0x00000, 0x10000, CRC(413c310c) SHA1(cecb1c0c9fe3c8b744f95ce29009650a289107ab) ) @@ -4268,12 +4211,12 @@ ROM_START( liquidku ) ROM_LOAD16_BYTE( "c49-10.ic45", 0x40000, 0x20000, CRC(50bef2e0) SHA1(54afd46dde81ac0fc272417c53aba1e9e8c90606) ) ROM_LOAD16_BYTE( "c49-14.ic46", 0x40001, 0x20000, CRC(bc118a43) SHA1(eb306a753ab43e67eacb9d6eff1c14ec78de965f) ) - ROM_REGION( 0x080000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x080000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "c49-03.ic76", 0x00000, 0x80000, CRC(c3364f9b) SHA1(3512a8c352df8b8f19590c859afb8fdec758eb91) ) - ROM_REGION( 0x100000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "c49-01.ic54", 0x00000, 0x80000, CRC(67cc3163) SHA1(f898d52c136f07497ec6be214f016cbadc700055) ) - ROM_LOAD16_WORD_SWAP( "c49-02.ic53", 0x80000, 0x80000, CRC(d2400710) SHA1(082aa0336dbc066d8bb0dd6eb362340f49e87b67) ) + ROM_REGION( 0x100000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "c49-01.ic54", 0x00000, 0x80000, CRC(67cc3163) SHA1(f898d52c136f07497ec6be214f016cbadc700055) ) + ROM_LOAD( "c49-02.ic53", 0x80000, 0x80000, CRC(d2400710) SHA1(082aa0336dbc066d8bb0dd6eb362340f49e87b67) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c49-08.ic32", 0x00000, 0x10000, CRC(413c310c) SHA1(cecb1c0c9fe3c8b744f95ce29009650a289107ab) ) @@ -4291,12 +4234,12 @@ ROM_START( mizubaku ) ROM_LOAD16_BYTE( "c49-10.ic45", 0x40000, 0x20000, CRC(50bef2e0) SHA1(54afd46dde81ac0fc272417c53aba1e9e8c90606) ) ROM_LOAD16_BYTE( "c49-13.ic46", 0x40001, 0x20000, CRC(2518dbf9) SHA1(c5975d3bfbfbb34b37b5da1d1cd2adf3491f9196) ) - ROM_REGION( 0x080000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x080000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "c49-03.ic76", 0x00000, 0x80000, CRC(c3364f9b) SHA1(3512a8c352df8b8f19590c859afb8fdec758eb91) ) - ROM_REGION( 0x100000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "c49-01.ic54", 0x00000, 0x80000, CRC(67cc3163) SHA1(f898d52c136f07497ec6be214f016cbadc700055) ) - ROM_LOAD16_WORD_SWAP( "c49-02.ic53", 0x80000, 0x80000, CRC(d2400710) SHA1(082aa0336dbc066d8bb0dd6eb362340f49e87b67) ) + ROM_REGION( 0x100000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "c49-01.ic54", 0x00000, 0x80000, CRC(67cc3163) SHA1(f898d52c136f07497ec6be214f016cbadc700055) ) + ROM_LOAD( "c49-02.ic53", 0x80000, 0x80000, CRC(d2400710) SHA1(082aa0336dbc066d8bb0dd6eb362340f49e87b67) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c49-08.ic32", 0x00000, 0x10000, CRC(413c310c) SHA1(cecb1c0c9fe3c8b744f95ce29009650a289107ab) ) @@ -4314,14 +4257,14 @@ ROM_START( quizhq ) /* Quiz HQ */ ROM_LOAD16_BYTE( "c53-52.bin", 0x80000, 0x20000, CRC(12e14aca) SHA1(8f7dc54f68984c82420abf96436743c0654a71ea) ) /* char defs, read by cpu */ ROM_LOAD16_BYTE( "c53-51.bin", 0x80001, 0x20000, CRC(b3ef66f3) SHA1(4766a1ed9b4adcc2f0d2857633ce95194eb80694) ) /* char defs, read by cpu */ - ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF ) + ROM_REGION( 0x100000, "tc0100scn_1", ROMREGION_ERASEFF ) /* empty */ - ROM_REGION( 0x080000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_BYTE( "c53-03.bin", 0x00001, 0x20000, CRC(47596e70) SHA1(3a4612d9dd2e18a4f7f4c4ed38877071afc9c279) ) - ROM_LOAD16_BYTE( "c53-07.bin", 0x00000, 0x20000, CRC(4f9fa82f) SHA1(ccd1ac17d38a51492b3716bad83e67b282da8bf9) ) - ROM_LOAD16_BYTE( "c53-02.bin", 0x40001, 0x20000, CRC(d704c6f4) SHA1(9b1c47ec3abaff53d641488dece8c97438b2e809) ) - ROM_LOAD16_BYTE( "c53-06.bin", 0x40000, 0x20000, CRC(f77f63fc) SHA1(28a509786817e88c0a5821dd68791ebd30d994c2) ) + ROM_REGION( 0x080000, "sprites", 0 ) /* OBJ */ + ROM_LOAD16_BYTE( "c53-03.bin", 0x00000, 0x20000, CRC(47596e70) SHA1(3a4612d9dd2e18a4f7f4c4ed38877071afc9c279) ) + ROM_LOAD16_BYTE( "c53-07.bin", 0x00001, 0x20000, CRC(4f9fa82f) SHA1(ccd1ac17d38a51492b3716bad83e67b282da8bf9) ) + ROM_LOAD16_BYTE( "c53-02.bin", 0x40000, 0x20000, CRC(d704c6f4) SHA1(9b1c47ec3abaff53d641488dece8c97438b2e809) ) + ROM_LOAD16_BYTE( "c53-06.bin", 0x40001, 0x20000, CRC(f77f63fc) SHA1(28a509786817e88c0a5821dd68791ebd30d994c2) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c53-08.bin", 0x00000, 0x10000, CRC(25187e81) SHA1(c549fbfff6963be93aaf349b240f15b1d578d1f1) ) @@ -4337,11 +4280,11 @@ ROM_START( ssi ) ROM_LOAD16_BYTE( "c64_15-1.ic9", 0x00000, 0x40000, CRC(ce9308a6) SHA1(02653218fe949803742e574eeed01dd421b0a671) ) ROM_LOAD16_BYTE( "c64_16-1.ic8", 0x00001, 0x40000, CRC(470a483a) SHA1(880d43aec8c3bbae1d58e7d6d7719eb6fe67cc56) ) - ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF ) + ROM_REGION( 0x100000, "tc0100scn_1", ROMREGION_ERASEFF ) /* empty! */ - ROM_REGION( 0x100000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "c64-01.1", 0x000000, 0x100000, CRC(a1b4f486) SHA1(bdd6bf144e50fe7b1d4cf4504471a689669415a4) ) + ROM_REGION( 0x100000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "c64-01.1", 0x000000, 0x100000, CRC(a1b4f486) SHA1(bdd6bf144e50fe7b1d4cf4504471a689669415a4) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c64-09.13", 0x00000, 0x10000, CRC(88d7f65c) SHA1(d6383bf8fd035772fa3c57b26b727eefe1aadd93) ) @@ -4357,11 +4300,11 @@ ROM_START( ssia ) ROM_LOAD16_BYTE( "c64_15.ic9", 0x00000, 0x40000, CRC(3a6d591b) SHA1(cc08aa89046e774046d1e47afb7d124c9a6b0b88) ) ROM_LOAD16_BYTE( "c64_16.ic8", 0x00001, 0x40000, CRC(8a567a4f) SHA1(9d309dd3f3bdde180908c46f13f112a0055bcae2) ) - ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF ) + ROM_REGION( 0x100000, "tc0100scn_1", ROMREGION_ERASEFF ) /* empty! */ - ROM_REGION( 0x100000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "c64-01.1", 0x000000, 0x100000, CRC(a1b4f486) SHA1(bdd6bf144e50fe7b1d4cf4504471a689669415a4) ) + ROM_REGION( 0x100000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "c64-01.1", 0x000000, 0x100000, CRC(a1b4f486) SHA1(bdd6bf144e50fe7b1d4cf4504471a689669415a4) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c64-09.13", 0x00000, 0x10000, CRC(88d7f65c) SHA1(d6383bf8fd035772fa3c57b26b727eefe1aadd93) ) @@ -4377,11 +4320,11 @@ ROM_START( majest12u ) ROM_LOAD16_BYTE( "c64_12.ic9", 0x00000, 0x40000, CRC(d5716d7e) SHA1(3a18d8ef1d16380946714910245b00bbcec39e3d) ) ROM_LOAD16_BYTE( "c64_14.ic8", 0x00001, 0x40000, CRC(eee4ed8a) SHA1(ad50dc12ede0d327ef9ded5ffd9dbd6e865ebcfc) ) - ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF ) + ROM_REGION( 0x100000, "tc0100scn_1", ROMREGION_ERASEFF ) /* empty! */ - ROM_REGION( 0x100000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "c64-01.1", 0x000000, 0x100000, CRC(a1b4f486) SHA1(bdd6bf144e50fe7b1d4cf4504471a689669415a4) ) + ROM_REGION( 0x100000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "c64-01.1", 0x000000, 0x100000, CRC(a1b4f486) SHA1(bdd6bf144e50fe7b1d4cf4504471a689669415a4) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c64-09.13", 0x00000, 0x10000, CRC(88d7f65c) SHA1(d6383bf8fd035772fa3c57b26b727eefe1aadd93) ) @@ -4399,11 +4342,11 @@ ROM_START( majest12j ) ROM_LOAD16_BYTE( "c64-08.11", 0x00001, 0x20000, CRC(ddfd33d5) SHA1(33cc5a0aedf8228b42466cd2a1fe3e06fbfbf141) ) ROM_LOAD16_BYTE( "c64-05.5", 0x40001, 0x20000, CRC(b61866c0) SHA1(9c2096eae05782377a655c3607b65a2cd6a66272) ) - ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF ) + ROM_REGION( 0x100000, "tc0100scn_1", ROMREGION_ERASEFF ) /* empty! */ - ROM_REGION( 0x100000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "c64-01.1", 0x000000, 0x100000, CRC(a1b4f486) SHA1(bdd6bf144e50fe7b1d4cf4504471a689669415a4) ) + ROM_REGION( 0x100000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "c64-01.1", 0x000000, 0x100000, CRC(a1b4f486) SHA1(bdd6bf144e50fe7b1d4cf4504471a689669415a4) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c64-09.13", 0x00000, 0x10000, CRC(88d7f65c) SHA1(d6383bf8fd035772fa3c57b26b727eefe1aadd93) ) @@ -4489,11 +4432,11 @@ ROM_START( gunfront ) ROM_LOAD16_BYTE( "c71-16.ic38", 0x80000, 0x20000, CRC(1bbcc2d4) SHA1(fe664f8d2b6d902f034cf51f42378cc68c970b53) ) ROM_LOAD16_BYTE( "c71-15.ic37", 0x80001, 0x20000, CRC(df3e00bb) SHA1(9fe2ece7289945692099eba92f02e5a97a4d148c) ) - ROM_REGION( 0x100000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x100000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "c71-02.ic59", 0x000000, 0x100000, CRC(2a600c92) SHA1(38a08ade2c6fa005a402d04fabf87ff10236d4c6) ) - ROM_REGION( 0x100000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "c71-03.ic19", 0x000000, 0x100000, CRC(9133c605) SHA1(fa10c60cd4ca439a273c644bbf3810824a0ca523) ) + ROM_REGION( 0x100000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "c71-03.ic19", 0x000000, 0x100000, CRC(9133c605) SHA1(fa10c60cd4ca439a273c644bbf3810824a0ca523) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c71-12.ic49", 0x00000, 0x10000, CRC(0038c7f8) SHA1(405def36e67949219b6f9394333278ec60ad5783) ) @@ -4515,11 +4458,11 @@ ROM_START( gunfrontj ) ROM_LOAD16_BYTE( "c71-16.ic38", 0x80000, 0x20000, CRC(1bbcc2d4) SHA1(fe664f8d2b6d902f034cf51f42378cc68c970b53) ) ROM_LOAD16_BYTE( "c71-15.ic37", 0x80001, 0x20000, CRC(df3e00bb) SHA1(9fe2ece7289945692099eba92f02e5a97a4d148c) ) - ROM_REGION( 0x100000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x100000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "c71-02.ic59", 0x000000, 0x100000, CRC(2a600c92) SHA1(38a08ade2c6fa005a402d04fabf87ff10236d4c6) ) - ROM_REGION( 0x100000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "c71-03.ic19", 0x000000, 0x100000, CRC(9133c605) SHA1(fa10c60cd4ca439a273c644bbf3810824a0ca523) ) + ROM_REGION( 0x100000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "c71-03.ic19", 0x000000, 0x100000, CRC(9133c605) SHA1(fa10c60cd4ca439a273c644bbf3810824a0ca523) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c71-12.ic49", 0x00000, 0x10000, CRC(0038c7f8) SHA1(405def36e67949219b6f9394333278ec60ad5783) ) @@ -4537,12 +4480,12 @@ ROM_START( growl ) ROM_LOAD16_BYTE( "c74-11.ic58", 0x80000, 0x40000, CRC(ee3bd6d5) SHA1(71f961b4e3b3156bc52e489eb0a408a1fe537a61) ) ROM_LOAD16_BYTE( "c74-14.ic60", 0x80001, 0x40000, CRC(b6c24ec7) SHA1(da8ac05d12c12a58bf5185d723358a0d1a0fe71e) ) - ROM_REGION( 0x100000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x100000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "c74-01.ic34", 0x000000, 0x100000, CRC(3434ce80) SHA1(ef363107fba6f5088ef9c85dd692b5c98be67f75) ) - ROM_REGION( 0x200000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "c74-03.ic12", 0x000000, 0x100000, CRC(1a0d8951) SHA1(62af40f7ca651273d93fed5d55af24cf91331ec7) ) - ROM_LOAD16_WORD_SWAP( "c74-02.ic11", 0x100000, 0x100000, CRC(15a21506) SHA1(3d8f066e1226e030ce549959d5a8dd4506a0e0a2) ) + ROM_REGION( 0x200000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "c74-03.ic12", 0x000000, 0x100000, CRC(1a0d8951) SHA1(62af40f7ca651273d93fed5d55af24cf91331ec7) ) + ROM_LOAD( "c74-02.ic11", 0x100000, 0x100000, CRC(15a21506) SHA1(3d8f066e1226e030ce549959d5a8dd4506a0e0a2) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c74-12.ic62", 0x00000, 0x10000, CRC(bb6ed668) SHA1(e8c3a15ccbc788ac57d42bd2cabcdb2db6305489) ) @@ -4563,12 +4506,12 @@ ROM_START( growla ) ROM_LOAD16_BYTE( "c74-11.ic58", 0x80000, 0x40000, CRC(ee3bd6d5) SHA1(71f961b4e3b3156bc52e489eb0a408a1fe537a61) ) ROM_LOAD16_BYTE( "c74-14.ic60", 0x80001, 0x40000, CRC(b6c24ec7) SHA1(da8ac05d12c12a58bf5185d723358a0d1a0fe71e) ) - ROM_REGION( 0x100000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x100000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "c74-01.ic34", 0x000000, 0x100000, CRC(3434ce80) SHA1(ef363107fba6f5088ef9c85dd692b5c98be67f75) ) - ROM_REGION( 0x200000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "c74-03.ic12", 0x000000, 0x100000, CRC(1a0d8951) SHA1(62af40f7ca651273d93fed5d55af24cf91331ec7) ) - ROM_LOAD16_WORD_SWAP( "c74-02.ic11", 0x100000, 0x100000, CRC(15a21506) SHA1(3d8f066e1226e030ce549959d5a8dd4506a0e0a2) ) + ROM_REGION( 0x200000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "c74-03.ic12", 0x000000, 0x100000, CRC(1a0d8951) SHA1(62af40f7ca651273d93fed5d55af24cf91331ec7) ) + ROM_LOAD( "c74-02.ic11", 0x100000, 0x100000, CRC(15a21506) SHA1(3d8f066e1226e030ce549959d5a8dd4506a0e0a2) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c74-12.ic62", 0x00000, 0x10000, CRC(bb6ed668) SHA1(e8c3a15ccbc788ac57d42bd2cabcdb2db6305489) ) @@ -4587,12 +4530,12 @@ ROM_START( growlu ) ROM_LOAD16_BYTE( "c74-11.ic58", 0x80000, 0x40000, CRC(ee3bd6d5) SHA1(71f961b4e3b3156bc52e489eb0a408a1fe537a61) ) ROM_LOAD16_BYTE( "c74-13.ic60", 0x80001, 0x40000, CRC(c1c57e51) SHA1(f6ffc1acf3e5ff75e64facd7e28fd675eb065c7b) ) - ROM_REGION( 0x100000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x100000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "c74-01.ic34", 0x000000, 0x100000, CRC(3434ce80) SHA1(ef363107fba6f5088ef9c85dd692b5c98be67f75) ) - ROM_REGION( 0x200000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "c74-03.ic12", 0x000000, 0x100000, CRC(1a0d8951) SHA1(62af40f7ca651273d93fed5d55af24cf91331ec7) ) - ROM_LOAD16_WORD_SWAP( "c74-02.ic11", 0x100000, 0x100000, CRC(15a21506) SHA1(3d8f066e1226e030ce549959d5a8dd4506a0e0a2) ) + ROM_REGION( 0x200000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "c74-03.ic12", 0x000000, 0x100000, CRC(1a0d8951) SHA1(62af40f7ca651273d93fed5d55af24cf91331ec7) ) + ROM_LOAD( "c74-02.ic11", 0x100000, 0x100000, CRC(15a21506) SHA1(3d8f066e1226e030ce549959d5a8dd4506a0e0a2) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c74-12.ic62", 0x00000, 0x10000, CRC(bb6ed668) SHA1(e8c3a15ccbc788ac57d42bd2cabcdb2db6305489) ) @@ -4611,12 +4554,12 @@ ROM_START( runark ) ROM_LOAD16_BYTE( "c74-11.ic58", 0x80000, 0x40000, CRC(ee3bd6d5) SHA1(71f961b4e3b3156bc52e489eb0a408a1fe537a61) ) ROM_LOAD16_BYTE( "c74-09.ic14", 0x80001, 0x40000, CRC(58cc2feb) SHA1(7dc314a56345be116731dbb65dfa9e508c156513) ) - ROM_REGION( 0x100000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x100000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "c74-01.ic34", 0x000000, 0x100000, CRC(3434ce80) SHA1(ef363107fba6f5088ef9c85dd692b5c98be67f75) ) - ROM_REGION( 0x200000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "c74-03.ic12", 0x000000, 0x100000, CRC(1a0d8951) SHA1(62af40f7ca651273d93fed5d55af24cf91331ec7) ) - ROM_LOAD16_WORD_SWAP( "c74-02.ic11", 0x100000, 0x100000, CRC(15a21506) SHA1(3d8f066e1226e030ce549959d5a8dd4506a0e0a2) ) + ROM_REGION( 0x200000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "c74-03.ic12", 0x000000, 0x100000, CRC(1a0d8951) SHA1(62af40f7ca651273d93fed5d55af24cf91331ec7) ) + ROM_LOAD( "c74-02.ic11", 0x100000, 0x100000, CRC(15a21506) SHA1(3d8f066e1226e030ce549959d5a8dd4506a0e0a2) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c74-12.ic62", 0x00000, 0x10000, CRC(bb6ed668) SHA1(e8c3a15ccbc788ac57d42bd2cabcdb2db6305489) ) @@ -4636,21 +4579,21 @@ ROM_START( growlp ) ROM_LOAD16_BYTE( "growl_ic16_japan_1h_41bb.bin", 0x80000, 0x40000, CRC(64aa6f4b) SHA1(fd3f838cedee99d86a2ee5ff87f0381d164a2f90) ) ROM_LOAD16_BYTE( "growl_ic14_europe_1l_726b.bin", 0x80001, 0x40000, CRC(c38bbb05) SHA1(a168f18ce903d9af295f475760f7209f6e0f8c82) ) - ROM_REGION( 0x100000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x100000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_BYTE( "growl_ic11_scro-0-l_a971.bin", 0x00001, 0x40000, CRC(769ddaab) SHA1(ab45547438998ccdf8cdb8123f6f9102008dd291) ) ROM_LOAD16_BYTE( "growl_ic13_scro-0-0-h_2e7a.bin", 0x00000, 0x40000, CRC(4e220e34) SHA1(c0d69b178b3e2dd004295eee92311b387733228b) ) ROM_LOAD16_BYTE( "growl_ic12_scro-1-l_026e.bin", 0x80001, 0x40000, CRC(486925b4) SHA1(7d804e45ab58a4b1a121438d354a4a294daa5177) ) ROM_LOAD16_BYTE( "growl_ic14_scro-0-1-h_f0fa.bin", 0x80000, 0x40000, CRC(42c2a2d0) SHA1(638d563a3928b7b2e6dae7f8c607669116284899) ) - ROM_REGION( 0x200000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_BYTE( "growl_ic17_obj0-0-l_90b9.bin", 0x000001, 0x40000, CRC(cd94025a) SHA1(0da7a0f213f9a9d7a420a9dcdd6d3db2e4b6a9ef) ) - ROM_LOAD16_BYTE( "growl_ic19_obj0-0-h_b652.bin", 0x000000, 0x40000, CRC(6838c1b0) SHA1(0355bff010ab94f9d566e6bd404bd3559c407a37) ) - ROM_LOAD16_BYTE( "growl_ic18_obj0-1-l_a299.bin", 0x080001, 0x40000, CRC(0ddf592e) SHA1(2b630143dd52da6068aace2c3a02c89432d45044) ) - ROM_LOAD16_BYTE( "growl_ic20_obj0-1-h_9f1a.bin", 0x080000, 0x40000, CRC(0f0407f1) SHA1(05e897445d501d93a0aba6bc9dae1598e651df8d) ) - ROM_LOAD16_BYTE( "growl_ic4_obj1-l_7d96.bin", 0x100001, 0x40000, CRC(bed51bd6) SHA1(1a35b5a511261b70b5a4aece665d0a0e6386af78) ) - ROM_LOAD16_BYTE( "growl_ic6_obj1-0-h_3a22.bin", 0x100000, 0x40000, CRC(5b696d20) SHA1(e01e2d150ad61cf1cdddfcfcec9dac0980a8f0d6) ) - ROM_LOAD16_BYTE( "growl_ic5_obj1-1-l_d34f.bin", 0x180001, 0x40000, CRC(f34d83ec) SHA1(7b032d2c004735aa4658143fe399b0a05ab85ec8) ) - ROM_LOAD16_BYTE( "growl_ic7_obj1-1-h_b5af.bin", 0x180000, 0x40000, CRC(e9fda1fa) SHA1(37d48d26c45aca6364d74656d597c2b1f8a5c685) ) + ROM_REGION( 0x200000, "sprites", 0 ) /* OBJ */ + ROM_LOAD16_BYTE( "growl_ic17_obj0-0-l_90b9.bin", 0x000000, 0x40000, CRC(cd94025a) SHA1(0da7a0f213f9a9d7a420a9dcdd6d3db2e4b6a9ef) ) + ROM_LOAD16_BYTE( "growl_ic19_obj0-0-h_b652.bin", 0x000001, 0x40000, CRC(6838c1b0) SHA1(0355bff010ab94f9d566e6bd404bd3559c407a37) ) + ROM_LOAD16_BYTE( "growl_ic18_obj0-1-l_a299.bin", 0x080000, 0x40000, CRC(0ddf592e) SHA1(2b630143dd52da6068aace2c3a02c89432d45044) ) + ROM_LOAD16_BYTE( "growl_ic20_obj0-1-h_9f1a.bin", 0x080001, 0x40000, CRC(0f0407f1) SHA1(05e897445d501d93a0aba6bc9dae1598e651df8d) ) + ROM_LOAD16_BYTE( "growl_ic4_obj1-l_7d96.bin", 0x100000, 0x40000, CRC(bed51bd6) SHA1(1a35b5a511261b70b5a4aece665d0a0e6386af78) ) + ROM_LOAD16_BYTE( "growl_ic6_obj1-0-h_3a22.bin", 0x100001, 0x40000, CRC(5b696d20) SHA1(e01e2d150ad61cf1cdddfcfcec9dac0980a8f0d6) ) + ROM_LOAD16_BYTE( "growl_ic5_obj1-1-l_d34f.bin", 0x180000, 0x40000, CRC(f34d83ec) SHA1(7b032d2c004735aa4658143fe399b0a05ab85ec8) ) + ROM_LOAD16_BYTE( "growl_ic7_obj1-1-h_b5af.bin", 0x180001, 0x40000, CRC(e9fda1fa) SHA1(37d48d26c45aca6364d74656d597c2b1f8a5c685) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "growl_ic3_snd.bin", 0x00000, 0x10000, CRC(f75929e0) SHA1(2dc278f4253d76853bbc3af099784545cfac65ce) ) @@ -4673,12 +4616,12 @@ ROM_START( mjnquest ) /* Mahjong Quest */ ROM_LOAD16_BYTE( "c77-08", 0x000001, 0x020000, CRC(4244f775) SHA1(801045d7433684195876e172676b2345827de7cc) ) ROM_LOAD16_WORD_SWAP( "c77-04", 0x080000, 0x080000, CRC(c2e7e038) SHA1(6cf23bab587b34cbc1f78b8b82cbab5634b074dc) ) /* data rom */ - ROM_REGION( 0x200000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x200000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "c77-01", 0x000000, 0x100000, CRC(5ba51205) SHA1(da0b6f56e7d2437ad75ada1ba07e35843d2b4704) ) ROM_LOAD16_WORD_SWAP( "c77-02", 0x100000, 0x100000, CRC(6a6f3040) SHA1(61c3ce51fa935f52572affa899bb81b3a616df3a) ) - ROM_REGION( 0x080000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "c77-05", 0x00000, 0x80000, CRC(c5a54678) SHA1(d0954acbdfdf9a5f14f554635c015eee23d52e0c) ) + ROM_REGION( 0x080000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "c77-05", 0x00000, 0x80000, CRC(c5a54678) SHA1(d0954acbdfdf9a5f14f554635c015eee23d52e0c) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c77-10", 0x00000, 0x10000, CRC(f16b2c1e) SHA1(f6f13429a0b4e0e4c64991f1acc4ecf85dc64364) ) @@ -4695,12 +4638,12 @@ ROM_START( mjnquestb ) /* Mahjong Quest (No Nudity) */ ROM_LOAD16_BYTE( "c77-08", 0x000001, 0x020000, CRC(4244f775) SHA1(801045d7433684195876e172676b2345827de7cc) ) ROM_LOAD16_WORD_SWAP( "c77-04", 0x080000, 0x080000, CRC(c2e7e038) SHA1(6cf23bab587b34cbc1f78b8b82cbab5634b074dc) ) /* data rom */ - ROM_REGION( 0x200000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x200000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "c77-01", 0x000000, 0x100000, CRC(5ba51205) SHA1(da0b6f56e7d2437ad75ada1ba07e35843d2b4704) ) ROM_LOAD16_WORD_SWAP( "c77-02", 0x100000, 0x100000, CRC(6a6f3040) SHA1(61c3ce51fa935f52572affa899bb81b3a616df3a) ) - ROM_REGION( 0x080000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "c77-05", 0x00000, 0x80000, CRC(c5a54678) SHA1(d0954acbdfdf9a5f14f554635c015eee23d52e0c) ) + ROM_REGION( 0x080000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "c77-05", 0x00000, 0x80000, CRC(c5a54678) SHA1(d0954acbdfdf9a5f14f554635c015eee23d52e0c) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c77-10", 0x00000, 0x10000, CRC(f16b2c1e) SHA1(f6f13429a0b4e0e4c64991f1acc4ecf85dc64364) ) @@ -4718,13 +4661,13 @@ ROM_START( footchmp ) ROM_LOAD16_BYTE( "c80-12.7", 0x40000, 0x20000, CRC(80d46fef) SHA1(cc81c8ba19321e8bae9054021bfb61cb11c2aba5) ) ROM_LOAD16_BYTE( "c80-14.5", 0x40001, 0x20000, CRC(40ac4828) SHA1(9a2112b0ccd573a3e94d9817b78bb02909b972e1) ) // identical rom also found with c80-13 sticker, is this correct? - ROM_REGION( 0x100000, "gfx1", 0 ) /* SCR */ - ROM_LOAD32_WORD_SWAP( "c80-04.1", 0x00002, 0x80000, CRC(9a17fe8c) SHA1(d2ea72743151f0f7bf78f33dba526214afb07389) ) - ROM_LOAD32_WORD_SWAP( "c80-05.2", 0x00000, 0x80000, CRC(acde7071) SHA1(23637238d122b13edb6025418bf482cc210ef6a9) ) + ROM_REGION( 0x100000, "tc0480scp", 0 ) /* SCR */ + ROM_LOAD32_WORD( "c80-04.1", 0x00000, 0x80000, CRC(9a17fe8c) SHA1(d2ea72743151f0f7bf78f33dba526214afb07389) ) + ROM_LOAD32_WORD( "c80-05.2", 0x00002, 0x80000, CRC(acde7071) SHA1(23637238d122b13edb6025418bf482cc210ef6a9) ) - ROM_REGION( 0x200000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "c80-01.9", 0x000000, 0x100000, CRC(f43782e6) SHA1(53ff6cc433673f307a91e8db74428aa6172ffad4) ) - ROM_LOAD16_WORD_SWAP( "c80-02.10", 0x100000, 0x100000, CRC(060a8b61) SHA1(b1888d8bce4c4624dc5bb64168c604ec64537c0e) ) + ROM_REGION( 0x200000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "c80-01.9", 0x000000, 0x100000, CRC(f43782e6) SHA1(53ff6cc433673f307a91e8db74428aa6172ffad4) ) + ROM_LOAD( "c80-02.10", 0x100000, 0x100000, CRC(060a8b61) SHA1(b1888d8bce4c4624dc5bb64168c604ec64537c0e) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for Z80 code */ ROM_LOAD( "c80-15.70", 0x00000, 0x10000, CRC(05aa7fd7) SHA1(7eb10964ea9f43abcda8444f13733a0753a04580) ) @@ -4746,13 +4689,13 @@ ROM_START( hthero ) ROM_LOAD16_BYTE( "c80-12.7", 0x40000, 0x20000, CRC(80d46fef) SHA1(cc81c8ba19321e8bae9054021bfb61cb11c2aba5) ) ROM_LOAD16_BYTE( "c80-18.5", 0x40001, 0x20000, CRC(aea22904) SHA1(907889f141fced8cada793f02244e80cf0f89c81) ) - ROM_REGION( 0x100000, "gfx1", 0 ) /* SCR */ - ROM_LOAD32_WORD_SWAP( "c80-04.1", 0x00002, 0x80000, CRC(9a17fe8c) SHA1(d2ea72743151f0f7bf78f33dba526214afb07389) ) - ROM_LOAD32_WORD_SWAP( "c80-05.2", 0x00000, 0x80000, CRC(acde7071) SHA1(23637238d122b13edb6025418bf482cc210ef6a9) ) + ROM_REGION( 0x100000, "tc0480scp", 0 ) /* SCR */ + ROM_LOAD32_WORD( "c80-04.1", 0x00000, 0x80000, CRC(9a17fe8c) SHA1(d2ea72743151f0f7bf78f33dba526214afb07389) ) + ROM_LOAD32_WORD( "c80-05.2", 0x00002, 0x80000, CRC(acde7071) SHA1(23637238d122b13edb6025418bf482cc210ef6a9) ) - ROM_REGION( 0x200000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "c80-01.9", 0x000000, 0x100000, CRC(f43782e6) SHA1(53ff6cc433673f307a91e8db74428aa6172ffad4) ) - ROM_LOAD16_WORD_SWAP( "c80-02.10", 0x100000, 0x100000, CRC(060a8b61) SHA1(b1888d8bce4c4624dc5bb64168c604ec64537c0e) ) + ROM_REGION( 0x200000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "c80-01.9", 0x000000, 0x100000, CRC(f43782e6) SHA1(53ff6cc433673f307a91e8db74428aa6172ffad4) ) + ROM_LOAD( "c80-02.10", 0x100000, 0x100000, CRC(060a8b61) SHA1(b1888d8bce4c4624dc5bb64168c604ec64537c0e) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c80-15.70", 0x00000, 0x10000, CRC(05aa7fd7) SHA1(7eb10964ea9f43abcda8444f13733a0753a04580) ) @@ -4770,13 +4713,13 @@ ROM_START( euroch92 ) ROM_LOAD16_BYTE( "ec92_26.rom", 0x40000, 0x20000, CRC(b986ccb2) SHA1(862a5da1bd4e8743d55f2e5bab2ade6c3dec682c) ) ROM_LOAD16_BYTE( "ec92_24.rom", 0x40001, 0x20000, CRC(b31d94ac) SHA1(8a3328b7e061b584992dd27b0dda9826b4b6ed91) ) - ROM_REGION( 0x100000, "gfx1", 0 ) /* SCR */ - ROM_LOAD32_WORD_SWAP( "ec92_21.rom", 0x00002, 0x80000, CRC(5759ed37) SHA1(2a661ea40735afbda3d0141ce3f706c64281097b) ) - ROM_LOAD32_WORD_SWAP( "ec92_22.rom", 0x00000, 0x80000, CRC(d9a0d38e) SHA1(192f0303f4f64df46dc20701ed4362a4e14e40e7) ) + ROM_REGION( 0x100000, "tc0480scp", 0 ) /* SCR */ + ROM_LOAD32_WORD( "ec92_21.rom", 0x00000, 0x80000, CRC(5759ed37) SHA1(2a661ea40735afbda3d0141ce3f706c64281097b) ) + ROM_LOAD32_WORD( "ec92_22.rom", 0x00002, 0x80000, CRC(d9a0d38e) SHA1(192f0303f4f64df46dc20701ed4362a4e14e40e7) ) - ROM_REGION( 0x200000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "ec92_19.rom", 0x000000, 0x100000, CRC(219141a5) SHA1(b549e91049dcb796d4104b4426674dd87589efde) ) - ROM_LOAD16_WORD_SWAP( "c80-02.10", 0x100000, 0x100000, CRC(060a8b61) SHA1(b1888d8bce4c4624dc5bb64168c604ec64537c0e) ) // ec92_20.rom + ROM_REGION( 0x200000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "ec92_19.rom", 0x000000, 0x100000, CRC(219141a5) SHA1(b549e91049dcb796d4104b4426674dd87589efde) ) + ROM_LOAD( "c80-02.10", 0x100000, 0x100000, CRC(060a8b61) SHA1(b1888d8bce4c4624dc5bb64168c604ec64537c0e) ) // ec92_20.rom ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for Z80 code */ ROM_LOAD( "ec92_27.rom", 0x00000, 0x10000, CRC(2db48e65) SHA1(43a47ebc91c043a996e966cf808d71256e158494) ) @@ -4794,13 +4737,13 @@ ROM_START( footchmpbl ) // there is twice as much data here as the original sets because the 2nd half of the roms contain flipped // versions of the tiles! - ROM_REGION( 0x200000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x200000, "tc0480scp", 0 ) /* SCR */ ROM_LOAD( "bk4.rom9", 0x000000, 0x80000, CRC(264e6ec0) SHA1(1907dab063b16f5c9de753b2d9a916f1c7d32079) ) ROM_LOAD( "bk3.rom8", 0x080000, 0x80000, CRC(380b2565) SHA1(9d83d402a138786bad61d62722953dfdb98a80de) ) ROM_LOAD( "bk2.rom7", 0x100000, 0x80000, CRC(79ce5b01) SHA1(454a9b8ca5178418c7e0976efb78cb883c553476) ) ROM_LOAD( "bk1.rom6", 0x180000, 0x80000, CRC(6e4757c7) SHA1(a412bdb09440f80e0e323c297a79b143a9bdb7f2) ) - ROM_REGION( 0x200000, "gfx2", 0 ) /* OBJ */ + ROM_REGION( 0x200000, "sprites", 0 ) /* OBJ */ ROM_LOAD( "ob17.rom1", 0x000000, 0x80000, CRC(a4891065) SHA1(69469e4c68ff72d3e50e3e74f5ca7b55e3a0bd6f) ) ROM_LOAD( "ob16.rom2", 0x080000, 0x80000, CRC(3b65028b) SHA1(b2bb123b067b40ddacd90f82e42dff775e7e66c7) ) ROM_LOAD( "ob15.rom3", 0x100000, 0x80000, CRC(dbd07328) SHA1(9d658f0a0ad119ae76a6c4749651440642ee671c) ) @@ -4829,12 +4772,12 @@ ROM_START( koshien ) /* Ah Eikou no Koshien */ ROM_LOAD16_BYTE( "c81-10.bin", 0x000001, 0x020000, CRC(8f98c40a) SHA1(f9471306c47ced10a56c09794954e55fdb6f6b85) ) ROM_LOAD16_WORD_SWAP( "c81-04.bin", 0x080000, 0x080000, CRC(1592b460) SHA1(d42514b4d588d0376914832f0e07ce626d1cdee0) ) /* data rom */ - ROM_REGION( 0x100000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x100000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "c81-03.bin", 0x000000, 0x100000, CRC(29bbf492) SHA1(bd370b1de256a432821b443a6653aab8507fb3a7) ) - ROM_REGION( 0x200000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "c81-01.bin", 0x000000, 0x100000, CRC(64b15d2a) SHA1(18b3b405f77ad80781e3fce4ef021ba49f707ed6) ) - ROM_LOAD16_WORD_SWAP( "c81-02.bin", 0x100000, 0x100000, CRC(962461e8) SHA1(cb0313b00681c36110eed50eae41ad98eb22205d) ) + ROM_REGION( 0x200000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "c81-01.bin", 0x000000, 0x100000, CRC(64b15d2a) SHA1(18b3b405f77ad80781e3fce4ef021ba49f707ed6) ) + ROM_LOAD( "c81-02.bin", 0x100000, 0x100000, CRC(962461e8) SHA1(cb0313b00681c36110eed50eae41ad98eb22205d) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c81-12.bin", 0x00000, 0x10000, CRC(6e8625b6) SHA1(212d384aa6ed43f5389739863afecbf0ad68af14) ) @@ -4860,12 +4803,12 @@ ROM_START( yuyugogo ) /* Yuuyu no QUIZ de GO!GO! */ /* extra ROM mapped at d00000 */ ROM_LOAD16_WORD_SWAP( "c83-03.10", 0x000000, 0x100000, CRC(eed9acc2) SHA1(baa6a9aa5ed8fbbff7b289693407192b464cb7c7) ) /* data rom */ - ROM_REGION( 0x020000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x020000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD( "c83-05.21", 0x00000, 0x20000, CRC(eca57fb1) SHA1(c67b5e734f5fd8801a4376c0555ce4a891dcd6bc) ) - ROM_REGION( 0x200000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_BYTE( "c83-01.12", 0x000001, 0x100000, CRC(8bf0d416) SHA1(ec3d51422fcc8e3e822716d57adab56f639a2d02) ) - ROM_LOAD16_BYTE( "c83-02.11", 0x000000, 0x100000, CRC(20bb1c15) SHA1(33370b665d681f765e363e5a8e79e62f59ad25f7) ) + ROM_REGION( 0x200000, "sprites", 0 ) /* OBJ */ + ROM_LOAD16_BYTE( "c83-01.12", 0x000000, 0x100000, CRC(8bf0d416) SHA1(ec3d51422fcc8e3e822716d57adab56f639a2d02) ) + ROM_LOAD16_BYTE( "c83-02.11", 0x000001, 0x100000, CRC(20bb1c15) SHA1(33370b665d681f765e363e5a8e79e62f59ad25f7) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c83-11.1" , 0x00000, 0x10000, CRC(461e702a) SHA1(f1f4294a7e8acc50473df15a167ba84595c9eb15) ) @@ -4884,12 +4827,12 @@ ROM_START( ninjak ) ROM_LOAD16_BYTE( "c85-06.ic47", 0x40001, 0x20000, CRC(d126ded1) SHA1(fc4b6504d0234e7e006a63e33fd061411f008c38) ) /* ROM 1LL */ /* IC45 (ROM 1HL) and IC46 (1HH) not populated */ - ROM_REGION( 0x080000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x080000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "c85-03.ic65", 0x00000, 0x80000, CRC(4cc7b9df) SHA1(aaf0e587b86a7bf9fbfd4e19127a7295da8a3676) ) /* SCREEN */ - ROM_REGION( 0x200000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "c85-01.ic19", 0x000000, 0x100000, CRC(a711977c) SHA1(b6b79ff6086a7b6e242fe26eec448f025ab431af) ) /* OBJ-0 */ - ROM_LOAD16_WORD_SWAP( "c85-02.ic17", 0x100000, 0x100000, CRC(a6ad0f3d) SHA1(6d3a661807dd64f0b56ae6252a7e980fd678feef) ) /* OBJ-1 */ + ROM_REGION( 0x200000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "c85-01.ic19", 0x000000, 0x100000, CRC(a711977c) SHA1(b6b79ff6086a7b6e242fe26eec448f025ab431af) ) /* OBJ-0 */ + ROM_LOAD( "c85-02.ic17", 0x100000, 0x100000, CRC(a6ad0f3d) SHA1(6d3a661807dd64f0b56ae6252a7e980fd678feef) ) /* OBJ-1 */ ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c85-14.ic54", 0x00000, 0x10000, CRC(f2a52a51) SHA1(951793c65a3436a7fb36f3058bc7a3b4265a90bb) ) /* SND */ @@ -4909,12 +4852,12 @@ ROM_START( ninjakj ) ROM_LOAD16_BYTE( "c85-06.ic47", 0x40001, 0x20000, CRC(d126ded1) SHA1(fc4b6504d0234e7e006a63e33fd061411f008c38) ) /* ROM 1LL */ /* IC45 (ROM 1HL) and IC46 (1HH) not populated */ - ROM_REGION( 0x080000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x080000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "c85-03.ic65", 0x00000, 0x80000, CRC(4cc7b9df) SHA1(aaf0e587b86a7bf9fbfd4e19127a7295da8a3676) ) /* SCREEN */ - ROM_REGION( 0x200000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "c85-01.ic19", 0x000000, 0x100000, CRC(a711977c) SHA1(b6b79ff6086a7b6e242fe26eec448f025ab431af) ) /* OBJ-0 */ - ROM_LOAD16_WORD_SWAP( "c85-02.ic17", 0x100000, 0x100000, CRC(a6ad0f3d) SHA1(6d3a661807dd64f0b56ae6252a7e980fd678feef) ) /* OBJ-1 */ + ROM_REGION( 0x200000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "c85-01.ic19", 0x000000, 0x100000, CRC(a711977c) SHA1(b6b79ff6086a7b6e242fe26eec448f025ab431af) ) /* OBJ-0 */ + ROM_LOAD( "c85-02.ic17", 0x100000, 0x100000, CRC(a6ad0f3d) SHA1(6d3a661807dd64f0b56ae6252a7e980fd678feef) ) /* OBJ-1 */ ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c85-14.ic54", 0x00000, 0x10000, CRC(f2a52a51) SHA1(951793c65a3436a7fb36f3058bc7a3b4265a90bb) ) /* SND */ @@ -4934,12 +4877,12 @@ ROM_START( ninjaku ) ROM_LOAD16_BYTE( "c85-06.ic47", 0x40001, 0x20000, CRC(d126ded1) SHA1(fc4b6504d0234e7e006a63e33fd061411f008c38) ) /* ROM 1LL */ /* IC45 (ROM 1HL) and IC46 (1HH) not populated */ - ROM_REGION( 0x080000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x080000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "c85-03.ic65", 0x00000, 0x80000, CRC(4cc7b9df) SHA1(aaf0e587b86a7bf9fbfd4e19127a7295da8a3676) ) /* SCREEN */ - ROM_REGION( 0x200000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "c85-01.ic19", 0x000000, 0x100000, CRC(a711977c) SHA1(b6b79ff6086a7b6e242fe26eec448f025ab431af) ) /* OBJ-0 */ - ROM_LOAD16_WORD_SWAP( "c85-02.ic17", 0x100000, 0x100000, CRC(a6ad0f3d) SHA1(6d3a661807dd64f0b56ae6252a7e980fd678feef) ) /* OBJ-1 */ + ROM_REGION( 0x200000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "c85-01.ic19", 0x000000, 0x100000, CRC(a711977c) SHA1(b6b79ff6086a7b6e242fe26eec448f025ab431af) ) /* OBJ-0 */ + ROM_LOAD( "c85-02.ic17", 0x100000, 0x100000, CRC(a6ad0f3d) SHA1(6d3a661807dd64f0b56ae6252a7e980fd678feef) ) /* OBJ-1 */ ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c85-14.ic54", 0x00000, 0x10000, CRC(f2a52a51) SHA1(951793c65a3436a7fb36f3058bc7a3b4265a90bb) ) /* SND */ @@ -4956,12 +4899,12 @@ ROM_START( solfigtr ) /* Solitary Fighter */ ROM_LOAD16_BYTE( "c91-05.59", 0x00000, 0x40000, CRC(c1260e7c) SHA1(406663b8f92380f37955061765d77a92dc51c17a) ) ROM_LOAD16_BYTE( "c91-09.61", 0x00001, 0x40000, CRC(d82b5266) SHA1(670dc91067dd856b5d36b71e5ddf67e82220d83b) ) - ROM_REGION( 0x100000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x100000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "c91-03.34", 0x000000, 0x100000, CRC(8965da12) SHA1(b06f3fc91c9ce1e20cb4187505f3c7921c54cc12) ) - ROM_REGION( 0x200000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "c91-01.12", 0x000000, 0x100000, CRC(0f3f4e00) SHA1(5912eddc066435b276d615842d123f58c4852b2b) ) - ROM_LOAD16_WORD_SWAP( "c91-02.11", 0x100000, 0x100000, CRC(e14ab98e) SHA1(b2e559ec9ccf383e693b27436081c29d30f17835) ) + ROM_REGION( 0x200000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "c91-01.12", 0x000000, 0x100000, CRC(0f3f4e00) SHA1(5912eddc066435b276d615842d123f58c4852b2b) ) + ROM_LOAD( "c91-02.11", 0x100000, 0x100000, CRC(e14ab98e) SHA1(b2e559ec9ccf383e693b27436081c29d30f17835) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c91-07.62", 0x00000, 0x10000, CRC(e471a05a) SHA1(4d9c2b734aac27819673094dc1843e1ca5fe6994) ) @@ -4981,11 +4924,11 @@ ROM_START( qzquest ) /* Quiz Quest */ ROM_LOAD16_BYTE( "c92-05.7", 0x000001, 0x020000, CRC(da470f93) SHA1(dc6d2142fc5662f4b3ffbe4cc9adb5b394d958ed) ) ROM_LOAD16_WORD_SWAP( "c92-03.6", 0x100000, 0x080000, CRC(1d697606) SHA1(0af7ac3c3229f139fab1569adaa893b43999bc89) ) /* data rom */ - ROM_REGION( 0x100000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x100000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "c92-02.10", 0x000000, 0x100000, CRC(2daccecf) SHA1(bd22f95210f2bb0b63d210a54e07535c3f0e1031) ) - ROM_REGION( 0x100000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "c92-01.21", 0x000000, 0x100000, CRC(9976a285) SHA1(8575ee18a3a6d690c9aa09f0c540665a31f87216) ) + ROM_REGION( 0x100000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "c92-01.21", 0x000000, 0x100000, CRC(9976a285) SHA1(8575ee18a3a6d690c9aa09f0c540665a31f87216) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c92-07.5", 0x00000, 0x10000, CRC(3e313db9) SHA1(44f781c7d3df8eacd745dc0af180cec9e1164b89) ) @@ -5003,14 +4946,14 @@ ROM_START( pulirula ) ROM_LOAD16_BYTE( "c98-06.rom", 0x80000, 0x20000, CRC(64a71b45) SHA1(40734c378f15cd47d4128f9713bf19b0d42c0517) ) ROM_LOAD16_BYTE( "c98-07.rom", 0x80001, 0x20000, CRC(90195bc0) SHA1(0f7e48ee8964dec1fbc6f8dab57f3ae67b2494d2) ) - ROM_REGION( 0x100000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x100000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "c98-04.rom", 0x000000, 0x100000, CRC(0e1fe3b2) SHA1(37bf8e946ee4239de104a07ff87727cb6e2a3932) ) - ROM_REGION( 0x200000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "c98-02.rom", 0x000000, 0x100000, CRC(4a2ad2b3) SHA1(3296cf2855203d06170c991d187c65ccc3751952) ) - ROM_LOAD16_WORD_SWAP( "c98-03.rom", 0x100000, 0x100000, CRC(589a678f) SHA1(228b959046bec10b28599d83d9e58fd149273473) ) + ROM_REGION( 0x200000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "c98-02.rom", 0x000000, 0x100000, CRC(4a2ad2b3) SHA1(3296cf2855203d06170c991d187c65ccc3751952) ) + ROM_LOAD( "c98-03.rom", 0x100000, 0x100000, CRC(589a678f) SHA1(228b959046bec10b28599d83d9e58fd149273473) ) - ROM_REGION( 0x080000, "gfx3", 0 ) /* pivot gfx */ + ROM_REGION( 0x080000, "tc0430grw", 0 ) /* pivot gfx */ ROM_LOAD( "c98-05.rom", 0x000000, 0x080000, CRC(9ddd9c39) SHA1(4005a540c5cef6754284361da79a9e5e15612146) ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound cpu */ @@ -5029,14 +4972,14 @@ ROM_START( pulirulaj ) ROM_LOAD16_BYTE( "c98-06.rom", 0x80000, 0x20000, CRC(64a71b45) SHA1(40734c378f15cd47d4128f9713bf19b0d42c0517) ) ROM_LOAD16_BYTE( "c98-07.rom", 0x80001, 0x20000, CRC(90195bc0) SHA1(0f7e48ee8964dec1fbc6f8dab57f3ae67b2494d2) ) - ROM_REGION( 0x100000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x100000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "c98-04.rom", 0x000000, 0x100000, CRC(0e1fe3b2) SHA1(37bf8e946ee4239de104a07ff87727cb6e2a3932) ) - ROM_REGION( 0x200000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "c98-02.rom", 0x000000, 0x100000, CRC(4a2ad2b3) SHA1(3296cf2855203d06170c991d187c65ccc3751952) ) - ROM_LOAD16_WORD_SWAP( "c98-03.rom", 0x100000, 0x100000, CRC(589a678f) SHA1(228b959046bec10b28599d83d9e58fd149273473) ) + ROM_REGION( 0x200000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "c98-02.rom", 0x000000, 0x100000, CRC(4a2ad2b3) SHA1(3296cf2855203d06170c991d187c65ccc3751952) ) + ROM_LOAD( "c98-03.rom", 0x100000, 0x100000, CRC(589a678f) SHA1(228b959046bec10b28599d83d9e58fd149273473) ) - ROM_REGION( 0x080000, "gfx3", 0 ) /* pivot gfx */ + ROM_REGION( 0x080000, "tc0430grw", 0 ) /* pivot gfx */ ROM_LOAD( "c98-05.rom", 0x000000, 0x080000, CRC(9ddd9c39) SHA1(4005a540c5cef6754284361da79a9e5e15612146) ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound cpu */ @@ -5055,14 +4998,14 @@ ROM_START( pulirulaa ) // dumped from an original PCB without original ROM label ROM_LOAD16_BYTE( "ic44.bin", 0x80000, 0x20000, CRC(da9d31fd) SHA1(9300f1e8888ac48c7a10c96f5773b2acc4de5692) ) ROM_LOAD16_BYTE( "ic43.bin", 0x80001, 0x20000, CRC(1feea319) SHA1(9799cbbd825dbc7bca6c283643070cadf9ef16ea) ) - ROM_REGION( 0x100000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x100000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "c98-04.rom", 0x000000, 0x100000, CRC(0e1fe3b2) SHA1(37bf8e946ee4239de104a07ff87727cb6e2a3932) ) - ROM_REGION( 0x200000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "c98-02.rom", 0x000000, 0x100000, CRC(4a2ad2b3) SHA1(3296cf2855203d06170c991d187c65ccc3751952) ) - ROM_LOAD16_WORD_SWAP( "c98-03.rom", 0x100000, 0x100000, CRC(589a678f) SHA1(228b959046bec10b28599d83d9e58fd149273473) ) + ROM_REGION( 0x200000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "c98-02.rom", 0x000000, 0x100000, CRC(4a2ad2b3) SHA1(3296cf2855203d06170c991d187c65ccc3751952) ) + ROM_LOAD( "c98-03.rom", 0x100000, 0x100000, CRC(589a678f) SHA1(228b959046bec10b28599d83d9e58fd149273473) ) - ROM_REGION( 0x080000, "gfx3", 0 ) /* pivot gfx */ + ROM_REGION( 0x080000, "tc0430grw", 0 ) /* pivot gfx */ ROM_LOAD( "c98-05.rom", 0x000000, 0x080000, CRC(9ddd9c39) SHA1(4005a540c5cef6754284361da79a9e5e15612146) ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound cpu */ @@ -5081,12 +5024,12 @@ ROM_START( metalb ) ROM_LOAD16_BYTE( "d12-07.9", 0x80000, 0x20000, CRC(e07f5136) SHA1(27df1a1f21c27feb91801e3cc304ee534969f792) ) ROM_LOAD16_BYTE( "d12-06.6", 0x80001, 0x20000, CRC(131df731) SHA1(537a9f404d797db051a5aaf0afa2cd1e9c0bdcfb) ) - ROM_REGION( 0x100000, "gfx1", 0 ) /* SCR */ - ROM_LOAD32_WORD_SWAP( "d12-03.14", 0x00002, 0x80000, CRC(46b498c0) SHA1(c2ec7ce9ac7874d1bc54ce4b5d428d73c5a16549) ) - ROM_LOAD32_WORD_SWAP( "d12-04.13", 0x00000, 0x80000, CRC(ab66d141) SHA1(e7f82b297dd2ae0b5d29886e5393cece61b742bb) ) + ROM_REGION( 0x100000, "tc0480scp", 0 ) /* SCR */ + ROM_LOAD32_WORD( "d12-03.14", 0x00000, 0x80000, CRC(46b498c0) SHA1(c2ec7ce9ac7874d1bc54ce4b5d428d73c5a16549) ) + ROM_LOAD32_WORD( "d12-04.13", 0x00002, 0x80000, CRC(ab66d141) SHA1(e7f82b297dd2ae0b5d29886e5393cece61b742bb) ) - ROM_REGION( 0x100000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "d12-01.20", 0x000000, 0x100000, CRC(b81523b9) SHA1(e688e88008db87fed0051fbcb28d3e3ae7e945a8) ) + ROM_REGION( 0x100000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "d12-01.20", 0x000000, 0x100000, CRC(b81523b9) SHA1(e688e88008db87fed0051fbcb28d3e3ae7e945a8) ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "d12-13.5", 0x00000, 0x20000, CRC(bcca2649) SHA1(d932134416c951d849ae41598f75609d453ed520) ) @@ -5105,12 +5048,12 @@ ROM_START( metalbj ) ROM_LOAD16_BYTE( "d12-07.9", 0x80000, 0x20000, CRC(e07f5136) SHA1(27df1a1f21c27feb91801e3cc304ee534969f792) ) ROM_LOAD16_BYTE( "d12-06.6", 0x80001, 0x20000, CRC(131df731) SHA1(537a9f404d797db051a5aaf0afa2cd1e9c0bdcfb) ) - ROM_REGION( 0x100000, "gfx1", 0 ) /* SCR */ - ROM_LOAD32_WORD_SWAP( "d12-03.14", 0x00002, 0x80000, CRC(46b498c0) SHA1(c2ec7ce9ac7874d1bc54ce4b5d428d73c5a16549) ) - ROM_LOAD32_WORD_SWAP( "d12-04.13", 0x00000, 0x80000, CRC(ab66d141) SHA1(e7f82b297dd2ae0b5d29886e5393cece61b742bb) ) + ROM_REGION( 0x100000, "tc0480scp", 0 ) /* SCR */ + ROM_LOAD32_WORD( "d12-03.14", 0x00000, 0x80000, CRC(46b498c0) SHA1(c2ec7ce9ac7874d1bc54ce4b5d428d73c5a16549) ) + ROM_LOAD32_WORD( "d12-04.13", 0x00002, 0x80000, CRC(ab66d141) SHA1(e7f82b297dd2ae0b5d29886e5393cece61b742bb) ) - ROM_REGION( 0x100000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "d12-01.20", 0x000000, 0x100000, CRC(b81523b9) SHA1(e688e88008db87fed0051fbcb28d3e3ae7e945a8) ) + ROM_REGION( 0x100000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "d12-01.20", 0x000000, 0x100000, CRC(b81523b9) SHA1(e688e88008db87fed0051fbcb28d3e3ae7e945a8) ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "d12-13.5", 0x00000, 0x20000, CRC(bcca2649) SHA1(d932134416c951d849ae41598f75609d453ed520) ) @@ -5128,11 +5071,11 @@ ROM_START( qzchikyu ) ROM_LOAD16_BYTE( "d19-05.7", 0x000001, 0x020000, CRC(c6d099d0) SHA1(a291177e1ddbe993ffa91fbe41fc04a57a568fd0) ) ROM_LOAD16_WORD_SWAP( "d19-03.6", 0x100000, 0x080000, CRC(5c1b92c0) SHA1(36af32584ef4b2856d397e5e3ee6d17d5be296fd) ) /* data rom */ - ROM_REGION( 0x100000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x100000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "d19-02.10", 0x000000, 0x100000, CRC(f2dce2f2) SHA1(29fd34f1177f0b587bfef40534adaea7afc0efcb) ) - ROM_REGION( 0x100000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "d19-01.21", 0x000000, 0x100000, CRC(6c4342d0) SHA1(197e51302c23f65b8808ec9a66391b972c275867) ) + ROM_REGION( 0x100000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "d19-01.21", 0x000000, 0x100000, CRC(6c4342d0) SHA1(197e51302c23f65b8808ec9a66391b972c275867) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "d19-07.5", 0x00000, 0x10000, CRC(a8935f84) SHA1(6f264cf7a52dfb8248b8aeb4ff34477d7ccb0b6d) ) @@ -5153,12 +5096,12 @@ ROM_START( yesnoj ) /* Yes/No Sinri Tokimeki Chart */ ROM_LOAD16_BYTE( "d20-05-2.2", 0x00000, 0x40000, CRC(68adb929) SHA1(5238409708d67f03d251338883de536bdf76c6c1) ) ROM_LOAD16_BYTE( "d20-04-2.4", 0x00001, 0x40000, CRC(a84762f8) SHA1(2950419fc6dca35a43a565575cec21de8efb9df1) ) - ROM_REGION( 0x080000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x080000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD( "d20-01.11", 0x00000, 0x80000, CRC(9d8a4d57) SHA1(d7afcd86bdfe2a4c94a7c2847e17ba7e41d4de79) ) - ROM_REGION( 0x100000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_BYTE( "d20-02.12", 0x00001, 0x80000, CRC(e71a8e40) SHA1(cda7f14ba90f178887b9cd57d5b85be7d5090ca7) ) - ROM_LOAD16_BYTE( "d20-03.13", 0x00000, 0x80000, CRC(6a51a1b4) SHA1(a2492a7775e137a705b3281de674724d4aab4fe1) ) + ROM_REGION( 0x100000, "sprites", 0 ) /* OBJ */ + ROM_LOAD16_BYTE( "d20-02.12", 0x00000, 0x80000, CRC(e71a8e40) SHA1(cda7f14ba90f178887b9cd57d5b85be7d5090ca7) ) + ROM_LOAD16_BYTE( "d20-03.13", 0x00001, 0x80000, CRC(6a51a1b4) SHA1(a2492a7775e137a705b3281de674724d4aab4fe1) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "d20-06.5", 0x00000, 0x10000, CRC(3eb537dc) SHA1(368a03fc265157faf50612b823a78c820b2519f1) ) @@ -5176,13 +5119,13 @@ ROM_START( deadconx ) ROM_LOAD16_BYTE( "d28-09.2", 0x80000, 0x40000, CRC(143a0cc1) SHA1(a0b658b6a1567651d6fe1a955e1c853b48301f30) ) ROM_LOAD16_BYTE( "d28-08.4", 0x80001, 0x40000, CRC(4c872bd9) SHA1(a78eec00b40445ad49425ba5a9b392b8516a30ff) ) - ROM_REGION( 0x100000, "gfx1", 0 ) /* SCR */ - ROM_LOAD32_WORD_SWAP( "d28-04.16", 0x00002, 0x80000, CRC(dcabc26b) SHA1(2e5e9912710ede9fc7c87430572f4e33a2ab66e7) ) - ROM_LOAD32_WORD_SWAP( "d28-05.17", 0x00000, 0x80000, CRC(862f9665) SHA1(c576c929f90ff454adca8f127fd7f74863d03239) ) + ROM_REGION( 0x100000, "tc0480scp", 0 ) /* SCR */ + ROM_LOAD32_WORD( "d28-04.16", 0x00000, 0x80000, CRC(dcabc26b) SHA1(2e5e9912710ede9fc7c87430572f4e33a2ab66e7) ) + ROM_LOAD32_WORD( "d28-05.17", 0x00002, 0x80000, CRC(862f9665) SHA1(c576c929f90ff454adca8f127fd7f74863d03239) ) - ROM_REGION( 0x200000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "d28-01.8", 0x000000, 0x100000, CRC(181d7b69) SHA1(fea7bd60224cf98d53d1389695f2e0d76e50b573) ) - ROM_LOAD16_WORD_SWAP( "d28-02.9", 0x100000, 0x100000, CRC(d301771c) SHA1(2756bb834b50a657bbcf4e9bec02f4af595ac7e9) ) + ROM_REGION( 0x200000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "d28-01.8", 0x000000, 0x100000, CRC(181d7b69) SHA1(fea7bd60224cf98d53d1389695f2e0d76e50b573) ) + ROM_LOAD( "d28-02.9", 0x100000, 0x100000, CRC(d301771c) SHA1(2756bb834b50a657bbcf4e9bec02f4af595ac7e9) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "d28-10.6", 0x00000, 0x10000, CRC(40805d74) SHA1(172114be692c766622d1235e5c4aa83ad438d9d9) ) @@ -5200,13 +5143,13 @@ ROM_START( deadconxj ) ROM_LOAD16_BYTE( "d28-09.2", 0x80000, 0x40000, CRC(143a0cc1) SHA1(a0b658b6a1567651d6fe1a955e1c853b48301f30) ) ROM_LOAD16_BYTE( "d28-08.4", 0x80001, 0x40000, CRC(4c872bd9) SHA1(a78eec00b40445ad49425ba5a9b392b8516a30ff) ) - ROM_REGION( 0x100000, "gfx1", 0 ) /* SCR */ - ROM_LOAD32_WORD_SWAP( "d28-04.16", 0x00002, 0x80000, CRC(dcabc26b) SHA1(2e5e9912710ede9fc7c87430572f4e33a2ab66e7) ) - ROM_LOAD32_WORD_SWAP( "d28-05.17", 0x00000, 0x80000, CRC(862f9665) SHA1(c576c929f90ff454adca8f127fd7f74863d03239) ) + ROM_REGION( 0x100000, "tc0480scp", 0 ) /* SCR */ + ROM_LOAD32_WORD( "d28-04.16", 0x00000, 0x80000, CRC(dcabc26b) SHA1(2e5e9912710ede9fc7c87430572f4e33a2ab66e7) ) + ROM_LOAD32_WORD( "d28-05.17", 0x00002, 0x80000, CRC(862f9665) SHA1(c576c929f90ff454adca8f127fd7f74863d03239) ) - ROM_REGION( 0x200000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "d28-01.8", 0x000000, 0x100000, CRC(181d7b69) SHA1(fea7bd60224cf98d53d1389695f2e0d76e50b573) ) - ROM_LOAD16_WORD_SWAP( "d28-02.9", 0x100000, 0x100000, CRC(d301771c) SHA1(2756bb834b50a657bbcf4e9bec02f4af595ac7e9) ) + ROM_REGION( 0x200000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "d28-01.8", 0x000000, 0x100000, CRC(181d7b69) SHA1(fea7bd60224cf98d53d1389695f2e0d76e50b573) ) + ROM_LOAD( "d28-02.9", 0x100000, 0x100000, CRC(d301771c) SHA1(2756bb834b50a657bbcf4e9bec02f4af595ac7e9) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "d28-10.6", 0x00000, 0x10000, CRC(40805d74) SHA1(172114be692c766622d1235e5c4aa83ad438d9d9) ) @@ -5224,13 +5167,13 @@ ROM_START( dinorex ) ROM_LOAD16_WORD_SWAP( "d39-04.6", 0x100000, 0x100000, CRC(3800506d) SHA1(a75067e94071617cd5dafdd0ae0ec096dded520a) ) /* data rom */ ROM_LOAD16_WORD_SWAP( "d39-05.7", 0x200000, 0x100000, CRC(e2ec3b5d) SHA1(143b72d0f2f5c40dbaeed1eee0672c3b95c2bda6) ) /* data rom */ - ROM_REGION( 0x100000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x100000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "d39-06.2", 0x000000, 0x100000, CRC(52f62835) SHA1(251c4f17bc98a5e81c224864fb81352cf1234377) ) - ROM_REGION( 0x600000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "d39-01.29", 0x000000, 0x200000, CRC(d10e9c7d) SHA1(42c13b271a91fac37be4ea92eb358ad6a6c540cf) ) - ROM_LOAD16_WORD_SWAP( "d39-02.28", 0x200000, 0x200000, CRC(6c304403) SHA1(97cd58bd7d00550b7ed5f77b066216c05206b513) ) - ROM_LOAD16_WORD_SWAP( "d39-03.27", 0x400000, 0x200000, CRC(fc9cdab4) SHA1(ce2dfac922d6ac0f008b7dfb92d76c1671ccabbd) ) + ROM_REGION( 0x600000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "d39-01.29", 0x000000, 0x200000, CRC(d10e9c7d) SHA1(42c13b271a91fac37be4ea92eb358ad6a6c540cf) ) + ROM_LOAD( "d39-02.28", 0x200000, 0x200000, CRC(6c304403) SHA1(97cd58bd7d00550b7ed5f77b066216c05206b513) ) + ROM_LOAD( "d39-03.27", 0x400000, 0x200000, CRC(fc9cdab4) SHA1(ce2dfac922d6ac0f008b7dfb92d76c1671ccabbd) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "d39-12.5", 0x00000, 0x10000, CRC(8292c7c1) SHA1(2ff20726f6cc6d98d860d96b8eb3c10f46b87d58) ) @@ -5249,13 +5192,13 @@ ROM_START( dinorexj ) ROM_LOAD16_WORD_SWAP( "d39-04.6", 0x100000, 0x100000, CRC(3800506d) SHA1(a75067e94071617cd5dafdd0ae0ec096dded520a) ) /* data rom */ ROM_LOAD16_WORD_SWAP( "d39-05.7", 0x200000, 0x100000, CRC(e2ec3b5d) SHA1(143b72d0f2f5c40dbaeed1eee0672c3b95c2bda6) ) /* data rom */ - ROM_REGION( 0x100000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x100000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "d39-06.2", 0x000000, 0x100000, CRC(52f62835) SHA1(251c4f17bc98a5e81c224864fb81352cf1234377) ) - ROM_REGION( 0x600000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "d39-01.29", 0x000000, 0x200000, CRC(d10e9c7d) SHA1(42c13b271a91fac37be4ea92eb358ad6a6c540cf) ) - ROM_LOAD16_WORD_SWAP( "d39-02.28", 0x200000, 0x200000, CRC(6c304403) SHA1(97cd58bd7d00550b7ed5f77b066216c05206b513) ) - ROM_LOAD16_WORD_SWAP( "d39-03.27", 0x400000, 0x200000, CRC(fc9cdab4) SHA1(ce2dfac922d6ac0f008b7dfb92d76c1671ccabbd) ) + ROM_REGION( 0x600000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "d39-01.29", 0x000000, 0x200000, CRC(d10e9c7d) SHA1(42c13b271a91fac37be4ea92eb358ad6a6c540cf) ) + ROM_LOAD( "d39-02.28", 0x200000, 0x200000, CRC(6c304403) SHA1(97cd58bd7d00550b7ed5f77b066216c05206b513) ) + ROM_LOAD( "d39-03.27", 0x400000, 0x200000, CRC(fc9cdab4) SHA1(ce2dfac922d6ac0f008b7dfb92d76c1671ccabbd) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "d39-12.5", 0x00000, 0x10000, CRC(8292c7c1) SHA1(2ff20726f6cc6d98d860d96b8eb3c10f46b87d58) ) @@ -5274,13 +5217,13 @@ ROM_START( dinorexu ) ROM_LOAD16_WORD_SWAP( "d39-04.6", 0x100000, 0x100000, CRC(3800506d) SHA1(a75067e94071617cd5dafdd0ae0ec096dded520a) ) /* data rom */ ROM_LOAD16_WORD_SWAP( "d39-05.7", 0x200000, 0x100000, CRC(e2ec3b5d) SHA1(143b72d0f2f5c40dbaeed1eee0672c3b95c2bda6) ) /* data rom */ - ROM_REGION( 0x100000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x100000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "d39-06.2", 0x000000, 0x100000, CRC(52f62835) SHA1(251c4f17bc98a5e81c224864fb81352cf1234377) ) - ROM_REGION( 0x600000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "d39-01.29", 0x000000, 0x200000, CRC(d10e9c7d) SHA1(42c13b271a91fac37be4ea92eb358ad6a6c540cf) ) - ROM_LOAD16_WORD_SWAP( "d39-02.28", 0x200000, 0x200000, CRC(6c304403) SHA1(97cd58bd7d00550b7ed5f77b066216c05206b513) ) - ROM_LOAD16_WORD_SWAP( "d39-03.27", 0x400000, 0x200000, CRC(fc9cdab4) SHA1(ce2dfac922d6ac0f008b7dfb92d76c1671ccabbd) ) + ROM_REGION( 0x600000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "d39-01.29", 0x000000, 0x200000, CRC(d10e9c7d) SHA1(42c13b271a91fac37be4ea92eb358ad6a6c540cf) ) + ROM_LOAD( "d39-02.28", 0x200000, 0x200000, CRC(6c304403) SHA1(97cd58bd7d00550b7ed5f77b066216c05206b513) ) + ROM_LOAD( "d39-03.27", 0x400000, 0x200000, CRC(fc9cdab4) SHA1(ce2dfac922d6ac0f008b7dfb92d76c1671ccabbd) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "d39-12.5", 0x00000, 0x10000, CRC(8292c7c1) SHA1(2ff20726f6cc6d98d860d96b8eb3c10f46b87d58) ) @@ -5298,12 +5241,12 @@ ROM_START( qjinsei ) /* Quiz Jinsei Gekijoh */ ROM_LOAD16_BYTE( "d48-10", 0x000001, 0x040000, CRC(37143a5b) SHA1(8a06031618b60a0c8f38789027d0ed042e540c4d) ) ROM_LOAD16_WORD_SWAP( "d48-03", 0x100000, 0x100000, CRC(fb5ea8dc) SHA1(2444042a85af6ae5b87e95ab09f661b877f215cc) ) /* data rom */ - ROM_REGION( 0x100000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x100000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "d48-04", 0x000000, 0x100000, CRC(61e4b078) SHA1(c01722af74220d0bb0daf3b78f53f8875209e066) ) - ROM_REGION( 0x200000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_BYTE( "d48-02", 0x000001, 0x100000, CRC(a7b68e63) SHA1(ecdd0b7f4c52eac8c6e4218f69c01cf9b2f98e2a) ) - ROM_LOAD16_BYTE( "d48-01", 0x000000, 0x100000, CRC(72a94b73) SHA1(f4f296886c5fdb227f43cb9231bb15742f8a77f1) ) + ROM_REGION( 0x200000, "sprites", 0 ) /* OBJ */ + ROM_LOAD16_BYTE( "d48-02", 0x000000, 0x100000, CRC(a7b68e63) SHA1(ecdd0b7f4c52eac8c6e4218f69c01cf9b2f98e2a) ) + ROM_LOAD16_BYTE( "d48-01", 0x000001, 0x100000, CRC(72a94b73) SHA1(f4f296886c5fdb227f43cb9231bb15742f8a77f1) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "d48-11", 0x00000, 0x10000, CRC(656c5b54) SHA1(650bcc5920838db5c6613bcf30468d6e296ea017) ) @@ -5323,12 +5266,12 @@ ROM_START( qcrayon ) /* Quiz Crayon */ /* extra ROM mapped 0x300000 */ ROM_LOAD16_WORD_SWAP( "d55-03", 0x000000, 0x100000, CRC(4d161e76) SHA1(96189294f91f165423ba585c650ee47fc8165725) ) /* data rom */ - ROM_REGION( 0x100000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x100000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "d55-02", 0x000000, 0x100000, CRC(f3db2f1c) SHA1(a96d89dd2c851dae3a237141c478fe2a65dda9c3) ) - ROM_REGION( 0x200000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_BYTE( "d55-05", 0x000001, 0x100000, CRC(f0e59902) SHA1(44d93e0e9622a98796a128a0273065947f586a1d) ) - ROM_LOAD16_BYTE( "d55-04", 0x000000, 0x100000, CRC(412975ce) SHA1(32058a87947d6b6cdc8b147ddfcf359792f9c9fc) ) + ROM_REGION( 0x200000, "sprites", 0 ) /* OBJ */ + ROM_LOAD16_BYTE( "d55-05", 0x000000, 0x100000, CRC(f0e59902) SHA1(44d93e0e9622a98796a128a0273065947f586a1d) ) + ROM_LOAD16_BYTE( "d55-04", 0x000001, 0x100000, CRC(412975ce) SHA1(32058a87947d6b6cdc8b147ddfcf359792f9c9fc) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "d55-15", 0x00000, 0x10000, CRC(ba782eff) SHA1(ce24654db49b9694e444e93b9a8d529a86729e03) ) @@ -5348,11 +5291,11 @@ ROM_START( qcrayon2 ) /* Quiz Crayon 2 */ /* extra ROM mapped at 600000 */ ROM_LOAD16_WORD_SWAP( "d63-01", 0x00000, 0x80000, CRC(872e38b4) SHA1(dbb3728655dee03f6583db976708507c9ac5be16) ) /* data rom */ - ROM_REGION( 0x100000, "gfx1", 0 ) /* SCR */ + ROM_REGION( 0x100000, "tc0100scn_1", 0 ) /* SCR */ ROM_LOAD16_WORD_SWAP( "d63-03", 0x000000, 0x100000, CRC(d24843af) SHA1(6508182f9038e4603230a6489e89ebae91c2f761) ) - ROM_REGION( 0x200000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "d63-06", 0x000000, 0x200000, CRC(58b1e4a8) SHA1(1b957c2d2d1cdada9972880d9d7b6c8c584edabb) ) + ROM_REGION( 0x200000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "d63-06", 0x000000, 0x200000, CRC(58b1e4a8) SHA1(1b957c2d2d1cdada9972880d9d7b6c8c584edabb) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "d63-11", 0x00000, 0x10000, CRC(2c7ac9e5) SHA1(2477fb4415781afddc2f4084eca52f53b7d40480) ) @@ -5368,13 +5311,13 @@ ROM_START( driftout ) ROM_LOAD16_BYTE( "ic46.rom", 0x00000, 0x80000, CRC(71303738) SHA1(b473e1cfe2b64df41d57bdf421a62bebcc882304) ) ROM_LOAD16_BYTE( "ic45.rom", 0x00001, 0x80000, CRC(43f81eca) SHA1(1a67105bc56cb5366ee85dc54eafe7673bb10ef0) ) - ROM_REGION( 0x080000, "gfx1", ROMREGION_ERASEFF ) + ROM_REGION( 0x080000, "tc0100scn_1", ROMREGION_ERASEFF ) /* empty */ - ROM_REGION( 0x080000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "do_obj.rom", 0x00000, 0x80000, CRC(5491f1c4) SHA1(a2e92a9a1e77d9f683f6720947e0622dde48287f) ) + ROM_REGION( 0x080000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "do_obj.rom", 0x00000, 0x80000, CRC(5491f1c4) SHA1(a2e92a9a1e77d9f683f6720947e0622dde48287f) ) - ROM_REGION( 0x080000, "gfx3", 0 ) /* pivot gfx */ + ROM_REGION( 0x080000, "tc0430grw", 0 ) /* pivot gfx */ ROM_LOAD( "do_piv.rom", 0x00000, 0x80000, CRC(c4f012f7) SHA1(4ad6a88f6a7f89b2b4c62c2b376d4e7b43c3d442) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ @@ -5391,13 +5334,13 @@ ROM_START( driftoutj ) ROM_LOAD16_BYTE( "do_46.rom", 0x00000, 0x80000, CRC(f960363e) SHA1(3f64fd606d4e19198de460cf2d99331a2d2e7434) ) ROM_LOAD16_BYTE( "do_45.rom", 0x00001, 0x80000, CRC(e3fe66b9) SHA1(6b197061be0c296af08a86dace08ba75c9574e19) ) - ROM_REGION( 0x080000, "gfx1", ROMREGION_ERASEFF ) + ROM_REGION( 0x080000, "tc0100scn_1", ROMREGION_ERASEFF ) /* empty */ - ROM_REGION( 0x080000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_WORD_SWAP( "do_obj.rom", 0x00000, 0x80000, CRC(5491f1c4) SHA1(a2e92a9a1e77d9f683f6720947e0622dde48287f) ) + ROM_REGION( 0x080000, "sprites", 0 ) /* OBJ */ + ROM_LOAD( "do_obj.rom", 0x00000, 0x80000, CRC(5491f1c4) SHA1(a2e92a9a1e77d9f683f6720947e0622dde48287f) ) - ROM_REGION( 0x080000, "gfx3", 0 ) /* pivot gfx */ + ROM_REGION( 0x080000, "tc0430grw", 0 ) /* pivot gfx */ ROM_LOAD( "do_piv.rom", 0x00000, 0x80000, CRC(c4f012f7) SHA1(4ad6a88f6a7f89b2b4c62c2b376d4e7b43c3d442) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ @@ -5414,14 +5357,14 @@ ROM_START( driveout ) ROM_LOAD16_BYTE( "driveout.003", 0x00000, 0x80000, CRC(dc431e4e) SHA1(6002cb7a2bd05e28a2413942998a5c7e11fc1432) ) ROM_LOAD16_BYTE( "driveout.002", 0x00001, 0x80000, CRC(6f9063f4) SHA1(7ea55126a2f6391322740432d835cd06450909ae) ) - ROM_REGION( 0x080000, "gfx1", ROMREGION_ERASEFF ) + ROM_REGION( 0x080000, "tc0100scn_1", ROMREGION_ERASEFF ) /* empty */ - ROM_REGION( 0x080000, "gfx2", 0 ) /* OBJ */ - ROM_LOAD16_BYTE( "driveout.084", 0x00001, 0x40000, CRC(530ac420) SHA1(d66006958580205d0962871ba7d0b40a067bb9af) ) - ROM_LOAD16_BYTE( "driveout.081", 0x00000, 0x40000, CRC(0e9a3e9e) SHA1(7bb21e6fc930a5e1913bffb626958d0ee22d5883) ) + ROM_REGION( 0x080000, "sprites", 0 ) /* OBJ */ + ROM_LOAD16_BYTE( "driveout.084", 0x00000, 0x40000, CRC(530ac420) SHA1(d66006958580205d0962871ba7d0b40a067bb9af) ) + ROM_LOAD16_BYTE( "driveout.081", 0x00001, 0x40000, CRC(0e9a3e9e) SHA1(7bb21e6fc930a5e1913bffb626958d0ee22d5883) ) - ROM_REGION( 0x080000, "gfx3", 0 ) /* pivot gfx */ + ROM_REGION( 0x080000, "tc0430grw", 0 ) /* pivot gfx */ ROM_LOAD( "do_piv.rom", 0x00000, 0x80000, CRC(c4f012f7) SHA1(4ad6a88f6a7f89b2b4c62c2b376d4e7b43c3d442) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ @@ -5435,25 +5378,41 @@ ROM_END void taitof2_state::init_finalb() { - u8 *gfx = memregion("gfx2")->base(); - const u32 size = memregion("gfx2")->bytes(); + /* convert from 2bits into 4bits format */ + u8 *gfx_hi = memregion("sprites_hi")->base(); + gfx_element *gx0 = m_gfxdecode->gfx(0); - u32 offset = size / 2; - for (int i = (size / 2) + (size / 4); i < size; i++) + // allocate memory for the assembled data + u8 *srcdata = auto_alloc_array(machine(), u8, gx0->elements() * gx0->width() * gx0->height()); + + // loop over elements + u8 *dest = srcdata; + for (int c = 0; c < gx0->elements(); c++) { - /* convert from 2bits into 4bits format */ - const u8 data = gfx[i]; - const u8 d1 = (data >> 0) & 3; - const u8 d2 = (data >> 2) & 3; - const u8 d3 = (data >> 4) & 3; - const u8 d4 = (data >> 6) & 3; + const u8 *c0base = gx0->get_data(c); - gfx[offset] = (d3 << 2) | (d4 << 6); - offset++; + // loop over height + for (int y = 0; y < gx0->height(); y++) + { + const u8 *c0 = c0base; - gfx[offset] = (d1 << 2) | (d2 << 6); - offset++; + for (int x = 0; x < gx0->width();) + { + u8 hipix = *gfx_hi++; + for (int i = 0; i < 4; i++) + { + *dest++ = (*c0++ & 0xf) | ((hipix << 4) & 0x30); + x++; + hipix >>= 2; + } + } + c0base += gx0->rowbytes(); + } } + + gx0->set_raw_layout(srcdata, gx0->width(), gx0->height(), gx0->elements(), 8 * gx0->width(), 8 * gx0->width() * gx0->height()); + gx0->set_colors(4096 / 64); + gx0->set_granularity(64); } void taitof2_state::init_cameltry() @@ -5467,8 +5426,8 @@ void taitof2_state::init_cameltry() void taitof2_state::init_mjnquest() { - const u32 len = memregion("gfx2")->bytes(); - u8 *gfx = memregion("gfx2")->base(); + const u32 len = memregion("sprites")->bytes(); + u8 *gfx = memregion("sprites")->base(); /* the bytes in each longword are in reversed order, put them in the order used by the other games. */ diff --git a/src/mame/drivers/taito_f3.cpp b/src/mame/drivers/taito_f3.cpp index 5bb2ea246b2..387d9f50821 100644 --- a/src/mame/drivers/taito_f3.cpp +++ b/src/mame/drivers/taito_f3.cpp @@ -44,28 +44,28 @@ CUSTOM_INPUT_MEMBER(taito_f3_state::f3_analog_r) { - int num = (uintptr_t)param; - int data = m_dial[num]->read(); - return ((data & 0xf)<<12) | ((data & 0xff0)>>4); + const int num = (uintptr_t)param; + const int data = m_dial[num]->read(); + return ((data & 0xf) << 12) | ((data & 0xff0) >> 4); } CUSTOM_INPUT_MEMBER(taito_f3_state::f3_coin_r) { - int num = (uintptr_t)param; + const int num = (uintptr_t)param; return m_coin_word[num]; } -READ32_MEMBER(taito_f3_state::f3_control_r) +u32 taito_f3_state::f3_control_r(offs_t offset) { - if (offset<6) + if (offset < 6) return m_input[offset]->read(); else logerror("CPU #0 PC %06x: warning - read unmapped control address %06x\n", m_maincpu->pc(), offset); return 0xffffffff; } -WRITE32_MEMBER(taito_f3_state::f3_control_w) +void taito_f3_state::f3_control_w(offs_t offset, u32 data, u32 mem_mask) { switch (offset) { @@ -87,7 +87,7 @@ WRITE32_MEMBER(taito_f3_state::f3_control_w) case 0x04: /* Eeprom */ if (ACCESSING_BITS_0_7) { - ioport("EEPROMOUT")->write(data, 0xff); + m_eepromout->write(data, 0xff); } return; @@ -105,22 +105,21 @@ WRITE32_MEMBER(taito_f3_state::f3_control_w) logerror("CPU #0 PC %06x: warning - write unmapped control address %06x %08x\n",m_maincpu->pc(),offset,data); } -WRITE32_MEMBER(taito_f3_state::f3_sound_reset_0_w) +void taito_f3_state::sound_reset_0_w(u32 data) { m_audiocpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE); } -WRITE32_MEMBER(taito_f3_state::f3_sound_reset_1_w) +void taito_f3_state::sound_reset_1_w(u32 data) { m_audiocpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); } -WRITE32_MEMBER(taito_f3_state::f3_sound_bankswitch_w) +void taito_f3_state::sound_bankswitch_w(offs_t offset, u32 data, u32 mem_mask) { - if (m_f3_game==KIRAMEKI) { - int idx; - - idx = (offset << 1) & 0x1e; + if (m_game == KIRAMEKI) + { + int idx = (offset << 1) & 0x1e; if (ACCESSING_BITS_0_15) idx += 1; @@ -129,14 +128,16 @@ WRITE32_MEMBER(taito_f3_state::f3_sound_bankswitch_w) /* Banks are 0x20000 bytes each, divide by two to get data16 pointer rather than byte pointer */ - m_taito_en->set_bank(1,idx); + m_taito_en->set_bank(1, idx); - } else { + } + else + { logerror("Sound bankswitch in unsupported game\n"); } } -WRITE16_MEMBER(taito_f3_state::f3_unk_w) +void taito_f3_state::f3_unk_w(offs_t offset, u16 data) { /* Several games writes a value here at POST, dunno what kind of config this is ... @@ -174,7 +175,7 @@ WRITE16_MEMBER(taito_f3_state::f3_unk_w) popnpop: 0x0000 landmakr: 0x278b */ - if(offset == 0) + if (offset == 0) logerror("0x4c0000 write %04x\n",data); else popmessage("0x4c0002 write %04x, contact MAMEdev",data); //shouldn't happen @@ -185,45 +186,65 @@ WRITE16_MEMBER(taito_f3_state::f3_unk_w) void taito_f3_state::f3_map(address_map &map) { map(0x000000, 0x1fffff).rom(); - map(0x300000, 0x30007f).w(FUNC(taito_f3_state::f3_sound_bankswitch_w)); - map(0x400000, 0x41ffff).mirror(0x20000).ram().share("f3_ram"); - map(0x440000, 0x447fff).ram().w(FUNC(taito_f3_state::f3_palette_24bit_w)).share("paletteram"); + map(0x300000, 0x30007f).w(FUNC(taito_f3_state::sound_bankswitch_w)); + map(0x400000, 0x41ffff).mirror(0x20000).ram(); + map(0x440000, 0x447fff).ram().w(FUNC(taito_f3_state::palette_24bit_w)).share("paletteram"); map(0x4a0000, 0x4a001f).rw(FUNC(taito_f3_state::f3_control_r), FUNC(taito_f3_state::f3_control_w)); map(0x4c0000, 0x4c0003).w(FUNC(taito_f3_state::f3_unk_w)); - map(0x600000, 0x60ffff).rw(FUNC(taito_f3_state::f3_spriteram_r), FUNC(taito_f3_state::f3_spriteram_w)); //AM_SHARE("spriteram") - map(0x610000, 0x61bfff).rw(FUNC(taito_f3_state::f3_pf_data_r), FUNC(taito_f3_state::f3_pf_data_w)); //AM_SHARE("f3_pf_data") - map(0x61c000, 0x61dfff).rw(FUNC(taito_f3_state::f3_videoram_r), FUNC(taito_f3_state::f3_videoram_w)); //AM_SHARE("videoram") - map(0x61e000, 0x61ffff).rw(FUNC(taito_f3_state::f3_vram_r), FUNC(taito_f3_state::f3_vram_w)); //AM_SHARE("f3_vram") - map(0x620000, 0x62ffff).rw(FUNC(taito_f3_state::f3_lineram_r), FUNC(taito_f3_state::f3_lineram_w)); //AM_SHARE("f3_line_ram") - map(0x630000, 0x63ffff).rw(FUNC(taito_f3_state::f3_pivot_r), FUNC(taito_f3_state::f3_pivot_w)); //AM_SHARE("f3_pivot_ram") - map(0x660000, 0x66000f).w(FUNC(taito_f3_state::f3_control_0_w)); - map(0x660010, 0x66001f).w(FUNC(taito_f3_state::f3_control_1_w)); + map(0x600000, 0x60ffff).rw(FUNC(taito_f3_state::spriteram_r), FUNC(taito_f3_state::spriteram_w)).share("spriteram"); + map(0x610000, 0x61bfff).rw(FUNC(taito_f3_state::pf_ram_r), FUNC(taito_f3_state::pf_ram_w)).share("pf_ram"); + map(0x61c000, 0x61dfff).rw(FUNC(taito_f3_state::textram_r), FUNC(taito_f3_state::textram_w)).share("textram"); + map(0x61e000, 0x61ffff).rw(FUNC(taito_f3_state::charram_r), FUNC(taito_f3_state::charram_w)).share("charram"); + map(0x620000, 0x62ffff).rw(FUNC(taito_f3_state::lineram_r), FUNC(taito_f3_state::lineram_w)).share("line_ram"); + map(0x630000, 0x63ffff).rw(FUNC(taito_f3_state::pivot_r), FUNC(taito_f3_state::pivot_w)).share("pivot_ram"); + map(0x660000, 0x66000f).w(FUNC(taito_f3_state::control_0_w)); + map(0x660010, 0x66001f).w(FUNC(taito_f3_state::control_1_w)); map(0xc00000, 0xc007ff).rw("taito_en:dpram", FUNC(mb8421_device::left_r), FUNC(mb8421_device::left_w)); - map(0xc80000, 0xc80003).w(FUNC(taito_f3_state::f3_sound_reset_0_w)); - map(0xc80100, 0xc80103).w(FUNC(taito_f3_state::f3_sound_reset_1_w)); + map(0xc80000, 0xc80003).w(FUNC(taito_f3_state::sound_reset_0_w)); + map(0xc80100, 0xc80103).w(FUNC(taito_f3_state::sound_reset_1_w)); +} + +void taito_f3_state::bubsympb_oki_w(u8 data) +{ + //printf("write %08x %08x\n",data,mem_mask); + const u8 bank = data & 0xf; + if (data < 5) + { + m_okibank->set_entry(bank); + } + else + { + logerror("unknown oki bank write %02x at %08x", bank, m_maincpu->pc()); + } + //printf("oki bank w %08x\n",data); } void taito_f3_state::bubsympb_map(address_map &map) { map(0x000000, 0x1fffff).rom(); - map(0x300000, 0x30007f).w(FUNC(taito_f3_state::f3_sound_bankswitch_w)); - map(0x400000, 0x41ffff).mirror(0x20000).ram().share("f3_ram"); - map(0x440000, 0x447fff).ram().w(FUNC(taito_f3_state::f3_palette_24bit_w)).share("paletteram"); + map(0x300000, 0x30007f).w(FUNC(taito_f3_state::sound_bankswitch_w)); + map(0x400000, 0x41ffff).mirror(0x20000).ram(); + map(0x440000, 0x447fff).ram().w(FUNC(taito_f3_state::palette_24bit_w)).share("paletteram"); map(0x4a0000, 0x4a001b).rw(FUNC(taito_f3_state::f3_control_r), FUNC(taito_f3_state::f3_control_w)); - map(0x4a001c, 0x4a001f).rw(FUNC(taito_f3_state::bubsympb_oki_r), FUNC(taito_f3_state::bubsympb_oki_w)); + map(0x4a001d, 0x4a001d).w(FUNC(taito_f3_state::bubsympb_oki_w)); + map(0x4a001f, 0x4a001f).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); map(0x4c0000, 0x4c0003).w(FUNC(taito_f3_state::f3_unk_w)); - map(0x600000, 0x60ffff).rw(FUNC(taito_f3_state::f3_spriteram_r), FUNC(taito_f3_state::f3_spriteram_w)); //AM_SHARE("spriteram") - map(0x610000, 0x61bfff).rw(FUNC(taito_f3_state::f3_pf_data_r), FUNC(taito_f3_state::f3_pf_data_w)); //AM_SHARE("f3_pf_data") - map(0x61c000, 0x61dfff).rw(FUNC(taito_f3_state::f3_videoram_r), FUNC(taito_f3_state::f3_videoram_w)); //AM_SHARE("videoram") - map(0x61e000, 0x61ffff).rw(FUNC(taito_f3_state::f3_vram_r), FUNC(taito_f3_state::f3_vram_w)); //AM_SHARE("f3_vram") - map(0x620000, 0x62ffff).rw(FUNC(taito_f3_state::f3_lineram_r), FUNC(taito_f3_state::f3_lineram_w)); //AM_SHARE("f3_line_ram") - map(0x630000, 0x63ffff).rw(FUNC(taito_f3_state::f3_pivot_r), FUNC(taito_f3_state::f3_pivot_w)); //AM_SHARE("f3_pivot_ram") - map(0x660000, 0x66000f).w(FUNC(taito_f3_state::f3_control_0_w)); - map(0x660010, 0x66001f).w(FUNC(taito_f3_state::f3_control_1_w)); + map(0x600000, 0x60ffff).rw(FUNC(taito_f3_state::spriteram_r), FUNC(taito_f3_state::spriteram_w)).share("spriteram"); + map(0x610000, 0x61bfff).rw(FUNC(taito_f3_state::pf_ram_r), FUNC(taito_f3_state::pf_ram_w)).share("pf_ram"); + map(0x61c000, 0x61dfff).rw(FUNC(taito_f3_state::textram_r), FUNC(taito_f3_state::textram_w)).share("textram"); + map(0x61e000, 0x61ffff).rw(FUNC(taito_f3_state::charram_r), FUNC(taito_f3_state::charram_w)).share("charram"); + map(0x620000, 0x62ffff).rw(FUNC(taito_f3_state::lineram_r), FUNC(taito_f3_state::lineram_w)).share("line_ram"); + map(0x630000, 0x63ffff).rw(FUNC(taito_f3_state::pivot_r), FUNC(taito_f3_state::pivot_w)).share("pivot_ram"); + map(0x660000, 0x66000f).w(FUNC(taito_f3_state::control_0_w)); + map(0x660010, 0x66001f).w(FUNC(taito_f3_state::control_1_w)); map(0xc00000, 0xc007ff).ram(); } - +void taito_f3_state::bubsympb_oki_map(address_map &map) +{ + map(0x00000, 0x2ffff).rom().region("oki", 0); + map(0x30000, 0x3ffff).bankr("okibank"); +} /******************************************************************************/ @@ -356,7 +377,7 @@ static const gfx_layout charlayout = 4, { 0,1,2,3 }, { 20, 16, 28, 24, 4, 0, 12, 8 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, + { STEP8(0,4*8) }, 32*8 }; @@ -367,48 +388,15 @@ static const gfx_layout pivotlayout = 4, { 0,1,2,3 }, { 20, 16, 28, 24, 4, 0, 12, 8 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, + { STEP8(0,4*8) }, 32*8 }; -static const gfx_layout spriteram_layout = -{ - 16,16, - RGN_FRAC(1,2), - 6, /* Palettes have 4 bpp indexes despite up to 6 bpp data */ - { RGN_FRAC(1,2)+0, RGN_FRAC(1,2)+1, 0, 1, 2, 3 }, - { - 4, 0, 12, 8, - 16+4, 16+0, 16+12, 16+8, - 32+4, 32+0, 32+12, 32+8, - 48+4, 48+0, 48+12, 48+8 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 128*8 /* every sprite takes 128 consecutive bytes */ -}; - -static const gfx_layout tile_layout = -{ - 16,16, - RGN_FRAC(1,2), - 6, /* Palettes have 4 bpp indexes despite up to 6 bpp data */ - { RGN_FRAC(1,2)+2, RGN_FRAC(1,2)+3, 0, 1, 2, 3 }, - { - 4, 0, 16+4, 16+0, - 8+4, 8+0, 24+4, 24+0, - 32+4, 32+0, 48+4, 48+0, - 40+4, 40+0, 56+4, 56+0, - }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 128*8 /* every sprite takes 128 consecutive bytes */ -}; - static GFXDECODE_START( gfx_taito_f3 ) - GFXDECODE_ENTRY( nullptr, 0x000000, charlayout, 0x0000, 0x0400>>4 ) /* Dynamically modified */ - GFXDECODE_ENTRY( "gfx2", 0x000000, tile_layout, 0x0000, 0x2000>>4 ) /* Tiles area */ - GFXDECODE_ENTRY( "gfx1", 0x000000, spriteram_layout, 0x1000, 0x1000>>4 ) /* Sprites area */ - GFXDECODE_ENTRY( nullptr, 0x000000, pivotlayout, 0x0000, 0x400>>4 ) /* Dynamically modified */ + GFXDECODE_ENTRY( nullptr, 0x000000, charlayout, 0x0000, 0x0400>>4 ) /* Dynamically modified */ + GFXDECODE_ENTRY( "tilemap", 0x000000, gfx_16x16x4_packed_lsb, 0x0000, 0x2000>>4 ) /* Tiles area */ + GFXDECODE_ENTRY( "sprites", 0x000000, gfx_16x16x4_packed_lsb, 0x1000, 0x1000>>4 ) /* Sprites area */ + GFXDECODE_ENTRY( nullptr, 0x000000, pivotlayout, 0x0000, 0x400>>4 ) /* Dynamically modified */ GFXDECODE_END /******************************************************************************/ @@ -425,13 +413,13 @@ void taito_f3_state::device_timer(emu_timer &timer, device_timer_id id, int para } } -INTERRUPT_GEN_MEMBER(taito_f3_state::f3_interrupt2) +INTERRUPT_GEN_MEMBER(taito_f3_state::interrupt2) { device.execute().set_input_line(2, HOLD_LINE); // vblank m_interrupt3_timer->adjust(m_maincpu->cycles_to_attotime(10000)); } -static const uint16_t recalh_eeprom[64] = { +static const u16 recalh_eeprom[64] = { 0x8554,0x0000,0x3000,0x0000,0x0000,0x0000,0x0000,0xf335, 0x0001,0x86a0,0x0013,0x0413,0x0000,0xc350,0x0019,0x000a, 0x0000,0x4e20,0x0003,0x180d,0x0000,0x2710,0x0005,0x1418, @@ -452,7 +440,7 @@ void taito_f3_state::machine_start() void taito_f3_state::machine_reset() { /* start with sound m68k off, qtheater relies on it (otherwise main CPU tries to reset it while 68k is working with irq table vectors). */ - if(m_audiocpu) + if (m_audiocpu) m_audiocpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); } @@ -461,7 +449,7 @@ void taito_f3_state::f3(machine_config &config) /* basic machine hardware */ M68EC020(config, m_maincpu, XTAL(16'000'000)); m_maincpu->set_addrmap(AS_PROGRAM, &taito_f3_state::f3_map); - m_maincpu->set_vblank_int("screen", FUNC(taito_f3_state::f3_interrupt2)); + m_maincpu->set_vblank_int("screen", FUNC(taito_f3_state::interrupt2)); EEPROM_93C46_16BIT(config, m_eeprom); @@ -473,8 +461,8 @@ void taito_f3_state::f3(machine_config &config) m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(624)); /* 58.97 Hz, 624us vblank time */ m_screen->set_size(40*8+48*2, 32*8); m_screen->set_visarea(46, 40*8-1 + 46, 24, 24+232-1); - m_screen->set_screen_update(FUNC(taito_f3_state::screen_update_f3)); - m_screen->screen_vblank().set(FUNC(taito_f3_state::screen_vblank_f3)); + m_screen->set_screen_update(FUNC(taito_f3_state::screen_update)); + m_screen->screen_vblank().set(FUNC(taito_f3_state::screen_vblank)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_taito_f3); PALETTE(config, m_palette).set_entries(0x2000); @@ -525,28 +513,17 @@ static const gfx_layout bubsympb_sprite_layout = RGN_FRAC(1,6), 6, { RGN_FRAC(0,6), RGN_FRAC(1,6), RGN_FRAC(2,6), RGN_FRAC(3,6), RGN_FRAC(4,6), RGN_FRAC(5,6) }, - { 7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 }, + { STEP16(15,-1) }, + { STEP16(0,16) }, 16*16 }; -static const gfx_layout bubsympb_tile_layout = -{ - 16,16, - RGN_FRAC(1,2), - 5, - { RGN_FRAC(1,2)+0, 0,1,2,3 }, - { 20,16,12,8,4,0,28,24,52,48,44,40,36,32,60,56 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 16*64 -}; - static GFXDECODE_START( gfx_bubsympb ) - GFXDECODE_ENTRY( nullptr, 0x000000, charlayout, 0, 64 ) /* Dynamically modified */ - GFXDECODE_ENTRY( "gfx2", 0x000000, bubsympb_tile_layout, 0, 512 ) /* Tiles area */ - GFXDECODE_ENTRY( "gfx1", 0x000000, bubsympb_sprite_layout, 4096, 256 ) /* Sprites area */ - GFXDECODE_ENTRY( nullptr, 0x000000, pivotlayout, 0, 64 ) /* Dynamically modified */ + GFXDECODE_ENTRY( nullptr, 0x000000, charlayout, 0, 64 ) /* Dynamically modified */ + GFXDECODE_ENTRY( "tilemap", 0x000000, gfx_16x16x4_packed_lsb, 0, 512 ) /* Tiles area */ + GFXDECODE_ENTRY( "sprites", 0x000000, bubsympb_sprite_layout, 4096, 256 ) /* Sprites area */ + GFXDECODE_ENTRY( nullptr, 0x000000, pivotlayout, 0, 64 ) /* Dynamically modified */ GFXDECODE_END void taito_f3_state::bubsympb(machine_config &config) @@ -554,7 +531,7 @@ void taito_f3_state::bubsympb(machine_config &config) /* basic machine hardware */ M68EC020(config, m_maincpu, XTAL(16'000'000)); m_maincpu->set_addrmap(AS_PROGRAM, &taito_f3_state::bubsympb_map); - m_maincpu->set_vblank_int("screen", FUNC(taito_f3_state::f3_interrupt2)); + m_maincpu->set_vblank_int("screen", FUNC(taito_f3_state::interrupt2)); EEPROM_93C46_16BIT(config, m_eeprom); @@ -566,8 +543,8 @@ void taito_f3_state::bubsympb(machine_config &config) m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(624)); /* 58.97 Hz, 624us vblank time */ m_screen->set_size(40*8+48*2, 32*8); m_screen->set_visarea(46, 40*8-1 + 46, 31, 31+224-1); - m_screen->set_screen_update(FUNC(taito_f3_state::screen_update_f3)); - m_screen->screen_vblank().set(FUNC(taito_f3_state::screen_vblank_f3)); + m_screen->set_screen_update(FUNC(taito_f3_state::screen_update)); + m_screen->screen_vblank().set(FUNC(taito_f3_state::screen_vblank)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_bubsympb); PALETTE(config, m_palette).set_entries(0x2000); @@ -576,122 +553,134 @@ void taito_f3_state::bubsympb(machine_config &config) SPEAKER(config, "mono").front_center(); OKIM6295(config, m_oki, 1000000, okim6295_device::PIN7_HIGH); // not verified + m_oki->set_addrmap(0, &taito_f3_state::bubsympb_oki_map); m_oki->add_route(ALL_OUTPUTS, "mono", 1.0); } /******************************************************************************/ +#define EMPTY_SPRITE_HIDATA(len) ROM_REGION(len, "sprites_hi", ROMREGION_ERASE00 ) +#define EMPTY_TILEMAP_HIDATA(len) ROM_REGION(len, "tilemap_hi", ROMREGION_ERASE00 ) + ROM_START( ringrage ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d21-23.40", 0x000000, 0x40000, CRC(14e9ed65) SHA1(956db484375a43bcdf5a6a104e3c7d7ef5baaa1b) ) ROM_LOAD32_BYTE("d21-22.38", 0x000001, 0x40000, CRC(6f8b65b0) SHA1(a4f786b72068c6c9c1b23df67029eb0e2a982789) ) ROM_LOAD32_BYTE("d21-21.36", 0x000002, 0x40000, CRC(bf7234bc) SHA1(781b8f850275537e1ae2dae18a4554a1283cb432) ) ROM_LOAD32_BYTE("d21-25.34", 0x000003, 0x40000, CRC(aeff6e19) SHA1(7fd8f64f0a52dfe369a3709af8c043286b5b6fdf) ) - ROM_REGION(0x800000, "gfx1" , 0 ) /* Sprites */ + ROM_REGION( 0x400000, "sprites" , 0 ) /* Sprites */ ROM_LOAD16_BYTE("d21-02.66", 0x000000, 0x200000, CRC(facd3a02) SHA1(360c6e65d01dd2c33495ba928ef9986f754b3694) ) ROM_LOAD16_BYTE("d21-03.67", 0x000001, 0x200000, CRC(6f653e68) SHA1(840905f012c37d58160cc554c036ad25218ce3e6) ) - ROM_LOAD ("d21-04.68", 0x600000, 0x200000, CRC(9dcdceca) SHA1(e12bab5307ebe4c3b5f9284c91f3bf7ba4c8e9bc) ) - ROM_FILL ( 0x400000, 0x200000, 0x00 ) - ROM_REGION(0x200000, "gfx2" , 0 ) /* Tiles */ - ROM_LOAD16_BYTE("d21-06.49", 0x000000, 0x080000, CRC(92d4a720) SHA1(81dc58c58d5f4f20ceeb5d6b90491f1efcbc67d3) ) - ROM_LOAD16_BYTE("d21-07.50", 0x000001, 0x080000, CRC(6da696e9) SHA1(74332090b0de4193a669cd5242fd655e7b90f772) ) - ROM_LOAD ("d21-08.51", 0x180000, 0x080000, CRC(a0d95be9) SHA1(1746097e827ac10906f012c5c4f93c388a30f4b3) ) - ROM_FILL ( 0x100000, 0x080000, 0x00 ) + ROM_REGION( 0x200000, "sprites_hi", 0 ) + ROM_LOAD ("d21-04.68", 0x000000, 0x200000, CRC(9dcdceca) SHA1(e12bab5307ebe4c3b5f9284c91f3bf7ba4c8e9bc) ) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* sound CPU */ + ROM_REGION( 0x100000, "tilemap" , 0 ) /* Tiles */ + ROM_LOAD32_WORD("d21-06.49", 0x000000, 0x080000, CRC(92d4a720) SHA1(81dc58c58d5f4f20ceeb5d6b90491f1efcbc67d3) ) + ROM_LOAD32_WORD("d21-07.50", 0x000002, 0x080000, CRC(6da696e9) SHA1(74332090b0de4193a669cd5242fd655e7b90f772) ) + + ROM_REGION( 0x080000, "tilemap_hi", 0 ) + ROM_LOAD ("d21-08.51", 0x000000, 0x080000, CRC(a0d95be9) SHA1(1746097e827ac10906f012c5c4f93c388a30f4b3) ) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* sound CPU */ ROM_LOAD16_BYTE("d21-18.5", 0x100000, 0x20000, CRC(133b55d0) SHA1(feb5c9d0b1adcae3b16eb206c8ac4e73fd88bef4) ) ROM_LOAD16_BYTE("d21-19.6", 0x100001, 0x20000, CRC(1f98908f) SHA1(972c8f7e4e417831466714efd0b4cadca1f3e8e5) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d21-01.17", 0x000000, 0x200000, CRC(1fb6f07d) SHA1(a7d21d4b0b0b141c4dbe66554e5362e2c8876067) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d21-05.18", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- ROM_END ROM_START( ringrageu ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d21-23.40", 0x000000, 0x40000, CRC(14e9ed65) SHA1(956db484375a43bcdf5a6a104e3c7d7ef5baaa1b) ) ROM_LOAD32_BYTE("d21-22.38", 0x000001, 0x40000, CRC(6f8b65b0) SHA1(a4f786b72068c6c9c1b23df67029eb0e2a982789) ) ROM_LOAD32_BYTE("d21-21.36", 0x000002, 0x40000, CRC(bf7234bc) SHA1(781b8f850275537e1ae2dae18a4554a1283cb432) ) ROM_LOAD32_BYTE("d21-24.34", 0x000003, 0x40000, CRC(404dee67) SHA1(1e46d52d72b6cbe5e8af9f0f8e8b1acf9c6feb26) ) - ROM_REGION(0x800000, "gfx1" , 0 ) /* Sprites */ + ROM_REGION( 0x400000, "sprites" , 0 ) /* Sprites */ ROM_LOAD16_BYTE("d21-02.66", 0x000000, 0x200000, CRC(facd3a02) SHA1(360c6e65d01dd2c33495ba928ef9986f754b3694) ) ROM_LOAD16_BYTE("d21-03.67", 0x000001, 0x200000, CRC(6f653e68) SHA1(840905f012c37d58160cc554c036ad25218ce3e6) ) - ROM_LOAD ("d21-04.68", 0x600000, 0x200000, CRC(9dcdceca) SHA1(e12bab5307ebe4c3b5f9284c91f3bf7ba4c8e9bc) ) - ROM_FILL ( 0x400000, 0x200000, 0x00 ) - ROM_REGION(0x200000, "gfx2" , 0 ) /* Tiles */ - ROM_LOAD16_BYTE("d21-06.49", 0x000000, 0x080000, CRC(92d4a720) SHA1(81dc58c58d5f4f20ceeb5d6b90491f1efcbc67d3) ) - ROM_LOAD16_BYTE("d21-07.50", 0x000001, 0x080000, CRC(6da696e9) SHA1(74332090b0de4193a669cd5242fd655e7b90f772) ) - ROM_LOAD ("d21-08.51", 0x180000, 0x080000, CRC(a0d95be9) SHA1(1746097e827ac10906f012c5c4f93c388a30f4b3) ) - ROM_FILL ( 0x100000, 0x080000, 0x00 ) + ROM_REGION( 0x200000, "sprites_hi", 0 ) + ROM_LOAD ("d21-04.68", 0x000000, 0x200000, CRC(9dcdceca) SHA1(e12bab5307ebe4c3b5f9284c91f3bf7ba4c8e9bc) ) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* sound CPU */ + ROM_REGION( 0x100000, "tilemap" , 0 ) /* Tiles */ + ROM_LOAD32_WORD("d21-06.49", 0x000000, 0x080000, CRC(92d4a720) SHA1(81dc58c58d5f4f20ceeb5d6b90491f1efcbc67d3) ) + ROM_LOAD32_WORD("d21-07.50", 0x000002, 0x080000, CRC(6da696e9) SHA1(74332090b0de4193a669cd5242fd655e7b90f772) ) + + ROM_REGION( 0x080000, "tilemap_hi", 0 ) + ROM_LOAD ("d21-08.51", 0x000000, 0x080000, CRC(a0d95be9) SHA1(1746097e827ac10906f012c5c4f93c388a30f4b3) ) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* sound CPU */ ROM_LOAD16_BYTE("d21-18.5", 0x100000, 0x20000, CRC(133b55d0) SHA1(feb5c9d0b1adcae3b16eb206c8ac4e73fd88bef4) ) ROM_LOAD16_BYTE("d21-19.6", 0x100001, 0x20000, CRC(1f98908f) SHA1(972c8f7e4e417831466714efd0b4cadca1f3e8e5) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d21-01.17", 0x000000, 0x200000, CRC(1fb6f07d) SHA1(a7d21d4b0b0b141c4dbe66554e5362e2c8876067) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d21-05.18", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- ROM_END ROM_START( ringragej ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d21-23.40", 0x000000, 0x40000, CRC(14e9ed65) SHA1(956db484375a43bcdf5a6a104e3c7d7ef5baaa1b) ) ROM_LOAD32_BYTE("d21-22.38", 0x000001, 0x40000, CRC(6f8b65b0) SHA1(a4f786b72068c6c9c1b23df67029eb0e2a982789) ) ROM_LOAD32_BYTE("d21-21.36", 0x000002, 0x40000, CRC(bf7234bc) SHA1(781b8f850275537e1ae2dae18a4554a1283cb432) ) ROM_LOAD32_BYTE("d21-20.34", 0x000003, 0x40000, CRC(a8eb68a4) SHA1(040238fad0d17cac21b144b0fcab1774d2924da9) ) - ROM_REGION(0x800000, "gfx1" , 0 ) /* Sprites */ + ROM_REGION( 0x400000, "sprites" , 0 ) /* Sprites */ ROM_LOAD16_BYTE("d21-02.66", 0x000000, 0x200000, CRC(facd3a02) SHA1(360c6e65d01dd2c33495ba928ef9986f754b3694) ) ROM_LOAD16_BYTE("d21-03.67", 0x000001, 0x200000, CRC(6f653e68) SHA1(840905f012c37d58160cc554c036ad25218ce3e6) ) - ROM_LOAD ("d21-04.68", 0x600000, 0x200000, CRC(9dcdceca) SHA1(e12bab5307ebe4c3b5f9284c91f3bf7ba4c8e9bc) ) - ROM_FILL ( 0x400000, 0x200000, 0x00 ) - ROM_REGION(0x200000, "gfx2" , 0 ) /* Tiles */ - ROM_LOAD16_BYTE("d21-06.49", 0x000000, 0x080000, CRC(92d4a720) SHA1(81dc58c58d5f4f20ceeb5d6b90491f1efcbc67d3) ) - ROM_LOAD16_BYTE("d21-07.50", 0x000001, 0x080000, CRC(6da696e9) SHA1(74332090b0de4193a669cd5242fd655e7b90f772) ) - ROM_LOAD ("d21-08.51", 0x180000, 0x080000, CRC(a0d95be9) SHA1(1746097e827ac10906f012c5c4f93c388a30f4b3) ) - ROM_FILL ( 0x100000, 0x080000, 0x00 ) + ROM_REGION( 0x200000, "sprites_hi", 0 ) + ROM_LOAD ("d21-04.68", 0x000000, 0x200000, CRC(9dcdceca) SHA1(e12bab5307ebe4c3b5f9284c91f3bf7ba4c8e9bc) ) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* sound CPU */ + ROM_REGION( 0x100000, "tilemap" , 0 ) /* Tiles */ + ROM_LOAD32_WORD("d21-06.49", 0x000000, 0x080000, CRC(92d4a720) SHA1(81dc58c58d5f4f20ceeb5d6b90491f1efcbc67d3) ) + ROM_LOAD32_WORD("d21-07.50", 0x000002, 0x080000, CRC(6da696e9) SHA1(74332090b0de4193a669cd5242fd655e7b90f772) ) + + ROM_REGION( 0x080000, "tilemap_hi", 0 ) + ROM_LOAD ("d21-08.51", 0x000000, 0x080000, CRC(a0d95be9) SHA1(1746097e827ac10906f012c5c4f93c388a30f4b3) ) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* sound CPU */ ROM_LOAD16_BYTE("d21-18.5", 0x100000, 0x20000, CRC(133b55d0) SHA1(feb5c9d0b1adcae3b16eb206c8ac4e73fd88bef4) ) ROM_LOAD16_BYTE("d21-19.6", 0x100001, 0x20000, CRC(1f98908f) SHA1(972c8f7e4e417831466714efd0b4cadca1f3e8e5) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d21-01.17", 0x000000, 0x200000, CRC(1fb6f07d) SHA1(a7d21d4b0b0b141c4dbe66554e5362e2c8876067) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d21-05.18", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- ROM_END ROM_START( arabianm ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d29-23.ic40", 0x000000, 0x40000, CRC(89a0c706) SHA1(d0df02be2b63566ec776bb13947f975062766a01) ) ROM_LOAD32_BYTE("d29-22.ic38", 0x000001, 0x40000, CRC(4afc22a4) SHA1(9579d134a1e4b0c86af9b41d136acfe6cc7f6624) ) ROM_LOAD32_BYTE("d29-21.ic36", 0x000002, 0x40000, CRC(ac32eb38) SHA1(19d8d965497e41a7a2f490a197322da7fd1fa40a) ) ROM_LOAD32_BYTE("d29-25.ic34", 0x000003, 0x40000, CRC(b9b652ed) SHA1(19cceef87884adeb03e5e330159541a1e503a7f2) ) - ROM_REGION(0x400000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x200000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d29-03.ic66", 0x000000, 0x100000, CRC(aeaff456) SHA1(e70d0089e69d33d213be8195c31891f38fbcb53a) ) ROM_LOAD16_BYTE("d29-04.ic67", 0x000001, 0x100000, CRC(01711cfe) SHA1(26da4cc9dcb8d38bdf8c93015f77e58ffc9d1ba9) ) - ROM_LOAD ("d29-05.ic68", 0x300000, 0x100000, CRC(9b5f7a17) SHA1(89d9faedc7b55df6237f2c2ebb43de7de685cb66) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) - ROM_REGION(0x200000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d29-06.ic49", 0x000000, 0x080000, CRC(eea07bf3) SHA1(7860a2c0c592af000b56e59bd39d67b086fe3606) ) - ROM_LOAD16_BYTE("d29-07.ic50", 0x000001, 0x080000, CRC(db3c094d) SHA1(5b60f0fa1054bf93ce51d310376b1abdb3022541) ) - ROM_LOAD ("d29-08.ic51", 0x180000, 0x080000, CRC(d7562851) SHA1(91d86e75ba7a590ca298b932b4cf8fa9228f115e) ) - ROM_FILL ( 0x100000, 0x080000, 0x00 ) + ROM_REGION( 0x100000, "sprites_hi", 0 ) + ROM_LOAD ("d29-05.ic68", 0x000000, 0x100000, CRC(9b5f7a17) SHA1(89d9faedc7b55df6237f2c2ebb43de7de685cb66) ) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* sound CPU */ + ROM_REGION( 0x100000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d29-06.ic49", 0x000000, 0x080000, CRC(eea07bf3) SHA1(7860a2c0c592af000b56e59bd39d67b086fe3606) ) + ROM_LOAD32_WORD("d29-07.ic50", 0x000002, 0x080000, CRC(db3c094d) SHA1(5b60f0fa1054bf93ce51d310376b1abdb3022541) ) + + ROM_REGION( 0x080000, "tilemap_hi", 0 ) + ROM_LOAD ("d29-08.ic51", 0x000000, 0x080000, CRC(d7562851) SHA1(91d86e75ba7a590ca298b932b4cf8fa9228f115e) ) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* sound CPU */ ROM_LOAD16_BYTE("d29-18.ic5", 0x100000, 0x20000, CRC(d97780df) SHA1(d0f9d2fd7ce13f620bb44083bf012f67dda4b10b) ) ROM_LOAD16_BYTE("d29-19.ic6", 0x100001, 0x20000, CRC(b1ad365c) SHA1(1cd26d8feaaa06b50dfee32e9b7950b8ee92ac55) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d29-01.ic17", 0x000000, 0x200000, CRC(545ac4b3) SHA1(f89513fca8a03cab11160aa1f0a9c3adbc8bda08) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d29-02.ic18", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- @@ -709,29 +698,31 @@ ROM_START( arabianm ) ROM_END ROM_START( arabianmj ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d29-23.ic40", 0x000000, 0x40000, CRC(89a0c706) SHA1(d0df02be2b63566ec776bb13947f975062766a01) ) ROM_LOAD32_BYTE("d29-22.ic38", 0x000001, 0x40000, CRC(4afc22a4) SHA1(9579d134a1e4b0c86af9b41d136acfe6cc7f6624) ) ROM_LOAD32_BYTE("d29-21.ic36", 0x000002, 0x40000, CRC(ac32eb38) SHA1(19d8d965497e41a7a2f490a197322da7fd1fa40a) ) ROM_LOAD32_BYTE("d29-20.ic34", 0x000003, 0x40000, CRC(57b833c1) SHA1(69beff431e400db17ca1983a7a4d6684a1ea701c) ) - ROM_REGION(0x400000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x200000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d29-03.ic66", 0x000000, 0x100000, CRC(aeaff456) SHA1(e70d0089e69d33d213be8195c31891f38fbcb53a) ) ROM_LOAD16_BYTE("d29-04.ic67", 0x000001, 0x100000, CRC(01711cfe) SHA1(26da4cc9dcb8d38bdf8c93015f77e58ffc9d1ba9) ) - ROM_LOAD ("d29-05.ic68", 0x300000, 0x100000, CRC(9b5f7a17) SHA1(89d9faedc7b55df6237f2c2ebb43de7de685cb66) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) - ROM_REGION(0x200000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d29-06.ic49", 0x000000, 0x080000, CRC(eea07bf3) SHA1(7860a2c0c592af000b56e59bd39d67b086fe3606) ) - ROM_LOAD16_BYTE("d29-07.ic50", 0x000001, 0x080000, CRC(db3c094d) SHA1(5b60f0fa1054bf93ce51d310376b1abdb3022541) ) - ROM_LOAD ("d29-08.ic51", 0x180000, 0x080000, CRC(d7562851) SHA1(91d86e75ba7a590ca298b932b4cf8fa9228f115e) ) - ROM_FILL ( 0x100000, 0x080000, 0x00 ) + ROM_REGION( 0x100000, "sprites_hi", 0 ) + ROM_LOAD ("d29-05.ic68", 0x000000, 0x100000, CRC(9b5f7a17) SHA1(89d9faedc7b55df6237f2c2ebb43de7de685cb66) ) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* sound CPU */ + ROM_REGION( 0x100000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d29-06.ic49", 0x000000, 0x080000, CRC(eea07bf3) SHA1(7860a2c0c592af000b56e59bd39d67b086fe3606) ) + ROM_LOAD32_WORD("d29-07.ic50", 0x000002, 0x080000, CRC(db3c094d) SHA1(5b60f0fa1054bf93ce51d310376b1abdb3022541) ) + + ROM_REGION( 0x080000, "tilemap_hi", 0 ) + ROM_LOAD ("d29-08.ic51", 0x000000, 0x080000, CRC(d7562851) SHA1(91d86e75ba7a590ca298b932b4cf8fa9228f115e) ) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* sound CPU */ ROM_LOAD16_BYTE("d29-18.ic5", 0x100000, 0x20000, CRC(d97780df) SHA1(d0f9d2fd7ce13f620bb44083bf012f67dda4b10b) ) ROM_LOAD16_BYTE("d29-19.ic6", 0x100001, 0x20000, CRC(b1ad365c) SHA1(1cd26d8feaaa06b50dfee32e9b7950b8ee92ac55) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d29-01.ic17", 0x000000, 0x200000, CRC(545ac4b3) SHA1(f89513fca8a03cab11160aa1f0a9c3adbc8bda08) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d29-02.ic18", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- @@ -749,29 +740,31 @@ ROM_START( arabianmj ) ROM_END ROM_START( arabianmu ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d29-23.ic40", 0x000000, 0x40000, CRC(89a0c706) SHA1(d0df02be2b63566ec776bb13947f975062766a01) ) ROM_LOAD32_BYTE("d29-22.ic38", 0x000001, 0x40000, CRC(4afc22a4) SHA1(9579d134a1e4b0c86af9b41d136acfe6cc7f6624) ) ROM_LOAD32_BYTE("d29-21.ic36", 0x000002, 0x40000, CRC(ac32eb38) SHA1(19d8d965497e41a7a2f490a197322da7fd1fa40a) ) ROM_LOAD32_BYTE("d29-24.ic34", 0x000003, 0x40000, CRC(ceb1627b) SHA1(c705ed956fa80ad77c53e8e2b9d27020255578bd) ) - ROM_REGION(0x400000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x200000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d29-03.ic66", 0x000000, 0x100000, CRC(aeaff456) SHA1(e70d0089e69d33d213be8195c31891f38fbcb53a) ) ROM_LOAD16_BYTE("d29-04.ic67", 0x000001, 0x100000, CRC(01711cfe) SHA1(26da4cc9dcb8d38bdf8c93015f77e58ffc9d1ba9) ) - ROM_LOAD ("d29-05.ic68", 0x300000, 0x100000, CRC(9b5f7a17) SHA1(89d9faedc7b55df6237f2c2ebb43de7de685cb66) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) - ROM_REGION(0x200000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d29-06.ic49", 0x000000, 0x080000, CRC(eea07bf3) SHA1(7860a2c0c592af000b56e59bd39d67b086fe3606) ) - ROM_LOAD16_BYTE("d29-07.ic50", 0x000001, 0x080000, CRC(db3c094d) SHA1(5b60f0fa1054bf93ce51d310376b1abdb3022541) ) - ROM_LOAD ("d29-08.ic51", 0x180000, 0x080000, CRC(d7562851) SHA1(91d86e75ba7a590ca298b932b4cf8fa9228f115e) ) - ROM_FILL ( 0x100000, 0x080000, 0x00 ) + ROM_REGION( 0x100000, "sprites_hi", 0 ) + ROM_LOAD ("d29-05.ic68", 0x000000, 0x100000, CRC(9b5f7a17) SHA1(89d9faedc7b55df6237f2c2ebb43de7de685cb66) ) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* sound CPU */ + ROM_REGION( 0x100000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d29-06.ic49", 0x000000, 0x080000, CRC(eea07bf3) SHA1(7860a2c0c592af000b56e59bd39d67b086fe3606) ) + ROM_LOAD32_WORD("d29-07.ic50", 0x000002, 0x080000, CRC(db3c094d) SHA1(5b60f0fa1054bf93ce51d310376b1abdb3022541) ) + + ROM_REGION( 0x080000, "tilemap_hi", 0 ) + ROM_LOAD ("d29-08.ic51", 0x000000, 0x080000, CRC(d7562851) SHA1(91d86e75ba7a590ca298b932b4cf8fa9228f115e) ) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* sound CPU */ ROM_LOAD16_BYTE("d29-18.ic5", 0x100000, 0x20000, CRC(d97780df) SHA1(d0f9d2fd7ce13f620bb44083bf012f67dda4b10b) ) ROM_LOAD16_BYTE("d29-19.ic6", 0x100001, 0x20000, CRC(b1ad365c) SHA1(1cd26d8feaaa06b50dfee32e9b7950b8ee92ac55) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d29-01.ic17", 0x000000, 0x200000, CRC(545ac4b3) SHA1(f89513fca8a03cab11160aa1f0a9c3adbc8bda08) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d29-02.ic18", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- @@ -789,310 +782,330 @@ ROM_START( arabianmu ) ROM_END ROM_START( ridingf ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d34-12.40", 0x000000, 0x40000, CRC(e67e69d4) SHA1(9960629a7576f6a1d8a0e17c1bfc202ceee9e824) ) ROM_LOAD32_BYTE("d34-11.38", 0x000001, 0x40000, CRC(7d240a88) SHA1(3410d3f66e868f2696dbd95adbbd393596d34351) ) ROM_LOAD32_BYTE("d34-10.36", 0x000002, 0x40000, CRC(8aa3f4ac) SHA1(ba3c1274dcaccf4ba97ff224cb453eb1ead510ed) ) ROM_LOAD32_BYTE("d34_14.34", 0x000003, 0x40000, CRC(e000198e) SHA1(3c9fdd40ade7b02021d23b7ce63a28d80bb6e8e0) ) - ROM_REGION(0x800000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x400000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d34-01.66", 0x000000, 0x200000, CRC(7974e6aa) SHA1(f3f697d0e2f52011046aa2db2df25a4b55a631d5) ) ROM_LOAD16_BYTE("d34-02.67", 0x000001, 0x200000, CRC(f4422370) SHA1(27ba051e0dc27b39652ff1d940a2dd29965c6528) ) - ROM_FILL ( 0x400000, 0x400000, 0x00 ) - ROM_REGION(0x200000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d34-05.49", 0x000000, 0x080000, CRC(72e3ee4b) SHA1(2b69487338c18ced7a2ac4f280e8e22aa7209eb3) ) - ROM_LOAD16_BYTE("d34-06.50", 0x000001, 0x080000, CRC(edc9b9f3) SHA1(c57bec1c8882d95388c3fae7cb5a321bdb202737) ) - ROM_FILL ( 0x100000, 0x100000, 0x00 ) + EMPTY_SPRITE_HIDATA(0x200000) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* sound CPU */ + ROM_REGION( 0x100000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d34-05.49", 0x000000, 0x080000, CRC(72e3ee4b) SHA1(2b69487338c18ced7a2ac4f280e8e22aa7209eb3) ) + ROM_LOAD32_WORD("d34-06.50", 0x000002, 0x080000, CRC(edc9b9f3) SHA1(c57bec1c8882d95388c3fae7cb5a321bdb202737) ) + + EMPTY_TILEMAP_HIDATA(0x080000) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* sound CPU */ ROM_LOAD16_BYTE("d34-07.5", 0x100000, 0x20000, CRC(67239e2b) SHA1(8e0268fab53d26cde5c1928326c4787533dc6ffe) ) ROM_LOAD16_BYTE("d34-08.6", 0x100001, 0x20000, CRC(2cf20323) SHA1(b2bbac3714ecfd75506ae000c7eec603dfe3e13d) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d34-03.17", 0x000000, 0x200000, CRC(e534ef74) SHA1(532d00e927d3704e7557abd59e35de8b7661c8fa) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d34-04.18", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- ROM_END ROM_START( ridingfj ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d34-12.40", 0x000000, 0x40000, CRC(e67e69d4) SHA1(9960629a7576f6a1d8a0e17c1bfc202ceee9e824) ) ROM_LOAD32_BYTE("d34-11.38", 0x000001, 0x40000, CRC(7d240a88) SHA1(3410d3f66e868f2696dbd95adbbd393596d34351) ) ROM_LOAD32_BYTE("d34-10.36", 0x000002, 0x40000, CRC(8aa3f4ac) SHA1(ba3c1274dcaccf4ba97ff224cb453eb1ead510ed) ) ROM_LOAD32_BYTE("d34-09.34", 0x000003, 0x40000, CRC(0e0e78a2) SHA1(4c8d0a5d6b8c77be34fd7b9c4a2df4022e74443a) ) - ROM_REGION(0x800000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x400000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d34-01.66", 0x000000, 0x200000, CRC(7974e6aa) SHA1(f3f697d0e2f52011046aa2db2df25a4b55a631d5) ) ROM_LOAD16_BYTE("d34-02.67", 0x000001, 0x200000, CRC(f4422370) SHA1(27ba051e0dc27b39652ff1d940a2dd29965c6528) ) - ROM_FILL ( 0x400000, 0x400000, 0x00 ) - ROM_REGION(0x200000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d34-05.49", 0x000000, 0x080000, CRC(72e3ee4b) SHA1(2b69487338c18ced7a2ac4f280e8e22aa7209eb3) ) - ROM_LOAD16_BYTE("d34-06.50", 0x000001, 0x080000, CRC(edc9b9f3) SHA1(c57bec1c8882d95388c3fae7cb5a321bdb202737) ) - ROM_FILL ( 0x100000, 0x100000, 0x00 ) + EMPTY_SPRITE_HIDATA(0x200000) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* sound CPU */ + ROM_REGION( 0x100000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d34-05.49", 0x000000, 0x080000, CRC(72e3ee4b) SHA1(2b69487338c18ced7a2ac4f280e8e22aa7209eb3) ) + ROM_LOAD32_WORD("d34-06.50", 0x000002, 0x080000, CRC(edc9b9f3) SHA1(c57bec1c8882d95388c3fae7cb5a321bdb202737) ) + + EMPTY_TILEMAP_HIDATA(0x080000) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* sound CPU */ ROM_LOAD16_BYTE("d34-07.5", 0x100000, 0x20000, CRC(67239e2b) SHA1(8e0268fab53d26cde5c1928326c4787533dc6ffe) ) ROM_LOAD16_BYTE("d34-08.6", 0x100001, 0x20000, CRC(2cf20323) SHA1(b2bbac3714ecfd75506ae000c7eec603dfe3e13d) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d34-03.17", 0x000000, 0x200000, CRC(e534ef74) SHA1(532d00e927d3704e7557abd59e35de8b7661c8fa) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d34-04.18", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- ROM_END ROM_START( ridingfu ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d34-12.40", 0x000000, 0x40000, CRC(e67e69d4) SHA1(9960629a7576f6a1d8a0e17c1bfc202ceee9e824) ) ROM_LOAD32_BYTE("d34-11.38", 0x000001, 0x40000, CRC(7d240a88) SHA1(3410d3f66e868f2696dbd95adbbd393596d34351) ) ROM_LOAD32_BYTE("d34-10.36", 0x000002, 0x40000, CRC(8aa3f4ac) SHA1(ba3c1274dcaccf4ba97ff224cb453eb1ead510ed) ) ROM_LOAD32_BYTE("d34_13.34", 0x000003, 0x40000, CRC(97072918) SHA1(7ae96fb7a07b7192c39ec496e1193c1cbfbbc770) ) - ROM_REGION(0x800000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x400000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d34-01.66", 0x000000, 0x200000, CRC(7974e6aa) SHA1(f3f697d0e2f52011046aa2db2df25a4b55a631d5) ) ROM_LOAD16_BYTE("d34-02.67", 0x000001, 0x200000, CRC(f4422370) SHA1(27ba051e0dc27b39652ff1d940a2dd29965c6528) ) - ROM_FILL ( 0x400000, 0x400000, 0x00 ) - ROM_REGION(0x200000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d34-05.49", 0x000000, 0x080000, CRC(72e3ee4b) SHA1(2b69487338c18ced7a2ac4f280e8e22aa7209eb3) ) - ROM_LOAD16_BYTE("d34-06.50", 0x000001, 0x080000, CRC(edc9b9f3) SHA1(c57bec1c8882d95388c3fae7cb5a321bdb202737) ) - ROM_FILL ( 0x100000, 0x100000, 0x00 ) + EMPTY_SPRITE_HIDATA(0x200000) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* sound CPU */ + ROM_REGION( 0x100000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d34-05.49", 0x000000, 0x080000, CRC(72e3ee4b) SHA1(2b69487338c18ced7a2ac4f280e8e22aa7209eb3) ) + ROM_LOAD32_WORD("d34-06.50", 0x000002, 0x080000, CRC(edc9b9f3) SHA1(c57bec1c8882d95388c3fae7cb5a321bdb202737) ) + + EMPTY_TILEMAP_HIDATA(0x080000) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* sound CPU */ ROM_LOAD16_BYTE("d34-07.5", 0x100000, 0x20000, CRC(67239e2b) SHA1(8e0268fab53d26cde5c1928326c4787533dc6ffe) ) ROM_LOAD16_BYTE("d34-08.6", 0x100001, 0x20000, CRC(2cf20323) SHA1(b2bbac3714ecfd75506ae000c7eec603dfe3e13d) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d34-03.17", 0x000000, 0x200000, CRC(e534ef74) SHA1(532d00e927d3704e7557abd59e35de8b7661c8fa) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d34-04.18", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- ROM_END ROM_START( gseeker ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d40_12.rom", 0x000000, 0x40000, CRC(884055fb) SHA1(a91c3dcd635a3e22fbec94c9fc46d3c29fde5e71) ) ROM_LOAD32_BYTE("d40_11.rom", 0x000001, 0x40000, CRC(85e701d2) SHA1(da0bc34a2c64d2db2fe143ad5a77bf667de5b015) ) ROM_LOAD32_BYTE("d40_10.rom", 0x000002, 0x40000, CRC(1e659ac5) SHA1(cd435d361c4353b361ef975f208d81369d5d079f) ) ROM_LOAD32_BYTE("d40_14.rom", 0x000003, 0x40000, CRC(d9a76bd9) SHA1(8edaf114c1342b33fd518320a181743d1dd324c1) ) - ROM_REGION(0x400000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x200000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d40_03.rom", 0x000000, 0x100000, CRC(bcd70efc) SHA1(c65f934022d84e29cfd396cf70b6c1afdf90500b) ) ROM_LOAD16_BYTE("d40_04.rom", 0x100001, 0x080000, CRC(cd2ac666) SHA1(abf09979f1fe8575323b95b95688628ce4fc2350) ) ROM_CONTINUE(0,0x80000) ROM_LOAD16_BYTE("d40_15.rom", 0x000000, 0x080000, CRC(50555125) SHA1(587cdfb2e027c1d96ecc46d2612956deca5fd36f) ) ROM_LOAD16_BYTE("d40_16.rom", 0x000001, 0x080000, CRC(3f9bbe1e) SHA1(6d9b2d2d893257ad096c276eff4077f60a81921f) ) /* Taito manufactured mask roms 3 + 4 wrong, and later added 15 + 16 as a patch */ - ROM_FILL ( 0x200000, 0x200000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d40_05.rom", 0x000000, 0x100000, CRC(be6eec8f) SHA1(725e5e09f6ee60bd4c38fa223c4dea202c56f75f) ) - ROM_LOAD16_BYTE("d40_06.rom", 0x000001, 0x100000, CRC(a822abe4) SHA1(1a0dd9dcb8e24daab6eb1661307ef0e10f7e4d4e) ) - ROM_FILL ( 0x200000, 0x200000, 0x00 ) + EMPTY_SPRITE_HIDATA(0x100000) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d40_05.rom", 0x000000, 0x100000, CRC(be6eec8f) SHA1(725e5e09f6ee60bd4c38fa223c4dea202c56f75f) ) + ROM_LOAD32_WORD("d40_06.rom", 0x000002, 0x100000, CRC(a822abe4) SHA1(1a0dd9dcb8e24daab6eb1661307ef0e10f7e4d4e) ) + + EMPTY_TILEMAP_HIDATA(0x100000) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* sound CPU */ ROM_LOAD16_BYTE("d40_07.rom", 0x100000, 0x20000, CRC(7e9b26c2) SHA1(d88ad39a9d70b4a5bd3f83e0d4d0725f659f1d2a) ) ROM_LOAD16_BYTE("d40_08.rom", 0x100001, 0x20000, CRC(9c926a28) SHA1(9d9ee75eb895edc381c3ab4df5af941f84cd2073) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d40_01.rom", 0x000000, 0x200000, CRC(ee312e95) SHA1(885553950c2b2195d664639bf7e0d1ffa3e8346a) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d40_02.rom", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- ROM_END ROM_START( gseekerj ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d40_12.rom", 0x000000, 0x40000, CRC(884055fb) SHA1(a91c3dcd635a3e22fbec94c9fc46d3c29fde5e71) ) ROM_LOAD32_BYTE("d40_11.rom", 0x000001, 0x40000, CRC(85e701d2) SHA1(da0bc34a2c64d2db2fe143ad5a77bf667de5b015) ) ROM_LOAD32_BYTE("d40_10.rom", 0x000002, 0x40000, CRC(1e659ac5) SHA1(cd435d361c4353b361ef975f208d81369d5d079f) ) ROM_LOAD32_BYTE("d40-09.34", 0x000003, 0x40000, CRC(37a90af5) SHA1(1f3401148375c9ca638ca6db6098ea4acf7d63a6) ) - ROM_REGION(0x400000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x200000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d40_03.rom", 0x000000, 0x100000, CRC(bcd70efc) SHA1(c65f934022d84e29cfd396cf70b6c1afdf90500b) ) ROM_LOAD16_BYTE("d40_04.rom", 0x100001, 0x080000, CRC(cd2ac666) SHA1(abf09979f1fe8575323b95b95688628ce4fc2350) ) ROM_CONTINUE(0,0x80000) ROM_LOAD16_BYTE("d40_15.rom", 0x000000, 0x080000, CRC(50555125) SHA1(587cdfb2e027c1d96ecc46d2612956deca5fd36f) ) ROM_LOAD16_BYTE("d40_16.rom", 0x000001, 0x080000, CRC(3f9bbe1e) SHA1(6d9b2d2d893257ad096c276eff4077f60a81921f) ) /* Taito manufactured mask roms 3 + 4 wrong, and later added 15 + 16 as a patch */ - ROM_FILL ( 0x200000, 0x200000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d40_05.rom", 0x000000, 0x100000, CRC(be6eec8f) SHA1(725e5e09f6ee60bd4c38fa223c4dea202c56f75f) ) - ROM_LOAD16_BYTE("d40_06.rom", 0x000001, 0x100000, CRC(a822abe4) SHA1(1a0dd9dcb8e24daab6eb1661307ef0e10f7e4d4e) ) - ROM_FILL ( 0x200000, 0x200000, 0x00 ) + EMPTY_SPRITE_HIDATA(0x100000) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d40_05.rom", 0x000000, 0x100000, CRC(be6eec8f) SHA1(725e5e09f6ee60bd4c38fa223c4dea202c56f75f) ) + ROM_LOAD32_WORD("d40_06.rom", 0x000002, 0x100000, CRC(a822abe4) SHA1(1a0dd9dcb8e24daab6eb1661307ef0e10f7e4d4e) ) + + EMPTY_TILEMAP_HIDATA(0x100000) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* sound CPU */ ROM_LOAD16_BYTE("d40_07.rom", 0x100000, 0x20000, CRC(7e9b26c2) SHA1(d88ad39a9d70b4a5bd3f83e0d4d0725f659f1d2a) ) ROM_LOAD16_BYTE("d40_08.rom", 0x100001, 0x20000, CRC(9c926a28) SHA1(9d9ee75eb895edc381c3ab4df5af941f84cd2073) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d40_01.rom", 0x000000, 0x200000, CRC(ee312e95) SHA1(885553950c2b2195d664639bf7e0d1ffa3e8346a) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d40_02.rom", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- ROM_END ROM_START( gseekeru ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d40_12.rom", 0x000000, 0x40000, CRC(884055fb) SHA1(a91c3dcd635a3e22fbec94c9fc46d3c29fde5e71) ) ROM_LOAD32_BYTE("d40_11.rom", 0x000001, 0x40000, CRC(85e701d2) SHA1(da0bc34a2c64d2db2fe143ad5a77bf667de5b015) ) ROM_LOAD32_BYTE("d40_10.rom", 0x000002, 0x40000, CRC(1e659ac5) SHA1(cd435d361c4353b361ef975f208d81369d5d079f) ) ROM_LOAD32_BYTE("d40-13.bin", 0x000003, 0x40000, CRC(aea05b4f) SHA1(4be054ebec49d694a7a3ee9bc66c22c46126ea4f) ) - ROM_REGION(0x400000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x200000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d40_03.rom", 0x000000, 0x100000, CRC(bcd70efc) SHA1(c65f934022d84e29cfd396cf70b6c1afdf90500b) ) ROM_LOAD16_BYTE("d40_04.rom", 0x100001, 0x080000, CRC(cd2ac666) SHA1(abf09979f1fe8575323b95b95688628ce4fc2350) ) ROM_CONTINUE(0,0x80000) ROM_LOAD16_BYTE("d40_15.rom", 0x000000, 0x080000, CRC(50555125) SHA1(587cdfb2e027c1d96ecc46d2612956deca5fd36f) ) ROM_LOAD16_BYTE("d40_16.rom", 0x000001, 0x080000, CRC(3f9bbe1e) SHA1(6d9b2d2d893257ad096c276eff4077f60a81921f) ) /* Taito manufactured mask roms 3 + 4 wrong, and later added 15 + 16 as a patch */ - ROM_FILL ( 0x200000, 0x200000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d40_05.rom", 0x000000, 0x100000, CRC(be6eec8f) SHA1(725e5e09f6ee60bd4c38fa223c4dea202c56f75f) ) - ROM_LOAD16_BYTE("d40_06.rom", 0x000001, 0x100000, CRC(a822abe4) SHA1(1a0dd9dcb8e24daab6eb1661307ef0e10f7e4d4e) ) - ROM_FILL ( 0x200000, 0x200000, 0x00 ) + EMPTY_SPRITE_HIDATA(0x100000) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d40_05.rom", 0x000000, 0x100000, CRC(be6eec8f) SHA1(725e5e09f6ee60bd4c38fa223c4dea202c56f75f) ) + ROM_LOAD32_WORD("d40_06.rom", 0x000002, 0x100000, CRC(a822abe4) SHA1(1a0dd9dcb8e24daab6eb1661307ef0e10f7e4d4e) ) + + EMPTY_TILEMAP_HIDATA(0x100000) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* sound CPU */ ROM_LOAD16_BYTE("d40_07.rom", 0x100000, 0x20000, CRC(7e9b26c2) SHA1(d88ad39a9d70b4a5bd3f83e0d4d0725f659f1d2a) ) ROM_LOAD16_BYTE("d40_08.rom", 0x100001, 0x20000, CRC(9c926a28) SHA1(9d9ee75eb895edc381c3ab4df5af941f84cd2073) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d40_01.rom", 0x000000, 0x200000, CRC(ee312e95) SHA1(885553950c2b2195d664639bf7e0d1ffa3e8346a) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d40_02.rom", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- ROM_END ROM_START( commandw ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("cw_mpr3.bin", 0x000000, 0x40000, CRC(636944fc) SHA1(47deffed68ac179f27bfdb21ed62d6555a4b8988) ) ROM_LOAD32_BYTE("cw_mpr2.bin", 0x000001, 0x40000, CRC(1151a42b) SHA1(e938913ecd3211a8fb4041ec5a5694cd9df9be69) ) ROM_LOAD32_BYTE("cw_mpr1.bin", 0x000002, 0x40000, CRC(93669389) SHA1(11336a15900c4f419f3af5c423fbc502f4db616b) ) ROM_LOAD32_BYTE("cw_mpr0.bin", 0x000003, 0x40000, CRC(0468df52) SHA1(0da923aa779b541e700c5249272e9c59ab59e863) ) - ROM_REGION(0x1000000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x800000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("cw_objl0.bin", 0x000000, 0x200000, CRC(9822102e) SHA1(c4e80ab4d54c39676ee6e557a03828250077765b) ) ROM_LOAD16_BYTE("cw_objm0.bin", 0x000001, 0x200000, CRC(f7687684) SHA1(0bed6362dee96083e2e8b6448c9f7bfa5166bfb7) ) - ROM_LOAD16_BYTE("cw_objl1.bin", 0x400000, 0x200000, CRC(ca3ad7f6) SHA1(849fbb89f0b132c83db5b7d699078da3cc10baf6) ) + ROM_LOAD16_BYTE("cw_objl1.bin", 0x400000, 0x200000, CRC(ca3ad7f6) SHA1(849fbb89f0b132c83db5b7d699078da3cc10baf6) ) ROM_LOAD16_BYTE("cw_objm1.bin", 0x400001, 0x200000, CRC(504b1bf5) SHA1(7b8ff7834907a9cdab5416bf713487bf71b9070e) ) - ROM_LOAD ("cw_objh0.bin", 0xc00000, 0x200000, CRC(83d7e0ae) SHA1(774a07d0cadc2c8f5ec155270bf927e4462654e2) ) - ROM_LOAD ("cw_objh1.bin", 0xe00000, 0x200000, CRC(324f5832) SHA1(ff91243c5d09c4c46904640fe278a7485db70577) ) - ROM_FILL ( 0x800000, 0x400000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("cw_scr_l.bin", 0x000000, 0x100000, CRC(4d202323) SHA1(0150bcba6d2bf2c3cde88bb519f57f3b58314244) ) - ROM_LOAD16_BYTE("cw_scr_m.bin", 0x000001, 0x100000, CRC(537b1c7d) SHA1(bc61aa61891366cbea4b8ecb820d93e28d01f8d2) ) - ROM_LOAD ("cw_scr_h.bin", 0x300000, 0x100000, CRC(001f85dd) SHA1(2532377c0b54bc964ea4e74911ff62fea2d53975) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + ROM_REGION( 0x400000, "sprites_hi", 0 ) + ROM_LOAD ("cw_objh0.bin", 0x000000, 0x200000, CRC(83d7e0ae) SHA1(774a07d0cadc2c8f5ec155270bf927e4462654e2) ) + ROM_LOAD ("cw_objh1.bin", 0x200000, 0x200000, CRC(324f5832) SHA1(ff91243c5d09c4c46904640fe278a7485db70577) ) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("cw_scr_l.bin", 0x000000, 0x100000, CRC(4d202323) SHA1(0150bcba6d2bf2c3cde88bb519f57f3b58314244) ) + ROM_LOAD32_WORD("cw_scr_m.bin", 0x000002, 0x100000, CRC(537b1c7d) SHA1(bc61aa61891366cbea4b8ecb820d93e28d01f8d2) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("cw_scr_h.bin", 0x000000, 0x100000, CRC(001f85dd) SHA1(2532377c0b54bc964ea4e74911ff62fea2d53975) ) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* sound CPU */ ROM_LOAD16_BYTE("cw_spr1.bin", 0x100000, 0x20000, CRC(c8f81c25) SHA1(1c914053826587cc2d5d2c0220a3e29a641fe6f9) ) ROM_LOAD16_BYTE("cw_spr0.bin", 0x100001, 0x20000, CRC(2aaa9dfb) SHA1(6d4c36ff54a84035c0ddf40e4f3eafd2adc15a5e) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("cw_pcm_0.bin", 0x000000, 0x200000, CRC(a1e26629) SHA1(0c5899a767f66f67a5d59b8d287d74b54f8c3727) ) // C8 C9 CA CB ROM_LOAD16_BYTE("cw_pcm_1.bin", 0x400000, 0x200000, CRC(39fc6cf4) SHA1(d43ef294af62765bfec089fac1d67ad81e1b06da) ) // CC -- -std- ROM_END ROM_START( cupfinal ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d49-13.20", 0x000000, 0x20000, CRC(ccee5e73) SHA1(5273e3b9bc6fc4fa0c63d9c62aa6b638e9780c24) ) ROM_LOAD32_BYTE("d49-14.19", 0x000001, 0x20000, CRC(2323bf2e) SHA1(e43f9eac6887e39d5c0f39264aa914a5d5f84cca) ) ROM_LOAD32_BYTE("d49-16.18", 0x000002, 0x20000, CRC(8e73f739) SHA1(620a4d52abc00908cd1393babdc600b929019a51) ) ROM_LOAD32_BYTE("d49-20.17", 0x000003, 0x20000, CRC(1e9c392c) SHA1(4ed9390b84c23809215a42c930ab0451531cfef1) ) - ROM_REGION(0xc00000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x600000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d49-01.12", 0x000000, 0x200000, CRC(1dc89f1c) SHA1(9597b1d8c9b447080ca9401aee83bb4a64bb8332) ) ROM_LOAD16_BYTE("d49-02.8", 0x000001, 0x200000, CRC(1e4c374f) SHA1(512edc6a934578d0e7371410a041150d3b13aaad) ) ROM_LOAD16_BYTE("d49-06.11", 0x400000, 0x100000, CRC(71ef4ee1) SHA1(1d7729dbc77f7201ff574e8aef65a55bd81c25a7) ) ROM_LOAD16_BYTE("d49-07.7", 0x400001, 0x100000, CRC(e5655b8f) SHA1(2c21745370bfe9dbf0e95f7ce42ed34a162bff64) ) - ROM_LOAD ("d49-03.4", 0x900000, 0x200000, CRC(cf9a8727) SHA1(f21787fdcdd8be2009c2d481a9b2d7fc03ce782e) ) - ROM_LOAD ("d49-08.3", 0xb00000, 0x100000, CRC(7d3c6536) SHA1(289b4bf79ebd9cbdf64ab956784d226e6d546654) ) - ROM_FILL ( 0x600000, 0x300000, 0x00 ) - ROM_REGION(0x200000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d49-09.47", 0x000000, 0x080000, CRC(257ede01) SHA1(c36397d95706c5e68a7738c84829a51c5e8f5ef7) ) - ROM_LOAD16_BYTE("d49-10.45", 0x000001, 0x080000, CRC(f587b787) SHA1(22db4904c134756ddd0f753f197419d27e60a827) ) - ROM_LOAD ("d49-11.43", 0x180000, 0x080000, CRC(11318b26) SHA1(a7153f9f406d52189f59cbe58d65f88f4e2e6fcc) ) - ROM_FILL ( 0x100000, 0x080000, 0x00 ) + ROM_REGION( 0x300000, "sprites_hi", 0 ) + ROM_LOAD ("d49-03.4", 0x000000, 0x200000, CRC(cf9a8727) SHA1(f21787fdcdd8be2009c2d481a9b2d7fc03ce782e) ) + ROM_LOAD ("d49-08.3", 0x200000, 0x100000, CRC(7d3c6536) SHA1(289b4bf79ebd9cbdf64ab956784d226e6d546654) ) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x100000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d49-09.47", 0x000000, 0x080000, CRC(257ede01) SHA1(c36397d95706c5e68a7738c84829a51c5e8f5ef7) ) + ROM_LOAD32_WORD("d49-10.45", 0x000002, 0x080000, CRC(f587b787) SHA1(22db4904c134756ddd0f753f197419d27e60a827) ) + + ROM_REGION( 0x080000, "tilemap_hi", 0 ) + ROM_LOAD ("d49-11.43", 0x000000, 0x080000, CRC(11318b26) SHA1(a7153f9f406d52189f59cbe58d65f88f4e2e6fcc) ) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("d49-17.32", 0x100000, 0x20000, CRC(f2058eba) SHA1(7faaa94fadf02b6304287b61fb9613f9f4169fef) ) ROM_LOAD16_BYTE("d49-18.33", 0x100001, 0x20000, CRC(a0fdd270) SHA1(9b5a2c8d35ea3bc6842e3c328447c3bf641b9237) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d49-04.38", 0x000000, 0x200000, CRC(44b365a9) SHA1(14c4a6b193a0069360406c74c500ba24f2a55b62) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d49-05.41", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- ROM_END ROM_START( hthero93 ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d49-13.20", 0x000000, 0x20000, CRC(ccee5e73) SHA1(5273e3b9bc6fc4fa0c63d9c62aa6b638e9780c24) ) ROM_LOAD32_BYTE("d49-14.19", 0x000001, 0x20000, CRC(2323bf2e) SHA1(e43f9eac6887e39d5c0f39264aa914a5d5f84cca) ) ROM_LOAD32_BYTE("d49-16.18", 0x000002, 0x20000, CRC(8e73f739) SHA1(620a4d52abc00908cd1393babdc600b929019a51) ) ROM_LOAD32_BYTE("d49-19.17", 0x000003, 0x20000, CRC(f0925800) SHA1(e8d91b216a0409080b77cc1e832b7d15c66a5eef) ) /* Need to verify chip ID#: D49-19 is US and follows correct numbering scheme, should be D49-15 */ - ROM_REGION(0xc00000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x600000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d49-01.12", 0x000000, 0x200000, CRC(1dc89f1c) SHA1(9597b1d8c9b447080ca9401aee83bb4a64bb8332) ) ROM_LOAD16_BYTE("d49-02.8", 0x000001, 0x200000, CRC(1e4c374f) SHA1(512edc6a934578d0e7371410a041150d3b13aaad) ) ROM_LOAD16_BYTE("d49-06.11", 0x400000, 0x100000, CRC(71ef4ee1) SHA1(1d7729dbc77f7201ff574e8aef65a55bd81c25a7) ) ROM_LOAD16_BYTE("d49-07.7", 0x400001, 0x100000, CRC(e5655b8f) SHA1(2c21745370bfe9dbf0e95f7ce42ed34a162bff64) ) - ROM_LOAD ("d49-03.4", 0x900000, 0x200000, CRC(cf9a8727) SHA1(f21787fdcdd8be2009c2d481a9b2d7fc03ce782e) ) - ROM_LOAD ("d49-08.3", 0xb00000, 0x100000, CRC(7d3c6536) SHA1(289b4bf79ebd9cbdf64ab956784d226e6d546654) ) - ROM_FILL ( 0x600000, 0x300000, 0x00 ) - ROM_REGION(0x200000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d49-09.47", 0x000000, 0x080000, CRC(257ede01) SHA1(c36397d95706c5e68a7738c84829a51c5e8f5ef7) ) - ROM_LOAD16_BYTE("d49-10.45", 0x000001, 0x080000, CRC(f587b787) SHA1(22db4904c134756ddd0f753f197419d27e60a827) ) - ROM_LOAD ("d49-11.43", 0x180000, 0x080000, CRC(11318b26) SHA1(a7153f9f406d52189f59cbe58d65f88f4e2e6fcc) ) - ROM_FILL ( 0x100000, 0x080000, 0x00 ) + ROM_REGION( 0x300000, "sprites_hi", 0 ) + ROM_LOAD ("d49-03.4", 0x000000, 0x200000, CRC(cf9a8727) SHA1(f21787fdcdd8be2009c2d481a9b2d7fc03ce782e) ) + ROM_LOAD ("d49-08.3", 0x200000, 0x100000, CRC(7d3c6536) SHA1(289b4bf79ebd9cbdf64ab956784d226e6d546654) ) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x100000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d49-09.47", 0x000000, 0x080000, CRC(257ede01) SHA1(c36397d95706c5e68a7738c84829a51c5e8f5ef7) ) + ROM_LOAD32_WORD("d49-10.45", 0x000002, 0x080000, CRC(f587b787) SHA1(22db4904c134756ddd0f753f197419d27e60a827) ) + + ROM_REGION( 0x080000, "tilemap_hi", 0 ) + ROM_LOAD ("d49-11.43", 0x000000, 0x080000, CRC(11318b26) SHA1(a7153f9f406d52189f59cbe58d65f88f4e2e6fcc) ) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("d49-17.32", 0x100000, 0x20000, CRC(f2058eba) SHA1(7faaa94fadf02b6304287b61fb9613f9f4169fef) ) ROM_LOAD16_BYTE("d49-18.33", 0x100001, 0x20000, CRC(a0fdd270) SHA1(9b5a2c8d35ea3bc6842e3c328447c3bf641b9237) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d49-04.38", 0x000000, 0x200000, CRC(44b365a9) SHA1(14c4a6b193a0069360406c74c500ba24f2a55b62) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d49-05.41", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- ROM_END ROM_START( hthero93u ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d49-13.24", 0x000000, 0x20000, CRC(ccee5e73) SHA1(5273e3b9bc6fc4fa0c63d9c62aa6b638e9780c24) ) /* Dumped from the single board PCB, not a stardard F3 cart */ ROM_LOAD32_BYTE("d49-14.26", 0x000001, 0x20000, CRC(2323bf2e) SHA1(e43f9eac6887e39d5c0f39264aa914a5d5f84cca) ) ROM_LOAD32_BYTE("d49-16.37", 0x000002, 0x20000, CRC(8e73f739) SHA1(620a4d52abc00908cd1393babdc600b929019a51) ) ROM_LOAD32_BYTE("d49-19.35", 0x000003, 0x20000, CRC(699b09ba) SHA1(b8bf24571cdc0c4b295e0f3d2fdaa1e28ff111e3) ) - ROM_REGION(0xc00000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x600000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d49-01.12", 0x000000, 0x200000, CRC(1dc89f1c) SHA1(9597b1d8c9b447080ca9401aee83bb4a64bb8332) ) ROM_LOAD16_BYTE("d49-02.8", 0x000001, 0x200000, CRC(1e4c374f) SHA1(512edc6a934578d0e7371410a041150d3b13aaad) ) ROM_LOAD16_BYTE("d49-06.11", 0x400000, 0x100000, CRC(71ef4ee1) SHA1(1d7729dbc77f7201ff574e8aef65a55bd81c25a7) ) ROM_LOAD16_BYTE("d49-07.7", 0x400001, 0x100000, CRC(e5655b8f) SHA1(2c21745370bfe9dbf0e95f7ce42ed34a162bff64) ) - ROM_LOAD ("d49-03.4", 0x900000, 0x200000, CRC(cf9a8727) SHA1(f21787fdcdd8be2009c2d481a9b2d7fc03ce782e) ) - ROM_LOAD ("d49-08.3", 0xb00000, 0x100000, CRC(7d3c6536) SHA1(289b4bf79ebd9cbdf64ab956784d226e6d546654) ) - ROM_FILL ( 0x600000, 0x300000, 0x00 ) - ROM_REGION(0x200000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d49-09.47", 0x000000, 0x080000, CRC(257ede01) SHA1(c36397d95706c5e68a7738c84829a51c5e8f5ef7) ) - ROM_LOAD16_BYTE("d49-10.45", 0x000001, 0x080000, CRC(f587b787) SHA1(22db4904c134756ddd0f753f197419d27e60a827) ) - ROM_LOAD ("d49-11.43", 0x180000, 0x080000, CRC(11318b26) SHA1(a7153f9f406d52189f59cbe58d65f88f4e2e6fcc) ) - ROM_FILL ( 0x100000, 0x080000, 0x00 ) + ROM_REGION( 0x300000, "sprites_hi", 0 ) + ROM_LOAD ("d49-03.4", 0x000000, 0x200000, CRC(cf9a8727) SHA1(f21787fdcdd8be2009c2d481a9b2d7fc03ce782e) ) + ROM_LOAD ("d49-08.3", 0x200000, 0x100000, CRC(7d3c6536) SHA1(289b4bf79ebd9cbdf64ab956784d226e6d546654) ) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x100000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d49-09.47", 0x000000, 0x080000, CRC(257ede01) SHA1(c36397d95706c5e68a7738c84829a51c5e8f5ef7) ) + ROM_LOAD32_WORD("d49-10.45", 0x000002, 0x080000, CRC(f587b787) SHA1(22db4904c134756ddd0f753f197419d27e60a827) ) + + ROM_REGION( 0x080000, "tilemap_hi", 0 ) + ROM_LOAD ("d49-11.43", 0x000000, 0x080000, CRC(11318b26) SHA1(a7153f9f406d52189f59cbe58d65f88f4e2e6fcc) ) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("d49-17.32", 0x100000, 0x20000, CRC(f2058eba) SHA1(7faaa94fadf02b6304287b61fb9613f9f4169fef) ) ROM_LOAD16_BYTE("d49-18.33", 0x100001, 0x20000, CRC(a0fdd270) SHA1(9b5a2c8d35ea3bc6842e3c328447c3bf641b9237) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d49-04.38", 0x000000, 0x200000, CRC(44b365a9) SHA1(14c4a6b193a0069360406c74c500ba24f2a55b62) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d49-05.41", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- - ROM_REGION(0x800000, "palsgame" , ROMREGION_ERASE00 ) // all unprotected / unlocked (dumped from single PCB version of game) + ROM_REGION( 0x800000, "palsgame" , ROMREGION_ERASE00 ) // all unprotected / unlocked (dumped from single PCB version of game) ROM_LOAD ("d49-12.ic60.bin", 0x000, 0x104, CRC(aa4cff37) SHA1(58e67e3807a32c403b1ef145d4bc5f91e1537554) ) ROM_LOAD ("d49-21.ic17.bin", 0x000, 0x104, CRC(821775d4) SHA1(f066cf6ee2118dd57c904fcff3bb287d57e16367) ) - ROM_REGION(0x800000, "palsbase" , ROMREGION_ERASE00 ) // all unprotected / unlocked (dumped from single PCB version of game) + ROM_REGION( 0x800000, "palsbase" , ROMREGION_ERASE00 ) // all unprotected / unlocked (dumped from single PCB version of game) // these should be the same on this and Arabian Magic, but the dumps don't match in all cases, maybe the AM ones were protected? ROM_LOAD ("d29-11.ic15.bin", 0x000000, 0x157, CRC(5dd5c8f9) SHA1(5e6153d9e08985b2326dfd6d73f7b90136a7a4b1) ) ROM_LOAD ("d29-12.ic12.bin", 0x000000, 0x144, CRC(c872f1fd) SHA1(6bcf766f76d83c18fa1c095716a1298581aa06c2) ) @@ -1106,248 +1119,264 @@ ROM_END ROM_START( trstar ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d53-15-1.24", 0x000000, 0x40000, CRC(098bba94) SHA1(b77990213ac790d15bdc0dc1e8f7adf04fe5e952) ) ROM_LOAD32_BYTE("d53-16-1.26", 0x000001, 0x40000, CRC(4fa8b15c) SHA1(821c21e1b958614ba6636330583b3661f9e0cebb) ) ROM_LOAD32_BYTE("d53-18-1.37", 0x000002, 0x40000, CRC(aa71cfcc) SHA1(ba62c01255cdfe0821d1b72b7f11d6e1f88b09d7) ) ROM_LOAD32_BYTE("d53-20-1.35", 0x000003, 0x40000, CRC(4de1e287) SHA1(2b592ecbf8d81aca49844ed81c351818409f596f) ) - ROM_REGION(0xc00000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x600000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d53-03.45", 0x000000, 0x200000, CRC(91b66145) SHA1(df5bc2e544ce80a98db1fe28b4a8af8c3905c7eb) ) ROM_LOAD16_BYTE("d53-04.46", 0x000001, 0x200000, CRC(ac3a5e80) SHA1(8a6ea8096099b465d63d56abc79ed77304fd4fa4) ) ROM_LOAD16_BYTE("d53-06.64", 0x400000, 0x100000, CRC(f4bac410) SHA1(569bcd81d596b24add5db4a145ae04750a1bb086) ) ROM_LOAD16_BYTE("d53-07.65", 0x400001, 0x100000, CRC(2f4773c3) SHA1(17cef13de0836923743b336cc5a64f7452629486) ) - ROM_LOAD ("d53-05.47", 0x900000, 0x200000, CRC(b9b68b15) SHA1(c3783b09b22954a959188b80e537fa84d827ac47) ) - ROM_LOAD ("d53-08.66", 0xb00000, 0x100000, CRC(ad13a1ee) SHA1(341112055b6bee33072c262f4ea7c4d0970888a6) ) - ROM_FILL ( 0x600000, 0x300000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d53-09.48", 0x000000, 0x100000, CRC(690554d3) SHA1(113afd8fe7b77a30c2e3c5baca3f19d74902625b) ) - ROM_LOAD16_BYTE("d53-10.49", 0x000001, 0x100000, CRC(0ec05dc5) SHA1(781a6362ef963417fb6383a62dcc70d6f5b3131b) ) - ROM_LOAD ("d53-11.50", 0x300000, 0x100000, CRC(39c0a546) SHA1(53f03586f6586032fc3b4f90e987c1128edbb0a7) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + ROM_REGION( 0x300000, "sprites_hi", 0 ) + ROM_LOAD ("d53-05.47", 0x000000, 0x200000, CRC(b9b68b15) SHA1(c3783b09b22954a959188b80e537fa84d827ac47) ) + ROM_LOAD ("d53-08.66", 0x200000, 0x100000, CRC(ad13a1ee) SHA1(341112055b6bee33072c262f4ea7c4d0970888a6) ) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d53-09.48", 0x000000, 0x100000, CRC(690554d3) SHA1(113afd8fe7b77a30c2e3c5baca3f19d74902625b) ) + ROM_LOAD32_WORD("d53-10.49", 0x000002, 0x100000, CRC(0ec05dc5) SHA1(781a6362ef963417fb6383a62dcc70d6f5b3131b) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("d53-11.50", 0x000000, 0x100000, CRC(39c0a546) SHA1(53f03586f6586032fc3b4f90e987c1128edbb0a7) ) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("d53-13.10", 0x100000, 0x20000, CRC(877f0361) SHA1(eda58d71fb06f739bee1451d7aa7e7e6dee10e03) ) ROM_LOAD16_BYTE("d53-14.23", 0x100001, 0x20000, CRC(a8664867) SHA1(dffddca469019abac33a1abe41c3fe83fbf553ce) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d53-01.2", 0x000000, 0x200000, CRC(28fd2d9b) SHA1(e08037795952a28e7a5e90437f1b9675aadfa136) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d53-02.3", 0x400000, 0x200000, CRC(8bd4367a) SHA1(9b274fe321c4faedb7d44f7998ae2e37c6899688) ) // CC CD -std- ROM_END ROM_START( trstarj ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d53-15-1.24", 0x000000, 0x40000, CRC(098bba94) SHA1(b77990213ac790d15bdc0dc1e8f7adf04fe5e952) ) ROM_LOAD32_BYTE("d53-16-1.26", 0x000001, 0x40000, CRC(4fa8b15c) SHA1(821c21e1b958614ba6636330583b3661f9e0cebb) ) ROM_LOAD32_BYTE("d53-18-1.37", 0x000002, 0x40000, CRC(aa71cfcc) SHA1(ba62c01255cdfe0821d1b72b7f11d6e1f88b09d7) ) ROM_LOAD32_BYTE("d53-17-1.35", 0x000003, 0x40000, CRC(a3ef83ab) SHA1(c99170047e678a7acde1bf64f903f240e9384b94) ) - ROM_REGION(0xc00000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x600000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d53-03.45", 0x000000, 0x200000, CRC(91b66145) SHA1(df5bc2e544ce80a98db1fe28b4a8af8c3905c7eb) ) ROM_LOAD16_BYTE("d53-04.46", 0x000001, 0x200000, CRC(ac3a5e80) SHA1(8a6ea8096099b465d63d56abc79ed77304fd4fa4) ) ROM_LOAD16_BYTE("d53-06.64", 0x400000, 0x100000, CRC(f4bac410) SHA1(569bcd81d596b24add5db4a145ae04750a1bb086) ) ROM_LOAD16_BYTE("d53-07.65", 0x400001, 0x100000, CRC(2f4773c3) SHA1(17cef13de0836923743b336cc5a64f7452629486) ) - ROM_LOAD ("d53-05.47", 0x900000, 0x200000, CRC(b9b68b15) SHA1(c3783b09b22954a959188b80e537fa84d827ac47) ) - ROM_LOAD ("d53-08.66", 0xb00000, 0x100000, CRC(ad13a1ee) SHA1(341112055b6bee33072c262f4ea7c4d0970888a6) ) - ROM_FILL ( 0x600000, 0x300000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d53-09.48", 0x000000, 0x100000, CRC(690554d3) SHA1(113afd8fe7b77a30c2e3c5baca3f19d74902625b) ) - ROM_LOAD16_BYTE("d53-10.49", 0x000001, 0x100000, CRC(0ec05dc5) SHA1(781a6362ef963417fb6383a62dcc70d6f5b3131b) ) - ROM_LOAD ("d53-11.50", 0x300000, 0x100000, CRC(39c0a546) SHA1(53f03586f6586032fc3b4f90e987c1128edbb0a7) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + ROM_REGION( 0x300000, "sprites_hi", 0 ) + ROM_LOAD ("d53-05.47", 0x000000, 0x200000, CRC(b9b68b15) SHA1(c3783b09b22954a959188b80e537fa84d827ac47) ) + ROM_LOAD ("d53-08.66", 0x200000, 0x100000, CRC(ad13a1ee) SHA1(341112055b6bee33072c262f4ea7c4d0970888a6) ) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d53-09.48", 0x000000, 0x100000, CRC(690554d3) SHA1(113afd8fe7b77a30c2e3c5baca3f19d74902625b) ) + ROM_LOAD32_WORD("d53-10.49", 0x000002, 0x100000, CRC(0ec05dc5) SHA1(781a6362ef963417fb6383a62dcc70d6f5b3131b) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("d53-11.50", 0x000000, 0x100000, CRC(39c0a546) SHA1(53f03586f6586032fc3b4f90e987c1128edbb0a7) ) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("d53-13.10", 0x100000, 0x20000, CRC(877f0361) SHA1(eda58d71fb06f739bee1451d7aa7e7e6dee10e03) ) ROM_LOAD16_BYTE("d53-14.23", 0x100001, 0x20000, CRC(a8664867) SHA1(dffddca469019abac33a1abe41c3fe83fbf553ce) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d53-01.2", 0x000000, 0x200000, CRC(28fd2d9b) SHA1(e08037795952a28e7a5e90437f1b9675aadfa136) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d53-02.3", 0x400000, 0x200000, CRC(8bd4367a) SHA1(9b274fe321c4faedb7d44f7998ae2e37c6899688) ) // CC CD -std- ROM_END ROM_START( prmtmfgt ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d53-15-1.24", 0x000000, 0x40000, CRC(098bba94) SHA1(b77990213ac790d15bdc0dc1e8f7adf04fe5e952) ) ROM_LOAD32_BYTE("d53-16-1.26", 0x000001, 0x40000, CRC(4fa8b15c) SHA1(821c21e1b958614ba6636330583b3661f9e0cebb) ) ROM_LOAD32_BYTE("d53-18-1.37", 0x000002, 0x40000, CRC(aa71cfcc) SHA1(ba62c01255cdfe0821d1b72b7f11d6e1f88b09d7) ) ROM_LOAD32_BYTE("d53-19-1.35", 0x000003, 0x40000, CRC(3ae6d211) SHA1(f3e27e0169686633d8d8f2cbac05375aa94cfde9) ) - ROM_REGION(0xc00000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x600000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d53-03.45", 0x000000, 0x200000, CRC(91b66145) SHA1(df5bc2e544ce80a98db1fe28b4a8af8c3905c7eb) ) ROM_LOAD16_BYTE("d53-04.46", 0x000001, 0x200000, CRC(ac3a5e80) SHA1(8a6ea8096099b465d63d56abc79ed77304fd4fa4) ) ROM_LOAD16_BYTE("d53-06.64", 0x400000, 0x100000, CRC(f4bac410) SHA1(569bcd81d596b24add5db4a145ae04750a1bb086) ) ROM_LOAD16_BYTE("d53-07.65", 0x400001, 0x100000, CRC(2f4773c3) SHA1(17cef13de0836923743b336cc5a64f7452629486) ) - ROM_LOAD ("d53-05.47", 0x900000, 0x200000, CRC(b9b68b15) SHA1(c3783b09b22954a959188b80e537fa84d827ac47) ) - ROM_LOAD ("d53-08.66", 0xb00000, 0x100000, CRC(ad13a1ee) SHA1(341112055b6bee33072c262f4ea7c4d0970888a6) ) - ROM_FILL ( 0x600000, 0x300000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d53-09.48", 0x000000, 0x100000, CRC(690554d3) SHA1(113afd8fe7b77a30c2e3c5baca3f19d74902625b) ) - ROM_LOAD16_BYTE("d53-10.49", 0x000001, 0x100000, CRC(0ec05dc5) SHA1(781a6362ef963417fb6383a62dcc70d6f5b3131b) ) - ROM_LOAD ("d53-11.50", 0x300000, 0x100000, CRC(39c0a546) SHA1(53f03586f6586032fc3b4f90e987c1128edbb0a7) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + ROM_REGION( 0x300000, "sprites_hi", 0 ) + ROM_LOAD ("d53-05.47", 0x000000, 0x200000, CRC(b9b68b15) SHA1(c3783b09b22954a959188b80e537fa84d827ac47) ) + ROM_LOAD ("d53-08.66", 0x200000, 0x100000, CRC(ad13a1ee) SHA1(341112055b6bee33072c262f4ea7c4d0970888a6) ) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d53-09.48", 0x000000, 0x100000, CRC(690554d3) SHA1(113afd8fe7b77a30c2e3c5baca3f19d74902625b) ) + ROM_LOAD32_WORD("d53-10.49", 0x000002, 0x100000, CRC(0ec05dc5) SHA1(781a6362ef963417fb6383a62dcc70d6f5b3131b) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("d53-11.50", 0x000000, 0x100000, CRC(39c0a546) SHA1(53f03586f6586032fc3b4f90e987c1128edbb0a7) ) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("d53-13.10", 0x100000, 0x20000, CRC(877f0361) SHA1(eda58d71fb06f739bee1451d7aa7e7e6dee10e03) ) ROM_LOAD16_BYTE("d53-14.23", 0x100001, 0x20000, CRC(a8664867) SHA1(dffddca469019abac33a1abe41c3fe83fbf553ce) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d53-01.2", 0x000000, 0x200000, CRC(28fd2d9b) SHA1(e08037795952a28e7a5e90437f1b9675aadfa136) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d53-02.3", 0x400000, 0x200000, CRC(8bd4367a) SHA1(9b274fe321c4faedb7d44f7998ae2e37c6899688) ) // CC CD -std- ROM_END ROM_START( trstaro ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d53-15.24", 0x000000, 0x40000, CRC(f24de51b) SHA1(d45d1b60901995edf0721eae7eb8c6e829f47d8d) ) ROM_LOAD32_BYTE("d53-16.26", 0x000001, 0x40000, CRC(ffc84429) SHA1(23354c1a65853c06e5c959957a92b700b1418fd4) ) ROM_LOAD32_BYTE("d53-18.37", 0x000002, 0x40000, CRC(ea2d6e13) SHA1(96461b73de745c4b0ac99267931106e1d5dcb664) ) ROM_LOAD32_BYTE("d53-20.35", 0x000003, 0x40000, CRC(77e1f267) SHA1(763ccab234c45ea00908198b0aef3ba63ddfb8f8) ) - ROM_REGION(0xc00000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x600000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d53-03.45", 0x000000, 0x200000, CRC(91b66145) SHA1(df5bc2e544ce80a98db1fe28b4a8af8c3905c7eb) ) ROM_LOAD16_BYTE("d53-04.46", 0x000001, 0x200000, CRC(ac3a5e80) SHA1(8a6ea8096099b465d63d56abc79ed77304fd4fa4) ) ROM_LOAD16_BYTE("d53-06.64", 0x400000, 0x100000, CRC(f4bac410) SHA1(569bcd81d596b24add5db4a145ae04750a1bb086) ) ROM_LOAD16_BYTE("d53-07.65", 0x400001, 0x100000, CRC(2f4773c3) SHA1(17cef13de0836923743b336cc5a64f7452629486) ) - ROM_LOAD ("d53-05.47", 0x900000, 0x200000, CRC(b9b68b15) SHA1(c3783b09b22954a959188b80e537fa84d827ac47) ) - ROM_LOAD ("d53-08.66", 0xb00000, 0x100000, CRC(ad13a1ee) SHA1(341112055b6bee33072c262f4ea7c4d0970888a6) ) - ROM_FILL ( 0x600000, 0x300000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d53-09.48", 0x000000, 0x100000, CRC(690554d3) SHA1(113afd8fe7b77a30c2e3c5baca3f19d74902625b) ) - ROM_LOAD16_BYTE("d53-10.49", 0x000001, 0x100000, CRC(0ec05dc5) SHA1(781a6362ef963417fb6383a62dcc70d6f5b3131b) ) - ROM_LOAD ("d53-11.50", 0x300000, 0x100000, CRC(39c0a546) SHA1(53f03586f6586032fc3b4f90e987c1128edbb0a7) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + ROM_REGION( 0x300000, "sprites_hi", 0 ) + ROM_LOAD ("d53-05.47", 0x000000, 0x200000, CRC(b9b68b15) SHA1(c3783b09b22954a959188b80e537fa84d827ac47) ) + ROM_LOAD ("d53-08.66", 0x200000, 0x100000, CRC(ad13a1ee) SHA1(341112055b6bee33072c262f4ea7c4d0970888a6) ) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d53-09.48", 0x000000, 0x100000, CRC(690554d3) SHA1(113afd8fe7b77a30c2e3c5baca3f19d74902625b) ) + ROM_LOAD32_WORD("d53-10.49", 0x000002, 0x100000, CRC(0ec05dc5) SHA1(781a6362ef963417fb6383a62dcc70d6f5b3131b) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("d53-11.50", 0x000000, 0x100000, CRC(39c0a546) SHA1(53f03586f6586032fc3b4f90e987c1128edbb0a7) ) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("d53-13.10", 0x100000, 0x20000, CRC(877f0361) SHA1(eda58d71fb06f739bee1451d7aa7e7e6dee10e03) ) ROM_LOAD16_BYTE("d53-14.23", 0x100001, 0x20000, CRC(a8664867) SHA1(dffddca469019abac33a1abe41c3fe83fbf553ce) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d53-01.2", 0x000000, 0x200000, CRC(28fd2d9b) SHA1(e08037795952a28e7a5e90437f1b9675aadfa136) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d53-02.3", 0x400000, 0x200000, CRC(8bd4367a) SHA1(9b274fe321c4faedb7d44f7998ae2e37c6899688) ) // CC CD -std- ROM_END ROM_START( trstaroj ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d53-15.24", 0x000000, 0x40000, CRC(f24de51b) SHA1(d45d1b60901995edf0721eae7eb8c6e829f47d8d) ) ROM_LOAD32_BYTE("d53-16.26", 0x000001, 0x40000, CRC(ffc84429) SHA1(23354c1a65853c06e5c959957a92b700b1418fd4) ) ROM_LOAD32_BYTE("d53-18.37", 0x000002, 0x40000, CRC(ea2d6e13) SHA1(96461b73de745c4b0ac99267931106e1d5dcb664) ) ROM_LOAD32_BYTE("d53-17.35", 0x000003, 0x40000, CRC(99ef934b) SHA1(a04a27f67b2db87549f4dc09cf9d00f3480351a6) ) - ROM_REGION(0xc00000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x600000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d53-03.45", 0x000000, 0x200000, CRC(91b66145) SHA1(df5bc2e544ce80a98db1fe28b4a8af8c3905c7eb) ) ROM_LOAD16_BYTE("d53-04.46", 0x000001, 0x200000, CRC(ac3a5e80) SHA1(8a6ea8096099b465d63d56abc79ed77304fd4fa4) ) ROM_LOAD16_BYTE("d53-06.64", 0x400000, 0x100000, CRC(f4bac410) SHA1(569bcd81d596b24add5db4a145ae04750a1bb086) ) ROM_LOAD16_BYTE("d53-07.65", 0x400001, 0x100000, CRC(2f4773c3) SHA1(17cef13de0836923743b336cc5a64f7452629486) ) - ROM_LOAD ("d53-05.47", 0x900000, 0x200000, CRC(b9b68b15) SHA1(c3783b09b22954a959188b80e537fa84d827ac47) ) - ROM_LOAD ("d53-08.66", 0xb00000, 0x100000, CRC(ad13a1ee) SHA1(341112055b6bee33072c262f4ea7c4d0970888a6) ) - ROM_FILL ( 0x600000, 0x300000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d53-09.48", 0x000000, 0x100000, CRC(690554d3) SHA1(113afd8fe7b77a30c2e3c5baca3f19d74902625b) ) - ROM_LOAD16_BYTE("d53-10.49", 0x000001, 0x100000, CRC(0ec05dc5) SHA1(781a6362ef963417fb6383a62dcc70d6f5b3131b) ) - ROM_LOAD ("d53-11.50", 0x300000, 0x100000, CRC(39c0a546) SHA1(53f03586f6586032fc3b4f90e987c1128edbb0a7) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + ROM_REGION( 0x300000, "sprites_hi", 0 ) + ROM_LOAD ("d53-05.47", 0x000000, 0x200000, CRC(b9b68b15) SHA1(c3783b09b22954a959188b80e537fa84d827ac47) ) + ROM_LOAD ("d53-08.66", 0x200000, 0x100000, CRC(ad13a1ee) SHA1(341112055b6bee33072c262f4ea7c4d0970888a6) ) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d53-09.48", 0x000000, 0x100000, CRC(690554d3) SHA1(113afd8fe7b77a30c2e3c5baca3f19d74902625b) ) + ROM_LOAD32_WORD("d53-10.49", 0x000002, 0x100000, CRC(0ec05dc5) SHA1(781a6362ef963417fb6383a62dcc70d6f5b3131b) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("d53-11.50", 0x000000, 0x100000, CRC(39c0a546) SHA1(53f03586f6586032fc3b4f90e987c1128edbb0a7) ) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("d53-13.10", 0x100000, 0x20000, CRC(877f0361) SHA1(eda58d71fb06f739bee1451d7aa7e7e6dee10e03) ) ROM_LOAD16_BYTE("d53-14.23", 0x100001, 0x20000, CRC(a8664867) SHA1(dffddca469019abac33a1abe41c3fe83fbf553ce) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d53-01.2", 0x000000, 0x200000, CRC(28fd2d9b) SHA1(e08037795952a28e7a5e90437f1b9675aadfa136) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d53-02.3", 0x400000, 0x200000, CRC(8bd4367a) SHA1(9b274fe321c4faedb7d44f7998ae2e37c6899688) ) // CC CD -std- ROM_END ROM_START( prmtmfgto ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d53-15.24", 0x000000, 0x40000, CRC(f24de51b) SHA1(d45d1b60901995edf0721eae7eb8c6e829f47d8d) ) ROM_LOAD32_BYTE("d53-16.26", 0x000001, 0x40000, CRC(ffc84429) SHA1(23354c1a65853c06e5c959957a92b700b1418fd4) ) ROM_LOAD32_BYTE("d53-18.37", 0x000002, 0x40000, CRC(ea2d6e13) SHA1(96461b73de745c4b0ac99267931106e1d5dcb664) ) ROM_LOAD32_BYTE("d53-19.35", 0x000003, 0x40000, CRC(00e6c2f1) SHA1(cf4b9ee35be8138abfaa354d01184efbfe83cea2) ) - ROM_REGION(0xc00000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x600000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d53-03.45", 0x000000, 0x200000, CRC(91b66145) SHA1(df5bc2e544ce80a98db1fe28b4a8af8c3905c7eb) ) ROM_LOAD16_BYTE("d53-04.46", 0x000001, 0x200000, CRC(ac3a5e80) SHA1(8a6ea8096099b465d63d56abc79ed77304fd4fa4) ) ROM_LOAD16_BYTE("d53-06.64", 0x400000, 0x100000, CRC(f4bac410) SHA1(569bcd81d596b24add5db4a145ae04750a1bb086) ) ROM_LOAD16_BYTE("d53-07.65", 0x400001, 0x100000, CRC(2f4773c3) SHA1(17cef13de0836923743b336cc5a64f7452629486) ) - ROM_LOAD ("d53-05.47", 0x900000, 0x200000, CRC(b9b68b15) SHA1(c3783b09b22954a959188b80e537fa84d827ac47) ) - ROM_LOAD ("d53-08.66", 0xb00000, 0x100000, CRC(ad13a1ee) SHA1(341112055b6bee33072c262f4ea7c4d0970888a6) ) - ROM_FILL ( 0x600000, 0x300000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d53-09.48", 0x000000, 0x100000, CRC(690554d3) SHA1(113afd8fe7b77a30c2e3c5baca3f19d74902625b) ) - ROM_LOAD16_BYTE("d53-10.49", 0x000001, 0x100000, CRC(0ec05dc5) SHA1(781a6362ef963417fb6383a62dcc70d6f5b3131b) ) - ROM_LOAD ("d53-11.50", 0x300000, 0x100000, CRC(39c0a546) SHA1(53f03586f6586032fc3b4f90e987c1128edbb0a7) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + ROM_REGION( 0x300000, "sprites_hi", 0 ) + ROM_LOAD ("d53-05.47", 0x000000, 0x200000, CRC(b9b68b15) SHA1(c3783b09b22954a959188b80e537fa84d827ac47) ) + ROM_LOAD ("d53-08.66", 0x200000, 0x100000, CRC(ad13a1ee) SHA1(341112055b6bee33072c262f4ea7c4d0970888a6) ) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d53-09.48", 0x000000, 0x100000, CRC(690554d3) SHA1(113afd8fe7b77a30c2e3c5baca3f19d74902625b) ) + ROM_LOAD32_WORD("d53-10.49", 0x000002, 0x100000, CRC(0ec05dc5) SHA1(781a6362ef963417fb6383a62dcc70d6f5b3131b) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("d53-11.50", 0x000000, 0x100000, CRC(39c0a546) SHA1(53f03586f6586032fc3b4f90e987c1128edbb0a7) ) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("d53-13.10", 0x100000, 0x20000, CRC(877f0361) SHA1(eda58d71fb06f739bee1451d7aa7e7e6dee10e03) ) ROM_LOAD16_BYTE("d53-14.23", 0x100001, 0x20000, CRC(a8664867) SHA1(dffddca469019abac33a1abe41c3fe83fbf553ce) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d53-01.2", 0x000000, 0x200000, CRC(28fd2d9b) SHA1(e08037795952a28e7a5e90437f1b9675aadfa136) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d53-02.3", 0x400000, 0x200000, CRC(8bd4367a) SHA1(9b274fe321c4faedb7d44f7998ae2e37c6899688) ) // CC CD -std- ROM_END ROM_START( gunlock ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d66-18.ic24", 0x000000, 0x40000, CRC(8418513e) SHA1(a071647268fad08802b88fb6d795612218b7ddef) ) ROM_LOAD32_BYTE("d66-19.ic26", 0x000001, 0x40000, CRC(95731473) SHA1(ab79821cd6098a4db84ebc9a499c29b1525510a5) ) ROM_LOAD32_BYTE("d66-21.ic37", 0x000002, 0x40000, CRC(bd0d60f2) SHA1(609ed2b04cb9efc4b370dcbdf22fd168318989be) ) ROM_LOAD32_BYTE("d66-24.ic35", 0x000003, 0x40000, CRC(97816378) SHA1(b22cb442b663c7a10fbc292583cd788f66f10a25) ) - ROM_REGION(0x400000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x200000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d66-03.ic45", 0x000000, 0x100000, CRC(e7a4a491) SHA1(87837e8dd1c9a1db5e540b678233634bd52328f0) ) ROM_LOAD16_BYTE("d66-04.ic46", 0x000001, 0x100000, CRC(c1c7aaa7) SHA1(f929516cf50d82b2d1d1b4c49a0eb1dea819aae1) ) - ROM_LOAD ("d66-05.ic47", 0x300000, 0x100000, CRC(a3cefe04) SHA1(dd4f47a814853f4512ce25c5f25121c53ee4ada1) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d66-06.ic48", 0x000000, 0x100000, CRC(b3d8126d) SHA1(3cbb44f396973c36abdf3fdf391becb22bb6d661) ) - ROM_LOAD16_BYTE("d66-07.ic49", 0x000001, 0x100000, CRC(a6da9be7) SHA1(b528505ab925db75acf31bfbed2035cbe36e7a74) ) - ROM_LOAD ("d66-08.ic50", 0x300000, 0x100000, CRC(9959f30b) SHA1(64bf2bf995c283c00d968e3c078b824de4084d3d) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + ROM_REGION( 0x100000, "sprites_hi", 0 ) + ROM_LOAD ("d66-05.ic47", 0x000000, 0x100000, CRC(a3cefe04) SHA1(dd4f47a814853f4512ce25c5f25121c53ee4ada1) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 code */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d66-06.ic48", 0x000000, 0x100000, CRC(b3d8126d) SHA1(3cbb44f396973c36abdf3fdf391becb22bb6d661) ) + ROM_LOAD32_WORD("d66-07.ic49", 0x000002, 0x100000, CRC(a6da9be7) SHA1(b528505ab925db75acf31bfbed2035cbe36e7a74) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("d66-08.ic50", 0x000000, 0x100000, CRC(9959f30b) SHA1(64bf2bf995c283c00d968e3c078b824de4084d3d) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE("d66-23.ic10", 0x100000, 0x40000, CRC(57fb7c49) SHA1(f8709fd1e9ea7cee10ee2288d13339f675a7d3ae) ) ROM_LOAD16_BYTE("d66-22.ic23", 0x100001, 0x40000, CRC(83dd7f9b) SHA1(dae21f64232d3e268f22b5e9899e0b726fdc9a9f) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d66-01.ic2", 0x000000, 0x200000, CRC(58c92efa) SHA1(bb207b35b8f9538362bb99a9ec8df206694f00ce) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d66-02.ic3", 0x400000, 0x200000, CRC(dcdafaab) SHA1(c981c7e54a2a9aaa85bb758691858495d623b029) ) // CC CD -std- ROM_END ROM_START( gunlocko ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("ic24.ic24", 0x000000, 0x40000, CRC(c6a89434) SHA1(8c9da876f4c8e1ee234431949357e8208b2178dd) ) // Gunlock Ver 2.0O 1993/12/15 17:38:00 ROM_LOAD32_BYTE("ic26.ic26", 0x000001, 0x40000, CRC(0d1dd41d) SHA1(6bfa52305fc72e41dfe2d91a87e697dfe60e775a) ) ROM_LOAD32_BYTE("ic37.ic37", 0x000002, 0x40000, CRC(94bc17fe) SHA1(0786d6f028bcd53e8af4c3fe05a0df141d898da1) ) ROM_LOAD32_BYTE("ic35.ic35", 0x000003, 0x40000, CRC(ca47e1cd) SHA1(36163b7f7ff73c16d829d6917a2a4e6c1bf463f7) ) - ROM_REGION(0x400000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x200000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("lobj0-l.ic33", 0x000000, 0x080000, CRC(5fde6dbb) SHA1(390fb596566674b494e533f49b83655a8b27c312) ) ROM_LOAD16_BYTE("lobj0-m.ic25", 0x000001, 0x080000, CRC(d308db27) SHA1(b7a309c30a92abd9ed2f31d3827f19427949075f) ) ROM_LOAD16_BYTE("lobj1-l.ic32", 0x100000, 0x080000, CRC(83d76f4b) SHA1(8b0894f636e2f7d0c53d0789e7a8fb8e421f28cb) ) // LOBJ0-L + LOBJ1-L == D66-03.IC45 ROM_LOAD16_BYTE("lobj1-m.ic24", 0x100001, 0x080000, CRC(5034a854) SHA1(2e021e48e57ad4fc76d5f3a707c6634d1bc98b9c) ) // LOBJ0-M + LOBJ1-M == D66-04.IC46 - ROM_LOAD ("lobj0-h.ic16", 0x300000, 0x080000, CRC(8899db2e) SHA1(6767e398f5c7df79b0dc2f97b3e7af407793dd37) ) - ROM_LOAD ("lobj1-h.ic15", 0x380000, 0x080000, CRC(0607fd85) SHA1(f9c7116a4185a45e041c8e8726a781e6de859fc7) ) // LOBJ0-H + LOBJ1-H == D66-05.IC47 - ROM_FILL ( 0x200000, 0x100000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ + ROM_REGION( 0x100000, "sprites_hi", 0 ) + ROM_LOAD ("lobj0-h.ic16", 0x000000, 0x080000, CRC(8899db2e) SHA1(6767e398f5c7df79b0dc2f97b3e7af407793dd37) ) + ROM_LOAD ("lobj1-h.ic15", 0x080000, 0x080000, CRC(0607fd85) SHA1(f9c7116a4185a45e041c8e8726a781e6de859fc7) ) // LOBJ0-H + LOBJ1-H == D66-05.IC47 + + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ ROM_LOAD32_BYTE("scr0-0.ic40", 0x000000, 0x080000, CRC(1c429d92) SHA1(71d2e2628e4ba5fdda34ed42c9d1c7c3df33b9aa) ) // Odd bytes of D66-06.IC48 - ROM_LOAD32_BYTE("scr0-2.ic38", 0x000001, 0x080000, CRC(e023c0f0) SHA1(e73c3ea44a3e8fef110ea20b6a1e8102efd0b2a9) ) // Odd bytes of D66-07.IC49 - ROM_LOAD32_BYTE("scr0-1.ic46", 0x000002, 0x080000, CRC(5f0cb8bf) SHA1(6e50ebce5c2346de4101c1dace75e9d65d9e6add) ) // Even bytes of D66-06.IC48 + ROM_LOAD32_BYTE("scr0-1.ic46", 0x000001, 0x080000, CRC(5f0cb8bf) SHA1(6e50ebce5c2346de4101c1dace75e9d65d9e6add) ) // Even bytes of D66-06.IC48 + ROM_LOAD32_BYTE("scr0-2.ic38", 0x000002, 0x080000, CRC(e023c0f0) SHA1(e73c3ea44a3e8fef110ea20b6a1e8102efd0b2a9) ) // Odd bytes of D66-07.IC49 ROM_LOAD32_BYTE("scr0-3.ic44", 0x000003, 0x080000, CRC(37bbdbb9) SHA1(6ea2a36005494c45d38c44ddfc6236b2efb40962) ) // Even bytes of D66-07.IC49 - ROM_LOAD16_BYTE("scr0-4.ic36", 0x300000, 0x080000, CRC(4f073d71) SHA1(9ac80922310fd9e7a0e59b5e1979c3cfa8cbf78b) ) // Even bytes of D66-08.IC50 (Odd bytes of D66-08.IC50 == 0xFF) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 code */ + ROM_REGION( 0x100000, "tilemap_hi", ROMREGION_ERASE00 ) + ROM_LOAD16_BYTE("scr0-4.ic36", 0x000000, 0x080000, CRC(4f073d71) SHA1(9ac80922310fd9e7a0e59b5e1979c3cfa8cbf78b) ) // Even bytes of D66-08.IC50 (Odd bytes of D66-08.IC50 == 0xFF) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE("d66-23.ic10", 0x100000, 0x40000, CRC(57fb7c49) SHA1(f8709fd1e9ea7cee10ee2288d13339f675a7d3ae) ) ROM_LOAD16_BYTE("d66-22.ic23", 0x100001, 0x40000, CRC(83dd7f9b) SHA1(dae21f64232d3e268f22b5e9899e0b726fdc9a9f) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("snd0.ic8", 0x000000, 0x080000, CRC(6a468f69) SHA1(77424ee26417e232a81a340cd192531cc59f1f50) ) ROM_LOAD16_BYTE("snd1.ic7", 0x100000, 0x080000, CRC(332827b5) SHA1(e1a75799e553ca3969e4aa52ec199c0bbdfcc02b) ) ROM_LOAD16_BYTE("snd2.ic6", 0x200000, 0x080000, CRC(b5e737dd) SHA1(a056ab589c35657580ea1d58e40ed2089e831112) ) @@ -1359,88 +1388,94 @@ ROM_START( gunlocko ) ROM_END ROM_START( rayforce ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d66-18.ic24", 0x000000, 0x40000, CRC(8418513e) SHA1(a071647268fad08802b88fb6d795612218b7ddef) ) ROM_LOAD32_BYTE("d66-19.ic26", 0x000001, 0x40000, CRC(95731473) SHA1(ab79821cd6098a4db84ebc9a499c29b1525510a5) ) ROM_LOAD32_BYTE("d66-21.ic37", 0x000002, 0x40000, CRC(bd0d60f2) SHA1(609ed2b04cb9efc4b370dcbdf22fd168318989be) ) ROM_LOAD32_BYTE("d66-25.ic35", 0x000003, 0x40000, CRC(e08653ee) SHA1(03ae4e457369a4b29cd7d52408e28725e41ee244) ) - ROM_REGION(0x400000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x200000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d66-03.ic45", 0x000000, 0x100000, CRC(e7a4a491) SHA1(87837e8dd1c9a1db5e540b678233634bd52328f0) ) ROM_LOAD16_BYTE("d66-04.ic46", 0x000001, 0x100000, CRC(c1c7aaa7) SHA1(f929516cf50d82b2d1d1b4c49a0eb1dea819aae1) ) - ROM_LOAD ("d66-05.ic47", 0x300000, 0x100000, CRC(a3cefe04) SHA1(dd4f47a814853f4512ce25c5f25121c53ee4ada1) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d66-06.ic48", 0x000000, 0x100000, CRC(b3d8126d) SHA1(3cbb44f396973c36abdf3fdf391becb22bb6d661) ) - ROM_LOAD16_BYTE("d66-07.ic49", 0x000001, 0x100000, CRC(a6da9be7) SHA1(b528505ab925db75acf31bfbed2035cbe36e7a74) ) - ROM_LOAD ("d66-08.ic49", 0x300000, 0x100000, CRC(9959f30b) SHA1(64bf2bf995c283c00d968e3c078b824de4084d3d) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + ROM_REGION( 0x100000, "sprites_hi", 0 ) + ROM_LOAD ("d66-05.ic47", 0x000000, 0x100000, CRC(a3cefe04) SHA1(dd4f47a814853f4512ce25c5f25121c53ee4ada1) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 code */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d66-06.ic48", 0x000000, 0x100000, CRC(b3d8126d) SHA1(3cbb44f396973c36abdf3fdf391becb22bb6d661) ) + ROM_LOAD32_WORD("d66-07.ic49", 0x000002, 0x100000, CRC(a6da9be7) SHA1(b528505ab925db75acf31bfbed2035cbe36e7a74) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("d66-08.ic49", 0x000000, 0x100000, CRC(9959f30b) SHA1(64bf2bf995c283c00d968e3c078b824de4084d3d) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE("d66-23.ic10", 0x100000, 0x40000, CRC(57fb7c49) SHA1(f8709fd1e9ea7cee10ee2288d13339f675a7d3ae) ) ROM_LOAD16_BYTE("d66-22.ic23", 0x100001, 0x40000, CRC(83dd7f9b) SHA1(dae21f64232d3e268f22b5e9899e0b726fdc9a9f) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d66-01.ic2", 0x000000, 0x200000, CRC(58c92efa) SHA1(bb207b35b8f9538362bb99a9ec8df206694f00ce) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d66-02.ic3", 0x400000, 0x200000, CRC(dcdafaab) SHA1(c981c7e54a2a9aaa85bb758691858495d623b029) ) // CC CD -std- ROM_END ROM_START( rayforcej ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d66-18.ic24", 0x000000, 0x40000, CRC(8418513e) SHA1(a071647268fad08802b88fb6d795612218b7ddef) ) ROM_LOAD32_BYTE("d66-19.ic26", 0x000001, 0x40000, CRC(95731473) SHA1(ab79821cd6098a4db84ebc9a499c29b1525510a5) ) ROM_LOAD32_BYTE("d66-21.ic37", 0x000002, 0x40000, CRC(bd0d60f2) SHA1(609ed2b04cb9efc4b370dcbdf22fd168318989be) ) ROM_LOAD32_BYTE("d66-20.ic35", 0x000003, 0x40000, CRC(798f0254) SHA1(b070588053bddc3d0b0c2660192b0cb16bf8247f) ) - ROM_REGION(0x400000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x200000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d66-03.ic45", 0x000000, 0x100000, CRC(e7a4a491) SHA1(87837e8dd1c9a1db5e540b678233634bd52328f0) ) ROM_LOAD16_BYTE("d66-04.ic46", 0x000001, 0x100000, CRC(c1c7aaa7) SHA1(f929516cf50d82b2d1d1b4c49a0eb1dea819aae1) ) - ROM_LOAD ("d66-05.ic47", 0x300000, 0x100000, CRC(a3cefe04) SHA1(dd4f47a814853f4512ce25c5f25121c53ee4ada1) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d66-06.ic48", 0x000000, 0x100000, CRC(b3d8126d) SHA1(3cbb44f396973c36abdf3fdf391becb22bb6d661) ) - ROM_LOAD16_BYTE("d66-07.ic49", 0x000001, 0x100000, CRC(a6da9be7) SHA1(b528505ab925db75acf31bfbed2035cbe36e7a74) ) - ROM_LOAD ("d66-08.ic49", 0x300000, 0x100000, CRC(9959f30b) SHA1(64bf2bf995c283c00d968e3c078b824de4084d3d) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + ROM_REGION( 0x100000, "sprites_hi", 0 ) + ROM_LOAD ("d66-05.ic47", 0x000000, 0x100000, CRC(a3cefe04) SHA1(dd4f47a814853f4512ce25c5f25121c53ee4ada1) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 code */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d66-06.ic48", 0x000000, 0x100000, CRC(b3d8126d) SHA1(3cbb44f396973c36abdf3fdf391becb22bb6d661) ) + ROM_LOAD32_WORD("d66-07.ic49", 0x000002, 0x100000, CRC(a6da9be7) SHA1(b528505ab925db75acf31bfbed2035cbe36e7a74) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("d66-08.ic49", 0x000000, 0x100000, CRC(9959f30b) SHA1(64bf2bf995c283c00d968e3c078b824de4084d3d) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE("d66-23.ic10", 0x100000, 0x40000, CRC(57fb7c49) SHA1(f8709fd1e9ea7cee10ee2288d13339f675a7d3ae) ) ROM_LOAD16_BYTE("d66-22.ic23", 0x100001, 0x40000, CRC(83dd7f9b) SHA1(dae21f64232d3e268f22b5e9899e0b726fdc9a9f) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d66-01.ic2", 0x000000, 0x200000, CRC(58c92efa) SHA1(bb207b35b8f9538362bb99a9ec8df206694f00ce) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d66-02.ic3", 0x400000, 0x200000, CRC(dcdafaab) SHA1(c981c7e54a2a9aaa85bb758691858495d623b029) ) // CC CD -std- ROM_END ROM_START( scfinals ) /* This is the single PCB version */ - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d68-09.ic40", 0x000000, 0x40000, CRC(28193b3f) SHA1(cdbc185bbfbd34a1b892bacec4695b97c50a0bb7) ) ROM_LOAD32_BYTE("d68-10.ic38", 0x000001, 0x40000, CRC(67481bad) SHA1(97c7db7e705a2194b29c8a985702d9ccc936fd97) ) ROM_LOAD32_BYTE("d68-11.ic36", 0x000002, 0x40000, CRC(d456c124) SHA1(8466273ee6d81808d10b2d6be92f87a062da2131) ) ROM_LOAD32_BYTE("d68-12.ic34", 0x000003, 0x40000, CRC(dec41397) SHA1(17f41a42461c822f4b6d65e96e1ff7c20b0168c7) ) - ROM_REGION(0xc00000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x600000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d49-01.12", 0x000000, 0x200000, CRC(1dc89f1c) SHA1(9597b1d8c9b447080ca9401aee83bb4a64bb8332) ) /* Single PCB version locations may differ */ ROM_LOAD16_BYTE("d49-02.8", 0x000001, 0x200000, CRC(1e4c374f) SHA1(512edc6a934578d0e7371410a041150d3b13aaad) ) ROM_LOAD16_BYTE("d49-06.11", 0x400000, 0x100000, CRC(71ef4ee1) SHA1(1d7729dbc77f7201ff574e8aef65a55bd81c25a7) ) ROM_LOAD16_BYTE("d49-07.7", 0x400001, 0x100000, CRC(e5655b8f) SHA1(2c21745370bfe9dbf0e95f7ce42ed34a162bff64) ) - ROM_LOAD ("d49-03.4", 0x900000, 0x200000, CRC(cf9a8727) SHA1(f21787fdcdd8be2009c2d481a9b2d7fc03ce782e) ) - ROM_LOAD ("d49-08.3", 0xb00000, 0x100000, CRC(7d3c6536) SHA1(289b4bf79ebd9cbdf64ab956784d226e6d546654) ) - ROM_FILL ( 0x600000, 0x300000, 0x00 ) - ROM_REGION(0x200000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d49-09.47", 0x000000, 0x080000, CRC(257ede01) SHA1(c36397d95706c5e68a7738c84829a51c5e8f5ef7) ) /* Single PCB version locations may differ */ - ROM_LOAD16_BYTE("d49-10.45", 0x000001, 0x080000, CRC(f587b787) SHA1(22db4904c134756ddd0f753f197419d27e60a827) ) - ROM_LOAD ("d49-11.43", 0x180000, 0x080000, CRC(11318b26) SHA1(a7153f9f406d52189f59cbe58d65f88f4e2e6fcc) ) - ROM_FILL ( 0x100000, 0x080000, 0x00 ) + ROM_REGION( 0x300000, "sprites_hi", 0 ) + ROM_LOAD ("d49-03.4", 0x000000, 0x200000, CRC(cf9a8727) SHA1(f21787fdcdd8be2009c2d481a9b2d7fc03ce782e) ) + ROM_LOAD ("d49-08.3", 0x200000, 0x100000, CRC(7d3c6536) SHA1(289b4bf79ebd9cbdf64ab956784d226e6d546654) ) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x100000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d49-09.47", 0x000000, 0x080000, CRC(257ede01) SHA1(c36397d95706c5e68a7738c84829a51c5e8f5ef7) ) /* Single PCB version locations may differ */ + ROM_LOAD32_WORD("d49-10.45", 0x000002, 0x080000, CRC(f587b787) SHA1(22db4904c134756ddd0f753f197419d27e60a827) ) + + ROM_REGION( 0x080000, "tilemap_hi", 0 ) + ROM_LOAD ("d49-11.43", 0x000000, 0x080000, CRC(11318b26) SHA1(a7153f9f406d52189f59cbe58d65f88f4e2e6fcc) ) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("d49-17.ic5", 0x100000, 0x20000, CRC(f2058eba) SHA1(7faaa94fadf02b6304287b61fb9613f9f4169fef) ) ROM_LOAD16_BYTE("d49-18.ic6", 0x100001, 0x20000, CRC(a0fdd270) SHA1(9b5a2c8d35ea3bc6842e3c328447c3bf641b9237) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d49-04.38", 0x000000, 0x200000, CRC(44b365a9) SHA1(14c4a6b193a0069360406c74c500ba24f2a55b62) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d49-05.41", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- @@ -1450,32 +1485,34 @@ ROM_START( scfinals ) /* This is the single PCB version */ ROM_END ROM_START( scfinalso ) /* Cart version */ - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d68-01.20", 0x000000, 0x40000, CRC(cb951856) SHA1(c7b0418b957ed0feecc9dffe5a963bd22df0ac4e) ) ROM_LOAD32_BYTE("d68-02.19", 0x000001, 0x40000, CRC(4f94413a) SHA1(b46a35ab0150d5d5e53149c53f11978fbfa28159) ) ROM_LOAD32_BYTE("d68-04.18", 0x000002, 0x40000, CRC(4a4e4972) SHA1(5300380a57f70fe91c69f2b1e9d25253081e61da) ) ROM_LOAD32_BYTE("d68-03.17", 0x000003, 0x40000, CRC(a40be699) SHA1(03101d2aef8e7c0c332a3c8c0a025024f6cfe580) ) - ROM_REGION(0xc00000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x600000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d49-01.12", 0x000000, 0x200000, CRC(1dc89f1c) SHA1(9597b1d8c9b447080ca9401aee83bb4a64bb8332) ) ROM_LOAD16_BYTE("d49-02.8", 0x000001, 0x200000, CRC(1e4c374f) SHA1(512edc6a934578d0e7371410a041150d3b13aaad) ) ROM_LOAD16_BYTE("d49-06.11", 0x400000, 0x100000, CRC(71ef4ee1) SHA1(1d7729dbc77f7201ff574e8aef65a55bd81c25a7) ) ROM_LOAD16_BYTE("d49-07.7", 0x400001, 0x100000, CRC(e5655b8f) SHA1(2c21745370bfe9dbf0e95f7ce42ed34a162bff64) ) - ROM_LOAD ("d49-03.4", 0x900000, 0x200000, CRC(cf9a8727) SHA1(f21787fdcdd8be2009c2d481a9b2d7fc03ce782e) ) - ROM_LOAD ("d49-08.3", 0xb00000, 0x100000, CRC(7d3c6536) SHA1(289b4bf79ebd9cbdf64ab956784d226e6d546654) ) - ROM_FILL ( 0x600000, 0x300000, 0x00 ) - ROM_REGION(0x200000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d49-09.47", 0x000000, 0x080000, CRC(257ede01) SHA1(c36397d95706c5e68a7738c84829a51c5e8f5ef7) ) - ROM_LOAD16_BYTE("d49-10.45", 0x000001, 0x080000, CRC(f587b787) SHA1(22db4904c134756ddd0f753f197419d27e60a827) ) - ROM_LOAD ("d49-11.43", 0x180000, 0x080000, CRC(11318b26) SHA1(a7153f9f406d52189f59cbe58d65f88f4e2e6fcc) ) - ROM_FILL ( 0x100000, 0x080000, 0x00 ) + ROM_REGION( 0x300000, "sprites_hi", 0 ) + ROM_LOAD ("d49-03.4", 0x000000, 0x200000, CRC(cf9a8727) SHA1(f21787fdcdd8be2009c2d481a9b2d7fc03ce782e) ) + ROM_LOAD ("d49-08.3", 0x200000, 0x100000, CRC(7d3c6536) SHA1(289b4bf79ebd9cbdf64ab956784d226e6d546654) ) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x100000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d49-09.47", 0x000000, 0x080000, CRC(257ede01) SHA1(c36397d95706c5e68a7738c84829a51c5e8f5ef7) ) + ROM_LOAD32_WORD("d49-10.45", 0x000002, 0x080000, CRC(f587b787) SHA1(22db4904c134756ddd0f753f197419d27e60a827) ) + + ROM_REGION( 0x080000, "tilemap_hi", 0 ) + ROM_LOAD ("d49-11.43", 0x000000, 0x080000, CRC(11318b26) SHA1(a7153f9f406d52189f59cbe58d65f88f4e2e6fcc) ) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("d49-17.32", 0x100000, 0x20000, CRC(f2058eba) SHA1(7faaa94fadf02b6304287b61fb9613f9f4169fef) ) ROM_LOAD16_BYTE("d49-18.33", 0x100001, 0x20000, CRC(a0fdd270) SHA1(9b5a2c8d35ea3bc6842e3c328447c3bf641b9237) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d49-04.38", 0x000000, 0x200000, CRC(44b365a9) SHA1(14c4a6b193a0069360406c74c500ba24f2a55b62) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d49-05.41", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- @@ -1485,94 +1522,100 @@ ROM_START( scfinalso ) /* Cart version */ ROM_END ROM_START( lightbr ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d69-25.ic40", 0x000000, 0x80000, CRC(27f1b8be) SHA1(e5fc47644a000c96056e2013c42272ae5beeb98e) ) ROM_LOAD32_BYTE("d69-26.ic38", 0x000001, 0x80000, CRC(2ff7dba6) SHA1(8757d949f44bb69fbf918852046ed0cd46ab7864) ) ROM_LOAD32_BYTE("d69-28.ic36", 0x000002, 0x80000, CRC(a5546162) SHA1(35d9cd41f379e7fc4092c6c519b158208b977d89) ) ROM_LOAD32_BYTE("d69-27.ic34", 0x000003, 0x80000, CRC(e232a949) SHA1(aa6969e0aa195dbae1aecc4e812c590ab4389174) ) - ROM_REGION(0xc00000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x600000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d69-06.bin", 0x000000, 0x200000, CRC(cb4aac81) SHA1(15d315c6b9695cc2fe07defc67c7a4fb26de1950) ) ROM_LOAD16_BYTE("d69-07.bin", 0x000001, 0x200000, CRC(b749f984) SHA1(39fd662bdc42e812519181a640a83e29e300826a) ) ROM_LOAD16_BYTE("d69-09.bin", 0x400000, 0x100000, CRC(a96c19b8) SHA1(7872b4dd9d51877bed709fec393413e41d6b954f) ) ROM_LOAD16_BYTE("d69-10.bin", 0x400001, 0x100000, CRC(36aa80c6) SHA1(aeb5f7632810564426761b5798539bf4c4a0c64c) ) - ROM_LOAD ("d69-08.bin", 0x900000, 0x200000, CRC(5b68d7d8) SHA1(f2ee3dd7100a3c9d8f402fe36dae2bc66cb17be3) ) - ROM_LOAD ("d69-11.bin", 0xb00000, 0x100000, CRC(c11adf92) SHA1(ee9ce49a43b419c4f44ac1aea8d0a12d7b289244) ) - ROM_FILL ( 0x600000, 0x300000, 0x00 ) - ROM_REGION(0x800000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d69-03.bin", 0x000000, 0x200000, CRC(6999c86f) SHA1(8a91930edfc0b5d23e59f8c3b43131db6edb4d37) ) - ROM_LOAD16_BYTE("d69-04.bin", 0x000001, 0x200000, CRC(cc91dcb7) SHA1(97f510b1e1a3adf49efe82babdd7abce3756ce4b) ) - ROM_LOAD ("d69-05.bin", 0x600000, 0x200000, CRC(f9f5433c) SHA1(d3de66385d883c72967c44bc29983d7a79f665d1) ) - ROM_FILL ( 0x400000, 0x200000, 0x00 ) + ROM_REGION( 0x300000, "sprites_hi", 0 ) + ROM_LOAD ("d69-08.bin", 0x000000, 0x200000, CRC(5b68d7d8) SHA1(f2ee3dd7100a3c9d8f402fe36dae2bc66cb17be3) ) + ROM_LOAD ("d69-11.bin", 0x200000, 0x100000, CRC(c11adf92) SHA1(ee9ce49a43b419c4f44ac1aea8d0a12d7b289244) ) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x400000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d69-03.bin", 0x000000, 0x200000, CRC(6999c86f) SHA1(8a91930edfc0b5d23e59f8c3b43131db6edb4d37) ) + ROM_LOAD32_WORD("d69-04.bin", 0x000002, 0x200000, CRC(cc91dcb7) SHA1(97f510b1e1a3adf49efe82babdd7abce3756ce4b) ) + + ROM_REGION( 0x200000, "tilemap_hi", 0 ) + ROM_LOAD ("d69-05.bin", 0x000000, 0x200000, CRC(f9f5433c) SHA1(d3de66385d883c72967c44bc29983d7a79f665d1) ) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("d69-18.bin", 0x100000, 0x20000, CRC(04600d7b) SHA1(666cfab09b61fd6e0bc4ff277018ebf1cda01b0e) ) ROM_LOAD16_BYTE("d69-19.bin", 0x100001, 0x20000, CRC(1484e853) SHA1(4459c18ba005786483c652857e527c6093efb036) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d69-01.bin", 0x000000, 0x200000, CRC(9ac93ac2) SHA1(1c44f6ba95505f85b0c8a90395f09d2a49da3553) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d69-02.bin", 0x400000, 0x200000, CRC(dce28dd7) SHA1(eacfc98349b0608fc1a944c11f0483fb6caa4445) ) // CC CD -std- ROM_END ROM_START( dungeonm ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d69-20.bin", 0x000000, 0x80000, CRC(33650fe4) SHA1(df8b775749b1f0f02d0df6141597cc49fb3ae227) ) ROM_LOAD32_BYTE("d69-13.bin", 0x000001, 0x80000, CRC(dec2ec17) SHA1(8472a5aaea9e4e4fb5f7f4b5eda356b590d1541d) ) ROM_LOAD32_BYTE("d69-15.bin", 0x000002, 0x80000, CRC(323e1955) SHA1(d76582d1ff5a9aa87a498fea3280bc3c25ee9ec0) ) ROM_LOAD32_BYTE("d69-22.bin", 0x000003, 0x80000, CRC(f99e175d) SHA1(8f5f4710d72faed978e68e6e36703f47e8bab06f) ) - ROM_REGION(0xc00000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x600000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d69-06.bin", 0x000000, 0x200000, CRC(cb4aac81) SHA1(15d315c6b9695cc2fe07defc67c7a4fb26de1950) ) ROM_LOAD16_BYTE("d69-07.bin", 0x000001, 0x200000, CRC(b749f984) SHA1(39fd662bdc42e812519181a640a83e29e300826a) ) ROM_LOAD16_BYTE("d69-09.bin", 0x400000, 0x100000, CRC(a96c19b8) SHA1(7872b4dd9d51877bed709fec393413e41d6b954f) ) ROM_LOAD16_BYTE("d69-10.bin", 0x400001, 0x100000, CRC(36aa80c6) SHA1(aeb5f7632810564426761b5798539bf4c4a0c64c) ) - ROM_LOAD ("d69-08.bin", 0x900000, 0x200000, CRC(5b68d7d8) SHA1(f2ee3dd7100a3c9d8f402fe36dae2bc66cb17be3) ) - ROM_LOAD ("d69-11.bin", 0xb00000, 0x100000, CRC(c11adf92) SHA1(ee9ce49a43b419c4f44ac1aea8d0a12d7b289244) ) - ROM_FILL ( 0x600000, 0x300000, 0x00 ) - ROM_REGION(0x800000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d69-03.bin", 0x000000, 0x200000, CRC(6999c86f) SHA1(8a91930edfc0b5d23e59f8c3b43131db6edb4d37) ) - ROM_LOAD16_BYTE("d69-04.bin", 0x000001, 0x200000, CRC(cc91dcb7) SHA1(97f510b1e1a3adf49efe82babdd7abce3756ce4b) ) - ROM_LOAD ("d69-05.bin", 0x600000, 0x200000, CRC(f9f5433c) SHA1(d3de66385d883c72967c44bc29983d7a79f665d1) ) - ROM_FILL ( 0x400000, 0x200000, 0x00 ) + ROM_REGION( 0x300000, "sprites_hi", 0 ) + ROM_LOAD ("d69-08.bin", 0x000000, 0x200000, CRC(5b68d7d8) SHA1(f2ee3dd7100a3c9d8f402fe36dae2bc66cb17be3) ) + ROM_LOAD ("d69-11.bin", 0x200000, 0x100000, CRC(c11adf92) SHA1(ee9ce49a43b419c4f44ac1aea8d0a12d7b289244) ) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x400000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d69-03.bin", 0x000000, 0x200000, CRC(6999c86f) SHA1(8a91930edfc0b5d23e59f8c3b43131db6edb4d37) ) + ROM_LOAD32_WORD("d69-04.bin", 0x000002, 0x200000, CRC(cc91dcb7) SHA1(97f510b1e1a3adf49efe82babdd7abce3756ce4b) ) + + ROM_REGION( 0x200000, "tilemap_hi", 0 ) + ROM_LOAD ("d69-05.bin", 0x000000, 0x200000, CRC(f9f5433c) SHA1(d3de66385d883c72967c44bc29983d7a79f665d1) ) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("d69-18.bin", 0x100000, 0x20000, CRC(04600d7b) SHA1(666cfab09b61fd6e0bc4ff277018ebf1cda01b0e) ) ROM_LOAD16_BYTE("d69-19.bin", 0x100001, 0x20000, CRC(1484e853) SHA1(4459c18ba005786483c652857e527c6093efb036) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d69-01.bin", 0x000000, 0x200000, CRC(9ac93ac2) SHA1(1c44f6ba95505f85b0c8a90395f09d2a49da3553) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d69-02.bin", 0x400000, 0x200000, CRC(dce28dd7) SHA1(eacfc98349b0608fc1a944c11f0483fb6caa4445) ) // CC CD -std- ROM_END ROM_START( dungeonmu ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d69-20.bin", 0x000000, 0x80000, CRC(33650fe4) SHA1(df8b775749b1f0f02d0df6141597cc49fb3ae227) ) ROM_LOAD32_BYTE("d69-13.bin", 0x000001, 0x80000, CRC(dec2ec17) SHA1(8472a5aaea9e4e4fb5f7f4b5eda356b590d1541d) ) ROM_LOAD32_BYTE("d69-15.bin", 0x000002, 0x80000, CRC(323e1955) SHA1(d76582d1ff5a9aa87a498fea3280bc3c25ee9ec0) ) ROM_LOAD32_BYTE("d69-21.bin", 0x000003, 0x80000, CRC(c9d4e051) SHA1(7c7e76f0d0bca305ff6761aa509d344c2dac8e2e) ) - ROM_REGION(0xc00000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x600000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d69-06.bin", 0x000000, 0x200000, CRC(cb4aac81) SHA1(15d315c6b9695cc2fe07defc67c7a4fb26de1950) ) ROM_LOAD16_BYTE("d69-07.bin", 0x000001, 0x200000, CRC(b749f984) SHA1(39fd662bdc42e812519181a640a83e29e300826a) ) ROM_LOAD16_BYTE("d69-09.bin", 0x400000, 0x100000, CRC(a96c19b8) SHA1(7872b4dd9d51877bed709fec393413e41d6b954f) ) ROM_LOAD16_BYTE("d69-10.bin", 0x400001, 0x100000, CRC(36aa80c6) SHA1(aeb5f7632810564426761b5798539bf4c4a0c64c) ) - ROM_LOAD ("d69-08.bin", 0x900000, 0x200000, CRC(5b68d7d8) SHA1(f2ee3dd7100a3c9d8f402fe36dae2bc66cb17be3) ) - ROM_LOAD ("d69-11.bin", 0xb00000, 0x100000, CRC(c11adf92) SHA1(ee9ce49a43b419c4f44ac1aea8d0a12d7b289244) ) - ROM_FILL ( 0x600000, 0x300000, 0x00 ) - ROM_REGION(0x800000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d69-03.bin", 0x000000, 0x200000, CRC(6999c86f) SHA1(8a91930edfc0b5d23e59f8c3b43131db6edb4d37) ) - ROM_LOAD16_BYTE("d69-04.bin", 0x000001, 0x200000, CRC(cc91dcb7) SHA1(97f510b1e1a3adf49efe82babdd7abce3756ce4b) ) - ROM_LOAD ("d69-05.bin", 0x600000, 0x200000, CRC(f9f5433c) SHA1(d3de66385d883c72967c44bc29983d7a79f665d1) ) - ROM_FILL ( 0x400000, 0x200000, 0x00 ) + ROM_REGION( 0x300000, "sprites_hi", 0 ) + ROM_LOAD ("d69-08.bin", 0x000000, 0x200000, CRC(5b68d7d8) SHA1(f2ee3dd7100a3c9d8f402fe36dae2bc66cb17be3) ) + ROM_LOAD ("d69-11.bin", 0x200000, 0x100000, CRC(c11adf92) SHA1(ee9ce49a43b419c4f44ac1aea8d0a12d7b289244) ) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x400000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d69-03.bin", 0x000000, 0x200000, CRC(6999c86f) SHA1(8a91930edfc0b5d23e59f8c3b43131db6edb4d37) ) + ROM_LOAD32_WORD("d69-04.bin", 0x000002, 0x200000, CRC(cc91dcb7) SHA1(97f510b1e1a3adf49efe82babdd7abce3756ce4b) ) + + ROM_REGION( 0x200000, "tilemap_hi", 0 ) + ROM_LOAD ("d69-05.bin", 0x000000, 0x200000, CRC(f9f5433c) SHA1(d3de66385d883c72967c44bc29983d7a79f665d1) ) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("d69-18.bin", 0x100000, 0x20000, CRC(04600d7b) SHA1(666cfab09b61fd6e0bc4ff277018ebf1cda01b0e) ) ROM_LOAD16_BYTE("d69-19.bin", 0x100001, 0x20000, CRC(1484e853) SHA1(4459c18ba005786483c652857e527c6093efb036) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d69-01.bin", 0x000000, 0x200000, CRC(9ac93ac2) SHA1(1c44f6ba95505f85b0c8a90395f09d2a49da3553) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d69-02.bin", 0x400000, 0x200000, CRC(dce28dd7) SHA1(eacfc98349b0608fc1a944c11f0483fb6caa4445) ) // CC CD -std- ROM_END @@ -1638,135 +1681,143 @@ Notes: */ ROM_START( lightbrj ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d69-20.bin", 0x000000, 0x80000, CRC(33650fe4) SHA1(df8b775749b1f0f02d0df6141597cc49fb3ae227) ) ROM_LOAD32_BYTE("d69-13.bin", 0x000001, 0x80000, CRC(dec2ec17) SHA1(8472a5aaea9e4e4fb5f7f4b5eda356b590d1541d) ) ROM_LOAD32_BYTE("d69-15.bin", 0x000002, 0x80000, CRC(323e1955) SHA1(d76582d1ff5a9aa87a498fea3280bc3c25ee9ec0) ) ROM_LOAD32_BYTE("d69-14.bin", 0x000003, 0x80000, CRC(990bf945) SHA1(797794d7afc1e6e98ce1bfb3de3c241a96a8fa01) ) - ROM_REGION(0xc00000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x600000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d69-06.bin", 0x000000, 0x200000, CRC(cb4aac81) SHA1(15d315c6b9695cc2fe07defc67c7a4fb26de1950) ) ROM_LOAD16_BYTE("d69-07.bin", 0x000001, 0x200000, CRC(b749f984) SHA1(39fd662bdc42e812519181a640a83e29e300826a) ) ROM_LOAD16_BYTE("d69-09.bin", 0x400000, 0x100000, CRC(a96c19b8) SHA1(7872b4dd9d51877bed709fec393413e41d6b954f) ) ROM_LOAD16_BYTE("d69-10.bin", 0x400001, 0x100000, CRC(36aa80c6) SHA1(aeb5f7632810564426761b5798539bf4c4a0c64c) ) - ROM_LOAD ("d69-08.bin", 0x900000, 0x200000, CRC(5b68d7d8) SHA1(f2ee3dd7100a3c9d8f402fe36dae2bc66cb17be3) ) - ROM_LOAD ("d69-11.bin", 0xb00000, 0x100000, CRC(c11adf92) SHA1(ee9ce49a43b419c4f44ac1aea8d0a12d7b289244) ) - ROM_FILL ( 0x600000, 0x300000, 0x00 ) - ROM_REGION(0x800000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d69-03.bin", 0x000000, 0x200000, CRC(6999c86f) SHA1(8a91930edfc0b5d23e59f8c3b43131db6edb4d37) ) - ROM_LOAD16_BYTE("d69-04.bin", 0x000001, 0x200000, CRC(cc91dcb7) SHA1(97f510b1e1a3adf49efe82babdd7abce3756ce4b) ) - ROM_LOAD ("d69-05.bin", 0x600000, 0x200000, CRC(f9f5433c) SHA1(d3de66385d883c72967c44bc29983d7a79f665d1) ) - ROM_FILL ( 0x400000, 0x200000, 0x00 ) + ROM_REGION( 0x300000, "sprites_hi", 0 ) + ROM_LOAD ("d69-08.bin", 0x000000, 0x200000, CRC(5b68d7d8) SHA1(f2ee3dd7100a3c9d8f402fe36dae2bc66cb17be3) ) + ROM_LOAD ("d69-11.bin", 0x200000, 0x100000, CRC(c11adf92) SHA1(ee9ce49a43b419c4f44ac1aea8d0a12d7b289244) ) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x400000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d69-03.bin", 0x000000, 0x200000, CRC(6999c86f) SHA1(8a91930edfc0b5d23e59f8c3b43131db6edb4d37) ) + ROM_LOAD32_WORD("d69-04.bin", 0x000002, 0x200000, CRC(cc91dcb7) SHA1(97f510b1e1a3adf49efe82babdd7abce3756ce4b) ) + + ROM_REGION( 0x200000, "tilemap_hi", 0 ) + ROM_LOAD ("d69-05.bin", 0x000000, 0x200000, CRC(f9f5433c) SHA1(d3de66385d883c72967c44bc29983d7a79f665d1) ) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("d69-18.bin", 0x100000, 0x20000, CRC(04600d7b) SHA1(666cfab09b61fd6e0bc4ff277018ebf1cda01b0e) ) ROM_LOAD16_BYTE("d69-19.bin", 0x100001, 0x20000, CRC(1484e853) SHA1(4459c18ba005786483c652857e527c6093efb036) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d69-01.bin", 0x000000, 0x200000, CRC(9ac93ac2) SHA1(1c44f6ba95505f85b0c8a90395f09d2a49da3553) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d69-02.bin", 0x400000, 0x200000, CRC(dce28dd7) SHA1(eacfc98349b0608fc1a944c11f0483fb6caa4445) ) // CC CD -std- ROM_END ROM_START( intcup94 ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d78-07.20", 0x000000, 0x20000, CRC(8525d990) SHA1(b28aeb8727d615cae9eafd7710bf833a612ef7d4) ) ROM_LOAD32_BYTE("d78-06.19", 0x000001, 0x20000, CRC(42db1d41) SHA1(daf617764b04cd24e76dfa95423213c2a3692068) ) ROM_LOAD32_BYTE("d78-05.18", 0x000002, 0x20000, CRC(5f7fbbbc) SHA1(8936bcc4026b2819b8708911c9defe4436d070ad) ) ROM_LOAD32_BYTE("d78-11.17", 0x000003, 0x20000, CRC(bb9d2987) SHA1(98bea0346702eefd9f6f1839b95932b9b8bca902) ) - ROM_REGION(0xc00000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x600000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d49-01.12", 0x000000, 0x200000, CRC(1dc89f1c) SHA1(9597b1d8c9b447080ca9401aee83bb4a64bb8332) ) ROM_LOAD16_BYTE("d49-02.8", 0x000001, 0x200000, CRC(1e4c374f) SHA1(512edc6a934578d0e7371410a041150d3b13aaad) ) ROM_LOAD16_BYTE("d49-06.11", 0x400000, 0x100000, CRC(71ef4ee1) SHA1(1d7729dbc77f7201ff574e8aef65a55bd81c25a7) ) ROM_LOAD16_BYTE("d49-07.7", 0x400001, 0x100000, CRC(e5655b8f) SHA1(2c21745370bfe9dbf0e95f7ce42ed34a162bff64) ) - ROM_LOAD ("d49-03.4", 0x900000, 0x200000, CRC(cf9a8727) SHA1(f21787fdcdd8be2009c2d481a9b2d7fc03ce782e) ) - ROM_LOAD ("d49-08.3", 0xb00000, 0x100000, CRC(7d3c6536) SHA1(289b4bf79ebd9cbdf64ab956784d226e6d546654) ) - ROM_FILL ( 0x600000, 0x300000, 0x00 ) - ROM_REGION(0x200000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d78-01.47", 0x000000, 0x080000, CRC(543f8967) SHA1(2efa935e7d0fd317bbbad2758a618d408a56317c) ) - ROM_LOAD16_BYTE("d78-02.45", 0x000001, 0x080000, CRC(e8289394) SHA1(b9957675f868f772943678b6a19fcc21dfd97a8d) ) - ROM_LOAD ("d78-03.43", 0x180000, 0x080000, CRC(a8bc36e5) SHA1(5777b9457292e8a9cbb4e8226ba939530ffab07c) ) - ROM_FILL ( 0x100000, 0x080000, 0x00 ) + ROM_REGION( 0x300000, "sprites_hi", 0 ) + ROM_LOAD ("d49-03.4", 0x000000, 0x200000, CRC(cf9a8727) SHA1(f21787fdcdd8be2009c2d481a9b2d7fc03ce782e) ) + ROM_LOAD ("d49-08.3", 0x200000, 0x100000, CRC(7d3c6536) SHA1(289b4bf79ebd9cbdf64ab956784d226e6d546654) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x100000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d78-01.47", 0x000000, 0x080000, CRC(543f8967) SHA1(2efa935e7d0fd317bbbad2758a618d408a56317c) ) + ROM_LOAD32_WORD("d78-02.45", 0x000002, 0x080000, CRC(e8289394) SHA1(b9957675f868f772943678b6a19fcc21dfd97a8d) ) + + ROM_REGION( 0x080000, "tilemap_hi", 0 ) + ROM_LOAD ("d78-03.43", 0x000000, 0x080000, CRC(a8bc36e5) SHA1(5777b9457292e8a9cbb4e8226ba939530ffab07c) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("d78-08.32", 0x100000, 0x20000, CRC(a629d07c) SHA1(b2904e106633a3960ceb2bc58b600ea60034ff0b) ) ROM_LOAD16_BYTE("d78-09.33", 0x100001, 0x20000, CRC(1f0efe01) SHA1(7bff748b9fcee170e430d90ee07eb9975d8fba59) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d49-04.38", 0x000000, 0x200000, CRC(44b365a9) SHA1(14c4a6b193a0069360406c74c500ba24f2a55b62) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d49-05.41", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- ROM_END ROM_START( hthero94 ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d78-07.20", 0x000000, 0x20000, CRC(8525d990) SHA1(b28aeb8727d615cae9eafd7710bf833a612ef7d4) ) ROM_LOAD32_BYTE("d78-06.19", 0x000001, 0x20000, CRC(42db1d41) SHA1(daf617764b04cd24e76dfa95423213c2a3692068) ) ROM_LOAD32_BYTE("d78-05.18", 0x000002, 0x20000, CRC(5f7fbbbc) SHA1(8936bcc4026b2819b8708911c9defe4436d070ad) ) ROM_LOAD32_BYTE("d78-10.17", 0x000003, 0x20000, CRC(cc9a1911) SHA1(341b6c33b182e3a64a22f1dc43e9cf72c6aeea7b) ) - ROM_REGION(0xc00000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x600000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d49-01.12", 0x000000, 0x200000, CRC(1dc89f1c) SHA1(9597b1d8c9b447080ca9401aee83bb4a64bb8332) ) ROM_LOAD16_BYTE("d49-02.8", 0x000001, 0x200000, CRC(1e4c374f) SHA1(512edc6a934578d0e7371410a041150d3b13aaad) ) ROM_LOAD16_BYTE("d49-06.11", 0x400000, 0x100000, CRC(71ef4ee1) SHA1(1d7729dbc77f7201ff574e8aef65a55bd81c25a7) ) ROM_LOAD16_BYTE("d49-07.7", 0x400001, 0x100000, CRC(e5655b8f) SHA1(2c21745370bfe9dbf0e95f7ce42ed34a162bff64) ) - ROM_LOAD ("d49-03.4", 0x900000, 0x200000, CRC(cf9a8727) SHA1(f21787fdcdd8be2009c2d481a9b2d7fc03ce782e) ) - ROM_LOAD ("d49-08.3", 0xb00000, 0x100000, CRC(7d3c6536) SHA1(289b4bf79ebd9cbdf64ab956784d226e6d546654) ) - ROM_FILL ( 0x600000, 0x300000, 0x00 ) - ROM_REGION(0x200000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d78-01.47", 0x000000, 0x080000, CRC(543f8967) SHA1(2efa935e7d0fd317bbbad2758a618d408a56317c) ) - ROM_LOAD16_BYTE("d78-02.45", 0x000001, 0x080000, CRC(e8289394) SHA1(b9957675f868f772943678b6a19fcc21dfd97a8d) ) - ROM_LOAD ("d78-03.43", 0x180000, 0x080000, CRC(a8bc36e5) SHA1(5777b9457292e8a9cbb4e8226ba939530ffab07c) ) - ROM_FILL ( 0x100000, 0x080000, 0x00 ) + ROM_REGION( 0x300000, "sprites_hi", 0 ) + ROM_LOAD ("d49-03.4", 0x000000, 0x200000, CRC(cf9a8727) SHA1(f21787fdcdd8be2009c2d481a9b2d7fc03ce782e) ) + ROM_LOAD ("d49-08.3", 0x200000, 0x100000, CRC(7d3c6536) SHA1(289b4bf79ebd9cbdf64ab956784d226e6d546654) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x100000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d78-01.47", 0x000000, 0x080000, CRC(543f8967) SHA1(2efa935e7d0fd317bbbad2758a618d408a56317c) ) + ROM_LOAD32_WORD("d78-02.45", 0x000002, 0x080000, CRC(e8289394) SHA1(b9957675f868f772943678b6a19fcc21dfd97a8d) ) + + ROM_REGION( 0x080000, "tilemap_hi", 0 ) + ROM_LOAD ("d78-03.43", 0x000000, 0x080000, CRC(a8bc36e5) SHA1(5777b9457292e8a9cbb4e8226ba939530ffab07c) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("d78-08.32", 0x100000, 0x20000, CRC(a629d07c) SHA1(b2904e106633a3960ceb2bc58b600ea60034ff0b) ) ROM_LOAD16_BYTE("d78-09.33", 0x100001, 0x20000, CRC(1f0efe01) SHA1(7bff748b9fcee170e430d90ee07eb9975d8fba59) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d49-04.38", 0x000000, 0x200000, CRC(44b365a9) SHA1(14c4a6b193a0069360406c74c500ba24f2a55b62) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d49-05.41", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- ROM_END ROM_START( recalh ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("rh_mpr3.bin", 0x000000, 0x80000, CRC(65202dd4) SHA1(8d5748d03868b127a7d727e00c1bce51a5bae129) ) ROM_LOAD32_BYTE("rh_mpr2.bin", 0x000001, 0x80000, CRC(3eda66db) SHA1(6d726762404d85008d6bebe5a77cebe505b650fc) ) ROM_LOAD32_BYTE("rh_mpr1.bin", 0x000002, 0x80000, CRC(536e74ca) SHA1(2a50bb2e93563273c4b0c0c59143893fe25d007e) ) ROM_LOAD32_BYTE("rh_mpr0.bin", 0x000003, 0x80000, CRC(38025817) SHA1(fa4cf98cfca95c462b19b873a7660f7cec71cf56) ) - ROM_REGION(0x400000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x200000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("rh_objl.bin", 0x000000, 0x100000, CRC(c1772b55) SHA1(f9a04b968c63e61fa8ca60d6f331f6df0d7dd10a) ) ROM_LOAD16_BYTE("rh_objm.bin", 0x000001, 0x100000, CRC(ef87c0fd) SHA1(63e99f331d05a1ff4faf0ea94019393fe2117f54) ) - ROM_FILL ( 0x200000, 0x200000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("rh_scrl.bin", 0x000000, 0x100000, CRC(1e3f6b79) SHA1(fef029def6393a13f4a638686a7ec7c13851a5c0) ) - ROM_LOAD16_BYTE("rh_scrm.bin", 0x000001, 0x100000, CRC(37200968) SHA1(4a8d5a17af7eb732f481bf174099845e8d8d6b87) ) - ROM_FILL ( 0x200000, 0x200000, 0x00 ) + EMPTY_SPRITE_HIDATA(0x100000) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("rh_scrl.bin", 0x000000, 0x100000, CRC(1e3f6b79) SHA1(fef029def6393a13f4a638686a7ec7c13851a5c0) ) + ROM_LOAD32_WORD("rh_scrm.bin", 0x000002, 0x100000, CRC(37200968) SHA1(4a8d5a17af7eb732f481bf174099845e8d8d6b87) ) + + EMPTY_TILEMAP_HIDATA(0x100000) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* sound CPU */ ROM_LOAD16_BYTE("rh_spr1.bin", 0x100000, 0x20000, CRC(504cbc1d) SHA1(35a775c1ebc8107c553e43b9d84eb735446c26fd) ) ROM_LOAD16_BYTE("rh_spr0.bin", 0x100001, 0x20000, CRC(78fba467) SHA1(4586b061724be7ec413784b820c33cc0d6bbcd0c) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("rh_snd0.bin", 0x000000, 0x200000, CRC(386f5e1b) SHA1(d67d5f057c6db3092643f10ea10f977b1caa662f) ) // C8 CB CA C9 // half empty ROM_LOAD16_BYTE("rh_snd1.bin", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- ROM_END ROM_START( kaiserkn ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d84-25.20", 0x000000, 0x80000, CRC(2840893f) SHA1(079dece4667b029189622476cc618b88e57243a6) ) ROM_LOAD32_BYTE("d84-24.19", 0x000001, 0x80000, CRC(bf20c755) SHA1(9f6edfe9bb40051e8a93d06a391c993ed7288db6) ) ROM_LOAD32_BYTE("d84-23.18", 0x000002, 0x80000, CRC(39f12a9b) SHA1(4b3fe9b8b0abb46feacd11ffb6b505568f892483) ) ROM_LOAD32_BYTE("d84-29.17", 0x000003, 0x80000, CRC(9821f17a) SHA1(4a2c1ebeb1a1d3d756957956c883f8374aaf4f8d) ) - ROM_REGION(0x1a00000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0xd00000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d84-03.rom", 0x0000000, 0x200000, CRC(d786f552) SHA1(f73146892f714b5706d568fc8a135fddaa656570) ) ROM_LOAD16_BYTE("d84-04.rom", 0x0000001, 0x200000, CRC(d1f32b5d) SHA1(35289cce64fdbb8d966dd1d5307b5393be5e7799) ) ROM_LOAD16_BYTE("d84-06.rom", 0x0400000, 0x200000, CRC(fa924dab) SHA1(28a8c3cd701f8df0c53069bb576bb2a820f3a331) ) @@ -1775,26 +1826,28 @@ ROM_START( kaiserkn ) ROM_LOAD16_BYTE("d84-10.rom", 0x0800001, 0x200000, CRC(b84b7320) SHA1(f5de0d6da50d8ed753607b51e46bc9a4572ef431) ) ROM_LOAD16_BYTE("d84-19.rom", 0x0c00000, 0x080000, CRC(6ddf77e5) SHA1(a1323acaed37fce62a19e63a0800d9d1dc2cfff7) ) ROM_LOAD16_BYTE("d84-20.rom", 0x0c00001, 0x080000, CRC(f85041e5) SHA1(6b2814514338f550d6aa14dbe39e848e8e64edee) ) - ROM_LOAD ("d84-05.rom", 0x1380000, 0x200000, CRC(31a3c75d) SHA1(1a16ccb6a0a03ab715e5b016ab3b1b2cd0f1ae41) ) - ROM_LOAD ("d84-08.rom", 0x1580000, 0x200000, CRC(07347bf1) SHA1(34bd359933acdec7fd1ce047092a30d1177afc2c) ) - ROM_LOAD ("d84-11.rom", 0x1780000, 0x200000, CRC(a062c1d4) SHA1(158912aa3dd75c3961bf738f9ac9034f0b005b60) ) - ROM_LOAD ("d84-21.rom", 0x1980000, 0x080000, CRC(89f68b66) SHA1(95916f02f71357324effe59da4f847f2f30ea34a) ) - ROM_FILL ( 0x0d00000, 0x680000, 0x00 ) - ROM_REGION(0xc00000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d84-12.rom", 0x000000, 0x200000, CRC(66a7a9aa) SHA1(a7d21f8b6370d16de3c1569019f2ad71d36e7a61) ) - ROM_LOAD16_BYTE("d84-13.rom", 0x000001, 0x200000, CRC(ae125516) SHA1(d54e76e398ab0b0fb82f3154ba54fc823ff49a1a) ) - ROM_LOAD16_BYTE("d84-16.rom", 0x400000, 0x100000, CRC(bcff9b2d) SHA1(0ca50ec809564eddf0ba7448a8fae9087d3b600b) ) - ROM_LOAD16_BYTE("d84-17.rom", 0x400001, 0x100000, CRC(0be37cc3) SHA1(b10c10b93858cad0c962ef614cfd6daea712ef6b) ) - ROM_LOAD ("d84-14.rom", 0x900000, 0x200000, CRC(2b2e693e) SHA1(03eb37fa7dc68d54bf0f1800b8c0b581c344a40f) ) - ROM_LOAD ("d84-18.rom", 0xb00000, 0x100000, CRC(e812bcc5) SHA1(3574e4a99232d9fc7989ec5d1e8fe76b4b30784a) ) - ROM_FILL ( 0x600000, 0x300000, 0x00 ) + ROM_REGION( 0x680000, "sprites_hi", 0 ) + ROM_LOAD ("d84-05.rom", 0x0000000, 0x200000, CRC(31a3c75d) SHA1(1a16ccb6a0a03ab715e5b016ab3b1b2cd0f1ae41) ) + ROM_LOAD ("d84-08.rom", 0x0200000, 0x200000, CRC(07347bf1) SHA1(34bd359933acdec7fd1ce047092a30d1177afc2c) ) + ROM_LOAD ("d84-11.rom", 0x0400000, 0x200000, CRC(a062c1d4) SHA1(158912aa3dd75c3961bf738f9ac9034f0b005b60) ) + ROM_LOAD ("d84-21.rom", 0x0600000, 0x080000, CRC(89f68b66) SHA1(95916f02f71357324effe59da4f847f2f30ea34a) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x600000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d84-12.rom", 0x000000, 0x200000, CRC(66a7a9aa) SHA1(a7d21f8b6370d16de3c1569019f2ad71d36e7a61) ) + ROM_LOAD32_WORD("d84-13.rom", 0x000002, 0x200000, CRC(ae125516) SHA1(d54e76e398ab0b0fb82f3154ba54fc823ff49a1a) ) + ROM_LOAD32_WORD("d84-16.rom", 0x400000, 0x100000, CRC(bcff9b2d) SHA1(0ca50ec809564eddf0ba7448a8fae9087d3b600b) ) + ROM_LOAD32_WORD("d84-17.rom", 0x400002, 0x100000, CRC(0be37cc3) SHA1(b10c10b93858cad0c962ef614cfd6daea712ef6b) ) + + ROM_REGION( 0x300000, "tilemap_hi", 0 ) + ROM_LOAD ("d84-14.rom", 0x000000, 0x200000, CRC(2b2e693e) SHA1(03eb37fa7dc68d54bf0f1800b8c0b581c344a40f) ) + ROM_LOAD ("d84-18.rom", 0x200000, 0x100000, CRC(e812bcc5) SHA1(3574e4a99232d9fc7989ec5d1e8fe76b4b30784a) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("d84-26.32", 0x100000, 0x40000, CRC(4f5b8563) SHA1(1d4e06cbea7bc73a99d6e30be714fff420151bbc) ) ROM_LOAD16_BYTE("d84-27.33", 0x100001, 0x40000, CRC(fb0cb1ba) SHA1(16a79b53651a6131f7636db19738b456b7c28bff) ) - ROM_REGION16_BE(0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks // empty ROM_LOAD16_BYTE("d84-01.rom", 0x400000, 0x200000, CRC(9ad22149) SHA1(48055822e0cea228cdecf3d05ac24e50979b6f4d) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d84-02.rom", 0x800000, 0x200000, CRC(9e1827e4) SHA1(1840881b0f8f7b6225e6ffa12a8d4b463554988e) ) // CC CD CE CF @@ -1803,13 +1856,13 @@ ROM_START( kaiserkn ) ROM_END ROM_START( kaiserknj ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d84-25.20", 0x000000, 0x80000, CRC(2840893f) SHA1(079dece4667b029189622476cc618b88e57243a6) ) ROM_LOAD32_BYTE("d84-24.19", 0x000001, 0x80000, CRC(bf20c755) SHA1(9f6edfe9bb40051e8a93d06a391c993ed7288db6) ) ROM_LOAD32_BYTE("d84-23.18", 0x000002, 0x80000, CRC(39f12a9b) SHA1(4b3fe9b8b0abb46feacd11ffb6b505568f892483) ) ROM_LOAD32_BYTE("d84-22.17", 0x000003, 0x80000, CRC(762f9056) SHA1(c39854d865210d05fe745493098ef5990327c56e) ) - ROM_REGION(0x1a00000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0xd00000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d84-03.rom", 0x0000000, 0x200000, CRC(d786f552) SHA1(f73146892f714b5706d568fc8a135fddaa656570) ) ROM_LOAD16_BYTE("d84-04.rom", 0x0000001, 0x200000, CRC(d1f32b5d) SHA1(35289cce64fdbb8d966dd1d5307b5393be5e7799) ) ROM_LOAD16_BYTE("d84-06.rom", 0x0400000, 0x200000, CRC(fa924dab) SHA1(28a8c3cd701f8df0c53069bb576bb2a820f3a331) ) @@ -1818,26 +1871,28 @@ ROM_START( kaiserknj ) ROM_LOAD16_BYTE("d84-10.rom", 0x0800001, 0x200000, CRC(b84b7320) SHA1(f5de0d6da50d8ed753607b51e46bc9a4572ef431) ) ROM_LOAD16_BYTE("d84-19.rom", 0x0c00000, 0x080000, CRC(6ddf77e5) SHA1(a1323acaed37fce62a19e63a0800d9d1dc2cfff7) ) ROM_LOAD16_BYTE("d84-20.rom", 0x0c00001, 0x080000, CRC(f85041e5) SHA1(6b2814514338f550d6aa14dbe39e848e8e64edee) ) - ROM_LOAD ("d84-05.rom", 0x1380000, 0x200000, CRC(31a3c75d) SHA1(1a16ccb6a0a03ab715e5b016ab3b1b2cd0f1ae41) ) - ROM_LOAD ("d84-08.rom", 0x1580000, 0x200000, CRC(07347bf1) SHA1(34bd359933acdec7fd1ce047092a30d1177afc2c) ) - ROM_LOAD ("d84-11.rom", 0x1780000, 0x200000, CRC(a062c1d4) SHA1(158912aa3dd75c3961bf738f9ac9034f0b005b60) ) - ROM_LOAD ("d84-21.rom", 0x1980000, 0x080000, CRC(89f68b66) SHA1(95916f02f71357324effe59da4f847f2f30ea34a) ) - ROM_FILL ( 0x0d00000, 0x680000, 0x00 ) - ROM_REGION(0xc00000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d84-12.rom", 0x000000, 0x200000, CRC(66a7a9aa) SHA1(a7d21f8b6370d16de3c1569019f2ad71d36e7a61) ) - ROM_LOAD16_BYTE("d84-13.rom", 0x000001, 0x200000, CRC(ae125516) SHA1(d54e76e398ab0b0fb82f3154ba54fc823ff49a1a) ) - ROM_LOAD16_BYTE("d84-16.rom", 0x400000, 0x100000, CRC(bcff9b2d) SHA1(0ca50ec809564eddf0ba7448a8fae9087d3b600b) ) - ROM_LOAD16_BYTE("d84-17.rom", 0x400001, 0x100000, CRC(0be37cc3) SHA1(b10c10b93858cad0c962ef614cfd6daea712ef6b) ) - ROM_LOAD ("d84-14.rom", 0x900000, 0x200000, CRC(2b2e693e) SHA1(03eb37fa7dc68d54bf0f1800b8c0b581c344a40f) ) - ROM_LOAD ("d84-18.rom", 0xb00000, 0x100000, CRC(e812bcc5) SHA1(3574e4a99232d9fc7989ec5d1e8fe76b4b30784a) ) - ROM_FILL ( 0x600000, 0x300000, 0x00 ) + ROM_REGION( 0x680000, "sprites_hi", 0 ) + ROM_LOAD ("d84-05.rom", 0x0000000, 0x200000, CRC(31a3c75d) SHA1(1a16ccb6a0a03ab715e5b016ab3b1b2cd0f1ae41) ) + ROM_LOAD ("d84-08.rom", 0x0200000, 0x200000, CRC(07347bf1) SHA1(34bd359933acdec7fd1ce047092a30d1177afc2c) ) + ROM_LOAD ("d84-11.rom", 0x0400000, 0x200000, CRC(a062c1d4) SHA1(158912aa3dd75c3961bf738f9ac9034f0b005b60) ) + ROM_LOAD ("d84-21.rom", 0x0600000, 0x080000, CRC(89f68b66) SHA1(95916f02f71357324effe59da4f847f2f30ea34a) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x600000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d84-12.rom", 0x000000, 0x200000, CRC(66a7a9aa) SHA1(a7d21f8b6370d16de3c1569019f2ad71d36e7a61) ) + ROM_LOAD32_WORD("d84-13.rom", 0x000002, 0x200000, CRC(ae125516) SHA1(d54e76e398ab0b0fb82f3154ba54fc823ff49a1a) ) + ROM_LOAD32_WORD("d84-16.rom", 0x400000, 0x100000, CRC(bcff9b2d) SHA1(0ca50ec809564eddf0ba7448a8fae9087d3b600b) ) + ROM_LOAD32_WORD("d84-17.rom", 0x400002, 0x100000, CRC(0be37cc3) SHA1(b10c10b93858cad0c962ef614cfd6daea712ef6b) ) + + ROM_REGION( 0x300000, "tilemap_hi", 0 ) + ROM_LOAD ("d84-14.rom", 0x000000, 0x200000, CRC(2b2e693e) SHA1(03eb37fa7dc68d54bf0f1800b8c0b581c344a40f) ) + ROM_LOAD ("d84-18.rom", 0x200000, 0x100000, CRC(e812bcc5) SHA1(3574e4a99232d9fc7989ec5d1e8fe76b4b30784a) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("d84-26.32", 0x100000, 0x40000, CRC(4f5b8563) SHA1(1d4e06cbea7bc73a99d6e30be714fff420151bbc) ) ROM_LOAD16_BYTE("d84-27.33", 0x100001, 0x40000, CRC(fb0cb1ba) SHA1(16a79b53651a6131f7636db19738b456b7c28bff) ) - ROM_REGION16_BE(0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks // empty ROM_LOAD16_BYTE("d84-01.rom", 0x400000, 0x200000, CRC(9ad22149) SHA1(48055822e0cea228cdecf3d05ac24e50979b6f4d) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d84-02.rom", 0x800000, 0x200000, CRC(9e1827e4) SHA1(1840881b0f8f7b6225e6ffa12a8d4b463554988e) ) // CC CD CE CF @@ -1846,13 +1901,13 @@ ROM_START( kaiserknj ) ROM_END ROM_START( gblchmp ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d84-25.20", 0x000000, 0x80000, CRC(2840893f) SHA1(079dece4667b029189622476cc618b88e57243a6) ) ROM_LOAD32_BYTE("d84-24.19", 0x000001, 0x80000, CRC(bf20c755) SHA1(9f6edfe9bb40051e8a93d06a391c993ed7288db6) ) ROM_LOAD32_BYTE("d84-23.18", 0x000002, 0x80000, CRC(39f12a9b) SHA1(4b3fe9b8b0abb46feacd11ffb6b505568f892483) ) ROM_LOAD32_BYTE("d84-28.17", 0x000003, 0x80000, CRC(ef26c1ec) SHA1(99440573704252b59148b3c30a006ce152b30ada) ) - ROM_REGION(0x1a00000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0xd00000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d84-03.rom", 0x0000000, 0x200000, CRC(d786f552) SHA1(f73146892f714b5706d568fc8a135fddaa656570) ) ROM_LOAD16_BYTE("d84-04.rom", 0x0000001, 0x200000, CRC(d1f32b5d) SHA1(35289cce64fdbb8d966dd1d5307b5393be5e7799) ) ROM_LOAD16_BYTE("d84-06.rom", 0x0400000, 0x200000, CRC(fa924dab) SHA1(28a8c3cd701f8df0c53069bb576bb2a820f3a331) ) @@ -1861,26 +1916,28 @@ ROM_START( gblchmp ) ROM_LOAD16_BYTE("d84-10.rom", 0x0800001, 0x200000, CRC(b84b7320) SHA1(f5de0d6da50d8ed753607b51e46bc9a4572ef431) ) ROM_LOAD16_BYTE("d84-19.rom", 0x0c00000, 0x080000, CRC(6ddf77e5) SHA1(a1323acaed37fce62a19e63a0800d9d1dc2cfff7) ) ROM_LOAD16_BYTE("d84-20.rom", 0x0c00001, 0x080000, CRC(f85041e5) SHA1(6b2814514338f550d6aa14dbe39e848e8e64edee) ) - ROM_LOAD ("d84-05.rom", 0x1380000, 0x200000, CRC(31a3c75d) SHA1(1a16ccb6a0a03ab715e5b016ab3b1b2cd0f1ae41) ) - ROM_LOAD ("d84-08.rom", 0x1580000, 0x200000, CRC(07347bf1) SHA1(34bd359933acdec7fd1ce047092a30d1177afc2c) ) - ROM_LOAD ("d84-11.rom", 0x1780000, 0x200000, CRC(a062c1d4) SHA1(158912aa3dd75c3961bf738f9ac9034f0b005b60) ) - ROM_LOAD ("d84-21.rom", 0x1980000, 0x080000, CRC(89f68b66) SHA1(95916f02f71357324effe59da4f847f2f30ea34a) ) - ROM_FILL ( 0x0d00000, 0x680000, 0x00 ) - ROM_REGION(0xc00000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d84-12.rom", 0x000000, 0x200000, CRC(66a7a9aa) SHA1(a7d21f8b6370d16de3c1569019f2ad71d36e7a61) ) - ROM_LOAD16_BYTE("d84-13.rom", 0x000001, 0x200000, CRC(ae125516) SHA1(d54e76e398ab0b0fb82f3154ba54fc823ff49a1a) ) - ROM_LOAD16_BYTE("d84-16.rom", 0x400000, 0x100000, CRC(bcff9b2d) SHA1(0ca50ec809564eddf0ba7448a8fae9087d3b600b) ) - ROM_LOAD16_BYTE("d84-17.rom", 0x400001, 0x100000, CRC(0be37cc3) SHA1(b10c10b93858cad0c962ef614cfd6daea712ef6b) ) - ROM_LOAD ("d84-14.rom", 0x900000, 0x200000, CRC(2b2e693e) SHA1(03eb37fa7dc68d54bf0f1800b8c0b581c344a40f) ) - ROM_LOAD ("d84-18.rom", 0xb00000, 0x100000, CRC(e812bcc5) SHA1(3574e4a99232d9fc7989ec5d1e8fe76b4b30784a) ) - ROM_FILL ( 0x600000, 0x300000, 0x00 ) + ROM_REGION( 0x680000, "sprites_hi", 0 ) + ROM_LOAD ("d84-05.rom", 0x0000000, 0x200000, CRC(31a3c75d) SHA1(1a16ccb6a0a03ab715e5b016ab3b1b2cd0f1ae41) ) + ROM_LOAD ("d84-08.rom", 0x0200000, 0x200000, CRC(07347bf1) SHA1(34bd359933acdec7fd1ce047092a30d1177afc2c) ) + ROM_LOAD ("d84-11.rom", 0x0400000, 0x200000, CRC(a062c1d4) SHA1(158912aa3dd75c3961bf738f9ac9034f0b005b60) ) + ROM_LOAD ("d84-21.rom", 0x0600000, 0x080000, CRC(89f68b66) SHA1(95916f02f71357324effe59da4f847f2f30ea34a) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x600000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d84-12.rom", 0x000000, 0x200000, CRC(66a7a9aa) SHA1(a7d21f8b6370d16de3c1569019f2ad71d36e7a61) ) + ROM_LOAD32_WORD("d84-13.rom", 0x000002, 0x200000, CRC(ae125516) SHA1(d54e76e398ab0b0fb82f3154ba54fc823ff49a1a) ) + ROM_LOAD32_WORD("d84-16.rom", 0x400000, 0x100000, CRC(bcff9b2d) SHA1(0ca50ec809564eddf0ba7448a8fae9087d3b600b) ) + ROM_LOAD32_WORD("d84-17.rom", 0x400002, 0x100000, CRC(0be37cc3) SHA1(b10c10b93858cad0c962ef614cfd6daea712ef6b) ) + + ROM_REGION( 0x300000, "tilemap_hi", 0 ) + ROM_LOAD ("d84-14.rom", 0x000000, 0x200000, CRC(2b2e693e) SHA1(03eb37fa7dc68d54bf0f1800b8c0b581c344a40f) ) + ROM_LOAD ("d84-18.rom", 0x200000, 0x100000, CRC(e812bcc5) SHA1(3574e4a99232d9fc7989ec5d1e8fe76b4b30784a) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("d84-26.32", 0x100000, 0x40000, CRC(4f5b8563) SHA1(1d4e06cbea7bc73a99d6e30be714fff420151bbc) ) ROM_LOAD16_BYTE("d84-27.33", 0x100001, 0x40000, CRC(fb0cb1ba) SHA1(16a79b53651a6131f7636db19738b456b7c28bff) ) - ROM_REGION16_BE(0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks // empty ROM_LOAD16_BYTE("d84-01.rom", 0x400000, 0x200000, CRC(9ad22149) SHA1(48055822e0cea228cdecf3d05ac24e50979b6f4d) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d84-02.rom", 0x800000, 0x200000, CRC(9e1827e4) SHA1(1840881b0f8f7b6225e6ffa12a8d4b463554988e) ) // CC CD CE CF @@ -1889,13 +1946,13 @@ ROM_START( gblchmp ) ROM_END ROM_START( dankuga ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("dkg_mpr3.20", 0x000000, 0x80000, CRC(ee1531ca) SHA1(5a78f44906c77a3195cbb41d256292255275643f) ) ROM_LOAD32_BYTE("dkg_mpr2.19", 0x000001, 0x80000, CRC(18a4748b) SHA1(31b912b532329d2cbd43df44f21e0923af7157d5) ) ROM_LOAD32_BYTE("dkg_mpr1.18", 0x000002, 0x80000, CRC(97566f69) SHA1(2f1ae6b9a463f20beea1558278741ddfe3901a6d) ) ROM_LOAD32_BYTE("dkg_mpr0.17", 0x000003, 0x80000, CRC(ad6ada07) SHA1(124db0cf8a5fbd99525633a2f783a0e1b281badf) ) - ROM_REGION(0x1a00000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0xd00000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d84-03.rom", 0x0000000, 0x200000, CRC(d786f552) SHA1(f73146892f714b5706d568fc8a135fddaa656570) ) ROM_LOAD16_BYTE("d84-04.rom", 0x0000001, 0x200000, CRC(d1f32b5d) SHA1(35289cce64fdbb8d966dd1d5307b5393be5e7799) ) ROM_LOAD16_BYTE("d84-06.rom", 0x0400000, 0x200000, CRC(fa924dab) SHA1(28a8c3cd701f8df0c53069bb576bb2a820f3a331) ) @@ -1904,26 +1961,28 @@ ROM_START( dankuga ) ROM_LOAD16_BYTE("d84-10.rom", 0x0800001, 0x200000, CRC(b84b7320) SHA1(f5de0d6da50d8ed753607b51e46bc9a4572ef431) ) ROM_LOAD16_BYTE("d84-19.rom", 0x0c00000, 0x080000, CRC(6ddf77e5) SHA1(a1323acaed37fce62a19e63a0800d9d1dc2cfff7) ) ROM_LOAD16_BYTE("d84-20.rom", 0x0c00001, 0x080000, CRC(f85041e5) SHA1(6b2814514338f550d6aa14dbe39e848e8e64edee) ) - ROM_LOAD ("d84-05.rom", 0x1380000, 0x200000, CRC(31a3c75d) SHA1(1a16ccb6a0a03ab715e5b016ab3b1b2cd0f1ae41) ) - ROM_LOAD ("d84-08.rom", 0x1580000, 0x200000, CRC(07347bf1) SHA1(34bd359933acdec7fd1ce047092a30d1177afc2c) ) - ROM_LOAD ("d84-11.rom", 0x1780000, 0x200000, CRC(a062c1d4) SHA1(158912aa3dd75c3961bf738f9ac9034f0b005b60) ) - ROM_LOAD ("d84-21.rom", 0x1980000, 0x080000, CRC(89f68b66) SHA1(95916f02f71357324effe59da4f847f2f30ea34a) ) - ROM_FILL ( 0x0d00000, 0x680000, 0x00 ) - ROM_REGION(0xc00000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d84-12.rom", 0x000000, 0x200000, CRC(66a7a9aa) SHA1(a7d21f8b6370d16de3c1569019f2ad71d36e7a61) ) - ROM_LOAD16_BYTE("d84-13.rom", 0x000001, 0x200000, CRC(ae125516) SHA1(d54e76e398ab0b0fb82f3154ba54fc823ff49a1a) ) - ROM_LOAD16_BYTE("d84-16.rom", 0x400000, 0x100000, CRC(bcff9b2d) SHA1(0ca50ec809564eddf0ba7448a8fae9087d3b600b) ) - ROM_LOAD16_BYTE("d84-17.rom", 0x400001, 0x100000, CRC(0be37cc3) SHA1(b10c10b93858cad0c962ef614cfd6daea712ef6b) ) - ROM_LOAD ("d84-14.rom", 0x900000, 0x200000, CRC(2b2e693e) SHA1(03eb37fa7dc68d54bf0f1800b8c0b581c344a40f) ) - ROM_LOAD ("d84-18.rom", 0xb00000, 0x100000, CRC(e812bcc5) SHA1(3574e4a99232d9fc7989ec5d1e8fe76b4b30784a) ) - ROM_FILL ( 0x600000, 0x300000, 0x00 ) + ROM_REGION( 0x680000, "sprites_hi", 0 ) + ROM_LOAD ("d84-05.rom", 0x0000000, 0x200000, CRC(31a3c75d) SHA1(1a16ccb6a0a03ab715e5b016ab3b1b2cd0f1ae41) ) + ROM_LOAD ("d84-08.rom", 0x0200000, 0x200000, CRC(07347bf1) SHA1(34bd359933acdec7fd1ce047092a30d1177afc2c) ) + ROM_LOAD ("d84-11.rom", 0x0400000, 0x200000, CRC(a062c1d4) SHA1(158912aa3dd75c3961bf738f9ac9034f0b005b60) ) + ROM_LOAD ("d84-21.rom", 0x0600000, 0x080000, CRC(89f68b66) SHA1(95916f02f71357324effe59da4f847f2f30ea34a) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x600000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d84-12.rom", 0x000000, 0x200000, CRC(66a7a9aa) SHA1(a7d21f8b6370d16de3c1569019f2ad71d36e7a61) ) + ROM_LOAD32_WORD("d84-13.rom", 0x000002, 0x200000, CRC(ae125516) SHA1(d54e76e398ab0b0fb82f3154ba54fc823ff49a1a) ) + ROM_LOAD32_WORD("d84-16.rom", 0x400000, 0x100000, CRC(bcff9b2d) SHA1(0ca50ec809564eddf0ba7448a8fae9087d3b600b) ) + ROM_LOAD32_WORD("d84-17.rom", 0x400002, 0x100000, CRC(0be37cc3) SHA1(b10c10b93858cad0c962ef614cfd6daea712ef6b) ) + + ROM_REGION( 0x300000, "tilemap_hi", 0 ) + ROM_LOAD ("d84-14.rom", 0x000000, 0x200000, CRC(2b2e693e) SHA1(03eb37fa7dc68d54bf0f1800b8c0b581c344a40f) ) + ROM_LOAD ("d84-18.rom", 0x200000, 0x100000, CRC(e812bcc5) SHA1(3574e4a99232d9fc7989ec5d1e8fe76b4b30784a) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("d84-26.32", 0x100000, 0x40000, CRC(4f5b8563) SHA1(1d4e06cbea7bc73a99d6e30be714fff420151bbc) ) ROM_LOAD16_BYTE("d84-27.33", 0x100001, 0x40000, CRC(fb0cb1ba) SHA1(16a79b53651a6131f7636db19738b456b7c28bff) ) - ROM_REGION16_BE(0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks // empty ROM_LOAD16_BYTE("d84-01.rom", 0x400000, 0x200000, CRC(9ad22149) SHA1(48055822e0cea228cdecf3d05ac24e50979b6f4d) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d84-02.rom", 0x800000, 0x200000, CRC(9e1827e4) SHA1(1840881b0f8f7b6225e6ffa12a8d4b463554988e) ) // CC CD CE CF @@ -1932,142 +1991,152 @@ ROM_START( dankuga ) ROM_END ROM_START( dariusg ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d87-12.bin", 0x000000, 0x80000, CRC(de78f328) SHA1(126464a826685f5bfab6cc099448ce4df207a407) ) ROM_LOAD32_BYTE("d87-11.bin", 0x000001, 0x80000, CRC(f7bed18e) SHA1(db7d92680f9f406a5295ee85ce110c1a56ed386f) ) ROM_LOAD32_BYTE("d87-10.bin", 0x000002, 0x80000, CRC(4149f66f) SHA1(57d36a62d490d9e53b6b80a92ea0e8c41d61799f) ) ROM_LOAD32_BYTE("d87-16.bin", 0x000003, 0x80000, CRC(8f7e5901) SHA1(b920f43374af30e2f7d7d01049af6746206c8ece) ) - ROM_REGION(0x800000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x400000, "sprites" , 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, 0x00 ) - 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, 0x00 ) + ROM_REGION( 0x200000, "sprites_hi", 0 ) + ROM_LOAD ("d87-05.bin", 0x000000, 0x200000, CRC(4e5891a9) SHA1(fd08d848079841c9237fa359a850980fd00114d8) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x400000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d87-06.bin", 0x000000, 0x200000, CRC(3b97a07c) SHA1(72cdeffedeab0c1bd0e47f03172085390a2be393) ) + ROM_LOAD32_WORD("d87-17.bin", 0x000002, 0x200000, CRC(e601d63e) SHA1(256a6aeb5633fe1db407fad567169a9d0c911219) ) + + ROM_REGION( 0x200000, "tilemap_hi", 0 ) + ROM_LOAD ("d87-08.bin", 0x000000, 0x200000, CRC(76d23602) SHA1(ca53ea6641182c44a4038bbeaa5effb1687f1980) ) + + ROM_REGION( 0x180000, "taito_en: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_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( dariusgj ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d87-12.bin", 0x000000, 0x80000, CRC(de78f328) SHA1(126464a826685f5bfab6cc099448ce4df207a407) ) ROM_LOAD32_BYTE("d87-11.bin", 0x000001, 0x80000, CRC(f7bed18e) SHA1(db7d92680f9f406a5295ee85ce110c1a56ed386f) ) ROM_LOAD32_BYTE("d87-10.bin", 0x000002, 0x80000, CRC(4149f66f) SHA1(57d36a62d490d9e53b6b80a92ea0e8c41d61799f) ) ROM_LOAD32_BYTE("d87-09.bin", 0x000003, 0x80000, CRC(6170382d) SHA1(85b0f9a3400884e1c073d5bdcdf7318377650eed) ) - ROM_REGION(0x800000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x400000, "sprites" , 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, 0x00 ) - 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, 0x00 ) + ROM_REGION( 0x200000, "sprites_hi", 0 ) + ROM_LOAD ("d87-05.bin", 0x000000, 0x200000, CRC(4e5891a9) SHA1(fd08d848079841c9237fa359a850980fd00114d8) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x400000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d87-06.bin", 0x000000, 0x200000, CRC(3b97a07c) SHA1(72cdeffedeab0c1bd0e47f03172085390a2be393) ) + ROM_LOAD32_WORD("d87-17.bin", 0x000002, 0x200000, CRC(e601d63e) SHA1(256a6aeb5633fe1db407fad567169a9d0c911219) ) + + ROM_REGION( 0x200000, "tilemap_hi", 0 ) + ROM_LOAD ("d87-08.bin", 0x000000, 0x200000, CRC(76d23602) SHA1(ca53ea6641182c44a4038bbeaa5effb1687f1980) ) + + ROM_REGION( 0x180000, "taito_en: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_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( dariusgu ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d87-12.bin", 0x000000, 0x80000, CRC(de78f328) SHA1(126464a826685f5bfab6cc099448ce4df207a407) ) ROM_LOAD32_BYTE("d87-11.bin", 0x000001, 0x80000, CRC(f7bed18e) SHA1(db7d92680f9f406a5295ee85ce110c1a56ed386f) ) ROM_LOAD32_BYTE("d87-10.bin", 0x000002, 0x80000, CRC(4149f66f) SHA1(57d36a62d490d9e53b6b80a92ea0e8c41d61799f) ) ROM_LOAD32_BYTE("d87-15.bin", 0x000003, 0x80000, CRC(f8796997) SHA1(fa286561bac9894cb260944ffa14d0059b882ab9) ) - ROM_REGION(0x800000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x400000, "sprites" , 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, 0x00 ) - 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, 0x00 ) + ROM_REGION( 0x200000, "sprites_hi", 0 ) + ROM_LOAD ("d87-05.bin", 0x000000, 0x200000, CRC(4e5891a9) SHA1(fd08d848079841c9237fa359a850980fd00114d8) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x400000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d87-06.bin", 0x000000, 0x200000, CRC(3b97a07c) SHA1(72cdeffedeab0c1bd0e47f03172085390a2be393) ) + ROM_LOAD32_WORD("d87-17.bin", 0x000002, 0x200000, CRC(e601d63e) SHA1(256a6aeb5633fe1db407fad567169a9d0c911219) ) + + ROM_REGION( 0x200000, "tilemap_hi", 0 ) + ROM_LOAD ("d87-08.bin", 0x000000, 0x200000, CRC(76d23602) SHA1(ca53ea6641182c44a4038bbeaa5effb1687f1980) ) + + ROM_REGION( 0x180000, "taito_en: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_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( dariusgx ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + 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_mpr0.bin", 0x000003, 0x80000, CRC(c5bd135c) SHA1(402e26a05f1c3162fa3a8d3fcb81ef334b733699) ) - ROM_REGION(0x800000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x400000, "sprites" , 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, 0x00 ) - 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, 0x00 ) + ROM_REGION( 0x200000, "sprites_hi", 0 ) + ROM_LOAD ("d87-05.bin", 0x000000, 0x200000, CRC(4e5891a9) SHA1(fd08d848079841c9237fa359a850980fd00114d8) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x400000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d87-06.bin", 0x000000, 0x200000, CRC(3b97a07c) SHA1(72cdeffedeab0c1bd0e47f03172085390a2be393) ) + ROM_LOAD32_WORD("d87-17.bin", 0x000002, 0x200000, CRC(e601d63e) SHA1(256a6aeb5633fe1db407fad567169a9d0c911219) ) + + ROM_REGION( 0x200000, "tilemap_hi", 0 ) + ROM_LOAD ("d87-08.bin", 0x000000, 0x200000, CRC(76d23602) SHA1(ca53ea6641182c44a4038bbeaa5effb1687f1980) ) + + ROM_REGION( 0x180000, "taito_en: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_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( bublbob2 ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d90-21.ic20", 0x000000, 0x40000, CRC(2a2b771a) SHA1(7f9bd768cf34069ca139261ebd8304325598fec6) ) ROM_LOAD32_BYTE("d90-20.ic19", 0x000001, 0x40000, CRC(f01f63b6) SHA1(cbdc8c6248a2c0c1bc77fdc28738f67ce9a6aec3) ) ROM_LOAD32_BYTE("d90-19.ic18", 0x000002, 0x40000, CRC(86eef19a) SHA1(9a389fefa280662843cafb68b5ae411e9348d34d) ) ROM_LOAD32_BYTE("d90-18.ic17", 0x000003, 0x40000, CRC(f5b8cdce) SHA1(cf6ce6638eebd7d2e1defdd48110cc3002109c5c) ) - ROM_REGION(0x400000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x200000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d90-03", 0x000000, 0x100000, CRC(6fa894a1) SHA1(7c33e6d41e8928029b92d66557a3712b51c49c67) ) ROM_LOAD16_BYTE("d90-02", 0x000001, 0x100000, CRC(5ab04ca2) SHA1(6d87e7ca3167ff81a041cfedbbed84d51da997de) ) - ROM_LOAD ("d90-01", 0x300000, 0x100000, CRC(8aedb9e5) SHA1(fb49330f7985a829c9544ecfd0bc672494f29cf6) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d90-08", 0x000000, 0x100000, CRC(25a4fb2c) SHA1(c8bf6fe2291c05386b32cd26bfcb379da756d7b5) ) - ROM_LOAD16_BYTE("d90-07", 0x000001, 0x100000, CRC(b436b42d) SHA1(559827120273733147b260e0723054d926dbea5e) ) - ROM_LOAD ("d90-06", 0x300000, 0x100000, CRC(166a72b8) SHA1(7f70b8c960794322e1dc88e6600a2d13d948d873) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + ROM_REGION( 0x100000, "sprites_hi", 0 ) + ROM_LOAD ("d90-01", 0x000000, 0x100000, CRC(8aedb9e5) SHA1(fb49330f7985a829c9544ecfd0bc672494f29cf6) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d90-08", 0x000000, 0x100000, CRC(25a4fb2c) SHA1(c8bf6fe2291c05386b32cd26bfcb379da756d7b5) ) + ROM_LOAD32_WORD("d90-07", 0x000002, 0x100000, CRC(b436b42d) SHA1(559827120273733147b260e0723054d926dbea5e) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("d90-06", 0x000000, 0x100000, CRC(166a72b8) SHA1(7f70b8c960794322e1dc88e6600a2d13d948d873) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* sound CPU */ ROM_LOAD16_BYTE("d90-13.ic32", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) ) ROM_LOAD16_BYTE("d90-14.ic33", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d90-04", 0x000000, 0x200000, CRC(feee5fda) SHA1(b89354013ec4d34bcd51ecded412effa66dd2f2f) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d90-05", 0x400000, 0x200000, CRC(c192331f) SHA1(ebab05b3681c70b373bc06c1826be1cc397d3af7) ) // CC CD -std- @@ -2079,29 +2148,31 @@ ROM_END ROM_START( bublbob2o ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d90-12", 0x000000, 0x40000, CRC(9e523996) SHA1(c49a426f9865f96e8021c8ed9a6ac094c5e586b1) ) ROM_LOAD32_BYTE("d90-11", 0x000001, 0x40000, CRC(edfdbb7f) SHA1(698ad631d5b13661645f2c5ccd3e4fbf0248053c) ) ROM_LOAD32_BYTE("d90-10", 0x000002, 0x40000, CRC(8e957d3d) SHA1(5db31e5788483b802592e1092bf98df51ff4b70e) ) ROM_LOAD32_BYTE("d90-17", 0x000003, 0x40000, CRC(711f1894) SHA1(8e574d9a63593fbe0c87840e79a2e2dbfc227671) ) - ROM_REGION(0x400000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x200000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d90-03", 0x000000, 0x100000, CRC(6fa894a1) SHA1(7c33e6d41e8928029b92d66557a3712b51c49c67) ) ROM_LOAD16_BYTE("d90-02", 0x000001, 0x100000, CRC(5ab04ca2) SHA1(6d87e7ca3167ff81a041cfedbbed84d51da997de) ) - ROM_LOAD ("d90-01", 0x300000, 0x100000, CRC(8aedb9e5) SHA1(fb49330f7985a829c9544ecfd0bc672494f29cf6) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d90-08", 0x000000, 0x100000, CRC(25a4fb2c) SHA1(c8bf6fe2291c05386b32cd26bfcb379da756d7b5) ) - ROM_LOAD16_BYTE("d90-07", 0x000001, 0x100000, CRC(b436b42d) SHA1(559827120273733147b260e0723054d926dbea5e) ) - ROM_LOAD ("d90-06", 0x300000, 0x100000, CRC(166a72b8) SHA1(7f70b8c960794322e1dc88e6600a2d13d948d873) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + ROM_REGION( 0x100000, "sprites_hi", 0 ) + ROM_LOAD ("d90-01", 0x000000, 0x100000, CRC(8aedb9e5) SHA1(fb49330f7985a829c9544ecfd0bc672494f29cf6) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d90-08", 0x000000, 0x100000, CRC(25a4fb2c) SHA1(c8bf6fe2291c05386b32cd26bfcb379da756d7b5) ) + ROM_LOAD32_WORD("d90-07", 0x000002, 0x100000, CRC(b436b42d) SHA1(559827120273733147b260e0723054d926dbea5e) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("d90-06", 0x000000, 0x100000, CRC(166a72b8) SHA1(7f70b8c960794322e1dc88e6600a2d13d948d873) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* sound CPU */ ROM_LOAD16_BYTE("d90-13.ic32", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) ) ROM_LOAD16_BYTE("d90-14.ic33", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d90-04", 0x000000, 0x200000, CRC(feee5fda) SHA1(b89354013ec4d34bcd51ecded412effa66dd2f2f) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d90-05", 0x400000, 0x200000, CRC(c192331f) SHA1(ebab05b3681c70b373bc06c1826be1cc397d3af7) ) // CC CD -std- ROM_END @@ -2109,36 +2180,40 @@ ROM_END /* Very early revision protoype boardset & roms */ // todo, transfer information on PCB differences from http://forum.arcadeotaku.com/viewtopic.php?f=2&t=24965 ROM_START( bublbob2p ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("soft-3-8c9b.ic60", 0x000000, 0x40000, CRC(15d0594e) SHA1(7556377355860c3f7f600c2c352e5291da6a62f1) ) ROM_LOAD32_BYTE("soft-2-0587.ic61", 0x000001, 0x40000, CRC(d1a5231f) SHA1(1e9ccac78f690ef79f933743ce7c4d6fa42f5acd) ) ROM_LOAD32_BYTE("soft-1-9a9c.ic62", 0x000002, 0x40000, CRC(c11a4d26) SHA1(b327413f5420608f1ccbbac2e8941a82862377c5) ) ROM_LOAD32_BYTE("soft-0-a523.ic63", 0x000003, 0x40000, CRC(58131f9e) SHA1(d07d34bf079277a48151ef9e5e7c1240a36d1bdb) ) - ROM_REGION(0x200000, "gfx1" , ROMREGION_ERASE00 ) /* Sprites */ - ROM_LOAD16_BYTE ("cq80-obj-0l-c166.ic8", 0x000000, 0x80000, CRC(9bff223b) SHA1(acf22731d91d61aefc3373f78006fd310bb89edf) ) - ROM_LOAD16_BYTE ("cq80-obj-0m-24f4.ic30", 0x000001, 0x80000, CRC(ee71f643) SHA1(7a2042c6fad8f1b7e0a3ad077d054dc163a22230) ) - ROM_LOAD ("cq80-obj-0h-990d.ic32", 0x180000, 0x80000, CRC(4d3a78e0) SHA1(b19fb66e6082a68dc8600b8882ba50a3afce27c3) ) + ROM_REGION( 0x100000, "sprites" , 0) /* Sprites */ + ROM_LOAD16_BYTE("cq80-obj-0l-c166.ic8", 0x000000, 0x80000, CRC(9bff223b) SHA1(acf22731d91d61aefc3373f78006fd310bb89edf) ) + ROM_LOAD16_BYTE("cq80-obj-0m-24f4.ic30", 0x000001, 0x80000, CRC(ee71f643) SHA1(7a2042c6fad8f1b7e0a3ad077d054dc163a22230) ) - ROM_REGION(0x400000, "gfx2" , ROMREGION_ERASE00 ) /* Tiles */ + ROM_REGION( 0x080000, "sprites_hi", 0 ) + ROM_LOAD ("cq80-obj-0h-990d.ic32", 0x000000, 0x80000, CRC(4d3a78e0) SHA1(b19fb66e6082a68dc8600b8882ba50a3afce27c3) ) + + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ ROM_LOAD32_BYTE("cq80-scr0-5ba4.ic7", 0x000000, 0x080000, CRC(044dc38b) SHA1(0bb715c9ae8298c6852c6309d69f769e87ab2fdc) ) - ROM_LOAD32_BYTE("cq80-scr1-a5f3.ic6", 0x000002, 0x080000, CRC(3cf3a3ba) SHA1(da7282104fbd9108bae12fa6722e077d80107d6d) ) - ROM_LOAD32_BYTE("cq80-scr2-cc11.ic5", 0x000001, 0x080000, CRC(b81aa2c7) SHA1(4650c431dc2ed73f1e71337f3e7d4c1837b65bcf) ) + ROM_LOAD32_BYTE("cq80-scr1-a5f3.ic6", 0x000001, 0x080000, CRC(3cf3a3ba) SHA1(da7282104fbd9108bae12fa6722e077d80107d6d) ) + ROM_LOAD32_BYTE("cq80-scr2-cc11.ic5", 0x000002, 0x080000, CRC(b81aa2c7) SHA1(4650c431dc2ed73f1e71337f3e7d4c1837b65bcf) ) ROM_LOAD32_BYTE("cq80-scr3-4266.ic4", 0x000003, 0x080000, CRC(c114583f) SHA1(ec85e8f4135e48607bb84b810d57d570ef56b228) ) - ROM_LOAD16_BYTE("cq80-scr4-7fe1.ic3", 0x300000, 0x080000, CRC(2bba1728) SHA1(cdd2e651c233a185fcbb3fd8f5eabee2af30f781) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* sound CPU */ - ROM_LOAD16_BYTE("snd-h-348f.ic66", 0x100000, 0x20000, CRC(f66e60f2) SHA1(b94c97ccde179a69811137c77730c91924236bfe)) + ROM_REGION( 0x100000, "tilemap_hi", ROMREGION_ERASE00 ) + ROM_LOAD16_BYTE("cq80-scr4-7fe1.ic3", 0x000000, 0x080000, CRC(2bba1728) SHA1(cdd2e651c233a185fcbb3fd8f5eabee2af30f781) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* sound CPU */ + ROM_LOAD16_BYTE("snd-h-348f.ic66", 0x100000, 0x20000, CRC(f66e60f2) SHA1(b94c97ccde179a69811137c77730c91924236bfe) ) ROM_LOAD16_BYTE("snd-l-4ec1.ic65", 0x100001, 0x20000, CRC(d302d8bc) SHA1(02a2e69d0f4406578b12b05ab25d2abdf5bbba3c) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) ROM_LOAD16_BYTE("cq80-snd-data0-7b5f.ic43", 0x000000, 0x080000, CRC(bf8f26d3) SHA1(b165fc62ed30ae56d27caffbb0b16321d3c5ef8b) ) // C8 ROM_LOAD16_BYTE("cq80-snd-data1-933b.ic44", 0x100000, 0x080000, CRC(62b00475) SHA1(d2b44940cefca76897b291d83b5ca8ec18dbe1fa) ) // C9 ROM_LOAD16_BYTE("cq80-snd3-std5-3a9c.ic10", 0x600000, 0x080000, CRC(26312451) SHA1(9f947a11592fd8420fc581914bf16e7ade75390c) ) // -std- ROM_LOAD16_BYTE("cq80-snd2-std6-a148.ic11", 0x700000, 0x080000, CRC(2edaa9dc) SHA1(72fead505c4f44e5736ff7d545d72dfa37d613e2) ) // -std- - ROM_REGION(0x180000, "pals", 0) + ROM_REGION( 0x180000, "pals", 0 ) // dumped regular way, appear to be protected //ROM_LOAD("pal20l10a.ic12.bin", 0x000, 0xcc, BAD_DUMP CRC(5d695690) SHA1(713cdbb894861eb5a6361026af8618df7e7db467) ) //ROM_LOAD("pal20l10a.ic24.bin", 0x000, 0xcc, BAD_DUMP CRC(5d695690) SHA1(713cdbb894861eb5a6361026af8618df7e7db467) ) @@ -2154,57 +2229,61 @@ ROM_END ROM_START( bubsymphe ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d90-12", 0x000000, 0x40000, CRC(9e523996) SHA1(c49a426f9865f96e8021c8ed9a6ac094c5e586b1) ) ROM_LOAD32_BYTE("d90-11", 0x000001, 0x40000, CRC(edfdbb7f) SHA1(698ad631d5b13661645f2c5ccd3e4fbf0248053c) ) ROM_LOAD32_BYTE("d90-10", 0x000002, 0x40000, CRC(8e957d3d) SHA1(5db31e5788483b802592e1092bf98df51ff4b70e) ) ROM_LOAD32_BYTE("d90-16", 0x000003, 0x40000, CRC(d12ef19b) SHA1(8715102b54c730c809b3964a80cd1aed863ba334) ) - ROM_REGION(0x400000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x200000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d90-03", 0x000000, 0x100000, CRC(6fa894a1) SHA1(7c33e6d41e8928029b92d66557a3712b51c49c67) ) ROM_LOAD16_BYTE("d90-02", 0x000001, 0x100000, CRC(5ab04ca2) SHA1(6d87e7ca3167ff81a041cfedbbed84d51da997de) ) - ROM_LOAD ("d90-01", 0x300000, 0x100000, CRC(8aedb9e5) SHA1(fb49330f7985a829c9544ecfd0bc672494f29cf6) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d90-08", 0x000000, 0x100000, CRC(25a4fb2c) SHA1(c8bf6fe2291c05386b32cd26bfcb379da756d7b5) ) - ROM_LOAD16_BYTE("d90-07", 0x000001, 0x100000, CRC(b436b42d) SHA1(559827120273733147b260e0723054d926dbea5e) ) - ROM_LOAD ("d90-06", 0x300000, 0x100000, CRC(166a72b8) SHA1(7f70b8c960794322e1dc88e6600a2d13d948d873) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + ROM_REGION( 0x100000, "sprites_hi", 0 ) + ROM_LOAD ("d90-01", 0x000000, 0x100000, CRC(8aedb9e5) SHA1(fb49330f7985a829c9544ecfd0bc672494f29cf6) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d90-08", 0x000000, 0x100000, CRC(25a4fb2c) SHA1(c8bf6fe2291c05386b32cd26bfcb379da756d7b5) ) + ROM_LOAD32_WORD("d90-07", 0x000002, 0x100000, CRC(b436b42d) SHA1(559827120273733147b260e0723054d926dbea5e) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("d90-06", 0x000000, 0x100000, CRC(166a72b8) SHA1(7f70b8c960794322e1dc88e6600a2d13d948d873) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* sound CPU */ ROM_LOAD16_BYTE("d90-13.ic32", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) ) ROM_LOAD16_BYTE("d90-14.ic33", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d90-04", 0x000000, 0x200000, CRC(feee5fda) SHA1(b89354013ec4d34bcd51ecded412effa66dd2f2f) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d90-05", 0x400000, 0x200000, CRC(c192331f) SHA1(ebab05b3681c70b373bc06c1826be1cc397d3af7) ) // CC CD -std- ROM_END ROM_START( bubsymphj ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d90-12", 0x000000, 0x40000, CRC(9e523996) SHA1(c49a426f9865f96e8021c8ed9a6ac094c5e586b1) ) ROM_LOAD32_BYTE("d90-11", 0x000001, 0x40000, CRC(edfdbb7f) SHA1(698ad631d5b13661645f2c5ccd3e4fbf0248053c) ) ROM_LOAD32_BYTE("d90-10", 0x000002, 0x40000, CRC(8e957d3d) SHA1(5db31e5788483b802592e1092bf98df51ff4b70e) ) ROM_LOAD32_BYTE("d90-09", 0x000003, 0x40000, CRC(3f2090b7) SHA1(2a95c8c8dc23b618c0ce65497391d464494f4d6a) ) - ROM_REGION(0x400000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x200000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d90-03", 0x000000, 0x100000, CRC(6fa894a1) SHA1(7c33e6d41e8928029b92d66557a3712b51c49c67) ) ROM_LOAD16_BYTE("d90-02", 0x000001, 0x100000, CRC(5ab04ca2) SHA1(6d87e7ca3167ff81a041cfedbbed84d51da997de) ) - ROM_LOAD ("d90-01", 0x300000, 0x100000, CRC(8aedb9e5) SHA1(fb49330f7985a829c9544ecfd0bc672494f29cf6) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d90-08", 0x000000, 0x100000, CRC(25a4fb2c) SHA1(c8bf6fe2291c05386b32cd26bfcb379da756d7b5) ) - ROM_LOAD16_BYTE("d90-07", 0x000001, 0x100000, CRC(b436b42d) SHA1(559827120273733147b260e0723054d926dbea5e) ) - ROM_LOAD ("d90-06", 0x300000, 0x100000, CRC(166a72b8) SHA1(7f70b8c960794322e1dc88e6600a2d13d948d873) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + ROM_REGION( 0x100000, "sprites_hi", 0 ) + ROM_LOAD ("d90-01", 0x000000, 0x100000, CRC(8aedb9e5) SHA1(fb49330f7985a829c9544ecfd0bc672494f29cf6) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d90-08", 0x000000, 0x100000, CRC(25a4fb2c) SHA1(c8bf6fe2291c05386b32cd26bfcb379da756d7b5) ) + ROM_LOAD32_WORD("d90-07", 0x000002, 0x100000, CRC(b436b42d) SHA1(559827120273733147b260e0723054d926dbea5e) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("d90-06", 0x000000, 0x100000, CRC(166a72b8) SHA1(7f70b8c960794322e1dc88e6600a2d13d948d873) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* sound CPU */ ROM_LOAD16_BYTE("d90-13.ic32", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) ) ROM_LOAD16_BYTE("d90-14.ic33", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d90-04", 0x000000, 0x200000, CRC(feee5fda) SHA1(b89354013ec4d34bcd51ecded412effa66dd2f2f) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d90-05", 0x400000, 0x200000, CRC(c192331f) SHA1(ebab05b3681c70b373bc06c1826be1cc397d3af7) ) // CC CD -std- @@ -2244,82 +2323,88 @@ Dumped by tirino73 ROM_START( bubsymphb ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("bsb_d12.bin", 0x000000, 0x40000, CRC(d05160fc) SHA1(62eb47827d4089711af1187455faeb62a8d9e369) ) ROM_LOAD32_BYTE("bsb_d13.bin", 0x000001, 0x40000, CRC(83fc0d2c) SHA1(275a923e6e6b6763cb7036d94943609eb9ce866b) ) ROM_LOAD32_BYTE("bsb_d14.bin", 0x000002, 0x40000, CRC(e6d49bb7) SHA1(9ca509ffd3f46160f3bbb0ceee9abcd09f9f9ad1) ) ROM_LOAD32_BYTE("bsb_d15.bin", 0x000003, 0x40000, CRC(014cf8e0) SHA1(5e91fc6665c1d472d0651c06108ea6a8eb5ae8b4) ) - ROM_REGION(0x300000, "gfx1" , 0) /* Sprites (5bpp) */ - ROM_FILL ( 0x000000, 0x080000, 0x00 ) - ROM_LOAD("bsb_d18.bin", 0x080000, 0x080000, CRC(22d7eeb5) SHA1(30aa4493c5bc98d9256817b9e3341b20d2b76f1f) ) - ROM_LOAD("bsb_d19.bin", 0x100000, 0x080000, CRC(d36801fd) SHA1(5dc00942dbd9bb29214c206ea192f158b71b09dc) ) - ROM_LOAD("bsb_d20.bin", 0x180000, 0x080000, CRC(20222e15) SHA1(41f2f94afd65d0c106752f254f20b593906cba28) ) - ROM_LOAD("bsb_d17.bin", 0x200000, 0x080000, CRC(ea2eadfc) SHA1(2c4176e89f816166f410888cd2e837891a4289a3) ) - ROM_LOAD("bsb_d16.bin", 0x280000, 0x080000, CRC(edccd4e0) SHA1(e00d3c1a91f9a96e1ae7d45842315d839c9cd440) ) + ROM_REGION( 0x300000, "sprites" , 0) /* Sprites (5bpp) */ + ROM_FILL ( 0x000000, 0x080000, 0x00 ) + ROM_LOAD16_WORD_SWAP("bsb_d18.bin", 0x080000, 0x080000, CRC(22d7eeb5) SHA1(30aa4493c5bc98d9256817b9e3341b20d2b76f1f) ) + ROM_LOAD16_WORD_SWAP("bsb_d19.bin", 0x100000, 0x080000, CRC(d36801fd) SHA1(5dc00942dbd9bb29214c206ea192f158b71b09dc) ) + ROM_LOAD16_WORD_SWAP("bsb_d20.bin", 0x180000, 0x080000, CRC(20222e15) SHA1(41f2f94afd65d0c106752f254f20b593906cba28) ) + ROM_LOAD16_WORD_SWAP("bsb_d17.bin", 0x200000, 0x080000, CRC(ea2eadfc) SHA1(2c4176e89f816166f410888cd2e837891a4289a3) ) + ROM_LOAD16_WORD_SWAP("bsb_d16.bin", 0x280000, 0x080000, CRC(edccd4e0) SHA1(e00d3c1a91f9a96e1ae7d45842315d839c9cd440) ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD32_BYTE("bsb_d13b.bin", 0x000000, 0x080000, CRC(430af2aa) SHA1(e935f9f4e0558a25bd4010b44dbb4f38a9d359e0) ) + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_BYTE("bsb_d15b.bin", 0x000000, 0x080000, CRC(74644ad4) SHA1(c7610e413c965eb4e40b548d13efdcbc3dde23be) ) ROM_LOAD32_BYTE("bsb_d14b.bin", 0x000001, 0x080000, CRC(c006e832) SHA1(4aebbac188af1ef9176581ac68ac12ce397f2f08) ) - ROM_LOAD32_BYTE("bsb_d15b.bin", 0x000002, 0x080000, CRC(74644ad4) SHA1(c7610e413c965eb4e40b548d13efdcbc3dde23be) ) + ROM_LOAD32_BYTE("bsb_d13b.bin", 0x000002, 0x080000, CRC(430af2aa) SHA1(e935f9f4e0558a25bd4010b44dbb4f38a9d359e0) ) ROM_LOAD32_BYTE("bsb_d12b.bin", 0x000003, 0x080000, CRC(cb2e2abb) SHA1(7e3a90cb8af298bac2aef80778341833e473b671) ) - ROM_LOAD32_BYTE("bsb_d11b.bin", 0x200000, 0x080000, CRC(d0607829) SHA1(546c629ec22bb98202c7127ccb77df0b8f3a1966) ) - ROM_REGION(0x100000, "oki" , ROMREGION_ERASE00 ) // OKI6295 samples + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD16_BYTE("bsb_d11b.bin", 0x000000, 0x080000, CRC(d0607829) SHA1(546c629ec22bb98202c7127ccb77df0b8f3a1966) ) + + ROM_REGION( 0x100000, "oki" , ROMREGION_ERASE00 ) // OKI6295 samples ROM_LOAD("bsb_d11.bin", 0x000000, 0x080000, CRC(26bdc617) SHA1(993e7a52128fdd58f22d95521a629beb71ca7b91) ) // I haven't verified this dump.. but given how bad the rest is I'm not confident ROM_RELOAD(0x80000,0x80000) ROM_END ROM_START( bubsymphu ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d90-12", 0x000000, 0x40000, CRC(9e523996) SHA1(c49a426f9865f96e8021c8ed9a6ac094c5e586b1) ) ROM_LOAD32_BYTE("d90-11", 0x000001, 0x40000, CRC(edfdbb7f) SHA1(698ad631d5b13661645f2c5ccd3e4fbf0248053c) ) ROM_LOAD32_BYTE("d90-10", 0x000002, 0x40000, CRC(8e957d3d) SHA1(5db31e5788483b802592e1092bf98df51ff4b70e) ) ROM_LOAD32_BYTE("d90-15", 0x000003, 0x40000, CRC(06182802) SHA1(c068ea8e8852033d0cf7bd4bca4b0411b7aebded) ) - ROM_REGION(0x400000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x200000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d90-03", 0x000000, 0x100000, CRC(6fa894a1) SHA1(7c33e6d41e8928029b92d66557a3712b51c49c67) ) ROM_LOAD16_BYTE("d90-02", 0x000001, 0x100000, CRC(5ab04ca2) SHA1(6d87e7ca3167ff81a041cfedbbed84d51da997de) ) - ROM_LOAD ("d90-01", 0x300000, 0x100000, CRC(8aedb9e5) SHA1(fb49330f7985a829c9544ecfd0bc672494f29cf6) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d90-08", 0x000000, 0x100000, CRC(25a4fb2c) SHA1(c8bf6fe2291c05386b32cd26bfcb379da756d7b5) ) - ROM_LOAD16_BYTE("d90-07", 0x000001, 0x100000, CRC(b436b42d) SHA1(559827120273733147b260e0723054d926dbea5e) ) - ROM_LOAD ("d90-06", 0x300000, 0x100000, CRC(166a72b8) SHA1(7f70b8c960794322e1dc88e6600a2d13d948d873) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + ROM_REGION( 0x100000, "sprites_hi", 0 ) + ROM_LOAD ("d90-01", 0x000000, 0x100000, CRC(8aedb9e5) SHA1(fb49330f7985a829c9544ecfd0bc672494f29cf6) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d90-08", 0x000000, 0x100000, CRC(25a4fb2c) SHA1(c8bf6fe2291c05386b32cd26bfcb379da756d7b5) ) + ROM_LOAD32_WORD("d90-07", 0x000002, 0x100000, CRC(b436b42d) SHA1(559827120273733147b260e0723054d926dbea5e) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("d90-06", 0x000000, 0x100000, CRC(166a72b8) SHA1(7f70b8c960794322e1dc88e6600a2d13d948d873) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* sound CPU */ ROM_LOAD16_BYTE("d90-13.ic32", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) ) ROM_LOAD16_BYTE("d90-14.ic33", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d90-04", 0x000000, 0x200000, CRC(feee5fda) SHA1(b89354013ec4d34bcd51ecded412effa66dd2f2f) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d90-05", 0x400000, 0x200000, CRC(c192331f) SHA1(ebab05b3681c70b373bc06c1826be1cc397d3af7) ) // CC CD -std- ROM_END ROM_START( spcinvdj ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d93-04.bin", 0x000000, 0x20000, CRC(cd9a4e5c) SHA1(b163b8274570610af8697b1b38116dcf4c3593db) ) ROM_LOAD32_BYTE("d93-03.bin", 0x000001, 0x20000, CRC(0174bfc1) SHA1(133452f6a5bdf01b1b436077288a597734a8731a) ) ROM_LOAD32_BYTE("d93-02.bin", 0x000002, 0x20000, CRC(01922b31) SHA1(660c9c20e76a5f4094f1bfee9d75146f0829daeb) ) ROM_LOAD32_BYTE("d93-01.bin", 0x000003, 0x20000, CRC(4a74ab1c) SHA1(5f7ae70d8fa3f141239ed3de3a45c50e2d824864) ) - ROM_REGION(0x200000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x100000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d93-07.12", 0x000000, 0x80000, CRC(8cf5b972) SHA1(75e383aed8548f4ac7d38f1f08bf33fae2a93064) ) ROM_LOAD16_BYTE("d93-08.08", 0x000001, 0x80000, CRC(4c11af2b) SHA1(e332372ab0d1322faa8d6d98f8a6e3bbf51d2008) ) - ROM_FILL ( 0x100000, 0x100000,0x00 ) - ROM_REGION(0x80000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d93-09.47", 0x000000, 0x20000, CRC(9076f663) SHA1(c94e93e40926df33b6bb528e0ef30381631913d7) ) - ROM_LOAD16_BYTE("d93-10.45", 0x000001, 0x20000, CRC(8a3f531b) SHA1(69f9971c45971018108a5d312d5bbcfd3caf9bd0) ) - ROM_FILL ( 0x040000, 0x40000, 0x00 ) + EMPTY_SPRITE_HIDATA(0x080000) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x040000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d93-09.47", 0x000000, 0x20000, CRC(9076f663) SHA1(c94e93e40926df33b6bb528e0ef30381631913d7) ) + ROM_LOAD32_WORD("d93-10.45", 0x000002, 0x20000, CRC(8a3f531b) SHA1(69f9971c45971018108a5d312d5bbcfd3caf9bd0) ) + + EMPTY_TILEMAP_HIDATA(0x020000) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("d93-05.bin", 0x100000, 0x20000, CRC(ff365596) SHA1(4cf2e0d6f42cf3fb69796be6092eff8a47f7f8b9) ) ROM_LOAD16_BYTE("d93-06.bin", 0x100001, 0x20000, CRC(ef7ad400) SHA1(01be403d575a543f089b910a5a8c381a6603e67e) ) - ROM_REGION16_BE(0x400000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 1 populated + ROM_REGION16_BE( 0x400000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 1 populated ROM_LOAD16_BYTE("d93-11.38", 0x000000, 0x80000, CRC(df5853de) SHA1(bb1ea604d44819dc7c82848c5bde9612f70f7528) ) // C8 ROM_LOAD16_BYTE("d93-12.39", 0x100000, 0x80000, CRC(b0f71d60) SHA1(35fc32764d9b82b1b40c5e9cc8e367cf842531a2) ) // C9 ROM_LOAD16_BYTE("d93-13.40", 0x200000, 0x80000, CRC(26312451) SHA1(9f947a11592fd8420fc581914bf16e7ade75390c) ) // -std- @@ -2327,191 +2412,203 @@ ROM_START( spcinvdj ) ROM_END ROM_START( pwrgoal ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d94-18.20", 0x000000, 0x40000, CRC(b92681c3) SHA1(0ca05a69d046668c878df3d2b7ae3172d748e290) ) ROM_LOAD32_BYTE("d94-17.19", 0x000001, 0x40000, CRC(6009333e) SHA1(4ab28f2d9e2b75adc668f5d9390e06086bbd97dc) ) ROM_LOAD32_BYTE("d94-16.18", 0x000002, 0x40000, CRC(c6dbc9c8) SHA1(4f096b59734db51eeddcf0649f2a6f11bdde9590) ) ROM_LOAD32_BYTE("d94-22.17", 0x000003, 0x40000, CRC(f672e487) SHA1(da62afc82aeae4aeeebbee0965cda3d84464ad09) ) - ROM_REGION(0x1800000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0xc00000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d94-09.bin", 0x0000000, 0x200000, CRC(425e6bec) SHA1(512508e7137fcdebdf2240dbbd37ea0cf1c4dcdc) ) ROM_LOAD16_BYTE("d94-08.bin", 0x0400000, 0x200000, CRC(bd909caf) SHA1(33952883afb8fe9b55dd258435af99881925e8d5) ) ROM_LOAD16_BYTE("d94-07.bin", 0x0800000, 0x200000, CRC(c8c95e49) SHA1(9bfdf63d6059b01a4cd5813239ba1bd98453a56b) ) ROM_LOAD16_BYTE("d94-06.bin", 0x0000001, 0x200000, CRC(0ed1df55) SHA1(10b22407ad0e03c37363783ee80f2cbf98a802a0) ) ROM_LOAD16_BYTE("d94-05.bin", 0x0400001, 0x200000, CRC(121c8542) SHA1(ec9b7e56c97a8b6ed0423f05b789ca89b1bb0d36) ) ROM_LOAD16_BYTE("d94-04.bin", 0x0800001, 0x200000, CRC(24958b50) SHA1(ea15ffa3a615e3e67c1bade6f6ef45424479115e) ) - ROM_LOAD ("d94-03.bin", 0x1200000, 0x200000, CRC(95e32072) SHA1(9797f65ecadc6b0f209bf262396315b61855c433) ) - ROM_LOAD ("d94-02.bin", 0x1400000, 0x200000, CRC(f460b9ac) SHA1(e36a812791bd0360380f397b1bc6c357391f585a) ) - ROM_LOAD ("d94-01.bin", 0x1600000, 0x200000, CRC(410ffccd) SHA1(0cab00c8e9de92ad81ac61f25bbe8bfd60f45ae0) ) - ROM_FILL ( 0xc00000, 0x600000,0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d94-14.bin", 0x000000, 0x100000, CRC(b8ba5761) SHA1(7966ef3166d7d6b9913478eaef5dd4a2bf7d5a06) ) - ROM_LOAD16_BYTE("d94-13.bin", 0x000001, 0x100000, CRC(cafc68ce) SHA1(5c1f49951e83d812f0c7697751f4876ab1d08141) ) - ROM_LOAD ("d94-12.bin", 0x300000, 0x100000, CRC(47064189) SHA1(99ceeb326dcc2e1c3acba8ac14d94dcb17c6e032) ) - ROM_FILL ( 0x200000, 0x100000,0x00 ) + ROM_REGION( 0x600000, "sprites_hi", 0 ) + ROM_LOAD ("d94-03.bin", 0x0000000, 0x200000, CRC(95e32072) SHA1(9797f65ecadc6b0f209bf262396315b61855c433) ) + ROM_LOAD ("d94-02.bin", 0x0200000, 0x200000, CRC(f460b9ac) SHA1(e36a812791bd0360380f397b1bc6c357391f585a) ) + ROM_LOAD ("d94-01.bin", 0x0400000, 0x200000, CRC(410ffccd) SHA1(0cab00c8e9de92ad81ac61f25bbe8bfd60f45ae0) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d94-14.bin", 0x000000, 0x100000, CRC(b8ba5761) SHA1(7966ef3166d7d6b9913478eaef5dd4a2bf7d5a06) ) + ROM_LOAD32_WORD("d94-13.bin", 0x000002, 0x100000, CRC(cafc68ce) SHA1(5c1f49951e83d812f0c7697751f4876ab1d08141) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("d94-12.bin", 0x000000, 0x100000, CRC(47064189) SHA1(99ceeb326dcc2e1c3acba8ac14d94dcb17c6e032) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("d94-19.bin", 0x100000, 0x40000, CRC(c93dbcf4) SHA1(413520e652d809651aff9b1b74e6353112d34c12) ) /* Over dump?? 0x20000-0x3ffff == 0xFF */ ROM_LOAD16_BYTE("d94-20.bin", 0x100001, 0x40000, CRC(f232bf64) SHA1(bbfeae0785fc49c12aa6d9b1bd6ff7c8515f8fe7) ) /* Over dump?? 0x20000-0x3ffff == 0xFF */ - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d94-10.bin", 0x000000, 0x200000, CRC(a22563ae) SHA1(85f2a4ca5e085ac1d4c15feb737229764697ae85) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d94-11.bin", 0x400000, 0x200000, CRC(61ed83fa) SHA1(f6ca60b7af61fd3ac01a987f949d7a7bc96e43ff) ) // CD CE -std- ROM_END ROM_START( hthero95 ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d94-18.20", 0x000000, 0x40000, CRC(b92681c3) SHA1(0ca05a69d046668c878df3d2b7ae3172d748e290) ) ROM_LOAD32_BYTE("d94-17.19", 0x000001, 0x40000, CRC(6009333e) SHA1(4ab28f2d9e2b75adc668f5d9390e06086bbd97dc) ) ROM_LOAD32_BYTE("d94-16.18", 0x000002, 0x40000, CRC(c6dbc9c8) SHA1(4f096b59734db51eeddcf0649f2a6f11bdde9590) ) ROM_LOAD32_BYTE("d94-15.17", 0x000003, 0x40000, CRC(187c85ab) SHA1(8270930b95fafe5ad92ea978c1558c491d9668b0) ) - ROM_REGION(0x1800000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0xc00000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d94-09.bin", 0x0000000, 0x200000, CRC(425e6bec) SHA1(512508e7137fcdebdf2240dbbd37ea0cf1c4dcdc) ) ROM_LOAD16_BYTE("d94-08.bin", 0x0400000, 0x200000, CRC(bd909caf) SHA1(33952883afb8fe9b55dd258435af99881925e8d5) ) ROM_LOAD16_BYTE("d94-07.bin", 0x0800000, 0x200000, CRC(c8c95e49) SHA1(9bfdf63d6059b01a4cd5813239ba1bd98453a56b) ) ROM_LOAD16_BYTE("d94-06.bin", 0x0000001, 0x200000, CRC(0ed1df55) SHA1(10b22407ad0e03c37363783ee80f2cbf98a802a0) ) ROM_LOAD16_BYTE("d94-05.bin", 0x0400001, 0x200000, CRC(121c8542) SHA1(ec9b7e56c97a8b6ed0423f05b789ca89b1bb0d36) ) ROM_LOAD16_BYTE("d94-04.bin", 0x0800001, 0x200000, CRC(24958b50) SHA1(ea15ffa3a615e3e67c1bade6f6ef45424479115e) ) - ROM_LOAD ("d94-03.bin", 0x1200000, 0x200000, CRC(95e32072) SHA1(9797f65ecadc6b0f209bf262396315b61855c433) ) - ROM_LOAD ("d94-02.bin", 0x1400000, 0x200000, CRC(f460b9ac) SHA1(e36a812791bd0360380f397b1bc6c357391f585a) ) - ROM_LOAD ("d94-01.bin", 0x1600000, 0x200000, CRC(410ffccd) SHA1(0cab00c8e9de92ad81ac61f25bbe8bfd60f45ae0) ) - ROM_FILL ( 0xc00000, 0x600000,0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d94-14.bin", 0x000000, 0x100000, CRC(b8ba5761) SHA1(7966ef3166d7d6b9913478eaef5dd4a2bf7d5a06) ) - ROM_LOAD16_BYTE("d94-13.bin", 0x000001, 0x100000, CRC(cafc68ce) SHA1(5c1f49951e83d812f0c7697751f4876ab1d08141) ) - ROM_LOAD ("d94-12.bin", 0x300000, 0x100000, CRC(47064189) SHA1(99ceeb326dcc2e1c3acba8ac14d94dcb17c6e032) ) - ROM_FILL ( 0x200000, 0x100000,0x00 ) + ROM_REGION( 0x600000, "sprites_hi", 0 ) + ROM_LOAD ("d94-03.bin", 0x0000000, 0x200000, CRC(95e32072) SHA1(9797f65ecadc6b0f209bf262396315b61855c433) ) + ROM_LOAD ("d94-02.bin", 0x0200000, 0x200000, CRC(f460b9ac) SHA1(e36a812791bd0360380f397b1bc6c357391f585a) ) + ROM_LOAD ("d94-01.bin", 0x0400000, 0x200000, CRC(410ffccd) SHA1(0cab00c8e9de92ad81ac61f25bbe8bfd60f45ae0) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d94-14.bin", 0x000000, 0x100000, CRC(b8ba5761) SHA1(7966ef3166d7d6b9913478eaef5dd4a2bf7d5a06) ) + ROM_LOAD32_WORD("d94-13.bin", 0x000002, 0x100000, CRC(cafc68ce) SHA1(5c1f49951e83d812f0c7697751f4876ab1d08141) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("d94-12.bin", 0x000000, 0x100000, CRC(47064189) SHA1(99ceeb326dcc2e1c3acba8ac14d94dcb17c6e032) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("d94-19.bin", 0x100000, 0x40000, CRC(c93dbcf4) SHA1(413520e652d809651aff9b1b74e6353112d34c12) ) /* Over dump?? 0x20000-0x3ffff == 0xFF */ ROM_LOAD16_BYTE("d94-20.bin", 0x100001, 0x40000, CRC(f232bf64) SHA1(bbfeae0785fc49c12aa6d9b1bd6ff7c8515f8fe7) ) /* Over dump?? 0x20000-0x3ffff == 0xFF */ - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d94-10.bin", 0x000000, 0x200000, CRC(a22563ae) SHA1(85f2a4ca5e085ac1d4c15feb737229764697ae85) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d94-11.bin", 0x400000, 0x200000, CRC(61ed83fa) SHA1(f6ca60b7af61fd3ac01a987f949d7a7bc96e43ff) ) // CD CE -std- ROM_END ROM_START( hthero95u ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d94-18.20", 0x000000, 0x40000, CRC(b92681c3) SHA1(0ca05a69d046668c878df3d2b7ae3172d748e290) ) ROM_LOAD32_BYTE("d94-17.19", 0x000001, 0x40000, CRC(6009333e) SHA1(4ab28f2d9e2b75adc668f5d9390e06086bbd97dc) ) ROM_LOAD32_BYTE("d94-16.18", 0x000002, 0x40000, CRC(c6dbc9c8) SHA1(4f096b59734db51eeddcf0649f2a6f11bdde9590) ) ROM_LOAD32_BYTE("d94-21.17", 0x000003, 0x40000, CRC(8175d411) SHA1(b93ffef510ecfaced6cae07ea6cd549af7473049) ) - ROM_REGION(0x1800000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0xc00000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d94-09.bin", 0x0000000, 0x200000, CRC(425e6bec) SHA1(512508e7137fcdebdf2240dbbd37ea0cf1c4dcdc) ) ROM_LOAD16_BYTE("d94-08.bin", 0x0400000, 0x200000, CRC(bd909caf) SHA1(33952883afb8fe9b55dd258435af99881925e8d5) ) ROM_LOAD16_BYTE("d94-07.bin", 0x0800000, 0x200000, CRC(c8c95e49) SHA1(9bfdf63d6059b01a4cd5813239ba1bd98453a56b) ) ROM_LOAD16_BYTE("d94-06.bin", 0x0000001, 0x200000, CRC(0ed1df55) SHA1(10b22407ad0e03c37363783ee80f2cbf98a802a0) ) ROM_LOAD16_BYTE("d94-05.bin", 0x0400001, 0x200000, CRC(121c8542) SHA1(ec9b7e56c97a8b6ed0423f05b789ca89b1bb0d36) ) ROM_LOAD16_BYTE("d94-04.bin", 0x0800001, 0x200000, CRC(24958b50) SHA1(ea15ffa3a615e3e67c1bade6f6ef45424479115e) ) - ROM_LOAD ("d94-03.bin", 0x1200000, 0x200000, CRC(95e32072) SHA1(9797f65ecadc6b0f209bf262396315b61855c433) ) - ROM_LOAD ("d94-02.bin", 0x1400000, 0x200000, CRC(f460b9ac) SHA1(e36a812791bd0360380f397b1bc6c357391f585a) ) - ROM_LOAD ("d94-01.bin", 0x1600000, 0x200000, CRC(410ffccd) SHA1(0cab00c8e9de92ad81ac61f25bbe8bfd60f45ae0) ) - ROM_FILL ( 0xc00000, 0x600000,0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d94-14.bin", 0x000000, 0x100000, CRC(b8ba5761) SHA1(7966ef3166d7d6b9913478eaef5dd4a2bf7d5a06) ) - ROM_LOAD16_BYTE("d94-13.bin", 0x000001, 0x100000, CRC(cafc68ce) SHA1(5c1f49951e83d812f0c7697751f4876ab1d08141) ) - ROM_LOAD ("d94-12.bin", 0x300000, 0x100000, CRC(47064189) SHA1(99ceeb326dcc2e1c3acba8ac14d94dcb17c6e032) ) - ROM_FILL ( 0x200000, 0x100000,0x00 ) + ROM_REGION( 0x600000, "sprites_hi", 0 ) + ROM_LOAD ("d94-03.bin", 0x0000000, 0x200000, CRC(95e32072) SHA1(9797f65ecadc6b0f209bf262396315b61855c433) ) + ROM_LOAD ("d94-02.bin", 0x0200000, 0x200000, CRC(f460b9ac) SHA1(e36a812791bd0360380f397b1bc6c357391f585a) ) + ROM_LOAD ("d94-01.bin", 0x0400000, 0x200000, CRC(410ffccd) SHA1(0cab00c8e9de92ad81ac61f25bbe8bfd60f45ae0) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d94-14.bin", 0x000000, 0x100000, CRC(b8ba5761) SHA1(7966ef3166d7d6b9913478eaef5dd4a2bf7d5a06) ) + ROM_LOAD32_WORD("d94-13.bin", 0x000002, 0x100000, CRC(cafc68ce) SHA1(5c1f49951e83d812f0c7697751f4876ab1d08141) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("d94-12.bin", 0x000000, 0x100000, CRC(47064189) SHA1(99ceeb326dcc2e1c3acba8ac14d94dcb17c6e032) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("d94-19.bin", 0x100000, 0x40000, CRC(c93dbcf4) SHA1(413520e652d809651aff9b1b74e6353112d34c12) ) /* Over dump?? 0x20000-0x3ffff == 0xFF */ ROM_LOAD16_BYTE("d94-20.bin", 0x100001, 0x40000, CRC(f232bf64) SHA1(bbfeae0785fc49c12aa6d9b1bd6ff7c8515f8fe7) ) /* Over dump?? 0x20000-0x3ffff == 0xFF */ - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d94-10.bin", 0x000000, 0x200000, CRC(a22563ae) SHA1(85f2a4ca5e085ac1d4c15feb737229764697ae85) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d94-11.bin", 0x400000, 0x200000, CRC(61ed83fa) SHA1(f6ca60b7af61fd3ac01a987f949d7a7bc96e43ff) ) // CD CE -std- ROM_END ROM_START( hthero95a ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d94-26.20", 0x000000, 0x40000, CRC(3170fa0b) SHA1(75ce8eacbf64e370c5967541102e34d8aa3f815a) ) ROM_LOAD32_BYTE("d94-25.19", 0x000001, 0x40000, CRC(dfd5cbf9) SHA1(56b15eaf1032fa32c1c08ca0f9ab9701af12cbe4) ) ROM_LOAD32_BYTE("d94-24.18", 0x000002, 0x40000, CRC(d97269cc) SHA1(bbbd40368c713ce5baaaca3735ca41e0e72e8dc0) ) ROM_LOAD32_BYTE("d94-23.17", 0x000003, 0x40000, CRC(71092708) SHA1(ceb4bc42406c4627d3046b56958344496688b060) ) - ROM_REGION(0x1800000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0xc00000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d94-09.bin", 0x0000000, 0x200000, CRC(425e6bec) SHA1(512508e7137fcdebdf2240dbbd37ea0cf1c4dcdc) ) ROM_LOAD16_BYTE("d94-08.bin", 0x0400000, 0x200000, CRC(bd909caf) SHA1(33952883afb8fe9b55dd258435af99881925e8d5) ) ROM_LOAD16_BYTE("d94-07.bin", 0x0800000, 0x200000, CRC(c8c95e49) SHA1(9bfdf63d6059b01a4cd5813239ba1bd98453a56b) ) ROM_LOAD16_BYTE("d94-06.bin", 0x0000001, 0x200000, CRC(0ed1df55) SHA1(10b22407ad0e03c37363783ee80f2cbf98a802a0) ) ROM_LOAD16_BYTE("d94-05.bin", 0x0400001, 0x200000, CRC(121c8542) SHA1(ec9b7e56c97a8b6ed0423f05b789ca89b1bb0d36) ) ROM_LOAD16_BYTE("d94-04.bin", 0x0800001, 0x200000, CRC(24958b50) SHA1(ea15ffa3a615e3e67c1bade6f6ef45424479115e) ) - ROM_LOAD ("d94-03.bin", 0x1200000, 0x200000, CRC(95e32072) SHA1(9797f65ecadc6b0f209bf262396315b61855c433) ) - ROM_LOAD ("d94-02.bin", 0x1400000, 0x200000, CRC(f460b9ac) SHA1(e36a812791bd0360380f397b1bc6c357391f585a) ) - ROM_LOAD ("d94-01.bin", 0x1600000, 0x200000, CRC(410ffccd) SHA1(0cab00c8e9de92ad81ac61f25bbe8bfd60f45ae0) ) - ROM_FILL ( 0xc00000, 0x600000,0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d94-14.bin", 0x000000, 0x100000, CRC(b8ba5761) SHA1(7966ef3166d7d6b9913478eaef5dd4a2bf7d5a06) ) - ROM_LOAD16_BYTE("d94-13.bin", 0x000001, 0x100000, CRC(cafc68ce) SHA1(5c1f49951e83d812f0c7697751f4876ab1d08141) ) - ROM_LOAD ("d94-12.bin", 0x300000, 0x100000, CRC(47064189) SHA1(99ceeb326dcc2e1c3acba8ac14d94dcb17c6e032) ) - ROM_FILL ( 0x200000, 0x100000,0x00 ) + ROM_REGION( 0x600000, "sprites_hi", 0 ) + ROM_LOAD ("d94-03.bin", 0x0000000, 0x200000, CRC(95e32072) SHA1(9797f65ecadc6b0f209bf262396315b61855c433) ) + ROM_LOAD ("d94-02.bin", 0x0200000, 0x200000, CRC(f460b9ac) SHA1(e36a812791bd0360380f397b1bc6c357391f585a) ) + ROM_LOAD ("d94-01.bin", 0x0400000, 0x200000, CRC(410ffccd) SHA1(0cab00c8e9de92ad81ac61f25bbe8bfd60f45ae0) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d94-14.bin", 0x000000, 0x100000, CRC(b8ba5761) SHA1(7966ef3166d7d6b9913478eaef5dd4a2bf7d5a06) ) + ROM_LOAD32_WORD("d94-13.bin", 0x000002, 0x100000, CRC(cafc68ce) SHA1(5c1f49951e83d812f0c7697751f4876ab1d08141) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("d94-12.bin", 0x000000, 0x100000, CRC(47064189) SHA1(99ceeb326dcc2e1c3acba8ac14d94dcb17c6e032) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("d94-19.bin", 0x100000, 0x40000, CRC(c93dbcf4) SHA1(413520e652d809651aff9b1b74e6353112d34c12) ) /* Over dump?? 0x20000-0x3ffff == 0xFF */ ROM_LOAD16_BYTE("d94-20.bin", 0x100001, 0x40000, CRC(f232bf64) SHA1(bbfeae0785fc49c12aa6d9b1bd6ff7c8515f8fe7) ) /* Over dump?? 0x20000-0x3ffff == 0xFF */ - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d94-10.bin", 0x000000, 0x200000, CRC(a22563ae) SHA1(85f2a4ca5e085ac1d4c15feb737229764697ae85) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d94-11.bin", 0x400000, 0x200000, CRC(61ed83fa) SHA1(f6ca60b7af61fd3ac01a987f949d7a7bc96e43ff) ) // CD CE -std- ROM_END ROM_START( qtheater ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("d95-12.20", 0x000000, 0x80000, CRC(fcee76ee) SHA1(9ffeeda656368d1c065ba1cdb51a8665f7f7262a) ) ROM_LOAD32_BYTE("d95-11.19", 0x000001, 0x80000, CRC(b3c2b8d5) SHA1(536c13d71e858309f41e7c387cd988e8fe356bee) ) ROM_LOAD32_BYTE("d95-10.18", 0x000002, 0x80000, CRC(85236e40) SHA1(727c8f7361d7e0af3239bb0c0e7778ab30b12739) ) ROM_LOAD32_BYTE("d95-09.17", 0x000003, 0x80000, CRC(f456519c) SHA1(9226d33d8d16a7d1054c1183ac013fc5caf229e2) ) - ROM_REGION(0x800000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x400000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("d95-02.12", 0x000000, 0x200000, CRC(74ce6f3e) SHA1(eb03f44889bd2d5705e9d8cda6516b39758d9554) ) ROM_LOAD16_BYTE("d95-01.8", 0x000001, 0x200000, CRC(141beb7d) SHA1(bba91f47f68367e2bb3d89298cb62fac2d4edf7b) ) - ROM_FILL ( 0x400000, 0x400000, 0x00 ) - ROM_REGION(0x800000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("d95-06.47", 0x000000, 0x200000, CRC(70a0dcbb) SHA1(b1abe6a9a4afe55201229a62bae11ad1d96ca244) ) - ROM_LOAD16_BYTE("d95-05.45", 0x000001, 0x200000, CRC(1a1a852b) SHA1(89827485a31af4e2457775a5d16f747a764b6d67) ) - ROM_FILL ( 0x400000, 0x400000, 0x00 ) + EMPTY_SPRITE_HIDATA(0x200000) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x400000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("d95-06.47", 0x000000, 0x200000, CRC(70a0dcbb) SHA1(b1abe6a9a4afe55201229a62bae11ad1d96ca244) ) + ROM_LOAD32_WORD("d95-05.45", 0x000002, 0x200000, CRC(1a1a852b) SHA1(89827485a31af4e2457775a5d16f747a764b6d67) ) + + EMPTY_TILEMAP_HIDATA(0x200000) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("d95-07.32", 0x100000, 0x40000, CRC(3c201d70) SHA1(89fe4d363f4e1a847ba7d2894a2092708b287a33) ) ROM_LOAD16_BYTE("d95-08.33", 0x100001, 0x40000, CRC(01c23354) SHA1(7b332edc844b1b1c1513e879215089987645fa3f) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d95-03.38", 0x000000, 0x200000, CRC(4149ea67) SHA1(35fc9e60cd368c6eab20e23deb581aa4f46e164e) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d95-04.41", 0x400000, 0x200000, CRC(e9049d16) SHA1(ffa7dfc5d1cb82a601bad26b634c993aedda7803) ) // CC CD -std- ROM_END ROM_START( spcinv95u ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e06-14.20", 0x000000, 0x20000, CRC(71ba7f00) SHA1(6b1d994c8319778aad3bec7bf7b24dc4944a36f0) ) ROM_LOAD32_BYTE("e06-13.19", 0x000001, 0x20000, CRC(f506ba4b) SHA1(551f9e87d2bfd513998648b175b63677cd6bdd74) ) ROM_LOAD32_BYTE("e06-12.18", 0x000002, 0x20000, CRC(06cbd72b) SHA1(0c8e11bd5f3fcf7451908c53e74ae545a0d97640) ) ROM_LOAD32_BYTE("e06-15.17", 0x000003, 0x20000, CRC(a6ec0103) SHA1(4f524a6b52bbdb370b8f98d26e7446da943e3edd) ) - ROM_REGION(0x400000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x200000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("e06-03", 0x000000, 0x100000, CRC(a24070ef) SHA1(9b6ac7852114c606e871a08cfb3b9e1081ac7030) ) ROM_LOAD16_BYTE("e06-02", 0x000001, 0x100000, CRC(8f646dea) SHA1(07cd79671f36df1a5bbf2434e92a601351a36259) ) - ROM_LOAD ("e06-01", 0x300000, 0x100000, CRC(51721b15) SHA1(448a9a7f3631072d8987351f5c0b8dd2c908d266) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("e06-08", 0x000000, 0x100000, CRC(72ae2fbf) SHA1(7fa7ec94a8031342a2446fb8eca0d89ecfd2fa4f) ) - ROM_LOAD16_BYTE("e06-07", 0x000001, 0x100000, CRC(4b02e8f5) SHA1(02d8a97da52f9ba4033b8f0c3f455a908a9dce89) ) - ROM_LOAD ("e06-06", 0x300000, 0x100000, CRC(9380db3c) SHA1(83f5a46a01b9c15499e0dc2222df496d26baa0d4) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + ROM_REGION( 0x100000, "sprites_hi", 0 ) + ROM_LOAD ("e06-01", 0x000000, 0x100000, CRC(51721b15) SHA1(448a9a7f3631072d8987351f5c0b8dd2c908d266) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("e06-08", 0x000000, 0x100000, CRC(72ae2fbf) SHA1(7fa7ec94a8031342a2446fb8eca0d89ecfd2fa4f) ) + ROM_LOAD32_WORD("e06-07", 0x000002, 0x100000, CRC(4b02e8f5) SHA1(02d8a97da52f9ba4033b8f0c3f455a908a9dce89) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("e06-06", 0x000000, 0x100000, CRC(9380db3c) SHA1(83f5a46a01b9c15499e0dc2222df496d26baa0d4) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("e06-09.32", 0x100000, 0x40000, CRC(9bcafc87) SHA1(10b3f6da00a41550fe6a705232f0e33fda3c7e7c) ) ROM_LOAD16_BYTE("e06-10.33", 0x100001, 0x40000, CRC(b752b61f) SHA1(e948a8af19c70ba8b8e908c869bc88ed0cac8420) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e06-04", 0x000000, 0x200000, CRC(1dac29df) SHA1(ed68a41def148dcf4057cfac87a2a563c6882e1d) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e06-05", 0x400000, 0x200000, CRC(f370ff15) SHA1(4bc464d1c3a28326c8b1ae2036387954cb1dd813) ) // CC CD CE CF @@ -2524,29 +2621,31 @@ ROM_START( spcinv95u ) ROM_END ROM_START( spcinv95 ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e06-14.20", 0x000000, 0x20000, CRC(71ba7f00) SHA1(6b1d994c8319778aad3bec7bf7b24dc4944a36f0) ) ROM_LOAD32_BYTE("e06-13.19", 0x000001, 0x20000, CRC(f506ba4b) SHA1(551f9e87d2bfd513998648b175b63677cd6bdd74) ) ROM_LOAD32_BYTE("e06-12.18", 0x000002, 0x20000, CRC(06cbd72b) SHA1(0c8e11bd5f3fcf7451908c53e74ae545a0d97640) ) ROM_LOAD32_BYTE("e06-16.17", 0x000003, 0x20000, CRC(d1eb3195) SHA1(40c5e326e8dd9a892abdab952f853799f26601b7) ) - ROM_REGION(0x400000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x200000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("e06-03", 0x000000, 0x100000, CRC(a24070ef) SHA1(9b6ac7852114c606e871a08cfb3b9e1081ac7030) ) ROM_LOAD16_BYTE("e06-02", 0x000001, 0x100000, CRC(8f646dea) SHA1(07cd79671f36df1a5bbf2434e92a601351a36259) ) - ROM_LOAD ("e06-01", 0x300000, 0x100000, CRC(51721b15) SHA1(448a9a7f3631072d8987351f5c0b8dd2c908d266) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("e06-08", 0x000000, 0x100000, CRC(72ae2fbf) SHA1(7fa7ec94a8031342a2446fb8eca0d89ecfd2fa4f) ) - ROM_LOAD16_BYTE("e06-07", 0x000001, 0x100000, CRC(4b02e8f5) SHA1(02d8a97da52f9ba4033b8f0c3f455a908a9dce89) ) - ROM_LOAD ("e06-06", 0x300000, 0x100000, CRC(9380db3c) SHA1(83f5a46a01b9c15499e0dc2222df496d26baa0d4) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + ROM_REGION( 0x100000, "sprites_hi", 0 ) + ROM_LOAD ("e06-01", 0x000000, 0x100000, CRC(51721b15) SHA1(448a9a7f3631072d8987351f5c0b8dd2c908d266) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("e06-08", 0x000000, 0x100000, CRC(72ae2fbf) SHA1(7fa7ec94a8031342a2446fb8eca0d89ecfd2fa4f) ) + ROM_LOAD32_WORD("e06-07", 0x000002, 0x100000, CRC(4b02e8f5) SHA1(02d8a97da52f9ba4033b8f0c3f455a908a9dce89) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("e06-06", 0x000000, 0x100000, CRC(9380db3c) SHA1(83f5a46a01b9c15499e0dc2222df496d26baa0d4) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("e06-09.32", 0x100000, 0x40000, CRC(9bcafc87) SHA1(10b3f6da00a41550fe6a705232f0e33fda3c7e7c) ) ROM_LOAD16_BYTE("e06-10.33", 0x100001, 0x40000, CRC(b752b61f) SHA1(e948a8af19c70ba8b8e908c869bc88ed0cac8420) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e06-04", 0x000000, 0x200000, CRC(1dac29df) SHA1(ed68a41def148dcf4057cfac87a2a563c6882e1d) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e06-05", 0x400000, 0x200000, CRC(f370ff15) SHA1(4bc464d1c3a28326c8b1ae2036387954cb1dd813) ) // CC CD CE CF @@ -2559,29 +2658,31 @@ ROM_START( spcinv95 ) ROM_END ROM_START( akkanvdr ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e06-14.20", 0x000000, 0x20000, CRC(71ba7f00) SHA1(6b1d994c8319778aad3bec7bf7b24dc4944a36f0) ) ROM_LOAD32_BYTE("e06-13.19", 0x000001, 0x20000, CRC(f506ba4b) SHA1(551f9e87d2bfd513998648b175b63677cd6bdd74) ) ROM_LOAD32_BYTE("e06-12.18", 0x000002, 0x20000, CRC(06cbd72b) SHA1(0c8e11bd5f3fcf7451908c53e74ae545a0d97640) ) ROM_LOAD32_BYTE("e06-11.17", 0x000003, 0x20000, CRC(3fe550b9) SHA1(6258d72204834abfba58bc2d5882f3616a6fd784) ) - ROM_REGION(0x400000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x200000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("e06-03", 0x000000, 0x100000, CRC(a24070ef) SHA1(9b6ac7852114c606e871a08cfb3b9e1081ac7030) ) ROM_LOAD16_BYTE("e06-02", 0x000001, 0x100000, CRC(8f646dea) SHA1(07cd79671f36df1a5bbf2434e92a601351a36259) ) - ROM_LOAD ("e06-01", 0x300000, 0x100000, CRC(51721b15) SHA1(448a9a7f3631072d8987351f5c0b8dd2c908d266) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("e06-08", 0x000000, 0x100000, CRC(72ae2fbf) SHA1(7fa7ec94a8031342a2446fb8eca0d89ecfd2fa4f) ) - ROM_LOAD16_BYTE("e06-07", 0x000001, 0x100000, CRC(4b02e8f5) SHA1(02d8a97da52f9ba4033b8f0c3f455a908a9dce89) ) - ROM_LOAD ("e06-06", 0x300000, 0x100000, CRC(9380db3c) SHA1(83f5a46a01b9c15499e0dc2222df496d26baa0d4) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + ROM_REGION( 0x100000, "sprites_hi", 0 ) + ROM_LOAD ("e06-01", 0x000000, 0x100000, CRC(51721b15) SHA1(448a9a7f3631072d8987351f5c0b8dd2c908d266) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("e06-08", 0x000000, 0x100000, CRC(72ae2fbf) SHA1(7fa7ec94a8031342a2446fb8eca0d89ecfd2fa4f) ) + ROM_LOAD32_WORD("e06-07", 0x000002, 0x100000, CRC(4b02e8f5) SHA1(02d8a97da52f9ba4033b8f0c3f455a908a9dce89) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("e06-06", 0x000000, 0x100000, CRC(9380db3c) SHA1(83f5a46a01b9c15499e0dc2222df496d26baa0d4) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("e06-09.32", 0x100000, 0x40000, CRC(9bcafc87) SHA1(10b3f6da00a41550fe6a705232f0e33fda3c7e7c) ) ROM_LOAD16_BYTE("e06-10.33", 0x100001, 0x40000, CRC(b752b61f) SHA1(e948a8af19c70ba8b8e908c869bc88ed0cac8420) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e06-04", 0x000000, 0x200000, CRC(1dac29df) SHA1(ed68a41def148dcf4057cfac87a2a563c6882e1d) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e06-05", 0x400000, 0x200000, CRC(f370ff15) SHA1(4bc464d1c3a28326c8b1ae2036387954cb1dd813) ) // CC CD CE CF ROM_END @@ -2672,29 +2773,31 @@ Notes: */ ROM_START( elvactr ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e02-12.20", 0x000000, 0x80000, CRC(ea5f5a32) SHA1(4f30c56fbf068fee6d3afb2479043c7e89f6c055) ) ROM_LOAD32_BYTE("e02-11.19", 0x000001, 0x80000, CRC(bcced8ff) SHA1(09c38c78300ba9d710b4e46ca71014bbc5ac46b4) ) ROM_LOAD32_BYTE("e02-10.18", 0x000002, 0x80000, CRC(72f1b952) SHA1(9fc41ecfbee3581d9e92ff3a2ab6e4b93567e31d) ) ROM_LOAD32_BYTE("e02-16.17", 0x000003, 0x80000, CRC(cd97182b) SHA1(b3387980acfeec81eb0178d5b2955ac39595e22d) ) - ROM_REGION(0x800000, "gfx1", 0 ) /* Sprites */ + ROM_REGION( 0x400000, "sprites", 0 ) /* Sprites */ ROM_LOAD16_BYTE("e02-03.12", 0x000000, 0x200000, CRC(c884ebb5) SHA1(49009056bfdc564eac0ae6b7b49f070f05dc4ee3) ) ROM_LOAD16_BYTE("e02-02.8", 0x000001, 0x200000, CRC(c8e06cfb) SHA1(071d095a4930ce18a782c577811b553a9705fbd7) ) - ROM_LOAD ("e02-01.4", 0x600000, 0x200000, CRC(2ba94726) SHA1(3e9cdd076338e0e5358571ce4f97576f1a6a12a7) ) - ROM_FILL ( 0x400000, 0x200000, 0x00 ) - ROM_REGION(0x800000, "gfx2", 0 ) /* Tiles */ - ROM_LOAD16_BYTE("e02-08.47", 0x000000, 0x200000, CRC(29c9bd02) SHA1(a5b552ae7ac15f514ee6105410ec3e6e34ea0adb) ) - ROM_LOAD16_BYTE("e02-07.45", 0x000001, 0x200000, CRC(5eeee925) SHA1(d302da28df8ac6d406ef45f1d282ee22ce243857) ) - ROM_LOAD ("e02-06.43", 0x600000, 0x200000, CRC(4c8726e9) SHA1(8ce2320a087f43c49428a39dafffec8c40d61b03) ) - ROM_FILL ( 0x400000, 0x200000, 0x00 ) + ROM_REGION( 0x200000, "sprites_hi", 0 ) + ROM_LOAD ("e02-01.4", 0x000000, 0x200000, CRC(2ba94726) SHA1(3e9cdd076338e0e5358571ce4f97576f1a6a12a7) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x400000, "tilemap", 0 ) /* Tiles */ + ROM_LOAD32_WORD("e02-08.47", 0x000000, 0x200000, CRC(29c9bd02) SHA1(a5b552ae7ac15f514ee6105410ec3e6e34ea0adb) ) + ROM_LOAD32_WORD("e02-07.45", 0x000002, 0x200000, CRC(5eeee925) SHA1(d302da28df8ac6d406ef45f1d282ee22ce243857) ) + + ROM_REGION( 0x200000, "tilemap_hi", 0 ) + ROM_LOAD ("e02-06.43", 0x000000, 0x200000, CRC(4c8726e9) SHA1(8ce2320a087f43c49428a39dafffec8c40d61b03) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("e02-13.32", 0x100000, 0x40000, CRC(80932702) SHA1(c468234d03aa31b2aa0c3bd6bec32034216c2ae4) ) ROM_LOAD16_BYTE("e02-14.33", 0x100001, 0x40000, CRC(706671a5) SHA1(1ac90647d617e73f12a67274a025ae43a6b3a316) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e02-04.38", 0x000000, 0x200000, CRC(b74307af) SHA1(deb42415049efa2df70e7b25ba8b1b716aa227f1) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e02-05.39", 0x400000, 0x200000, CRC(eb729855) SHA1(85253efe794e8b5ffaf16bcb1123bca831e776a5) ) // CC CD CE CF @@ -2709,86 +2812,93 @@ ROM_START( elvactr ) ROM_END ROM_START( elvactrj ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e02-12.20", 0x000000, 0x80000, CRC(ea5f5a32) SHA1(4f30c56fbf068fee6d3afb2479043c7e89f6c055) ) ROM_LOAD32_BYTE("e02-11.19", 0x000001, 0x80000, CRC(bcced8ff) SHA1(09c38c78300ba9d710b4e46ca71014bbc5ac46b4) ) ROM_LOAD32_BYTE("e02-10.18", 0x000002, 0x80000, CRC(72f1b952) SHA1(9fc41ecfbee3581d9e92ff3a2ab6e4b93567e31d) ) ROM_LOAD32_BYTE("e02-09.17", 0x000003, 0x80000, CRC(23997907) SHA1(e5b0b9069b29cf08e1a782c73f42137aec198f7f) ) - ROM_REGION(0x800000, "gfx1", 0 ) /* Sprites */ + ROM_REGION( 0x400000, "sprites", 0 ) /* Sprites */ ROM_LOAD16_BYTE("e02-03.12", 0x000000, 0x200000, CRC(c884ebb5) SHA1(49009056bfdc564eac0ae6b7b49f070f05dc4ee3) ) ROM_LOAD16_BYTE("e02-02.8", 0x000001, 0x200000, CRC(c8e06cfb) SHA1(071d095a4930ce18a782c577811b553a9705fbd7) ) - ROM_LOAD ("e02-01.4", 0x600000, 0x200000, CRC(2ba94726) SHA1(3e9cdd076338e0e5358571ce4f97576f1a6a12a7) ) - ROM_FILL ( 0x400000, 0x200000, 0x00 ) - ROM_REGION(0x800000, "gfx2", 0 ) /* Tiles */ - ROM_LOAD16_BYTE("e02-08.47", 0x000000, 0x200000, CRC(29c9bd02) SHA1(a5b552ae7ac15f514ee6105410ec3e6e34ea0adb) ) - ROM_LOAD16_BYTE("e02-07.45", 0x000001, 0x200000, CRC(5eeee925) SHA1(d302da28df8ac6d406ef45f1d282ee22ce243857) ) - ROM_LOAD ("e02-06.43", 0x600000, 0x200000, CRC(4c8726e9) SHA1(8ce2320a087f43c49428a39dafffec8c40d61b03) ) - ROM_FILL ( 0x400000, 0x200000, 0x00 ) + ROM_REGION( 0x200000, "sprites_hi", 0 ) + ROM_LOAD ("e02-01.4", 0x000000, 0x200000, CRC(2ba94726) SHA1(3e9cdd076338e0e5358571ce4f97576f1a6a12a7) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x400000, "tilemap", 0 ) /* Tiles */ + ROM_LOAD32_WORD("e02-08.47", 0x000000, 0x200000, CRC(29c9bd02) SHA1(a5b552ae7ac15f514ee6105410ec3e6e34ea0adb) ) + ROM_LOAD32_WORD("e02-07.45", 0x000002, 0x200000, CRC(5eeee925) SHA1(d302da28df8ac6d406ef45f1d282ee22ce243857) ) + + ROM_REGION( 0x200000, "tilemap_hi", 0 ) + ROM_LOAD ("e02-06.43", 0x000000, 0x200000, CRC(4c8726e9) SHA1(8ce2320a087f43c49428a39dafffec8c40d61b03) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("e02-13.32", 0x100000, 0x40000, CRC(80932702) SHA1(c468234d03aa31b2aa0c3bd6bec32034216c2ae4) ) ROM_LOAD16_BYTE("e02-14.33", 0x100001, 0x40000, CRC(706671a5) SHA1(1ac90647d617e73f12a67274a025ae43a6b3a316) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e02-04.38", 0x000000, 0x200000, CRC(b74307af) SHA1(deb42415049efa2df70e7b25ba8b1b716aa227f1) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e02-05.39", 0x400000, 0x200000, CRC(eb729855) SHA1(85253efe794e8b5ffaf16bcb1123bca831e776a5) ) // CC CD CE CF ROM_END ROM_START( elvact2u ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e02-12.20", 0x000000, 0x80000, CRC(ea5f5a32) SHA1(4f30c56fbf068fee6d3afb2479043c7e89f6c055) ) ROM_LOAD32_BYTE("e02-11.19", 0x000001, 0x80000, CRC(bcced8ff) SHA1(09c38c78300ba9d710b4e46ca71014bbc5ac46b4) ) ROM_LOAD32_BYTE("e02-10.18", 0x000002, 0x80000, CRC(72f1b952) SHA1(9fc41ecfbee3581d9e92ff3a2ab6e4b93567e31d) ) ROM_LOAD32_BYTE("e02-15.17", 0x000003, 0x80000, CRC(ba9028bd) SHA1(1d04ce5333143ed78ec297d89c0cdb99bf6e4bde) ) - ROM_REGION(0x800000, "gfx1", 0 ) /* Sprites */ + ROM_REGION( 0x400000, "sprites", 0 ) /* Sprites */ ROM_LOAD16_BYTE("e02-03.12", 0x000000, 0x200000, CRC(c884ebb5) SHA1(49009056bfdc564eac0ae6b7b49f070f05dc4ee3) ) ROM_LOAD16_BYTE("e02-02.8", 0x000001, 0x200000, CRC(c8e06cfb) SHA1(071d095a4930ce18a782c577811b553a9705fbd7) ) - ROM_LOAD ("e02-01.4", 0x600000, 0x200000, CRC(2ba94726) SHA1(3e9cdd076338e0e5358571ce4f97576f1a6a12a7) ) - ROM_FILL ( 0x400000, 0x200000, 0x00 ) - ROM_REGION(0x800000, "gfx2", 0 ) /* Tiles */ - ROM_LOAD16_BYTE("e02-08.47", 0x000000, 0x200000, CRC(29c9bd02) SHA1(a5b552ae7ac15f514ee6105410ec3e6e34ea0adb) ) - ROM_LOAD16_BYTE("e02-07.45", 0x000001, 0x200000, CRC(5eeee925) SHA1(d302da28df8ac6d406ef45f1d282ee22ce243857) ) - ROM_LOAD ("e02-06.43", 0x600000, 0x200000, CRC(4c8726e9) SHA1(8ce2320a087f43c49428a39dafffec8c40d61b03) ) - ROM_FILL ( 0x400000, 0x200000, 0x00 ) + ROM_REGION( 0x200000, "sprites_hi", 0 ) + ROM_LOAD ("e02-01.4", 0x000000, 0x200000, CRC(2ba94726) SHA1(3e9cdd076338e0e5358571ce4f97576f1a6a12a7) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x400000, "tilemap", 0 ) /* Tiles */ + ROM_LOAD32_WORD("e02-08.47", 0x000000, 0x200000, CRC(29c9bd02) SHA1(a5b552ae7ac15f514ee6105410ec3e6e34ea0adb) ) + ROM_LOAD32_WORD("e02-07.45", 0x000002, 0x200000, CRC(5eeee925) SHA1(d302da28df8ac6d406ef45f1d282ee22ce243857) ) + + ROM_REGION( 0x200000, "tilemap_hi", 0 ) + ROM_LOAD ("e02-06.43", 0x000000, 0x200000, CRC(4c8726e9) SHA1(8ce2320a087f43c49428a39dafffec8c40d61b03) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("e02-13.32", 0x100000, 0x40000, CRC(80932702) SHA1(c468234d03aa31b2aa0c3bd6bec32034216c2ae4) ) ROM_LOAD16_BYTE("e02-14.33", 0x100001, 0x40000, CRC(706671a5) SHA1(1ac90647d617e73f12a67274a025ae43a6b3a316) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e02-04.38", 0x000000, 0x200000, CRC(b74307af) SHA1(deb42415049efa2df70e7b25ba8b1b716aa227f1) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e02-05.39", 0x400000, 0x200000, CRC(eb729855) SHA1(85253efe794e8b5ffaf16bcb1123bca831e776a5) ) // CC CD CE CF ROM_END ROM_START( twinqix ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("mpr0-3.b60", 0x000000, 0x40000, CRC(1a63d0de) SHA1(7d8d8a6c9c7f9dfc0a8a528a905e33388b8fe13d) ) ROM_LOAD32_BYTE("mpr0-2.b61", 0x000001, 0x40000, CRC(45a70987) SHA1(8cca6845064d943fd28416143e60399188b023cd) ) ROM_LOAD32_BYTE("mpr0-1.b62", 0x000002, 0x40000, CRC(531f9447) SHA1(4d18efaad9c3dd2b14d3125c0f9e18cfcde3a1f2) ) ROM_LOAD32_BYTE("mpr0-0.b63", 0x000003, 0x40000, CRC(a4c44c11) SHA1(b928134028bb8cddd6e34a501a4aad56173e2ae2) ) - ROM_REGION(0x200000, "gfx1" , 0 ) /* Sprites */ + ROM_REGION( 0x100000, "sprites" , 0 ) /* Sprites */ ROM_LOAD16_BYTE("obj0-0.a08", 0x000000, 0x080000, CRC(c6ea845c) SHA1(9df710637e8f64f7fec232b5ebbede588e07c2db) ) ROM_LOAD16_BYTE("obj0-1.a20", 0x000001, 0x080000, CRC(8c12b7fb) SHA1(8a52870fb9f508148619763fb6f37dd74b5386ca) ) - ROM_FILL ( 0x100000, 0x100000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0 ) /* Tiles */ + EMPTY_SPRITE_HIDATA(0x080000) + + ROM_REGION( 0x200000, "tilemap" , 0 ) /* Tiles */ ROM_LOAD32_BYTE("scr0-0.b07", 0x000000, 0x080000, CRC(9a1b9b34) SHA1(ddf9c6ba0f9c340b580573e1d96ac76b1cd35beb) ) - ROM_LOAD32_BYTE("scr0-1.b06", 0x000002, 0x080000, CRC(e9bef879) SHA1(7e720f5054a1ef3a28353f1c221f4cf15d3b7428) ) - ROM_LOAD32_BYTE("scr0-2.b05", 0x000001, 0x080000, CRC(cac6854b) SHA1(c97fb7de48e1644695bbe431587d6c1be01ea62d) ) + ROM_LOAD32_BYTE("scr0-1.b06", 0x000001, 0x080000, CRC(e9bef879) SHA1(7e720f5054a1ef3a28353f1c221f4cf15d3b7428) ) + ROM_LOAD32_BYTE("scr0-2.b05", 0x000002, 0x080000, CRC(cac6854b) SHA1(c97fb7de48e1644695bbe431587d6c1be01ea62d) ) ROM_LOAD32_BYTE("scr0-3.b04", 0x000003, 0x080000, CRC(ce063034) SHA1(2ecff74427d7d2fa8d1db4ac87481d123d7ce003) ) - ROM_LOAD16_BYTE("scr0-4.b03", 0x300000, 0x080000, CRC(d32280fe) SHA1(56b120128c5e4b8c6598a1de51269e6702a63175) ) - ROM_LOAD16_BYTE("scr0-5.b02", 0x300001, 0x080000, CRC(fdd1a85b) SHA1(1d94a4858baef3e78c456049dc58249a574205fe) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* sound CPU */ + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD16_BYTE("scr0-4.b03", 0x000000, 0x080000, CRC(d32280fe) SHA1(56b120128c5e4b8c6598a1de51269e6702a63175) ) + ROM_LOAD16_BYTE("scr0-5.b02", 0x000001, 0x080000, CRC(fdd1a85b) SHA1(1d94a4858baef3e78c456049dc58249a574205fe) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* sound CPU */ ROM_LOAD16_BYTE("spr0-1.b66", 0x100000, 0x40000, CRC(4b20e99d) SHA1(faf184daea0f1131bafa50edb48bd470d4c0b141) ) ROM_LOAD16_BYTE("spr0-0.b65", 0x100001, 0x40000, CRC(2569eb30) SHA1(ec804131025e600198cd8342925823340e7ef458) ) - ROM_REGION16_BE(0x400000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 1 populated + ROM_REGION16_BE( 0x400000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 1 populated ROM_LOAD16_BYTE("snd-0.b43", 0x000000, 0x80000, CRC(ad5405a9) SHA1(67ee42498d2c3c00015237b3b5cd020f9a7c4a18) ) // C8 ROM_LOAD16_BYTE("snd-1.b44", 0x100000, 0x80000, CRC(274864af) SHA1(47fefee23038bb751bdf6b6f48312ba0b6e38b90) ) // C9 ROM_LOAD16_BYTE("snd-14.b10", 0x200000, 0x80000, CRC(26312451) SHA1(9f947a11592fd8420fc581914bf16e7ade75390c) ) // -std- @@ -2805,32 +2915,34 @@ ROM_START( twinqix ) ROM_END ROM_START( quizhuhu ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e08-16.20", 0x000000, 0x80000, CRC(faa8f373) SHA1(e263b058288fcacf9b15188ab78e8fb05a8971a7) ) ROM_LOAD32_BYTE("e08-15.19", 0x000001, 0x80000, CRC(23acf231) SHA1(a87933439b3d1d92f8b9d545b13f20cc47a7fd4e) ) ROM_LOAD32_BYTE("e08-14.18", 0x000002, 0x80000, CRC(33a4951d) SHA1(69e8fe994f620ce056cdedca77bff1d0c6e74483) ) ROM_LOAD32_BYTE("e08-13.17", 0x000003, 0x80000, CRC(0936fd2a) SHA1(f0f7017c755b28644b67b4fd6d5e19c272e9c3a2) ) - ROM_REGION(0xc00000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x600000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("e08-06.12", 0x000000, 0x200000, CRC(8dadc9ac) SHA1(469e3c5063f5cb0832fb5bb5000ecd3c342cd095) ) ROM_LOAD16_BYTE("e08-04.8", 0x000001, 0x200000, CRC(5423721d) SHA1(7e9f4492845b7b4df0336203b1da6ca5ffeb36de) ) ROM_LOAD16_BYTE("e08-05.11", 0x400000, 0x100000, CRC(79d2e516) SHA1(7dc0c23f3995d14b443a3f67d488e5ab780e8a94) ) ROM_LOAD16_BYTE("e08-03.7", 0x400001, 0x100000, CRC(07b9ab6a) SHA1(db205822233c385e1dbe4a9d40b311df9bca7053) ) - ROM_LOAD ("e08-02.4", 0x900000, 0x200000, CRC(d89eb067) SHA1(bd8e1cf4c2046894c629d927fa05806b9b73505d) ) - ROM_LOAD ("e08-01.3", 0xb00000, 0x100000, CRC(90223c06) SHA1(f07dae563946908d471ae89db74a2e55c5ab5890) ) - ROM_FILL ( 0x600000, 0x300000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("e08-12.47", 0x000000, 0x100000, CRC(6c711d36) SHA1(3fbff7783323d968ade72ac53531a7bcf7b9d234) ) - ROM_LOAD16_BYTE("e08-11.45", 0x000001, 0x100000, CRC(56775a60) SHA1(8bb8190101f2e8487ebb707022ff89d97bb7b39a) ) - ROM_LOAD ("e08-10.43", 0x300000, 0x100000, CRC(60abc71b) SHA1(f4aa906920c6134c33a4dfb51724f3adbd3d7de4) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + ROM_REGION( 0x300000, "sprites_hi", 0 ) + ROM_LOAD ("e08-02.4", 0x000000, 0x200000, CRC(d89eb067) SHA1(bd8e1cf4c2046894c629d927fa05806b9b73505d) ) + ROM_LOAD ("e08-01.3", 0x200000, 0x100000, CRC(90223c06) SHA1(f07dae563946908d471ae89db74a2e55c5ab5890) ) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("e08-12.47", 0x000000, 0x100000, CRC(6c711d36) SHA1(3fbff7783323d968ade72ac53531a7bcf7b9d234) ) + ROM_LOAD32_WORD("e08-11.45", 0x000002, 0x100000, CRC(56775a60) SHA1(8bb8190101f2e8487ebb707022ff89d97bb7b39a) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("e08-10.43", 0x000000, 0x100000, CRC(60abc71b) SHA1(f4aa906920c6134c33a4dfb51724f3adbd3d7de4) ) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("e08-18.32", 0x100000, 0x20000, CRC(e695497e) SHA1(9d845b4c0bd9b40471fb4b5ab2f9240058bc324f) ) ROM_LOAD16_BYTE("e08-17.33", 0x100001, 0x20000, CRC(fafc7e4e) SHA1(26f46d5900fbf26d25651e7e818e486fc7a878ec) ) - ROM_REGION16_BE(0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks // empty ROM_LOAD16_BYTE("e08-07.38", 0x400000, 0x200000, CRC(c05dc85b) SHA1(d46ae3f066bbe041edde40358dd54f93e8e195de) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e08-08.39", 0x800000, 0x200000, CRC(3eb94a99) SHA1(e6e8832e87397811dfc40525f2a15fc0415cec68) ) // CC CD CE CF @@ -2839,141 +2951,151 @@ ROM_END ROM_START( pbobble2 ) - ROM_REGION(0x200000, "maincpu", ROMREGION_ERASE00) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", ROMREGION_ERASE00 ) /* 68020 code */ ROM_LOAD32_BYTE("e10-22.bin", 0x000002, 0x40000, CRC(7b12105d) SHA1(b69379c5a79c365ed6e62e7ae478e4bbb4edfcb1) ) ROM_LOAD32_BYTE("e10-23.bin", 0x000001, 0x40000, CRC(56a66435) SHA1(ba9d405416090f3482c6ed610e7eb77b43459ff1) ) ROM_LOAD32_BYTE("e10-24.bin", 0x000000, 0x40000, CRC(f9d0794b) SHA1(320eee7790bf9a5141ad7b0ebfdec47e8f85a1c2) ) ROM_LOAD32_BYTE("e10-25.bin", 0x000003, 0x40000, CRC(ff0407d3) SHA1(4616bb9132f78c4f0212afbcc8d528934f822f44) ) - ROM_REGION(0x400000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x200000, "sprites" , 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, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* 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_FILL ( 0x200000, 0x100000, 0x00 ) + EMPTY_SPRITE_HIDATA(0x100000) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("e10-07.rom", 0x000000, 0x100000, CRC(dcb3c29b) SHA1(b80c3a8ce53d696c57675e654c9927ef8687759e) ) + ROM_LOAD32_WORD("e10-06.rom", 0x000002, 0x100000, CRC(1b0f20e2) SHA1(66b44d059c2896abac2f0e7fc932489dee440ba0) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("e10-05.rom", 0x000000, 0x100000, CRC(81266151) SHA1(aa3b144f32995425db97efce440e234a3c7a6715) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("e10-12.32", 0x100000, 0x40000, CRC(b92dc8ad) SHA1(0c1428d313507b1ae5a2af3b2fbaaa5650135e1e) ) ROM_LOAD16_BYTE("e10-13.33", 0x100001, 0x40000, CRC(87842c13) SHA1(d15b47c7430e677ae172f86fd5be595e4fe72e42) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + 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_REGION(0x2000, "extra", 0) + ROM_REGION( 0x2000, "extra", 0 ) ROM_LOAD("e10-21.bin", 0x000000, 0x117, CRC(458499b7) SHA1(0c49aaf75539587d1f5367b3dc72799003824544) ) // ROM_LOAD("e10-21.jed", 0x000000, 0xc2b, CRC(8e9fa5d6) SHA1(5fb120d80f7ceee96a2fad863cf61a1f0b02877f) ) ROM_END ROM_START( pbobble2o ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e10-11.20", 0x000000, 0x40000, CRC(b82f81da) SHA1(2cd0fb321c853497058545525f430b52c0788fb1) ) ROM_LOAD32_BYTE("e10-10.19", 0x000001, 0x40000, CRC(f432267a) SHA1(f9778fc627773e4e254faa0ce10e68407251ce95) ) ROM_LOAD32_BYTE("e10-09.18", 0x000002, 0x40000, CRC(e0b1b599) SHA1(99ef34b014db7c52f2ced05b2b90099a9c873259) ) ROM_LOAD32_BYTE("e10-15.17", 0x000003, 0x40000, CRC(a2c0a268) SHA1(c96bb8a2959266c5c832fb77d119ad129b9ef9ee) ) - ROM_REGION(0x400000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x200000, "sprites" , 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, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* 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_FILL ( 0x200000, 0x100000, 0x00 ) + EMPTY_SPRITE_HIDATA(0x100000) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("e10-07.rom", 0x000000, 0x100000, CRC(dcb3c29b) SHA1(b80c3a8ce53d696c57675e654c9927ef8687759e) ) + ROM_LOAD32_WORD("e10-06.rom", 0x000002, 0x100000, CRC(1b0f20e2) SHA1(66b44d059c2896abac2f0e7fc932489dee440ba0) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("e10-05.rom", 0x000000, 0x100000, CRC(81266151) SHA1(aa3b144f32995425db97efce440e234a3c7a6715) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("e10-12.32", 0x100000, 0x40000, CRC(b92dc8ad) SHA1(0c1428d313507b1ae5a2af3b2fbaaa5650135e1e) ) ROM_LOAD16_BYTE("e10-13.33", 0x100001, 0x40000, CRC(87842c13) SHA1(d15b47c7430e677ae172f86fd5be595e4fe72e42) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + 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 ROM_START( pbobble2j ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e10-11.20", 0x000000, 0x40000, CRC(b82f81da) SHA1(2cd0fb321c853497058545525f430b52c0788fb1) ) ROM_LOAD32_BYTE("e10-10.19", 0x000001, 0x40000, CRC(f432267a) SHA1(f9778fc627773e4e254faa0ce10e68407251ce95) ) ROM_LOAD32_BYTE("e10-09.18", 0x000002, 0x40000, CRC(e0b1b599) SHA1(99ef34b014db7c52f2ced05b2b90099a9c873259) ) ROM_LOAD32_BYTE("e10-08.17", 0x000003, 0x40000, CRC(4ccec344) SHA1(dfb30d149dde6d8e1a117bf0bafb85178540aa58) ) - ROM_REGION(0x400000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x200000, "sprites" , 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, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* 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_FILL ( 0x200000, 0x100000, 0x00 ) + EMPTY_SPRITE_HIDATA(0x100000) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("e10-07.rom", 0x000000, 0x100000, CRC(dcb3c29b) SHA1(b80c3a8ce53d696c57675e654c9927ef8687759e) ) + ROM_LOAD32_WORD("e10-06.rom", 0x000002, 0x100000, CRC(1b0f20e2) SHA1(66b44d059c2896abac2f0e7fc932489dee440ba0) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("e10-05.rom", 0x000000, 0x100000, CRC(81266151) SHA1(aa3b144f32995425db97efce440e234a3c7a6715) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("e10-12.32", 0x100000, 0x40000, CRC(b92dc8ad) SHA1(0c1428d313507b1ae5a2af3b2fbaaa5650135e1e) ) ROM_LOAD16_BYTE("e10-13.33", 0x100001, 0x40000, CRC(87842c13) SHA1(d15b47c7430e677ae172f86fd5be595e4fe72e42) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + 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 ROM_START( pbobble2u ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e10-20.20", 0x000000, 0x40000, CRC(97eb15c6) SHA1(712ed06ee3582e30acb03c06f4981b0f3d7c64f4) ) ROM_LOAD32_BYTE("e10-19.19", 0x000001, 0x40000, CRC(7082d796) SHA1(9dd8216123ae94f4e9bacea9a088ae73c71cfd19) ) ROM_LOAD32_BYTE("e10-18.18", 0x000002, 0x40000, CRC(2ffa3ef2) SHA1(dcf2cce623daaaacb53f17657019a4e334be0a16) ) ROM_LOAD32_BYTE("e10-14.17", 0x000003, 0x40000, CRC(4a19ed67) SHA1(21de5f6c3ab5e13b085010a49f33b88cb6388fa9) ) - ROM_REGION(0x400000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x200000, "sprites" , 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, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* 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_FILL ( 0x200000, 0x100000, 0x00 ) + EMPTY_SPRITE_HIDATA(0x100000) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("e10-07.rom", 0x000000, 0x100000, CRC(dcb3c29b) SHA1(b80c3a8ce53d696c57675e654c9927ef8687759e) ) + ROM_LOAD32_WORD("e10-06.rom", 0x000002, 0x100000, CRC(1b0f20e2) SHA1(66b44d059c2896abac2f0e7fc932489dee440ba0) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("e10-05.rom", 0x000000, 0x100000, CRC(81266151) SHA1(aa3b144f32995425db97efce440e234a3c7a6715) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("e10-16.32", 0x100000, 0x40000, CRC(765ce77a) SHA1(e2723bd6238da91d28307081909a7172a1825c83) ) ROM_LOAD16_BYTE("e10-17.33", 0x100001, 0x40000, CRC(0aec3b1e) SHA1(a76a020cefcfbf86b0d893a6eb8ff93cb571abeb) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + 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 ROM_START( pbobble2x ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + 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-26.17", 0x000003, 0x40000, CRC(a5c24047) SHA1(62861577ce0aedb8d05360f0302fceecbde15420) ) - ROM_REGION(0x400000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x200000, "sprites" , 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, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* 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_FILL ( 0x200000, 0x100000, 0x00 ) + EMPTY_SPRITE_HIDATA(0x100000) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("e10-07.rom", 0x000000, 0x100000, CRC(dcb3c29b) SHA1(b80c3a8ce53d696c57675e654c9927ef8687759e) ) + ROM_LOAD32_WORD("e10-06.rom", 0x000002, 0x100000, CRC(1b0f20e2) SHA1(66b44d059c2896abac2f0e7fc932489dee440ba0) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("e10-05.rom", 0x000000, 0x100000, CRC(81266151) SHA1(aa3b144f32995425db97efce440e234a3c7a6715) ) + + ROM_REGION( 0x180000, "taito_en: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_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 @@ -2986,57 +3108,61 @@ ROM_START( pbobble2x ) ROM_END ROM_START( gekiridn ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e11-12.ic20", 0x000000, 0x40000, CRC(6a7aaacf) SHA1(a8114c84e76c75c908a61d985d96aa4eb9a0ac5a) ) ROM_LOAD32_BYTE("e11-11.ic19", 0x000001, 0x40000, CRC(2284a08e) SHA1(3dcb91be0d3491ad5e77efd30bacd506dad0f848) ) ROM_LOAD32_BYTE("e11-10.ic18", 0x000002, 0x40000, CRC(8795e6ba) SHA1(9128c29fdce3276f55aad47451e4a507470c8b9f) ) ROM_LOAD32_BYTE("e11-15.ic17", 0x000003, 0x40000, CRC(5aef1fd8) SHA1(a94884e39172e664759bff53a6dd2f93422d3299) ) - ROM_REGION(0x800000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x400000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("e11-03.ic12", 0x000000, 0x200000, CRC(f73877c5) SHA1(1f6b7c0b8a0aaab3e5427d21de7fad3d3cbf737a) ) ROM_LOAD16_BYTE("e11-02.ic8", 0x000001, 0x200000, CRC(5722a83b) SHA1(823c20a33016a5506ca5415ec615c3d2546ca9ab) ) - ROM_LOAD ("e11-01.ic4", 0x600000, 0x200000, CRC(c2cd1069) SHA1(9744dd3d8a6d9200cea4429dafce5620b60e2960) ) - ROM_FILL ( 0x400000, 0x200000, 0x00 ) - ROM_REGION(0x800000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("e11-08.ic47", 0x000000, 0x200000, CRC(907f69d3) SHA1(0899ed58edcae22144625c349c9d2fe4d46d11e3) ) - ROM_LOAD16_BYTE("e11-07.ic45", 0x000001, 0x200000, CRC(ef018607) SHA1(61b602b13754c3be21caf76acbfc10c87518ba47) ) - ROM_LOAD ("e11-06.ic43", 0x600000, 0x200000, CRC(200ce305) SHA1(c80a0b96510913a6411e6763fb72bf413fb792da) ) - ROM_FILL ( 0x400000, 0x200000, 0x00 ) + ROM_REGION( 0x200000, "sprites_hi", 0 ) + ROM_LOAD ("e11-01.ic4", 0x000000, 0x200000, CRC(c2cd1069) SHA1(9744dd3d8a6d9200cea4429dafce5620b60e2960) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x400000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("e11-08.ic47", 0x000000, 0x200000, CRC(907f69d3) SHA1(0899ed58edcae22144625c349c9d2fe4d46d11e3) ) + ROM_LOAD32_WORD("e11-07.ic45", 0x000002, 0x200000, CRC(ef018607) SHA1(61b602b13754c3be21caf76acbfc10c87518ba47) ) + + ROM_REGION( 0x200000, "tilemap_hi", 0 ) + ROM_LOAD ("e11-06.ic43", 0x000000, 0x200000, CRC(200ce305) SHA1(c80a0b96510913a6411e6763fb72bf413fb792da) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("e11-13.ic32", 0x100000, 0x40000, CRC(f5c5486a) SHA1(4091f3ddb1e6cbc9dc89485e1e784a4b6fa191b7) ) ROM_LOAD16_BYTE("e11-14.ic33", 0x100001, 0x40000, CRC(7fa10f96) SHA1(50efefd890535e952022a494c5b4e9b33bb90fad) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + 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( gekiridnj ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e11-12.ic20", 0x000000, 0x40000, CRC(6a7aaacf) SHA1(a8114c84e76c75c908a61d985d96aa4eb9a0ac5a) ) ROM_LOAD32_BYTE("e11-11.ic19", 0x000001, 0x40000, CRC(2284a08e) SHA1(3dcb91be0d3491ad5e77efd30bacd506dad0f848) ) ROM_LOAD32_BYTE("e11-10.ic18", 0x000002, 0x40000, CRC(8795e6ba) SHA1(9128c29fdce3276f55aad47451e4a507470c8b9f) ) ROM_LOAD32_BYTE("e11-09.ic17", 0x000003, 0x40000, CRC(b4e17ef4) SHA1(ab06ab68aaa487cc3046a15fef3dde8581197391) ) - ROM_REGION(0x800000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x400000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("e11-03.ic12", 0x000000, 0x200000, CRC(f73877c5) SHA1(1f6b7c0b8a0aaab3e5427d21de7fad3d3cbf737a) ) ROM_LOAD16_BYTE("e11-02.ic8", 0x000001, 0x200000, CRC(5722a83b) SHA1(823c20a33016a5506ca5415ec615c3d2546ca9ab) ) - ROM_LOAD ("e11-01.ic4", 0x600000, 0x200000, CRC(c2cd1069) SHA1(9744dd3d8a6d9200cea4429dafce5620b60e2960) ) - ROM_FILL ( 0x400000, 0x200000, 0x00 ) - ROM_REGION(0x800000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("e11-08.ic47", 0x000000, 0x200000, CRC(907f69d3) SHA1(0899ed58edcae22144625c349c9d2fe4d46d11e3) ) - ROM_LOAD16_BYTE("e11-07.ic45", 0x000001, 0x200000, CRC(ef018607) SHA1(61b602b13754c3be21caf76acbfc10c87518ba47) ) - ROM_LOAD ("e11-06.ic43", 0x600000, 0x200000, CRC(200ce305) SHA1(c80a0b96510913a6411e6763fb72bf413fb792da) ) - ROM_FILL ( 0x400000, 0x200000, 0x00 ) + ROM_REGION( 0x200000, "sprites_hi", 0 ) + ROM_LOAD ("e11-01.ic4", 0x000000, 0x200000, CRC(c2cd1069) SHA1(9744dd3d8a6d9200cea4429dafce5620b60e2960) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x400000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("e11-08.ic47", 0x000000, 0x200000, CRC(907f69d3) SHA1(0899ed58edcae22144625c349c9d2fe4d46d11e3) ) + ROM_LOAD32_WORD("e11-07.ic45", 0x000002, 0x200000, CRC(ef018607) SHA1(61b602b13754c3be21caf76acbfc10c87518ba47) ) + + ROM_REGION( 0x200000, "tilemap_hi", 0 ) + ROM_LOAD ("e11-06.ic43", 0x000000, 0x200000, CRC(200ce305) SHA1(c80a0b96510913a6411e6763fb72bf413fb792da) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("e11-13.ic32", 0x100000, 0x40000, CRC(f5c5486a) SHA1(4091f3ddb1e6cbc9dc89485e1e784a4b6fa191b7) ) ROM_LOAD16_BYTE("e11-14.ic33", 0x100001, 0x40000, CRC(7fa10f96) SHA1(50efefd890535e952022a494c5b4e9b33bb90fad) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + 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 @@ -3046,31 +3172,33 @@ ROM_END */ ROM_START( tcobra2 ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e15-14.ic20", 0x000000, 0x40000, CRC(b527b733) SHA1(19efd647ea9c277b306714fe79ebf40d5f9d2187) ) ROM_LOAD32_BYTE("e15-13.ic19", 0x000001, 0x40000, CRC(0f03daf7) SHA1(de5aee5a339224dfe5e03a02d3ef5ffd5a39211e) ) ROM_LOAD32_BYTE("e15-12.ic18", 0x000002, 0x40000, CRC(59d832f2) SHA1(27019b4121b1f8b0b9e141234192b3da1a4af718) ) ROM_LOAD32_BYTE("e15-18.ic17", 0x000003, 0x40000, CRC(4908c3aa) SHA1(9b0230e6bafd0533ecbe89bc18fae6f3425ea1a3) ) - ROM_REGION(0xc00000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x600000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("e15-04.ic12", 0x000000, 0x200000, CRC(6ea8d9bd) SHA1(c31644e89752325ba2f174b60e31bd9659479391) ) ROM_LOAD16_BYTE("e15-02.ic8", 0x000001, 0x200000, CRC(bf1232aa) SHA1(1381bae2a18ed62f4ca28bcdaf07debfc9bf21af) ) ROM_LOAD16_BYTE("e15-03.ic11", 0x400000, 0x100000, CRC(be45a52f) SHA1(5d9735a774233b43003057cbab6ae7d6e0195dd2) ) ROM_LOAD16_BYTE("e15-01.ic7", 0x400001, 0x100000, CRC(85421aac) SHA1(327e72f0107e024ec9fc9dc20d381e2e20f36248) ) - ROM_FILL ( 0x600000, 0x600000, 0x00 ) - ROM_REGION(0xc00000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("e15-10.ic47", 0x000000, 0x200000, CRC(d8c96b00) SHA1(9cd275abb66b3475433ea2649dc872d7d35eb5b8) ) - ROM_LOAD16_BYTE("e15-08.ic45", 0x000001, 0x200000, CRC(4bdb2bf3) SHA1(1146b7a5d9f26d3173a7c64768e55d53a0ab7b8e) ) - ROM_LOAD16_BYTE("e15-09.ic46", 0x400000, 0x100000, CRC(07c29f60) SHA1(3ca0f632e7047cc50ee3ce24cd6c0c8c7252a278) ) - ROM_LOAD16_BYTE("e15-07.ic44", 0x400001, 0x100000, CRC(8164f7ee) SHA1(4550521f820e93ec08b86d148135966d016cbf22) ) - ROM_FILL ( 0x600000, 0x600000, 0x00 ) + EMPTY_SPRITE_HIDATA(0x300000) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x600000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("e15-10.ic47", 0x000000, 0x200000, CRC(d8c96b00) SHA1(9cd275abb66b3475433ea2649dc872d7d35eb5b8) ) + ROM_LOAD32_WORD("e15-08.ic45", 0x000002, 0x200000, CRC(4bdb2bf3) SHA1(1146b7a5d9f26d3173a7c64768e55d53a0ab7b8e) ) + ROM_LOAD32_WORD("e15-09.ic46", 0x400000, 0x100000, CRC(07c29f60) SHA1(3ca0f632e7047cc50ee3ce24cd6c0c8c7252a278) ) + ROM_LOAD32_WORD("e15-07.ic44", 0x400002, 0x100000, CRC(8164f7ee) SHA1(4550521f820e93ec08b86d148135966d016cbf22) ) + + EMPTY_TILEMAP_HIDATA(0x300000) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("e15-15.ic32", 0x100000, 0x20000, CRC(22126dfb) SHA1(a1af17e5c3440f1bab50d79f92c251f1a4536ca0) ) ROM_LOAD16_BYTE("e15-16.ic33", 0x100001, 0x20000, CRC(f8b58ea0) SHA1(c9e196620765efc4c7b535793a5d1f586698ce55) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e15-05.ic38", 0x000000, 0x200000, CRC(3e5da5f6) SHA1(da6fc8b26cd02c45cfc0f1aa5292614e4d28cae4) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e15-06.ic41", 0x400000, 0x200000, CRC(b182a3e1) SHA1(db8569b069911bb84900b2aa5168c45ba3e985c7) ) // CC CD -std- @@ -3083,31 +3211,33 @@ ROM_START( tcobra2 ) ROM_END ROM_START( tcobra2u ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e15-14.ic20", 0x000000, 0x40000, CRC(b527b733) SHA1(19efd647ea9c277b306714fe79ebf40d5f9d2187) ) ROM_LOAD32_BYTE("e15-13.ic19", 0x000001, 0x40000, CRC(0f03daf7) SHA1(de5aee5a339224dfe5e03a02d3ef5ffd5a39211e) ) ROM_LOAD32_BYTE("e15-12.ic18", 0x000002, 0x40000, CRC(59d832f2) SHA1(27019b4121b1f8b0b9e141234192b3da1a4af718) ) ROM_LOAD32_BYTE("e15-17.ic17", 0x000003, 0x40000, CRC(3e0ff33c) SHA1(6da0a69272172e03921417f3949817756c7894b4) ) - ROM_REGION(0xc00000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x600000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("e15-04.ic12", 0x000000, 0x200000, CRC(6ea8d9bd) SHA1(c31644e89752325ba2f174b60e31bd9659479391) ) ROM_LOAD16_BYTE("e15-02.ic8", 0x000001, 0x200000, CRC(bf1232aa) SHA1(1381bae2a18ed62f4ca28bcdaf07debfc9bf21af) ) ROM_LOAD16_BYTE("e15-03.ic11", 0x400000, 0x100000, CRC(be45a52f) SHA1(5d9735a774233b43003057cbab6ae7d6e0195dd2) ) ROM_LOAD16_BYTE("e15-01.ic7", 0x400001, 0x100000, CRC(85421aac) SHA1(327e72f0107e024ec9fc9dc20d381e2e20f36248) ) - ROM_FILL ( 0x600000, 0x600000, 0x00 ) - ROM_REGION(0xc00000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("e15-10.ic47", 0x000000, 0x200000, CRC(d8c96b00) SHA1(9cd275abb66b3475433ea2649dc872d7d35eb5b8) ) - ROM_LOAD16_BYTE("e15-08.ic45", 0x000001, 0x200000, CRC(4bdb2bf3) SHA1(1146b7a5d9f26d3173a7c64768e55d53a0ab7b8e) ) - ROM_LOAD16_BYTE("e15-09.ic46", 0x400000, 0x100000, CRC(07c29f60) SHA1(3ca0f632e7047cc50ee3ce24cd6c0c8c7252a278) ) - ROM_LOAD16_BYTE("e15-07.ic44", 0x400001, 0x100000, CRC(8164f7ee) SHA1(4550521f820e93ec08b86d148135966d016cbf22) ) - ROM_FILL ( 0x600000, 0x600000, 0x00 ) + EMPTY_SPRITE_HIDATA(0x300000) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x600000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("e15-10.ic47", 0x000000, 0x200000, CRC(d8c96b00) SHA1(9cd275abb66b3475433ea2649dc872d7d35eb5b8) ) + ROM_LOAD32_WORD("e15-08.ic45", 0x000002, 0x200000, CRC(4bdb2bf3) SHA1(1146b7a5d9f26d3173a7c64768e55d53a0ab7b8e) ) + ROM_LOAD32_WORD("e15-09.ic46", 0x400000, 0x100000, CRC(07c29f60) SHA1(3ca0f632e7047cc50ee3ce24cd6c0c8c7252a278) ) + ROM_LOAD32_WORD("e15-07.ic44", 0x400002, 0x100000, CRC(8164f7ee) SHA1(4550521f820e93ec08b86d148135966d016cbf22) ) + + EMPTY_TILEMAP_HIDATA(0x300000) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("e15-15.ic32", 0x100000, 0x20000, CRC(22126dfb) SHA1(a1af17e5c3440f1bab50d79f92c251f1a4536ca0) ) ROM_LOAD16_BYTE("e15-16.ic33", 0x100001, 0x20000, CRC(f8b58ea0) SHA1(c9e196620765efc4c7b535793a5d1f586698ce55) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e15-05.ic38", 0x000000, 0x200000, CRC(3e5da5f6) SHA1(da6fc8b26cd02c45cfc0f1aa5292614e4d28cae4) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e15-06.ic41", 0x400000, 0x200000, CRC(b182a3e1) SHA1(db8569b069911bb84900b2aa5168c45ba3e985c7) ) // CC CD -std- @@ -3120,31 +3250,33 @@ ROM_START( tcobra2u ) ROM_END ROM_START( ktiger2 ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e15-14.ic20", 0x000000, 0x40000, CRC(b527b733) SHA1(19efd647ea9c277b306714fe79ebf40d5f9d2187) ) ROM_LOAD32_BYTE("e15-13.ic19", 0x000001, 0x40000, CRC(0f03daf7) SHA1(de5aee5a339224dfe5e03a02d3ef5ffd5a39211e) ) ROM_LOAD32_BYTE("e15-12.ic18", 0x000002, 0x40000, CRC(59d832f2) SHA1(27019b4121b1f8b0b9e141234192b3da1a4af718) ) ROM_LOAD32_BYTE("e15-11.ic17", 0x000003, 0x40000, CRC(a706a286) SHA1(c3d1cdb0c5b1004acadc926ffd9083c9afea8608) ) - ROM_REGION(0xc00000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x600000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("e15-04.ic12", 0x000000, 0x200000, CRC(6ea8d9bd) SHA1(c31644e89752325ba2f174b60e31bd9659479391) ) ROM_LOAD16_BYTE("e15-02.ic8", 0x000001, 0x200000, CRC(bf1232aa) SHA1(1381bae2a18ed62f4ca28bcdaf07debfc9bf21af) ) ROM_LOAD16_BYTE("e15-03.ic11", 0x400000, 0x100000, CRC(be45a52f) SHA1(5d9735a774233b43003057cbab6ae7d6e0195dd2) ) ROM_LOAD16_BYTE("e15-01.ic7", 0x400001, 0x100000, CRC(85421aac) SHA1(327e72f0107e024ec9fc9dc20d381e2e20f36248) ) - ROM_FILL ( 0x600000, 0x600000, 0x00 ) - ROM_REGION(0xc00000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("e15-10.ic47", 0x000000, 0x200000, CRC(d8c96b00) SHA1(9cd275abb66b3475433ea2649dc872d7d35eb5b8) ) - ROM_LOAD16_BYTE("e15-08.ic45", 0x000001, 0x200000, CRC(4bdb2bf3) SHA1(1146b7a5d9f26d3173a7c64768e55d53a0ab7b8e) ) - ROM_LOAD16_BYTE("e15-09.ic46", 0x400000, 0x100000, CRC(07c29f60) SHA1(3ca0f632e7047cc50ee3ce24cd6c0c8c7252a278) ) - ROM_LOAD16_BYTE("e15-07.ic44", 0x400001, 0x100000, CRC(8164f7ee) SHA1(4550521f820e93ec08b86d148135966d016cbf22) ) - ROM_FILL ( 0x600000, 0x600000, 0x00 ) + EMPTY_SPRITE_HIDATA(0x300000) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x600000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("e15-10.ic47", 0x000000, 0x200000, CRC(d8c96b00) SHA1(9cd275abb66b3475433ea2649dc872d7d35eb5b8) ) + ROM_LOAD32_WORD("e15-08.ic45", 0x000002, 0x200000, CRC(4bdb2bf3) SHA1(1146b7a5d9f26d3173a7c64768e55d53a0ab7b8e) ) + ROM_LOAD32_WORD("e15-09.ic46", 0x400000, 0x100000, CRC(07c29f60) SHA1(3ca0f632e7047cc50ee3ce24cd6c0c8c7252a278) ) + ROM_LOAD32_WORD("e15-07.ic44", 0x400002, 0x100000, CRC(8164f7ee) SHA1(4550521f820e93ec08b86d148135966d016cbf22) ) + + EMPTY_TILEMAP_HIDATA(0x300000) + + ROM_REGION( 0x140000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("e15-15.ic32", 0x100000, 0x20000, CRC(22126dfb) SHA1(a1af17e5c3440f1bab50d79f92c251f1a4536ca0) ) ROM_LOAD16_BYTE("e15-16.ic33", 0x100001, 0x20000, CRC(f8b58ea0) SHA1(c9e196620765efc4c7b535793a5d1f586698ce55) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e15-05.ic38", 0x000000, 0x200000, CRC(3e5da5f6) SHA1(da6fc8b26cd02c45cfc0f1aa5292614e4d28cae4) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e15-06.ic41", 0x400000, 0x200000, CRC(b182a3e1) SHA1(db8569b069911bb84900b2aa5168c45ba3e985c7) ) // CC CD -std- @@ -3157,28 +3289,30 @@ ROM_START( ktiger2 ) ROM_END ROM_START( bubblem ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e21-21.20", 0x000000, 0x080000, CRC(cac4169c) SHA1(e1e5b9bbaecfd29ee764c8b29df8ffd08ef01866) ) ROM_LOAD32_BYTE("e21-20.19", 0x000001, 0x080000, CRC(7727c673) SHA1(cda3dbcf8da06e81b899008462bcd6b2ea43db81) ) ROM_LOAD32_BYTE("e21-19.18", 0x000002, 0x080000, CRC(be0b907d) SHA1(8bb6a149a4b0ccdb32396f7e750218a0bdc31965) ) ROM_LOAD32_BYTE("e21-18.17", 0x000003, 0x080000, CRC(d14e313a) SHA1(3913d396a6a72f539163c216809e54a06ecd3b96) ) - ROM_REGION(0x800000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x400000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("e21-02.rom", 0x000000, 0x200000, CRC(b7cb9232) SHA1(ba71cb98d49eadebb26d9f53bbaec1dc211077f5) ) ROM_LOAD16_BYTE("e21-01.rom", 0x000001, 0x200000, CRC(a11f2f99) SHA1(293c5996600cad05bf98f936f5f820d93d546099) ) - ROM_FILL ( 0x400000, 0x400000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("e21-07.rom", 0x000000, 0x100000, CRC(7789bf7c) SHA1(bc8ef1696adac99a1fabae9b79afcd3461cf323b) ) - ROM_LOAD16_BYTE("e21-06.rom", 0x000001, 0x100000, CRC(997fc0d7) SHA1(58a546f739072fedebfe7c972fe85f72107726b2) ) - ROM_LOAD ("e21-05.rom", 0x300000, 0x100000, CRC(07eab58f) SHA1(ae2d7b839b39d88d11652df74804a39230674467) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + EMPTY_SPRITE_HIDATA(0x200000) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* Sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("e21-07.rom", 0x000000, 0x100000, CRC(7789bf7c) SHA1(bc8ef1696adac99a1fabae9b79afcd3461cf323b) ) + ROM_LOAD32_WORD("e21-06.rom", 0x000002, 0x100000, CRC(997fc0d7) SHA1(58a546f739072fedebfe7c972fe85f72107726b2) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("e21-05.rom", 0x000000, 0x100000, CRC(07eab58f) SHA1(ae2d7b839b39d88d11652df74804a39230674467) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* Sound CPU */ ROM_LOAD16_BYTE("e21-12.32", 0x100000, 0x40000, CRC(34093de1) SHA1(d69d6b5f10b8fe86f727d739ed5aecceb15e01f7) ) ROM_LOAD16_BYTE("e21-13.33", 0x100001, 0x40000, CRC(9e9ec437) SHA1(b0265b688846c642d240b2f3677d2330d31eaa87) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e21-03.rom", 0x000000, 0x200000, CRC(54c5f83d) SHA1(10a993199c8d5a1361bd29a4b92c404451c6da01) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e21-04.rom", 0x400000, 0x200000, CRC(e5af2a2d) SHA1(62a49504decc7160b710260218920d2d6d2af8f0) ) // CC CD -std- @@ -3187,28 +3321,30 @@ ROM_START( bubblem ) ROM_END ROM_START( bubblemu ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e21-17.20", 0x000000, 0x080000, CRC(0b72e8f1) SHA1(1b0289cafb1d4d3387c6ec42c0e8599229c79bba) ) ROM_LOAD32_BYTE("e21-16.19", 0x000001, 0x080000, CRC(b47354cc) SHA1(08e66573cae3ce21a6dbdbd79e32a2ab050f9bbd) ) ROM_LOAD32_BYTE("e21-15.18", 0x000002, 0x080000, CRC(64bf2c24) SHA1(be2d81fdc307841340a86a4ca0409a2bdbd35532) ) ROM_LOAD32_BYTE("e21-14.17", 0x000003, 0x080000, CRC(48aecd47) SHA1(3d2b7d3474968b0450731644e593338c9cf6f5b0) ) - ROM_REGION(0x800000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x400000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("e21-02.rom", 0x000000, 0x200000, CRC(b7cb9232) SHA1(ba71cb98d49eadebb26d9f53bbaec1dc211077f5) ) ROM_LOAD16_BYTE("e21-01.rom", 0x000001, 0x200000, CRC(a11f2f99) SHA1(293c5996600cad05bf98f936f5f820d93d546099) ) - ROM_FILL ( 0x400000, 0x400000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("e21-07.rom", 0x000000, 0x100000, CRC(7789bf7c) SHA1(bc8ef1696adac99a1fabae9b79afcd3461cf323b) ) - ROM_LOAD16_BYTE("e21-06.rom", 0x000001, 0x100000, CRC(997fc0d7) SHA1(58a546f739072fedebfe7c972fe85f72107726b2) ) - ROM_LOAD ("e21-05.rom", 0x300000, 0x100000, CRC(07eab58f) SHA1(ae2d7b839b39d88d11652df74804a39230674467) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + EMPTY_SPRITE_HIDATA(0x200000) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* Sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("e21-07.rom", 0x000000, 0x100000, CRC(7789bf7c) SHA1(bc8ef1696adac99a1fabae9b79afcd3461cf323b) ) + ROM_LOAD32_WORD("e21-06.rom", 0x000002, 0x100000, CRC(997fc0d7) SHA1(58a546f739072fedebfe7c972fe85f72107726b2) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("e21-05.rom", 0x000000, 0x100000, CRC(07eab58f) SHA1(ae2d7b839b39d88d11652df74804a39230674467) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* Sound CPU */ ROM_LOAD16_BYTE("e21-12.32", 0x100000, 0x40000, CRC(34093de1) SHA1(d69d6b5f10b8fe86f727d739ed5aecceb15e01f7) ) ROM_LOAD16_BYTE("e21-13.33", 0x100001, 0x40000, CRC(9e9ec437) SHA1(b0265b688846c642d240b2f3677d2330d31eaa87) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e21-03.rom", 0x000000, 0x200000, CRC(54c5f83d) SHA1(10a993199c8d5a1361bd29a4b92c404451c6da01) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e21-04.rom", 0x400000, 0x200000, CRC(e5af2a2d) SHA1(62a49504decc7160b710260218920d2d6d2af8f0) ) // CC CD -std- @@ -3217,28 +3353,30 @@ ROM_START( bubblemu ) ROM_END ROM_START( bubblemj ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e21-11.20", 0x000000, 0x080000, CRC(df0eeae4) SHA1(4cc8d350da881947c1b9c4e0b8fbe220494f6c38) ) ROM_LOAD32_BYTE("e21-10.19", 0x000001, 0x080000, CRC(cdfb58f6) SHA1(70d2b8228ab4ddd572fe2ee53c1b7205b66ef6a3) ) ROM_LOAD32_BYTE("e21-09.18", 0x000002, 0x080000, CRC(6c305f17) SHA1(c4118722d697ccf54b43626a47673892a6c2caaf) ) ROM_LOAD32_BYTE("e21-08.17", 0x000003, 0x080000, CRC(27381ae2) SHA1(29b5d4bafa4ac02d35cb3ed7b7461e749ef2d6d6) ) - ROM_REGION(0x800000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x400000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("e21-02.rom", 0x000000, 0x200000, CRC(b7cb9232) SHA1(ba71cb98d49eadebb26d9f53bbaec1dc211077f5) ) ROM_LOAD16_BYTE("e21-01.rom", 0x000001, 0x200000, CRC(a11f2f99) SHA1(293c5996600cad05bf98f936f5f820d93d546099) ) - ROM_FILL ( 0x400000, 0x400000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("e21-07.rom", 0x000000, 0x100000, CRC(7789bf7c) SHA1(bc8ef1696adac99a1fabae9b79afcd3461cf323b) ) - ROM_LOAD16_BYTE("e21-06.rom", 0x000001, 0x100000, CRC(997fc0d7) SHA1(58a546f739072fedebfe7c972fe85f72107726b2) ) - ROM_LOAD ("e21-05.rom", 0x300000, 0x100000, CRC(07eab58f) SHA1(ae2d7b839b39d88d11652df74804a39230674467) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + EMPTY_SPRITE_HIDATA(0x200000) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* Sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("e21-07.rom", 0x000000, 0x100000, CRC(7789bf7c) SHA1(bc8ef1696adac99a1fabae9b79afcd3461cf323b) ) + ROM_LOAD32_WORD("e21-06.rom", 0x000002, 0x100000, CRC(997fc0d7) SHA1(58a546f739072fedebfe7c972fe85f72107726b2) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("e21-05.rom", 0x000000, 0x100000, CRC(07eab58f) SHA1(ae2d7b839b39d88d11652df74804a39230674467) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* Sound CPU */ ROM_LOAD16_BYTE("e21-12.32", 0x100000, 0x40000, CRC(34093de1) SHA1(d69d6b5f10b8fe86f727d739ed5aecceb15e01f7) ) ROM_LOAD16_BYTE("e21-13.33", 0x100001, 0x40000, CRC(9e9ec437) SHA1(b0265b688846c642d240b2f3677d2330d31eaa87) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e21-03.rom", 0x000000, 0x200000, CRC(54c5f83d) SHA1(10a993199c8d5a1361bd29a4b92c404451c6da01) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e21-04.rom", 0x400000, 0x200000, CRC(e5af2a2d) SHA1(62a49504decc7160b710260218920d2d6d2af8f0) ) // CC CD -std- @@ -3247,54 +3385,58 @@ ROM_START( bubblemj ) ROM_END ROM_START( cleopatr ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + 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-07.bin", 0x000003, 0x80000, CRC(a507797b) SHA1(6fa04091df1fa8c08f03b1ee378b4ec4a6ef7f51) ) - ROM_REGION(0x200000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x100000, "sprites" , 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, 0x00 ) - 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, 0x00 ) + EMPTY_SPRITE_HIDATA(0x080000) - ROM_REGION(0x140000, "taito_en:audiocpu", 0) /* Sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("e28-06.bin", 0x000000, 0x100000, CRC(21d0c454) SHA1(f4c815984b19321cfab303fa6f21d9cad35b09f2) ) + ROM_LOAD32_WORD("e28-05.bin", 0x000002, 0x100000, CRC(2870dbbc) SHA1(4e412b90cbd9a05956cde3d8cff615ebadca9db6) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("e28-04.bin", 0x000000, 0x100000, CRC(57aef029) SHA1(5c07209015d4749d1ffb3e9c1a890e6cfeec8cb0) ) + + ROM_REGION( 0x140000, "taito_en: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_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( pbobble3 ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e29-12.rom", 0x000000, 0x80000, CRC(9eb19a00) SHA1(5a6417e4377070f9f01110dc6d513d0de01cff1e) ) ROM_LOAD32_BYTE("e29-11.rom", 0x000001, 0x80000, CRC(e54ada97) SHA1(325e2bc7156656cc262989910dde07a1746cf790) ) ROM_LOAD32_BYTE("e29-10.rom", 0x000002, 0x80000, CRC(1502a122) SHA1(cb981a4578aa30276c491a0ef47f5e05c05d8b28) ) ROM_LOAD32_BYTE("e29-16.rom", 0x000003, 0x80000, CRC(aac293da) SHA1(2188d1abe6aeefa872cf16db40999574497d982e) ) - ROM_REGION(0x400000, "gfx1" , 0 ) /* Sprites */ + ROM_REGION( 0x200000, "sprites" , 0 ) /* Sprites */ ROM_LOAD16_BYTE("e29-02.rom", 0x000000, 0x100000, CRC(437391d3) SHA1(b3cc64c68553d37e0bd09e0dece14901d8df5866) ) ROM_LOAD16_BYTE("e29-01.rom", 0x000001, 0x100000, CRC(52547c77) SHA1(d0cc8b8915cec1506c9733a1ce1638038ea93d25) ) - ROM_FILL ( 0x200000, 0x200000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0 ) /* Tiles */ - ROM_LOAD16_BYTE("e29-08.rom", 0x000000, 0x100000, CRC(7040a3d5) SHA1(ea284ec530aac20348f84122e38a508bbc283f44) ) - ROM_LOAD16_BYTE("e29-07.rom", 0x000001, 0x100000, CRC(fca2ea9b) SHA1(a87ebedd0d16657288df434a70b8933fafe0ca25) ) - ROM_LOAD ("e29-06.rom", 0x300000, 0x100000, CRC(c16184f8) SHA1(ded417d9d116b5a2f7518fa404bc2dda1c6a6366) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + EMPTY_SPRITE_HIDATA(0x100000) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 code */ + ROM_REGION( 0x200000, "tilemap" , 0 ) /* Tiles */ + ROM_LOAD32_WORD("e29-08.rom", 0x000000, 0x100000, CRC(7040a3d5) SHA1(ea284ec530aac20348f84122e38a508bbc283f44) ) + ROM_LOAD32_WORD("e29-07.rom", 0x000002, 0x100000, CRC(fca2ea9b) SHA1(a87ebedd0d16657288df434a70b8933fafe0ca25) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("e29-06.rom", 0x000000, 0x100000, CRC(c16184f8) SHA1(ded417d9d116b5a2f7518fa404bc2dda1c6a6366) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE("e29-13.rom", 0x100000, 0x40000, CRC(1ef551ef) SHA1(527defe8f35314304adb4b483285b08cd6ebe865) ) ROM_LOAD16_BYTE("e29-14.rom", 0x100001, 0x40000, CRC(7ee7e688) SHA1(d65aa9c449e1d64f10d1be9727a9d93ab1571e65) ) - ROM_REGION16_BE(0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks // empty ROM_LOAD16_BYTE("e29-03.rom", 0x400000, 0x200000, CRC(a4371658) SHA1(26510a3f6de97f49b10dfc5cb9b7da947a44bfcb) ) // CE CF D0 D1 ROM_LOAD16_BYTE("e29-04.rom", 0x800000, 0x200000, CRC(d1f42457) SHA1(2c77be6365deb5ef215da0c66da23b415623bdb1) ) // D2 C8 C9 CA @@ -3302,28 +3444,30 @@ ROM_START( pbobble3 ) ROM_END ROM_START( pbobble3u ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e29-12.rom", 0x000000, 0x80000, CRC(9eb19a00) SHA1(5a6417e4377070f9f01110dc6d513d0de01cff1e) ) ROM_LOAD32_BYTE("e29-11.rom", 0x000001, 0x80000, CRC(e54ada97) SHA1(325e2bc7156656cc262989910dde07a1746cf790) ) ROM_LOAD32_BYTE("e29-10.rom", 0x000002, 0x80000, CRC(1502a122) SHA1(cb981a4578aa30276c491a0ef47f5e05c05d8b28) ) ROM_LOAD32_BYTE("e29-15.bin", 0x000003, 0x80000, CRC(ddc5a34c) SHA1(f38c99ac33b199b3ed99a84c67984f23a864e5d4) ) - ROM_REGION(0x400000, "gfx1" , 0 ) /* Sprites */ + ROM_REGION( 0x200000, "sprites" , 0 ) /* Sprites */ ROM_LOAD16_BYTE("e29-02.rom", 0x000000, 0x100000, CRC(437391d3) SHA1(b3cc64c68553d37e0bd09e0dece14901d8df5866) ) ROM_LOAD16_BYTE("e29-01.rom", 0x000001, 0x100000, CRC(52547c77) SHA1(d0cc8b8915cec1506c9733a1ce1638038ea93d25) ) - ROM_FILL ( 0x200000, 0x200000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0 ) /* Tiles */ - ROM_LOAD16_BYTE("e29-08.rom", 0x000000, 0x100000, CRC(7040a3d5) SHA1(ea284ec530aac20348f84122e38a508bbc283f44) ) - ROM_LOAD16_BYTE("e29-07.rom", 0x000001, 0x100000, CRC(fca2ea9b) SHA1(a87ebedd0d16657288df434a70b8933fafe0ca25) ) - ROM_LOAD ("e29-06.rom", 0x300000, 0x100000, CRC(c16184f8) SHA1(ded417d9d116b5a2f7518fa404bc2dda1c6a6366) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + EMPTY_SPRITE_HIDATA(0x100000) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 code */ + ROM_REGION( 0x200000, "tilemap" , 0 ) /* Tiles */ + ROM_LOAD32_WORD("e29-08.rom", 0x000000, 0x100000, CRC(7040a3d5) SHA1(ea284ec530aac20348f84122e38a508bbc283f44) ) + ROM_LOAD32_WORD("e29-07.rom", 0x000002, 0x100000, CRC(fca2ea9b) SHA1(a87ebedd0d16657288df434a70b8933fafe0ca25) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("e29-06.rom", 0x000000, 0x100000, CRC(c16184f8) SHA1(ded417d9d116b5a2f7518fa404bc2dda1c6a6366) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE("e29-13.rom", 0x100000, 0x40000, CRC(1ef551ef) SHA1(527defe8f35314304adb4b483285b08cd6ebe865) ) ROM_LOAD16_BYTE("e29-14.rom", 0x100001, 0x40000, CRC(7ee7e688) SHA1(d65aa9c449e1d64f10d1be9727a9d93ab1571e65) ) - ROM_REGION16_BE(0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks // empty ROM_LOAD16_BYTE("e29-03.rom", 0x400000, 0x200000, CRC(a4371658) SHA1(26510a3f6de97f49b10dfc5cb9b7da947a44bfcb) ) // CE CF D0 D1 ROM_LOAD16_BYTE("e29-04.rom", 0x800000, 0x200000, CRC(d1f42457) SHA1(2c77be6365deb5ef215da0c66da23b415623bdb1) ) // D2 C8 C9 CA @@ -3331,34 +3475,36 @@ ROM_START( pbobble3u ) ROM_END ROM_START( pbobble3j ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e29-12.ic20", 0x000000, 0x80000, CRC(9eb19a00) SHA1(5a6417e4377070f9f01110dc6d513d0de01cff1e) ) ROM_LOAD32_BYTE("e29-11.ic19", 0x000001, 0x80000, CRC(e54ada97) SHA1(325e2bc7156656cc262989910dde07a1746cf790) ) ROM_LOAD32_BYTE("e29-10.ic18", 0x000002, 0x80000, CRC(1502a122) SHA1(cb981a4578aa30276c491a0ef47f5e05c05d8b28) ) ROM_LOAD32_BYTE("e29-09.ic17", 0x000003, 0x80000, CRC(44ccf2f6) SHA1(60877525feaa992b1b374acfb5c16439e5f32161) ) - ROM_REGION(0x400000, "gfx1" , 0 ) /* Sprites */ + ROM_REGION( 0x200000, "sprites" , 0 ) /* Sprites */ ROM_LOAD16_BYTE("e29-02.ic8", 0x000000, 0x100000, CRC(437391d3) SHA1(b3cc64c68553d37e0bd09e0dece14901d8df5866) ) ROM_LOAD16_BYTE("e29-01.ic12", 0x000001, 0x100000, CRC(52547c77) SHA1(d0cc8b8915cec1506c9733a1ce1638038ea93d25) ) - ROM_FILL ( 0x200000, 0x200000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0 ) /* Tiles */ - ROM_LOAD16_BYTE("e29-08.ic47", 0x000000, 0x100000, CRC(7040a3d5) SHA1(ea284ec530aac20348f84122e38a508bbc283f44) ) - ROM_LOAD16_BYTE("e29-07.ic45", 0x000001, 0x100000, CRC(fca2ea9b) SHA1(a87ebedd0d16657288df434a70b8933fafe0ca25) ) - ROM_LOAD ("e29-06.ic43", 0x300000, 0x100000, CRC(c16184f8) SHA1(ded417d9d116b5a2f7518fa404bc2dda1c6a6366) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + EMPTY_SPRITE_HIDATA(0x100000) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 code */ + ROM_REGION( 0x200000, "tilemap" , 0 ) /* Tiles */ + ROM_LOAD32_WORD("e29-08.ic47", 0x000000, 0x100000, CRC(7040a3d5) SHA1(ea284ec530aac20348f84122e38a508bbc283f44) ) + ROM_LOAD32_WORD("e29-07.ic45", 0x000002, 0x100000, CRC(fca2ea9b) SHA1(a87ebedd0d16657288df434a70b8933fafe0ca25) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("e29-06.ic43", 0x000000, 0x100000, CRC(c16184f8) SHA1(ded417d9d116b5a2f7518fa404bc2dda1c6a6366) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE("e29-13.ic32", 0x100000, 0x40000, CRC(1ef551ef) SHA1(527defe8f35314304adb4b483285b08cd6ebe865) ) ROM_LOAD16_BYTE("e29-14.ic33", 0x100001, 0x40000, CRC(7ee7e688) SHA1(d65aa9c449e1d64f10d1be9727a9d93ab1571e65) ) - ROM_REGION16_BE(0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks // empty ROM_LOAD16_BYTE("e29-03.ic38", 0x400000, 0x200000, CRC(a4371658) SHA1(26510a3f6de97f49b10dfc5cb9b7da947a44bfcb) ) // CE CF D0 D1 ROM_LOAD16_BYTE("e29-04.ic39", 0x800000, 0x200000, CRC(d1f42457) SHA1(2c77be6365deb5ef215da0c66da23b415623bdb1) ) // D2 C8 C9 CA ROM_LOAD16_BYTE("e29-05.ic41", 0xc00000, 0x200000, CRC(e33c1234) SHA1(84c336ed6fd8723e824889fe7b52c284be659e62) ) // CB CC -std- - ROM_REGION(0x034a, "pals", 0) + ROM_REGION( 0x034a, "pals", 0 ) ROM_LOAD("d77-12.ic48.bin", 0x0000, 0x0001, NO_DUMP) /* PALCE16V8Q-15PC/4 */ ROM_LOAD("d77-14.ic21.bin", 0x0001, 0x0001, NO_DUMP) /* PALCE16V8Q-15PC/4 */ ROM_LOAD("d77-11.ic37.bin", 0x0002, 0x0001, NO_DUMP) /* PALCE16V8Q-15PC/4 */ @@ -3367,29 +3513,31 @@ ROM_START( pbobble3j ) ROM_END ROM_START( arkretrn ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e36-11.20", 0x000000, 0x040000, CRC(b50cfb92) SHA1(dac69fc9ef03315b11bb94d19e3dfdc8867b08ed) ) ROM_LOAD32_BYTE("e36-10.19", 0x000001, 0x040000, CRC(c940dba1) SHA1(ec87c9e4250f8b2f15094681a4783bca8c68f576) ) ROM_LOAD32_BYTE("e36-09.18", 0x000002, 0x040000, CRC(f16985e0) SHA1(a74cfee8f958e7a32354d4353eeb199a7fb1ce64) ) ROM_LOAD32_BYTE("e36-15.17", 0x000003, 0x040000, CRC(4467ff37) SHA1(509a0d516def02d86d81b9868de0d9593539e65c) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* Sound CPU */ + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* Sound CPU */ ROM_LOAD16_BYTE("e36-12.32", 0x100000, 0x40000, CRC(3bae39be) SHA1(777142ecc24799b934ed51ac4cd8700bb6da7e3c) ) ROM_LOAD16_BYTE("e36-13.33", 0x100001, 0x40000, CRC(94448e82) SHA1(d7766490318623be770545918391c5e6144dd619) ) - ROM_REGION(0x100000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x080000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("e36-03.12", 0x000000, 0x040000, CRC(1ea8558b) SHA1(b8ea4d6e1fb551b3c47f336a5e60ec33f7be525f) ) ROM_LOAD16_BYTE("e36-02.8", 0x000001, 0x040000, CRC(694eda31) SHA1(1a6f85057395052571491f85c633d5632ab64865) ) - ROM_LOAD ("e36-01.4", 0x0c0000, 0x040000, CRC(54b9b2cd) SHA1(55ae964ea1d2cc40a6578c5339754a270096f01f) ) - ROM_FILL ( 0x080000, 0x040000, 0x00 ) - ROM_REGION(0x200000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("e36-07.47", 0x000000, 0x080000, CRC(266bf1c1) SHA1(489549478d7016400af2e643d4b98bf605237d34) ) - ROM_LOAD16_BYTE("e36-06.45", 0x000001, 0x080000, CRC(110ab729) SHA1(0ccc0a5abbcfd79a069daf5162cd344a5fb225d5) ) - ROM_LOAD ("e36-05.43", 0x180000, 0x080000, CRC(db18bce2) SHA1(b6653facc7f5c624f5710a51f2b2abfe640177e2) ) - ROM_FILL ( 0x100000, 0x080000, 0x00 ) + ROM_REGION( 0x040000, "sprites_hi", 0 ) + ROM_LOAD ("e36-01.4", 0x000000, 0x040000, CRC(54b9b2cd) SHA1(55ae964ea1d2cc40a6578c5339754a270096f01f) ) - ROM_REGION16_BE(0x400000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 1 populated + ROM_REGION( 0x100000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("e36-07.47", 0x000000, 0x080000, CRC(266bf1c1) SHA1(489549478d7016400af2e643d4b98bf605237d34) ) + ROM_LOAD32_WORD("e36-06.45", 0x000002, 0x080000, CRC(110ab729) SHA1(0ccc0a5abbcfd79a069daf5162cd344a5fb225d5) ) + + ROM_REGION( 0x080000, "tilemap_hi", 0 ) + ROM_LOAD ("e36-05.43", 0x000000, 0x080000, CRC(db18bce2) SHA1(b6653facc7f5c624f5710a51f2b2abfe640177e2) ) + + ROM_REGION16_BE( 0x400000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 1 populated ROM_LOAD16_BYTE("e36-04.38", 0x000000, 0x200000, CRC(2250959b) SHA1(06943f1b72bdf325485356a01278d88aeae93d87) ) // C8 C9 CA CB ROM_REGION( 0x0a00, "plds", 0 ) @@ -3401,29 +3549,31 @@ ROM_START( arkretrn ) ROM_END ROM_START( arkretrnu ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e36-11.20", 0x000000, 0x040000, CRC(b50cfb92) SHA1(dac69fc9ef03315b11bb94d19e3dfdc8867b08ed) ) ROM_LOAD32_BYTE("e36-10.19", 0x000001, 0x040000, CRC(c940dba1) SHA1(ec87c9e4250f8b2f15094681a4783bca8c68f576) ) ROM_LOAD32_BYTE("e36-09.18", 0x000002, 0x040000, CRC(f16985e0) SHA1(a74cfee8f958e7a32354d4353eeb199a7fb1ce64) ) ROM_LOAD32_BYTE("e36-14.17", 0x000003, 0x040000, CRC(3360cfa1) SHA1(b06afc392b3864a895aed3a406d5d9886b1d0894) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* Sound CPU */ + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* Sound CPU */ ROM_LOAD16_BYTE("e36-12.32", 0x100000, 0x40000, CRC(3bae39be) SHA1(777142ecc24799b934ed51ac4cd8700bb6da7e3c) ) ROM_LOAD16_BYTE("e36-13.33", 0x100001, 0x40000, CRC(94448e82) SHA1(d7766490318623be770545918391c5e6144dd619) ) - ROM_REGION(0x100000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x080000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("e36-03.12", 0x000000, 0x040000, CRC(1ea8558b) SHA1(b8ea4d6e1fb551b3c47f336a5e60ec33f7be525f) ) ROM_LOAD16_BYTE("e36-02.8", 0x000001, 0x040000, CRC(694eda31) SHA1(1a6f85057395052571491f85c633d5632ab64865) ) - ROM_LOAD ("e36-01.4", 0x0c0000, 0x040000, CRC(54b9b2cd) SHA1(55ae964ea1d2cc40a6578c5339754a270096f01f) ) - ROM_FILL ( 0x080000, 0x040000, 0x00 ) - ROM_REGION(0x200000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("e36-07.47", 0x000000, 0x080000, CRC(266bf1c1) SHA1(489549478d7016400af2e643d4b98bf605237d34) ) - ROM_LOAD16_BYTE("e36-06.45", 0x000001, 0x080000, CRC(110ab729) SHA1(0ccc0a5abbcfd79a069daf5162cd344a5fb225d5) ) - ROM_LOAD ("e36-05.43", 0x180000, 0x080000, CRC(db18bce2) SHA1(b6653facc7f5c624f5710a51f2b2abfe640177e2) ) - ROM_FILL ( 0x100000, 0x080000, 0x00 ) + ROM_REGION( 0x040000, "sprites_hi", 0 ) + ROM_LOAD ("e36-01.4", 0x000000, 0x040000, CRC(54b9b2cd) SHA1(55ae964ea1d2cc40a6578c5339754a270096f01f) ) - ROM_REGION16_BE(0x400000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 1 populated + ROM_REGION( 0x100000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("e36-07.47", 0x000000, 0x080000, CRC(266bf1c1) SHA1(489549478d7016400af2e643d4b98bf605237d34) ) + ROM_LOAD32_WORD("e36-06.45", 0x000002, 0x080000, CRC(110ab729) SHA1(0ccc0a5abbcfd79a069daf5162cd344a5fb225d5) ) + + ROM_REGION( 0x080000, "tilemap_hi", 0 ) + ROM_LOAD ("e36-05.43", 0x000000, 0x080000, CRC(db18bce2) SHA1(b6653facc7f5c624f5710a51f2b2abfe640177e2) ) + + ROM_REGION16_BE( 0x400000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 1 populated ROM_LOAD16_BYTE("e36-04.38", 0x000000, 0x200000, CRC(2250959b) SHA1(06943f1b72bdf325485356a01278d88aeae93d87) ) // C8 C9 CA CB ROM_REGION( 0x0a00, "plds", 0 ) @@ -3435,29 +3585,31 @@ ROM_START( arkretrnu ) ROM_END ROM_START( arkretrnj ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e36-11.20", 0x000000, 0x040000, CRC(b50cfb92) SHA1(dac69fc9ef03315b11bb94d19e3dfdc8867b08ed) ) ROM_LOAD32_BYTE("e36-10.19", 0x000001, 0x040000, CRC(c940dba1) SHA1(ec87c9e4250f8b2f15094681a4783bca8c68f576) ) ROM_LOAD32_BYTE("e36-09.18", 0x000002, 0x040000, CRC(f16985e0) SHA1(a74cfee8f958e7a32354d4353eeb199a7fb1ce64) ) ROM_LOAD32_BYTE("e36-08.17", 0x000003, 0x040000, CRC(aa699e1b) SHA1(6bde0759940e0f238e4fa5bd228115574ff927d8) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* Sound CPU */ + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* Sound CPU */ ROM_LOAD16_BYTE("e36-12.32", 0x100000, 0x40000, CRC(3bae39be) SHA1(777142ecc24799b934ed51ac4cd8700bb6da7e3c) ) ROM_LOAD16_BYTE("e36-13.33", 0x100001, 0x40000, CRC(94448e82) SHA1(d7766490318623be770545918391c5e6144dd619) ) - ROM_REGION(0x100000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x080000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("e36-03.12", 0x000000, 0x040000, CRC(1ea8558b) SHA1(b8ea4d6e1fb551b3c47f336a5e60ec33f7be525f) ) ROM_LOAD16_BYTE("e36-02.8", 0x000001, 0x040000, CRC(694eda31) SHA1(1a6f85057395052571491f85c633d5632ab64865) ) - ROM_LOAD ("e36-01.4", 0x0c0000, 0x040000, CRC(54b9b2cd) SHA1(55ae964ea1d2cc40a6578c5339754a270096f01f) ) - ROM_FILL ( 0x080000, 0x040000, 0x00 ) - ROM_REGION(0x200000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("e36-07.47", 0x000000, 0x080000, CRC(266bf1c1) SHA1(489549478d7016400af2e643d4b98bf605237d34) ) - ROM_LOAD16_BYTE("e36-06.45", 0x000001, 0x080000, CRC(110ab729) SHA1(0ccc0a5abbcfd79a069daf5162cd344a5fb225d5) ) - ROM_LOAD ("e36-05.43", 0x180000, 0x080000, CRC(db18bce2) SHA1(b6653facc7f5c624f5710a51f2b2abfe640177e2) ) - ROM_FILL ( 0x100000, 0x080000, 0x00 ) + ROM_REGION( 0x040000, "sprites_hi", 0 ) + ROM_LOAD ("e36-01.4", 0x000000, 0x040000, CRC(54b9b2cd) SHA1(55ae964ea1d2cc40a6578c5339754a270096f01f) ) - ROM_REGION16_BE(0x400000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 1 populated + ROM_REGION( 0x100000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("e36-07.47", 0x000000, 0x080000, CRC(266bf1c1) SHA1(489549478d7016400af2e643d4b98bf605237d34) ) + ROM_LOAD32_WORD("e36-06.45", 0x000002, 0x080000, CRC(110ab729) SHA1(0ccc0a5abbcfd79a069daf5162cd344a5fb225d5) ) + + ROM_REGION( 0x080000, "tilemap_hi", 0 ) + ROM_LOAD ("e36-05.43", 0x000000, 0x080000, CRC(db18bce2) SHA1(b6653facc7f5c624f5710a51f2b2abfe640177e2) ) + + ROM_REGION16_BE( 0x400000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 1 populated ROM_LOAD16_BYTE("e36-04.38", 0x000000, 0x200000, CRC(2250959b) SHA1(06943f1b72bdf325485356a01278d88aeae93d87) ) // C8 C9 CA CB ROM_REGION( 0x0a00, "plds", 0 ) @@ -3469,36 +3621,38 @@ ROM_START( arkretrnj ) ROM_END ROM_START( kirameki ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e44-19.20", 0x000000, 0x80000, CRC(2f3b239a) SHA1(fb79955eba377d429ece04553251146b406143b1) ) ROM_LOAD32_BYTE("e44-18.19", 0x000001, 0x80000, CRC(3137c8bc) SHA1(5f5cb47e214fe116cf985e847fa8340cf2ea5a64) ) ROM_LOAD32_BYTE("e44-17.18", 0x000002, 0x80000, CRC(5905cd20) SHA1(52545622d3c7a31a9e95ab48e7251f1eae2c25b4) ) ROM_LOAD32_BYTE("e44-16.17", 0x000003, 0x80000, CRC(5e9ac3fd) SHA1(3c45707d0d260961df99249978c7e8f51dd1720e) ) - ROM_REGION(0x1800000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0xc00000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("e44-06.12", 0x0000000, 0x400000, CRC(80526d58) SHA1(d32bf1e6494848b6e258b747245742310398be22) ) ROM_LOAD16_BYTE("e44-04.8", 0x0000001, 0x400000, CRC(28c7c295) SHA1(90189ae26833499218b2236d48ce500a2eea3235) ) ROM_LOAD16_BYTE("e44-05.11", 0x0800000, 0x200000, CRC(0fbc2b26) SHA1(0edd67213a9eba15fff0931a07608f9523ae1d95) ) ROM_LOAD16_BYTE("e44-03.7", 0x0800001, 0x200000, CRC(d9e63fb0) SHA1(f2d8c30a4aaa2090673d5d2b1071e586a05c0236) ) - ROM_LOAD ("e44-02.4", 0x1200000, 0x400000, CRC(5481efde) SHA1(560a1b8acf672781e912dca51599b5aa4d69520a) ) - ROM_LOAD ("e44-01.3", 0x1600000, 0x200000, CRC(c4bdf727) SHA1(793a22a30ef44db818cfac96ff8e9d2f99cb672f) ) - ROM_FILL ( 0x0c00000, 0x600000, 0x00 ) - ROM_REGION(0xc00000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("e44-14.47", 0x000000, 0x200000, CRC(4597c034) SHA1(3c16c20969df9e439d42a89e649146319df1b996) ) - ROM_LOAD16_BYTE("e44-12.45", 0x000001, 0x200000, CRC(7160a181) SHA1(d4a351f38219694d6545b4c502c0ba0a7f0bdfd0) ) - ROM_LOAD16_BYTE("e44-13.46", 0x400000, 0x100000, CRC(0b016c4e) SHA1(670d1741376cf929adad3c5e45f921ed4b317d31) ) - ROM_LOAD16_BYTE("e44-11.44", 0x400001, 0x100000, CRC(34d84143) SHA1(d553ab2da9188b1881f70802637d46574a42787e) ) - ROM_LOAD ("e44-10.43", 0x900000, 0x200000, CRC(326f738e) SHA1(29c0c870341345eba10993446fecee08b6f13027) ) - ROM_LOAD ("e44-09.42", 0xb00000, 0x100000, CRC(a8e68eb7) SHA1(843bbb8a61bd4b9cbb14c7242281ce0c83c432ff) ) - ROM_FILL ( 0x600000, 0x300000, 0x00 ) + ROM_REGION( 0x600000, "sprites_hi", 0 ) + ROM_LOAD ("e44-02.4", 0x0000000, 0x400000, CRC(5481efde) SHA1(560a1b8acf672781e912dca51599b5aa4d69520a) ) + ROM_LOAD ("e44-01.3", 0x0400000, 0x200000, CRC(c4bdf727) SHA1(793a22a30ef44db818cfac96ff8e9d2f99cb672f) ) - ROM_REGION(0x400000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x600000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("e44-14.47", 0x000000, 0x200000, CRC(4597c034) SHA1(3c16c20969df9e439d42a89e649146319df1b996) ) + ROM_LOAD32_WORD("e44-12.45", 0x000002, 0x200000, CRC(7160a181) SHA1(d4a351f38219694d6545b4c502c0ba0a7f0bdfd0) ) + ROM_LOAD32_WORD("e44-13.46", 0x400000, 0x100000, CRC(0b016c4e) SHA1(670d1741376cf929adad3c5e45f921ed4b317d31) ) + ROM_LOAD32_WORD("e44-11.44", 0x400002, 0x100000, CRC(34d84143) SHA1(d553ab2da9188b1881f70802637d46574a42787e) ) + + ROM_REGION( 0x300000, "tilemap_hi", 0 ) + ROM_LOAD ("e44-10.43", 0x000000, 0x200000, CRC(326f738e) SHA1(29c0c870341345eba10993446fecee08b6f13027) ) + ROM_LOAD ("e44-09.42", 0x200000, 0x100000, CRC(a8e68eb7) SHA1(843bbb8a61bd4b9cbb14c7242281ce0c83c432ff) ) + + ROM_REGION( 0x400000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("e44-20.51", 0x100000, 0x080000, CRC(4df7e051) SHA1(db0f5758458764a1c04116d5d5bbb20d4d36c875) ) ROM_LOAD16_BYTE("e44-21.52", 0x100001, 0x080000, CRC(d31b94b8) SHA1(41ee381d10254dc6e7163c5f353568539a96fc20) ) ROM_LOAD16_WORD_SWAP("e44-15.53", 0x200000, 0x200000, CRC(5043b608) SHA1(a328b8cc27ba1620a75a17cdf8571e217c42b9fd) ) /* Banked data */ - ROM_REGION16_BE(0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks ROM_LOAD16_BYTE("e44-07.38", 0x000000, 0x400000, CRC(a9e28544) SHA1(0dc3e1755a93fda310d26ed5f95dd211c05e579e) ) // D2 C8 C8 C9 CA CB CC CD ROM_LOAD16_BYTE("e44-08.39", 0x800000, 0x400000, CRC(33ba3037) SHA1(b4bbc4198929938607c444edf159ff40f53235d7) ) // CE CF D0 -- -- -- -std- @@ -3507,32 +3661,34 @@ ROM_START( kirameki ) ROM_END ROM_START( puchicar ) // an Asia cart was dumped and all ROMs match - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e46-16", 0x000000, 0x80000, CRC(cf2accdf) SHA1(b1e9808299a3c68c939009275108ee76cd7f5749) ) ROM_LOAD32_BYTE("e46-15", 0x000001, 0x80000, CRC(c32c6ed8) SHA1(b0c4cca836e6957ecabdaddff23439f9d038a161) ) ROM_LOAD32_BYTE("e46-14", 0x000002, 0x80000, CRC(a154c300) SHA1(177d9f3514f1e59a1036b979d2ab969249f519ca) ) ROM_LOAD32_BYTE("e46-18", 0x000003, 0x80000, CRC(396e3122) SHA1(1000bfe22f783f7121a261d37551bde5687fff8b) ) - ROM_REGION(0x1000000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x800000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("e46-06", 0x000000, 0x200000, CRC(b74336f2) SHA1(f5039a4d2117c78e905e2ef6dec43e143a91915e) ) ROM_LOAD16_BYTE("e46-04", 0x000001, 0x200000, CRC(463ecc4c) SHA1(e1649e68acc1637a5dc596b1b29c735e286056af) ) ROM_LOAD16_BYTE("e46-05", 0x400000, 0x200000, CRC(83a32eee) SHA1(1a1059b0a5ba1542c866072ffe1874daba982387) ) ROM_LOAD16_BYTE("e46-03", 0x400001, 0x200000, CRC(eb768193) SHA1(1d48334c0dfb9f72484717c267ac9b9b8d887fc8) ) - ROM_LOAD ("e46-02", 0xc00000, 0x200000, CRC(fb046018) SHA1(48d9c582ec9ef59dcc7538598fbd7ea2117896af) ) - ROM_LOAD ("e46-01", 0xe00000, 0x200000, CRC(34fc2103) SHA1(dca199bbd0ad28a11960101cda8d110943b10822) ) - ROM_FILL ( 0x800000, 0x400000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("e46-12", 0x000000, 0x100000, CRC(1f3a9851) SHA1(c8711e2ef0096b41cc9b4c41e521d44b824f7181) ) - ROM_LOAD16_BYTE("e46-11", 0x000001, 0x100000, CRC(e9f10bf1) SHA1(4ee9be3846b262dc0992c904c40580353b164d46) ) - ROM_LOAD ("e46-10", 0x300000, 0x100000, CRC(1999b76a) SHA1(83d6d2efe250bf3b119982bbf701f9b9d856af2d) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + ROM_REGION( 0x400000, "sprites_hi", 0 ) + ROM_LOAD ("e46-02", 0x000000, 0x200000, CRC(fb046018) SHA1(48d9c582ec9ef59dcc7538598fbd7ea2117896af) ) + ROM_LOAD ("e46-01", 0x200000, 0x200000, CRC(34fc2103) SHA1(dca199bbd0ad28a11960101cda8d110943b10822) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("e46-12", 0x000000, 0x100000, CRC(1f3a9851) SHA1(c8711e2ef0096b41cc9b4c41e521d44b824f7181) ) + ROM_LOAD32_WORD("e46-11", 0x000002, 0x100000, CRC(e9f10bf1) SHA1(4ee9be3846b262dc0992c904c40580353b164d46) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("e46-10", 0x000000, 0x100000, CRC(1999b76a) SHA1(83d6d2efe250bf3b119982bbf701f9b9d856af2d) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("e46-21", 0x100000, 0x40000, CRC(b466cff6) SHA1(0757984f15a6ac9939c1e8625d5b9bfcbc788acc) ) ROM_LOAD16_BYTE("e46-22", 0x100001, 0x40000, CRC(c67b767e) SHA1(19f3db6615d7a6ed4d2636b6beabe2f3ed6d0c38) ) - ROM_REGION16_BE(0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks // empty ROM_LOAD16_BYTE("e46-07", 0x400000, 0x200000, CRC(f20af91e) SHA1(86040ff7ce591418b32c06c3a02fabcbe76281f5) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e46-08", 0x800000, 0x200000, CRC(f7f96e1d) SHA1(8a83ea9036e8647b8dec6b5e144288ed9c025779) ) // CC CD CE CF @@ -3547,32 +3703,34 @@ ROM_START( puchicar ) // an Asia cart was dumped and all ROMs match ROM_END ROM_START( puchicarj ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e46-16", 0x000000, 0x80000, CRC(cf2accdf) SHA1(b1e9808299a3c68c939009275108ee76cd7f5749) ) ROM_LOAD32_BYTE("e46-15", 0x000001, 0x80000, CRC(c32c6ed8) SHA1(b0c4cca836e6957ecabdaddff23439f9d038a161) ) ROM_LOAD32_BYTE("e46-14", 0x000002, 0x80000, CRC(a154c300) SHA1(177d9f3514f1e59a1036b979d2ab969249f519ca) ) ROM_LOAD32_BYTE("e46.13", 0x000003, 0x80000, CRC(59fbdf3a) SHA1(4499a7579907e8e1d8ca2c29e8e8d12185e8fe4d) ) - ROM_REGION(0x1000000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x800000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("e46-06", 0x000000, 0x200000, CRC(b74336f2) SHA1(f5039a4d2117c78e905e2ef6dec43e143a91915e) ) ROM_LOAD16_BYTE("e46-04", 0x000001, 0x200000, CRC(463ecc4c) SHA1(e1649e68acc1637a5dc596b1b29c735e286056af) ) ROM_LOAD16_BYTE("e46-05", 0x400000, 0x200000, CRC(83a32eee) SHA1(1a1059b0a5ba1542c866072ffe1874daba982387) ) ROM_LOAD16_BYTE("e46-03", 0x400001, 0x200000, CRC(eb768193) SHA1(1d48334c0dfb9f72484717c267ac9b9b8d887fc8) ) - ROM_LOAD ("e46-02", 0xc00000, 0x200000, CRC(fb046018) SHA1(48d9c582ec9ef59dcc7538598fbd7ea2117896af) ) - ROM_LOAD ("e46-01", 0xe00000, 0x200000, CRC(34fc2103) SHA1(dca199bbd0ad28a11960101cda8d110943b10822) ) - ROM_FILL ( 0x800000, 0x400000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("e46-12", 0x000000, 0x100000, CRC(1f3a9851) SHA1(c8711e2ef0096b41cc9b4c41e521d44b824f7181) ) - ROM_LOAD16_BYTE("e46-11", 0x000001, 0x100000, CRC(e9f10bf1) SHA1(4ee9be3846b262dc0992c904c40580353b164d46) ) - ROM_LOAD ("e46-10", 0x300000, 0x100000, CRC(1999b76a) SHA1(83d6d2efe250bf3b119982bbf701f9b9d856af2d) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + ROM_REGION( 0x400000, "sprites_hi", 0 ) + ROM_LOAD ("e46-02", 0x000000, 0x200000, CRC(fb046018) SHA1(48d9c582ec9ef59dcc7538598fbd7ea2117896af) ) + ROM_LOAD ("e46-01", 0x200000, 0x200000, CRC(34fc2103) SHA1(dca199bbd0ad28a11960101cda8d110943b10822) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("e46-12", 0x000000, 0x100000, CRC(1f3a9851) SHA1(c8711e2ef0096b41cc9b4c41e521d44b824f7181) ) + ROM_LOAD32_WORD("e46-11", 0x000002, 0x100000, CRC(e9f10bf1) SHA1(4ee9be3846b262dc0992c904c40580353b164d46) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("e46-10", 0x000000, 0x100000, CRC(1999b76a) SHA1(83d6d2efe250bf3b119982bbf701f9b9d856af2d) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("e46-19", 0x100000, 0x40000, CRC(2624eba0) SHA1(ba0b13bda241c648c7f8520106acd8c0c888fe29) ) ROM_LOAD16_BYTE("e46-20", 0x100001, 0x40000, CRC(065e934f) SHA1(0ec1b5ae33b1c43776b9327c9d380787d64ed5f9) ) - ROM_REGION16_BE(0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks // empty ROM_LOAD16_BYTE("e46-07", 0x400000, 0x200000, CRC(f20af91e) SHA1(86040ff7ce591418b32c06c3a02fabcbe76281f5) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e46-08", 0x800000, 0x200000, CRC(f7f96e1d) SHA1(8a83ea9036e8647b8dec6b5e144288ed9c025779) ) // CC CD CE CF @@ -3587,28 +3745,30 @@ ROM_START( puchicarj ) ROM_END ROM_START( pbobble4 ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e49-12.20", 0x000000, 0x80000, CRC(fffea203) SHA1(6351209c78099f270c8d8c8aa4a2dd9ce126c4ed) ) ROM_LOAD32_BYTE("e49-11.19", 0x000001, 0x80000, CRC(bf69a087) SHA1(2acbdb7faf5bdb1d9b5b9506c0b6f02fedcbd6a5) ) ROM_LOAD32_BYTE("e49-10.18", 0x000002, 0x80000, CRC(0307460b) SHA1(7ad9c6e5d319d6727444ffd14a87c6885445cee0) ) ROM_LOAD32_BYTE("e49-16.17", 0x000003, 0x80000, CRC(0a021624) SHA1(21a948f9f4adce0aaf76292f419a7c289f265d30) ) - ROM_REGION(0x400000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x200000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("e49-02", 0x000000, 0x100000, CRC(c7d2f40b) SHA1(cc6813189d6b31d7db099e49443af395f137462c) ) ROM_LOAD16_BYTE("e49-01", 0x000001, 0x100000, CRC(a3dd5f85) SHA1(2b305fdc18806bb5d7c3de0ac6a6eb07f98b4d3d) ) - ROM_FILL ( 0x200000, 0x200000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("e49-08", 0x000000, 0x100000, CRC(87408106) SHA1(6577568ab4b92d6a81f43cf9ea2f0e30e17e2742) ) - ROM_LOAD16_BYTE("e49-07", 0x000001, 0x100000, CRC(1e1e8e1c) SHA1(9c3b994064c6af62b6a24cab85089a74fd92cf7f) ) - ROM_LOAD ("e49-06", 0x300000, 0x100000, CRC(ec85f7ce) SHA1(9fead68c38fc9ca84d34d70343b13665978c362b) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + EMPTY_SPRITE_HIDATA(0x100000) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 code */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("e49-08", 0x000000, 0x100000, CRC(87408106) SHA1(6577568ab4b92d6a81f43cf9ea2f0e30e17e2742) ) + ROM_LOAD32_WORD("e49-07", 0x000002, 0x100000, CRC(1e1e8e1c) SHA1(9c3b994064c6af62b6a24cab85089a74fd92cf7f) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("e49-06", 0x000000, 0x100000, CRC(ec85f7ce) SHA1(9fead68c38fc9ca84d34d70343b13665978c362b) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE("e49-13.32", 0x100000, 0x40000, CRC(83536f7f) SHA1(2252cee00ae260954cc76d92af8eb2a87d23cbfb) ) ROM_LOAD16_BYTE("e49-14.33", 0x100001, 0x40000, CRC(19815bdb) SHA1(38ad682236c7df0710055dd8dbdec30d5da0839d) ) - ROM_REGION16_BE(0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks // empty ROM_LOAD16_BYTE("e49-03", 0x400000, 0x200000, CRC(f64303e0) SHA1(4d5df77047522419d21ff36402076e9b7c5acff8) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e49-04", 0x800000, 0x200000, CRC(09be229c) SHA1(a3a88969b34628d2bf3163bdf85d520feac9a7ac) ) // E7 CD E8 E6 @@ -3623,28 +3783,30 @@ ROM_START( pbobble4 ) ROM_END ROM_START( pbobble4j ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e49-12.20", 0x000000, 0x80000, CRC(fffea203) SHA1(6351209c78099f270c8d8c8aa4a2dd9ce126c4ed) ) ROM_LOAD32_BYTE("e49-11.19", 0x000001, 0x80000, CRC(bf69a087) SHA1(2acbdb7faf5bdb1d9b5b9506c0b6f02fedcbd6a5) ) ROM_LOAD32_BYTE("e49-10.18", 0x000002, 0x80000, CRC(0307460b) SHA1(7ad9c6e5d319d6727444ffd14a87c6885445cee0) ) ROM_LOAD32_BYTE("e49-09.17", 0x000003, 0x80000, CRC(e40c7708) SHA1(0a8e973bb1d8c6dea9124d2742d354c6f20c08ee) ) - ROM_REGION(0x400000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x200000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("e49-02", 0x000000, 0x100000, CRC(c7d2f40b) SHA1(cc6813189d6b31d7db099e49443af395f137462c) ) ROM_LOAD16_BYTE("e49-01", 0x000001, 0x100000, CRC(a3dd5f85) SHA1(2b305fdc18806bb5d7c3de0ac6a6eb07f98b4d3d) ) - ROM_FILL ( 0x200000, 0x200000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("e49-08", 0x000000, 0x100000, CRC(87408106) SHA1(6577568ab4b92d6a81f43cf9ea2f0e30e17e2742) ) - ROM_LOAD16_BYTE("e49-07", 0x000001, 0x100000, CRC(1e1e8e1c) SHA1(9c3b994064c6af62b6a24cab85089a74fd92cf7f) ) - ROM_LOAD ("e49-06", 0x300000, 0x100000, CRC(ec85f7ce) SHA1(9fead68c38fc9ca84d34d70343b13665978c362b) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + EMPTY_SPRITE_HIDATA(0x100000) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 code */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("e49-08", 0x000000, 0x100000, CRC(87408106) SHA1(6577568ab4b92d6a81f43cf9ea2f0e30e17e2742) ) + ROM_LOAD32_WORD("e49-07", 0x000002, 0x100000, CRC(1e1e8e1c) SHA1(9c3b994064c6af62b6a24cab85089a74fd92cf7f) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("e49-06", 0x000000, 0x100000, CRC(ec85f7ce) SHA1(9fead68c38fc9ca84d34d70343b13665978c362b) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE("e49-13.32", 0x100000, 0x40000, CRC(83536f7f) SHA1(2252cee00ae260954cc76d92af8eb2a87d23cbfb) ) ROM_LOAD16_BYTE("e49-14.33", 0x100001, 0x40000, CRC(19815bdb) SHA1(38ad682236c7df0710055dd8dbdec30d5da0839d) ) - ROM_REGION16_BE(0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks // empty ROM_LOAD16_BYTE("e49-03", 0x400000, 0x200000, CRC(f64303e0) SHA1(4d5df77047522419d21ff36402076e9b7c5acff8) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e49-04", 0x800000, 0x200000, CRC(09be229c) SHA1(a3a88969b34628d2bf3163bdf85d520feac9a7ac) ) // E7 CD E8 E6 @@ -3659,28 +3821,30 @@ ROM_START( pbobble4j ) ROM_END ROM_START( pbobble4u ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e49-12.20", 0x000000, 0x80000, CRC(fffea203) SHA1(6351209c78099f270c8d8c8aa4a2dd9ce126c4ed) ) ROM_LOAD32_BYTE("e49-11.19", 0x000001, 0x80000, CRC(bf69a087) SHA1(2acbdb7faf5bdb1d9b5b9506c0b6f02fedcbd6a5) ) ROM_LOAD32_BYTE("e49-10.18", 0x000002, 0x80000, CRC(0307460b) SHA1(7ad9c6e5d319d6727444ffd14a87c6885445cee0) ) ROM_LOAD32_BYTE("e49-15.17", 0x000003, 0x80000, CRC(7d0526b2) SHA1(1b769f735735e9135418ff26c020d8ac7f62d857) ) - ROM_REGION(0x400000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x200000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("e49-02", 0x000000, 0x100000, CRC(c7d2f40b) SHA1(cc6813189d6b31d7db099e49443af395f137462c) ) ROM_LOAD16_BYTE("e49-01", 0x000001, 0x100000, CRC(a3dd5f85) SHA1(2b305fdc18806bb5d7c3de0ac6a6eb07f98b4d3d) ) - ROM_FILL ( 0x200000, 0x200000, 0x00 ) - ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("e49-08", 0x000000, 0x100000, CRC(87408106) SHA1(6577568ab4b92d6a81f43cf9ea2f0e30e17e2742) ) - ROM_LOAD16_BYTE("e49-07", 0x000001, 0x100000, CRC(1e1e8e1c) SHA1(9c3b994064c6af62b6a24cab85089a74fd92cf7f) ) - ROM_LOAD ("e49-06", 0x300000, 0x100000, CRC(ec85f7ce) SHA1(9fead68c38fc9ca84d34d70343b13665978c362b) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + EMPTY_SPRITE_HIDATA(0x100000) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 code */ + ROM_REGION( 0x200000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("e49-08", 0x000000, 0x100000, CRC(87408106) SHA1(6577568ab4b92d6a81f43cf9ea2f0e30e17e2742) ) + ROM_LOAD32_WORD("e49-07", 0x000002, 0x100000, CRC(1e1e8e1c) SHA1(9c3b994064c6af62b6a24cab85089a74fd92cf7f) ) + + ROM_REGION( 0x100000, "tilemap_hi", 0 ) + ROM_LOAD ("e49-06", 0x000000, 0x100000, CRC(ec85f7ce) SHA1(9fead68c38fc9ca84d34d70343b13665978c362b) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE("e49-13.32", 0x100000, 0x40000, CRC(83536f7f) SHA1(2252cee00ae260954cc76d92af8eb2a87d23cbfb) ) ROM_LOAD16_BYTE("e49-14.33", 0x100001, 0x40000, CRC(19815bdb) SHA1(38ad682236c7df0710055dd8dbdec30d5da0839d) ) - ROM_REGION16_BE(0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks // empty ROM_LOAD16_BYTE("e49-03", 0x400000, 0x200000, CRC(f64303e0) SHA1(4d5df77047522419d21ff36402076e9b7c5acff8) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e49-04", 0x800000, 0x200000, CRC(09be229c) SHA1(a3a88969b34628d2bf3163bdf85d520feac9a7ac) ) // E7 CD E8 E6 @@ -3695,29 +3859,31 @@ ROM_START( pbobble4u ) ROM_END ROM_START( popnpopj ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e51-12.20", 0x000000, 0x80000, CRC(86a237d5) SHA1(4b87a51705a4d831b21ee770af17310c6c091c2e) ) ROM_LOAD32_BYTE("e51-11.19", 0x000001, 0x80000, CRC(8a49f34f) SHA1(8691fbc1e96f0c9eb550dbb8ae8d7ef371397166) ) ROM_LOAD32_BYTE("e51-10.18", 0x000002, 0x80000, CRC(4bce68f8) SHA1(1a9220926f4d8db509f4ccbf318d123f34c42153) ) ROM_LOAD32_BYTE("e51-09.17", 0x000003, 0x80000, CRC(4a086017) SHA1(edec4120b3d96a179f12949bd261b97d41351cab) ) - ROM_REGION(0x400000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x200000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("e51-03.12",0x000000, 0x100000, CRC(a24c4607) SHA1(2396fa927446568ad8d98ad6756813e2f30523dd) ) ROM_LOAD16_BYTE("e51-02.8", 0x000001, 0x100000, CRC(6aa8b96c) SHA1(aaf7917dce5fed43c68cd3065538b58666ef3dbc) ) - ROM_LOAD ("e51-01.4", 0x300000, 0x100000, CRC(70347e24) SHA1(6b4ab90f0209e50eac7bee3abcf40afb71ab950a) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) - ROM_REGION(0x800000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("e51-08.47", 0x000000, 0x200000, CRC(3ad41f02) SHA1(a4959113c01062003df41cdf6146e8a034917ee2) ) - ROM_LOAD16_BYTE("e51-07.45", 0x000001, 0x200000, CRC(95873e46) SHA1(02504cbd920c8dbcb5abec6388305eff38f7efe0) ) - ROM_LOAD ("e51-06.43", 0x600000, 0x200000, CRC(c240d6c8) SHA1(6f3b5224b7eb8783893375d432bbbfc37f81c230) ) - ROM_FILL ( 0x400000, 0x200000, 0x00 ) + ROM_REGION( 0x100000, "sprites_hi", 0 ) + ROM_LOAD ("e51-01.4", 0x000000, 0x100000, CRC(70347e24) SHA1(6b4ab90f0209e50eac7bee3abcf40afb71ab950a) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x400000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("e51-08.47", 0x000000, 0x200000, CRC(3ad41f02) SHA1(a4959113c01062003df41cdf6146e8a034917ee2) ) + ROM_LOAD32_WORD("e51-07.45", 0x000002, 0x200000, CRC(95873e46) SHA1(02504cbd920c8dbcb5abec6388305eff38f7efe0) ) + + ROM_REGION( 0x200000, "tilemap_hi", 0 ) + ROM_LOAD ("e51-06.43", 0x000000, 0x200000, CRC(c240d6c8) SHA1(6f3b5224b7eb8783893375d432bbbfc37f81c230) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("e51-13.32", 0x100000, 0x40000, CRC(3b9e3986) SHA1(26340bda0ad2ea580e2395135617966676a71ad5) ) ROM_LOAD16_BYTE("e51-14.33", 0x100001, 0x40000, CRC(1f9a5015) SHA1(5da38c5fe2a50bcde6bd46ab1cb9a56dbab1a882) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e51-04.38", 0x000000, 0x200000, CRC(66790f55) SHA1(ac539b2655dbcda1bdffb9f3cf4c96fb05721e9d) ) // C9 CA CB CC ROM_LOAD16_BYTE("e51-05.41", 0x400000, 0x200000, CRC(4d08b26d) SHA1(071a11a1b1ee8b8129d02b15ec0e533912c91b04) ) // CD CE -std- @@ -3730,29 +3896,31 @@ ROM_START( popnpopj ) ROM_END ROM_START( popnpop ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e51-12.20", 0x000000, 0x80000, CRC(86a237d5) SHA1(4b87a51705a4d831b21ee770af17310c6c091c2e) ) ROM_LOAD32_BYTE("e51-11.19", 0x000001, 0x80000, CRC(8a49f34f) SHA1(8691fbc1e96f0c9eb550dbb8ae8d7ef371397166) ) ROM_LOAD32_BYTE("e51-10.18", 0x000002, 0x80000, CRC(4bce68f8) SHA1(1a9220926f4d8db509f4ccbf318d123f34c42153) ) ROM_LOAD32_BYTE("e51-16.17", 0x000003, 0x80000, CRC(2a9d8e0f) SHA1(a5363a98f03cbc7b5f7c393b21062730bd6ee2a8) ) - ROM_REGION(0x400000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x200000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("e51-03.12",0x000000, 0x100000, CRC(a24c4607) SHA1(2396fa927446568ad8d98ad6756813e2f30523dd) ) ROM_LOAD16_BYTE("e51-02.8", 0x000001, 0x100000, CRC(6aa8b96c) SHA1(aaf7917dce5fed43c68cd3065538b58666ef3dbc) ) - ROM_LOAD ("e51-01.4", 0x300000, 0x100000, CRC(70347e24) SHA1(6b4ab90f0209e50eac7bee3abcf40afb71ab950a) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) - ROM_REGION(0x800000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("e51-08.47", 0x000000, 0x200000, CRC(3ad41f02) SHA1(a4959113c01062003df41cdf6146e8a034917ee2) ) - ROM_LOAD16_BYTE("e51-07.45", 0x000001, 0x200000, CRC(95873e46) SHA1(02504cbd920c8dbcb5abec6388305eff38f7efe0) ) - ROM_LOAD ("e51-06.43", 0x600000, 0x200000, CRC(c240d6c8) SHA1(6f3b5224b7eb8783893375d432bbbfc37f81c230) ) - ROM_FILL ( 0x400000, 0x200000, 0x00 ) + ROM_REGION( 0x100000, "sprites_hi", 0 ) + ROM_LOAD ("e51-01.4", 0x000000, 0x100000, CRC(70347e24) SHA1(6b4ab90f0209e50eac7bee3abcf40afb71ab950a) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x400000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("e51-08.47", 0x000000, 0x200000, CRC(3ad41f02) SHA1(a4959113c01062003df41cdf6146e8a034917ee2) ) + ROM_LOAD32_WORD("e51-07.45", 0x000002, 0x200000, CRC(95873e46) SHA1(02504cbd920c8dbcb5abec6388305eff38f7efe0) ) + + ROM_REGION( 0x200000, "tilemap_hi", 0 ) + ROM_LOAD ("e51-06.43", 0x000000, 0x200000, CRC(c240d6c8) SHA1(6f3b5224b7eb8783893375d432bbbfc37f81c230) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("e51-13.32", 0x100000, 0x40000, CRC(3b9e3986) SHA1(26340bda0ad2ea580e2395135617966676a71ad5) ) ROM_LOAD16_BYTE("e51-14.33", 0x100001, 0x40000, CRC(1f9a5015) SHA1(5da38c5fe2a50bcde6bd46ab1cb9a56dbab1a882) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e51-04.38", 0x000000, 0x200000, CRC(66790f55) SHA1(ac539b2655dbcda1bdffb9f3cf4c96fb05721e9d) ) // C9 CA CB CC ROM_LOAD16_BYTE("e51-05.41", 0x400000, 0x200000, CRC(4d08b26d) SHA1(071a11a1b1ee8b8129d02b15ec0e533912c91b04) ) // CD CE -std- @@ -3765,29 +3933,31 @@ ROM_START( popnpop ) ROM_END ROM_START( popnpopu ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e51-12.20", 0x000000, 0x80000, CRC(86a237d5) SHA1(4b87a51705a4d831b21ee770af17310c6c091c2e) ) ROM_LOAD32_BYTE("e51-11.19", 0x000001, 0x80000, CRC(8a49f34f) SHA1(8691fbc1e96f0c9eb550dbb8ae8d7ef371397166) ) ROM_LOAD32_BYTE("e51-10.18", 0x000002, 0x80000, CRC(4bce68f8) SHA1(1a9220926f4d8db509f4ccbf318d123f34c42153) ) ROM_LOAD32_BYTE("e51-15.17", 0x000003, 0x80000, CRC(1ad77903) SHA1(d5e631d70108d1f15bcfcacde914ac2fb95cb102) ) - ROM_REGION(0x400000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x200000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("e51-03.12",0x000000, 0x100000, CRC(a24c4607) SHA1(2396fa927446568ad8d98ad6756813e2f30523dd) ) ROM_LOAD16_BYTE("e51-02.8", 0x000001, 0x100000, CRC(6aa8b96c) SHA1(aaf7917dce5fed43c68cd3065538b58666ef3dbc) ) - ROM_LOAD ("e51-01.4", 0x300000, 0x100000, CRC(70347e24) SHA1(6b4ab90f0209e50eac7bee3abcf40afb71ab950a) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) - ROM_REGION(0x800000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("e51-08.47", 0x000000, 0x200000, CRC(3ad41f02) SHA1(a4959113c01062003df41cdf6146e8a034917ee2) ) - ROM_LOAD16_BYTE("e51-07.45", 0x000001, 0x200000, CRC(95873e46) SHA1(02504cbd920c8dbcb5abec6388305eff38f7efe0) ) - ROM_LOAD ("e51-06.43", 0x600000, 0x200000, CRC(c240d6c8) SHA1(6f3b5224b7eb8783893375d432bbbfc37f81c230) ) - ROM_FILL ( 0x400000, 0x200000, 0x00 ) + ROM_REGION( 0x100000, "sprites_hi", 0 ) + ROM_LOAD ("e51-01.4", 0x000000, 0x100000, CRC(70347e24) SHA1(6b4ab90f0209e50eac7bee3abcf40afb71ab950a) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x400000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("e51-08.47", 0x000000, 0x200000, CRC(3ad41f02) SHA1(a4959113c01062003df41cdf6146e8a034917ee2) ) + ROM_LOAD32_WORD("e51-07.45", 0x000002, 0x200000, CRC(95873e46) SHA1(02504cbd920c8dbcb5abec6388305eff38f7efe0) ) + + ROM_REGION( 0x200000, "tilemap_hi", 0 ) + ROM_LOAD ("e51-06.43", 0x000000, 0x200000, CRC(c240d6c8) SHA1(6f3b5224b7eb8783893375d432bbbfc37f81c230) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("e51-13.32", 0x100000, 0x40000, CRC(3b9e3986) SHA1(26340bda0ad2ea580e2395135617966676a71ad5) ) ROM_LOAD16_BYTE("e51-14.33", 0x100001, 0x40000, CRC(1f9a5015) SHA1(5da38c5fe2a50bcde6bd46ab1cb9a56dbab1a882) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e51-04.38", 0x000000, 0x200000, CRC(66790f55) SHA1(ac539b2655dbcda1bdffb9f3cf4c96fb05721e9d) ) // C9 CA CB CC ROM_LOAD16_BYTE("e51-05.41", 0x400000, 0x200000, CRC(4d08b26d) SHA1(071a11a1b1ee8b8129d02b15ec0e533912c91b04) ) // CD CE -std- @@ -3842,29 +4012,31 @@ Notes: */ ROM_START( landmakr ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("e61-19.20", 0x000000, 0x80000, CRC(f92eccd0) SHA1(88e836390be1ca08c578080662d17007a9e0bcc3) ) ROM_LOAD32_BYTE("e61-18.19", 0x000001, 0x80000, CRC(5a26c9e0) SHA1(e7f09722f6b7a459248c2c8ad0a2695365cc78dc) ) ROM_LOAD32_BYTE("e61-17.18", 0x000002, 0x80000, CRC(710776a8) SHA1(669aa086e7a5faedd90407e558c01bf5f0869790) ) ROM_LOAD32_BYTE("e61-16.17", 0x000003, 0x80000, CRC(b073cda9) SHA1(a8b713c3e17e431b5789a70d6f9b0e0a6b02624a) ) - ROM_REGION(0x800000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x400000, "sprites" , 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, 0x00 ) - 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, 0x00 ) + ROM_REGION( 0x200000, "sprites_hi", 0 ) + ROM_LOAD ("e61-01.04",0x000000, 0x200000, CRC(6cdd8311) SHA1(7810a5a81f3b5a730d2088c79b12fffd77659b5b) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x400000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("e61-09.47", 0x000000, 0x200000, CRC(6ba29987) SHA1(b63c12523e19da66b3ca07c3548ac81bf57b59a1) ) + ROM_LOAD32_WORD("e61-08.45", 0x000002, 0x200000, CRC(76c98e14) SHA1(c021c325ab4ae410fa54e2eab61d34318867432b) ) + + ROM_REGION( 0x200000, "tilemap_hi", 0 ) + ROM_LOAD ("e61-07.43", 0x000000, 0x200000, CRC(4a57965d) SHA1(8e80788e0f47fb242da9af3aa19077dc0ec829b8) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("e61-14.32", 0x100000, 0x40000, CRC(18961bbb) SHA1(df054def35a49c0754356c15ec15336cbf28b063) ) ROM_LOAD16_BYTE("e61-15.33", 0x100001, 0x40000, CRC(2c64557a) SHA1(768007162d5d2cbe650c735bc1af2c10ed13b046) ) - ROM_REGION16_BE(0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks // empty 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 @@ -3879,29 +4051,31 @@ ROM_START( landmakr ) ROM_END ROM_START( landmakrj ) - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + 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-10.17", 0x000003, 0x80000, CRC(daabf2b2) SHA1(dbfbe38841fc2f937052353eff1202790d364b9f) ) - ROM_REGION(0x800000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x400000, "sprites" , 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, 0x00 ) - 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, 0x00 ) + ROM_REGION( 0x200000, "sprites_hi", 0 ) + ROM_LOAD ("e61-01.04",0x000000, 0x200000, CRC(6cdd8311) SHA1(7810a5a81f3b5a730d2088c79b12fffd77659b5b) ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x400000, "tilemap" , 0) /* Tiles */ + ROM_LOAD32_WORD("e61-09.47", 0x000000, 0x200000, CRC(6ba29987) SHA1(b63c12523e19da66b3ca07c3548ac81bf57b59a1) ) + ROM_LOAD32_WORD("e61-08.45", 0x000002, 0x200000, CRC(76c98e14) SHA1(c021c325ab4ae410fa54e2eab61d34318867432b) ) + + ROM_REGION( 0x200000, "tilemap_hi", 0 ) + ROM_LOAD ("e61-07.43", 0x000000, 0x200000, CRC(4a57965d) SHA1(8e80788e0f47fb242da9af3aa19077dc0ec829b8) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("e61-14.32", 0x100000, 0x40000, CRC(18961bbb) SHA1(df054def35a49c0754356c15ec15336cbf28b063) ) ROM_LOAD16_BYTE("e61-15.33", 0x100001, 0x40000, CRC(2c64557a) SHA1(768007162d5d2cbe650c735bc1af2c10ed13b046) ) - ROM_REGION16_BE(0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks // empty 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 @@ -3916,13 +4090,13 @@ ROM_START( landmakrj ) ROM_END ROM_START( landmakrp ) // First 3 roms match parent, mpro-0.63 has bytes 7FFFE & 7FFFF reversed compared to parent. - ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 code */ ROM_LOAD32_BYTE("mpro-3.60", 0x000000, 0x80000, CRC(f92eccd0) SHA1(88e836390be1ca08c578080662d17007a9e0bcc3) ) ROM_LOAD32_BYTE("mpro-2.61", 0x000001, 0x80000, CRC(5a26c9e0) SHA1(e7f09722f6b7a459248c2c8ad0a2695365cc78dc) ) ROM_LOAD32_BYTE("mpro-1.62", 0x000002, 0x80000, CRC(710776a8) SHA1(669aa086e7a5faedd90407e558c01bf5f0869790) ) ROM_LOAD32_BYTE("mpro-0.63", 0x000003, 0x80000, CRC(bc71dd2f) SHA1(ec0d07f9729a53737975547066bd1221f78563c5) ) // 7FFFE: 03 FF vs 7FFFE: FF 03 in parent - ROM_REGION(0x800000, "gfx1" , 0) /* Sprites */ + ROM_REGION( 0x400000, "sprites" , 0) /* Sprites */ ROM_LOAD16_BYTE("obj0-0.8", 0x000000, 0x080000, CRC(4b862c1b) SHA1(ef46af27d0657b95f5f3bad13629f9119958fe78) ) ROM_LOAD16_BYTE("obj1-0.7", 0x100000, 0x080000, CRC(90502355) SHA1(e1edc0cec8ca53fda4d42f9b9fdd385379d7a958) ) ROM_LOAD16_BYTE("obj2-0.6", 0x200000, 0x080000, CRC(3bffe4b2) SHA1(6e9bb8716f312cb8c81ecebfc61f9dfc8c9013dc) ) @@ -3931,32 +4105,34 @@ ROM_START( landmakrp ) // First 3 roms match parent, mpro-0.63 has bytes 7FFFE & ROM_LOAD16_BYTE("obj1-1.19",0x100001, 0x080000, CRC(a24edb24) SHA1(81fe77eccdd2a7ea02454e57e52b21ad57eb817e) ) ROM_LOAD16_BYTE("obj2-1.18",0x200001, 0x080000, CRC(1b2a87f3) SHA1(b7dc871196b92bb4f6ea31bff0717cb3a508bc05) ) ROM_LOAD16_BYTE("obj3-1.17",0x300001, 0x080000, CRC(c7e91180) SHA1(c8bfa43ab3b9a6c4ba08e1a7389880e964bb1d80) ) - ROM_LOAD ("obj0-2.32",0x600000, 0x080000, CRC(94cc01d0) SHA1(f4cf4cb237a3f2bd9df35424f85a84b70b47d402) ) - ROM_LOAD ("obj1-2.31",0x680000, 0x080000, CRC(c2757722) SHA1(83a921647eb0375e10c7f76c08ebe66f2a6fdcd9) ) - ROM_LOAD ("obj2-2.30",0x700000, 0x080000, CRC(934556ff) SHA1(aca8585680e66635b8872259cfd38edc96e92066) ) - ROM_LOAD ("obj3-2.29",0x780000, 0x080000, CRC(97f0f777) SHA1(787a33b91cb262cc3983a46ba259dd9b153d532a) ) - ROM_FILL ( 0x400000, 0x200000, 0x00 ) - ROM_REGION(0x800000, "gfx2" , 0) /* Tiles */ + ROM_REGION( 0x200000, "sprites_hi", 0 ) + ROM_LOAD ("obj0-2.32",0x000000, 0x080000, CRC(94cc01d0) SHA1(f4cf4cb237a3f2bd9df35424f85a84b70b47d402) ) + ROM_LOAD ("obj1-2.31",0x080000, 0x080000, CRC(c2757722) SHA1(83a921647eb0375e10c7f76c08ebe66f2a6fdcd9) ) + ROM_LOAD ("obj2-2.30",0x100000, 0x080000, CRC(934556ff) SHA1(aca8585680e66635b8872259cfd38edc96e92066) ) + ROM_LOAD ("obj3-2.29",0x180000, 0x080000, CRC(97f0f777) SHA1(787a33b91cb262cc3983a46ba259dd9b153d532a) ) + + ROM_REGION( 0x400000, "tilemap" , 0) /* Tiles */ ROM_LOAD32_BYTE("scr0-0.7", 0x000000, 0x080000, CRC(da6ba562) SHA1(6aefd249d3491380837e04583a0069ed9c495d05) ) - ROM_LOAD32_BYTE("scr0-1.6", 0x000002, 0x080000, CRC(8c201d27) SHA1(83147c35d03c7b5c84220a6442e99b87ba99cfbc) ) - ROM_LOAD32_BYTE("scr0-2.5", 0x000001, 0x080000, CRC(36756b9c) SHA1(3d293b11d03fb4cdc5c041fcdade9941bf6a72d0) ) + ROM_LOAD32_BYTE("scr0-1.6", 0x000001, 0x080000, CRC(8c201d27) SHA1(83147c35d03c7b5c84220a6442e99b87ba99cfbc) ) + ROM_LOAD32_BYTE("scr0-2.5", 0x000002, 0x080000, CRC(36756b9c) SHA1(3d293b11d03fb4cdc5c041fcdade9941bf6a72d0) ) ROM_LOAD32_BYTE("scr0-3.4", 0x000003, 0x080000, CRC(4e0274f3) SHA1(d65378db78a310c664ef49a216f18e16c932f58d) ) ROM_LOAD32_BYTE("scr1-0.19",0x200000, 0x080000, CRC(2689f716) SHA1(6849e7d36aca5a678b74e1cce9e6a2381928c127) ) - ROM_LOAD32_BYTE("scr1-1.18",0x200002, 0x080000, CRC(f3086949) SHA1(c21f5384294a9fcfb422dbb85565305520a334b5) ) - ROM_LOAD32_BYTE("scr1-2.17",0x200001, 0x080000, CRC(7841468a) SHA1(58b60cbb4ec7e2d0d64fc42161b53b9ff5e2ca8c) ) + ROM_LOAD32_BYTE("scr1-1.18",0x200001, 0x080000, CRC(f3086949) SHA1(c21f5384294a9fcfb422dbb85565305520a334b5) ) + ROM_LOAD32_BYTE("scr1-2.17",0x200002, 0x080000, CRC(7841468a) SHA1(58b60cbb4ec7e2d0d64fc42161b53b9ff5e2ca8c) ) ROM_LOAD32_BYTE("scr1-3.16",0x200003, 0x080000, CRC(926ad229) SHA1(4840227c184bde8d125122a90a70102bf2757ccc) ) - ROM_LOAD16_BYTE("scr0-4.3", 0x600000, 0x080000, CRC(5b3cf564) SHA1(003f1e4c653897016c95dee67161fa3964d4f5a8) ) - ROM_LOAD16_BYTE("scr0-5.2", 0x600001, 0x080000, CRC(8e1ea0fe) SHA1(aa815d1d67bf72be6a0c4076490dfd36f28a82ab) ) - ROM_LOAD16_BYTE("scr1-4.15",0x700000, 0x080000, CRC(783b6d10) SHA1(eab2c7b19890c1f6c13f0062978db5b81988499b) ) - ROM_LOAD16_BYTE("scr1-5.14",0x700001, 0x080000, CRC(24aba128) SHA1(b03804c738d86bfafc1f8fb91f8e77e878d2dc83) ) - ROM_FILL ( 0x400000, 0x200000, 0x00 ) - ROM_REGION(0x180000, "taito_en:audiocpu", 0) /* 68000 sound CPU */ + ROM_REGION( 0x200000, "tilemap_hi", 0 ) + ROM_LOAD16_BYTE("scr0-4.3", 0x000000, 0x080000, CRC(5b3cf564) SHA1(003f1e4c653897016c95dee67161fa3964d4f5a8) ) + ROM_LOAD16_BYTE("scr0-5.2", 0x000001, 0x080000, CRC(8e1ea0fe) SHA1(aa815d1d67bf72be6a0c4076490dfd36f28a82ab) ) + ROM_LOAD16_BYTE("scr1-4.15",0x100000, 0x080000, CRC(783b6d10) SHA1(eab2c7b19890c1f6c13f0062978db5b81988499b) ) + ROM_LOAD16_BYTE("scr1-5.14",0x100001, 0x080000, CRC(24aba128) SHA1(b03804c738d86bfafc1f8fb91f8e77e878d2dc83) ) + + ROM_REGION( 0x180000, "taito_en:audiocpu", 0 ) /* 68000 sound CPU */ ROM_LOAD16_BYTE("spro-1.66", 0x100000, 0x40000, CRC(18961bbb) SHA1(df054def35a49c0754356c15ec15336cbf28b063) ) ROM_LOAD16_BYTE("spro-0.65", 0x100001, 0x40000, CRC(2c64557a) SHA1(768007162d5d2cbe650c735bc1af2c10ed13b046) ) - ROM_REGION16_BE(0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks // empty ROM_LOAD16_BYTE("snd-0.43", 0x400000, 0x80000, CRC(0e5ef5c8) SHA1(e2840c9cedb9361b7eb307e87ea96f3bb6225487) ) // C8 ROM_LOAD16_BYTE("snd-1.44", 0x500000, 0x80000, CRC(2998fd65) SHA1(192e32f9934465bb0da5c1ad116c5ea9b286f36a) ) // C9 @@ -3974,14 +4150,8 @@ ROM_END /******************************************************************************/ -static void tile_decode(running_machine &machine) +void taito_f3_state::tile_decode() { - uint8_t lsb,msb; - uint32_t offset,i; - uint8_t *gfx = machine.root_device().memregion("gfx2")->base(); - int size=machine.root_device().memregion("gfx2")->bytes(); - int data; - /* Setup ROM formats: Some games will only use 4 or 5 bpp sprites, and some only use 4 bpp tiles, @@ -3996,230 +4166,228 @@ static void tile_decode(running_machine &machine) */ - offset = size/2; - for (i = size/2+size/4; igfx(1); - gfx[offset+0]=((msb&0x02)<<3) | ((msb&0x01)>>0) | ((lsb&0x02)<<4) | ((lsb&0x01)<<1); - gfx[offset+2]=((msb&0x08)<<1) | ((msb&0x04)>>2) | ((lsb&0x08)<<2) | ((lsb&0x04)>>1); - gfx[offset+1]=((msb&0x20)>>1) | ((msb&0x10)>>4) | ((lsb&0x20)<<0) | ((lsb&0x10)>>3); - gfx[offset+3]=((msb&0x80)>>3) | ((msb&0x40)>>6) | ((lsb&0x80)>>2) | ((lsb&0x40)>>5); + // allocate memory for the assembled data + srcdata = auto_alloc_array(machine(), u8, pf_gfx->elements() * pf_gfx->width() * pf_gfx->height()); - offset+=4; + // loop over elements + dest = srcdata; + for (int c = 0; c < pf_gfx->elements(); c++) + { + const u8 *c0base = pf_gfx->get_data(c); + + // loop over height + for (int y = 0; y < pf_gfx->height(); y++) + { + const u8 *c0 = c0base; + + for (int x = 0; x < pf_gfx->width();) + { + u8 msb = *tmap_hi++; + u8 lsb = *tmap_hi++; + for (int i = 0; i < 8; i++) + { + *dest++ = (*c0++ & 0xf) | ((msb << 4) & 0x10) | ((lsb << 5) & 0x20); + x++; + msb >>= 1; + lsb >>= 1; + } + } + c0base += pf_gfx->rowbytes(); + } + } + + pf_gfx->set_raw_layout(srcdata, pf_gfx->width(), pf_gfx->height(), pf_gfx->elements(), 8 * pf_gfx->width(), 8 * pf_gfx->width() * pf_gfx->height()); } - gfx = machine.root_device().memregion("gfx1")->base(); - size=machine.root_device().memregion("gfx1")->bytes(); - - offset = size/2; - for (i = size/2+size/4; igfx(2); - /* Expand 2bits into 4bits format */ - data = gfx[i]; - d1 = (data>>0) & 3; - d2 = (data>>2) & 3; - d3 = (data>>4) & 3; - d4 = (data>>6) & 3; + // allocate memory for the assembled data + srcdata = auto_alloc_array(machine(), u8, spr_gfx->elements() * spr_gfx->width() * spr_gfx->height()); - gfx[offset] = (d1<<2) | (d2<<6); - offset++; + // loop over elements + dest = srcdata; + for (int c = 0; c < spr_gfx->elements(); c++) + { + const u8 *c1base = spr_gfx->get_data(c); - gfx[offset] = (d3<<2) | (d4<<6); - offset++; + // loop over height + for (int y = 0; y < spr_gfx->height(); y++) + { + const u8 *c1 = c1base; + + for (int x = 0; x < spr_gfx->width();) + { + /* Expand 2bits into 4bits format */ + u8 hipix = *spr_hi++; + for (int i = 0; i < 4; i++) + { + *dest++ = (*c1++ & 0xf) | ((hipix << 4) & 0x30); + x++; + hipix >>= 2; + } + } + c1base += spr_gfx->rowbytes(); + } + } + + spr_gfx->set_raw_layout(srcdata, spr_gfx->width(), spr_gfx->height(), spr_gfx->elements(), 8 * spr_gfx->width(), 8 * spr_gfx->width() * spr_gfx->height()); } } void taito_f3_state::init_ringrage() { - m_f3_game=RINGRAGE; - tile_decode(machine()); + m_game=RINGRAGE; + tile_decode(); } void taito_f3_state::init_arabianm() { - m_f3_game=ARABIANM; - tile_decode(machine()); + m_game=ARABIANM; + tile_decode(); } void taito_f3_state::init_ridingf() { - m_f3_game=RIDINGF; - tile_decode(machine()); + m_game=RIDINGF; + tile_decode(); } void taito_f3_state::init_gseeker() { - m_f3_game=GSEEKER; - tile_decode(machine()); + m_game=GSEEKER; + tile_decode(); } void taito_f3_state::init_gunlock() { - m_f3_game=GUNLOCK; - tile_decode(machine()); + m_game=GUNLOCK; + tile_decode(); } void taito_f3_state::init_elvactr() { - m_f3_game=EACTION2; - tile_decode(machine()); + m_game=EACTION2; + tile_decode(); } void taito_f3_state::init_cupfinal() { - m_f3_game=SCFINALS; - tile_decode(machine()); + m_game=SCFINALS; + tile_decode(); } void taito_f3_state::init_trstaroj() { - m_f3_game=TRSTAR; - tile_decode(machine()); + m_game=TRSTAR; + tile_decode(); } void taito_f3_state::init_scfinals() { - m_f3_game=SCFINALS; - tile_decode(machine()); + m_game=SCFINALS; + tile_decode(); } void taito_f3_state::init_lightbr() { - m_f3_game=LIGHTBR; - tile_decode(machine()); + m_game=LIGHTBR; + tile_decode(); } void taito_f3_state::init_kaiserkn() { - m_f3_game=KAISERKN; - tile_decode(machine()); + m_game=KAISERKN; + tile_decode(); } void taito_f3_state::init_dariusg() { - m_f3_game=DARIUSG; - tile_decode(machine()); + m_game=DARIUSG; + tile_decode(); } void taito_f3_state::init_spcinvdj() { - m_f3_game=SPCINVDX; - tile_decode(machine()); + m_game=SPCINVDX; + tile_decode(); } void taito_f3_state::init_qtheater() { - m_f3_game=QTHEATER; - tile_decode(machine()); + m_game=QTHEATER; + tile_decode(); } void taito_f3_state::init_spcinv95() { - m_f3_game=SPCINV95; - tile_decode(machine()); + m_game=SPCINV95; + tile_decode(); } void taito_f3_state::init_gekirido() { - m_f3_game=GEKIRIDO; - tile_decode(machine()); + m_game=GEKIRIDO; + tile_decode(); } void taito_f3_state::init_ktiger2() { - m_f3_game=KTIGER2; - tile_decode(machine()); + m_game=KTIGER2; + tile_decode(); } void taito_f3_state::init_bubsymph() { - m_f3_game=BUBSYMPH; - tile_decode(machine()); + m_game=BUBSYMPH; + tile_decode(); } - -READ32_MEMBER(taito_f3_state::bubsympb_oki_r) -{ - return m_oki->read(); -} - -WRITE32_MEMBER(taito_f3_state::bubsympb_oki_w) -{ - //printf("write %08x %08x\n",data,mem_mask); - if (ACCESSING_BITS_0_7) m_oki->write(data&0xff); - //if (mem_mask==0x000000ff) downcast(device)->write(0,data&0xff); - if (ACCESSING_BITS_16_23) - { - uint8_t *snd = memregion("oki")->base(); - int bank = (data & 0x000f0000) >> 16; - // almost certainly wrong - memcpy(snd+0x30000, snd+0x80000+0x30000+bank*0x10000, 0x10000); - - //printf("oki bank w %08x\n",data); - } - - -} - - void taito_f3_state::init_bubsympb() { - m_f3_game=BUBSYMPH; - //tile_decode(machine()); + m_game=BUBSYMPH; + tile_decode(); - /* expand gfx rom */ - { - int i; - uint8_t *gfx = memregion("gfx2")->base(); - - for (i=0x200000;i<0x400000; i+=4) - { - uint8_t byte = gfx[i]; - gfx[i+0] = (byte & 0x80)? 1<<4 : 0<<4; - gfx[i+0]|= (byte & 0x40)? 1<<0 : 0<<0; - gfx[i+1] = (byte & 0x20)? 1<<4 : 0<<4; - gfx[i+1]|= (byte & 0x10)? 1<<0 : 0<<0; - gfx[i+2] = (byte & 0x08)? 1<<4 : 0<<4; - gfx[i+2]|= (byte & 0x04)? 1<<0 : 0<<0; - gfx[i+3] = (byte & 0x02)? 1<<4 : 0<<4; - gfx[i+3]|= (byte & 0x01)? 1<<0 : 0<<0; - } - } + // almost certainly wrong + m_okibank->configure_entries(0, 5, memregion("oki")->base() + 0x30000, 0x10000); } - void taito_f3_state::init_bubblem() { - m_f3_game=BUBBLEM; - tile_decode(machine()); + m_game=BUBBLEM; + tile_decode(); } void taito_f3_state::init_cleopatr() { - m_f3_game=CLEOPATR; - tile_decode(machine()); + m_game=CLEOPATR; + tile_decode(); } void taito_f3_state::init_popnpop() { - m_f3_game=POPNPOP; - tile_decode(machine()); + m_game=POPNPOP; + tile_decode(); } void taito_f3_state::init_landmakr() { - m_f3_game=LANDMAKR; - tile_decode(machine()); + m_game=LANDMAKR; + tile_decode(); } void taito_f3_state::init_landmkrp() { - uint32_t *RAM = (uint32_t *)memregion("maincpu")->base(); + u32 *RAM = (u32 *)memregion("maincpu")->base(); /* For some reason the least significant byte in the last 2 long words of ROM is swapped. As the roms have been verified ok, I assume this is some @@ -4228,32 +4396,32 @@ void taito_f3_state::init_landmkrp() RAM[0x1ffff8/4]=0xffffffff; /* From 0xffffff03 */ RAM[0x1ffffc/4]=0xffff0003; /* From 0xffff00ff */ - m_f3_game=LANDMAKR; - tile_decode(machine()); + m_game=LANDMAKR; + tile_decode(); } void taito_f3_state::init_pbobble3() { - m_f3_game=PBOBBLE3; - tile_decode(machine()); + m_game=PBOBBLE3; + tile_decode(); } void taito_f3_state::init_pbobble4() { - m_f3_game=PBOBBLE4; - tile_decode(machine()); + m_game=PBOBBLE4; + tile_decode(); } void taito_f3_state::init_quizhuhu() { - m_f3_game=QUIZHUHU; - tile_decode(machine()); + m_game=QUIZHUHU; + tile_decode(); } void taito_f3_state::init_pbobble2() { - m_f3_game=PBOBBLE2; - tile_decode(machine()); + m_game=PBOBBLE2; + tile_decode(); } void taito_f3_state::init_pbobbl2p() @@ -4262,70 +4430,68 @@ void taito_f3_state::init_pbobbl2p() // which eventually causes the game to crash // -- protection check?? or some kind of checksum fail? - uint32_t *ROM = (uint32_t *)memregion("maincpu")->base(); + u32 *ROM = (u32 *)memregion("maincpu")->base(); /* protection? */ ROM[0x40090/4]=0x00004e71|(ROM[0x40090/4]&0xffff0000); ROM[0x40094/4]=0x4e714e71; - m_f3_game=PBOBBLE2; - tile_decode(machine()); + m_game=PBOBBLE2; + tile_decode(); } - - void taito_f3_state::init_pbobbl2x() { - m_f3_game=PBOBBLE2; - tile_decode(machine()); + m_game=PBOBBLE2; + tile_decode(); } void taito_f3_state::init_hthero95() { - m_f3_game=HTHERO95; - tile_decode(machine()); + m_game=HTHERO95; + tile_decode(); } void taito_f3_state::init_kirameki() { - m_f3_game=KIRAMEKI; - tile_decode(machine()); + m_game=KIRAMEKI; + tile_decode(); } void taito_f3_state::init_puchicar() { - m_f3_game=PUCHICAR; - tile_decode(machine()); + m_game=PUCHICAR; + tile_decode(); } void taito_f3_state::init_twinqix() { - m_f3_game=TWINQIX; - tile_decode(machine()); + m_game=TWINQIX; + tile_decode(); } void taito_f3_state::init_arkretrn() { - m_f3_game=ARKRETRN; - tile_decode(machine()); + m_game=ARKRETRN; + tile_decode(); } void taito_f3_state::init_intcup94() { - m_f3_game=SCFINALS; - tile_decode(machine()); + m_game=SCFINALS; + tile_decode(); } void taito_f3_state::init_recalh() { - m_f3_game=RECALH; - tile_decode(machine()); + m_game=RECALH; + tile_decode(); } void taito_f3_state::init_commandw() { - m_f3_game=COMMANDW; - tile_decode(machine()); + m_game=COMMANDW; + tile_decode(); } /******************************************************************************/ diff --git a/src/mame/drivers/taito_z.cpp b/src/mame/drivers/taito_z.cpp index 6853db912ca..5ae807cf28f 100644 --- a/src/mame/drivers/taito_z.cpp +++ b/src/mame/drivers/taito_z.cpp @@ -3033,9 +3033,9 @@ static const gfx_layout tile16x8_layout = 16,8, /* 16*8 sprites */ RGN_FRAC(1,1), 4, /* 4 bits per pixel */ - { STEP4(0,8) }, - { STEP8(8*4,1), STEP8(0,1) }, - { STEP8(0,8*4*2) }, + { STEP4(0,16) }, + { STEP16(0,1) }, + { STEP8(0,16*4) }, 64*8 /* every sprite takes 64 consecutive bytes */ }; @@ -3044,51 +3044,29 @@ static const gfx_layout tile16x16_layout = 16,16, /* 16*16 sprites */ RGN_FRAC(1,1), 4, /* 4 bits per pixel */ - { STEP4(0,8) }, - { STEP8(8*4,1), STEP8(0,1) }, - { STEP16(0,8*4*2) }, + { STEP4(0,16) }, + { STEP16(0,1) }, + { STEP16(0,16*4) }, 64*16 /* every sprite takes 128 consecutive bytes */ }; -static const gfx_layout charlayout = -{ - 8,8, /* 8*8 characters */ - RGN_FRAC(1,1), - 4, /* 4 bits per pixel */ - { STEP4(0,1) }, - { STEP8(0,4) }, - { STEP8(0,4*8) }, - 32*8 /* every sprite takes 32 consecutive bytes */ -}; - -static const gfx_layout dblaxle_charlayout = -{ - 16,16, /* 16*16 characters */ - RGN_FRAC(1,1), - 4, /* 4 bits per pixel */ - { STEP4(0,1) }, - { STEP8(7*4,-4), STEP8(15*4,-4) }, - { STEP16(0,16*4) }, - 128*8 /* every sprite takes 128 consecutive bytes */ -}; - static GFXDECODE_START( gfx_taitoz ) - GFXDECODE_ENTRY( "gfx2", 0x0, tile16x8_layout, 0, 256 ) /* sprite parts */ - GFXDECODE_ENTRY( "gfx1", 0x0, charlayout, 0, 256 ) /* playfield */ + GFXDECODE_ENTRY( "sprites", 0x0, tile16x8_layout, 0, 256 ) /* sprite parts */ + GFXDECODE_ENTRY( "tc0100scn", 0x0, gfx_8x8x4_packed_msb, 0, 256 ) /* playfield */ GFXDECODE_END /* taitoic.c TC0100SCN routines expect scr stuff to be in second gfx slot, so 2nd batch of obj must be placed third */ static GFXDECODE_START( gfx_chasehq ) - GFXDECODE_ENTRY( "gfx2", 0x0, tile16x16_layout, 0, 256 ) /* sprite parts */ - GFXDECODE_ENTRY( "gfx1", 0x0, charlayout, 0, 256 ) /* playfield */ - GFXDECODE_ENTRY( "gfx4", 0x0, tile16x16_layout, 0, 256 ) /* sprite parts */ + GFXDECODE_ENTRY( "sprites", 0x0, tile16x16_layout, 0, 256 ) /* sprite parts */ + GFXDECODE_ENTRY( "tc0100scn", 0x0, gfx_8x8x4_packed_msb, 0, 256 ) /* playfield */ + GFXDECODE_ENTRY( "sprites2", 0x0, tile16x16_layout, 0, 256 ) /* sprite parts */ GFXDECODE_END static GFXDECODE_START( gfx_dblaxle ) - GFXDECODE_ENTRY( "gfx2", 0x0, tile16x8_layout, 0, 256 ) /* sprite parts */ - GFXDECODE_ENTRY( "gfx1", 0x0, dblaxle_charlayout, 0, 256 ) /* playfield */ + GFXDECODE_ENTRY( "sprites", 0x0, tile16x8_layout, 0, 256 ) /* sprite parts */ + GFXDECODE_ENTRY( "tc0480scp", 0x0, gfx_16x16x4_packed_lsb, 0, 256 ) /* playfield */ GFXDECODE_END @@ -3133,7 +3111,7 @@ void taitoz_state::device_post_load() parse_cpu_control(); } -MACHINE_START_MEMBER(taitoz_state,taitoz) +void taitoz_state::machine_start() { if (m_z80bank) { @@ -3151,10 +3129,10 @@ MACHINE_START_MEMBER(taitoz_state,taitoz) MACHINE_START_MEMBER(taitoz_state,chasehq) { m_lamps.resolve(); - MACHINE_START_CALL_MEMBER(taitoz); + machine_start(); } -MACHINE_RESET_MEMBER(taitoz_state,taitoz) +void taitoz_state::machine_reset() { m_cpua_ctrl = 0xff; m_sci_int6 = 0; @@ -3177,9 +3155,6 @@ void taitoz_state::contcirc(machine_config &config) m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::contcirc_cpub_map); m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq6_line_hold)); - MCFG_MACHINE_START_OVERRIDE(taitoz_state,taitoz) - MCFG_MACHINE_RESET_OVERRIDE(taitoz_state,taitoz) - TC0040IOC(config, m_tc0040ioc, 0); m_tc0040ioc->read_0_callback().set_ioport("DSWA"); m_tc0040ioc->read_1_callback().set_ioport("DSWB"); @@ -3248,7 +3223,6 @@ void taitoz_state::chasehq(machine_config &config) m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold)); MCFG_MACHINE_START_OVERRIDE(taitoz_state,chasehq) - MCFG_MACHINE_RESET_OVERRIDE(taitoz_state,taitoz) TC0040IOC(config, m_tc0040ioc, 0); m_tc0040ioc->read_0_callback().set_ioport("DSWA"); @@ -3317,9 +3291,6 @@ void taitoz_state::enforce(machine_config &config) m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::enforce_cpub_map); m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq6_line_hold)); - MCFG_MACHINE_START_OVERRIDE(taitoz_state,taitoz) - MCFG_MACHINE_RESET_OVERRIDE(taitoz_state,taitoz) - config.m_minimum_quantum = attotime::from_hz(600); TC0040IOC(config, m_tc0040ioc, 0); @@ -3386,9 +3357,6 @@ void taitoz_state::bshark_base(machine_config &config) m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::bshark_cpub_map); m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold)); - MCFG_MACHINE_START_OVERRIDE(taitoz_state,taitoz) - MCFG_MACHINE_RESET_OVERRIDE(taitoz_state,taitoz) - config.m_minimum_quantum = attotime::from_hz(6000); TC0220IOC(config, m_tc0220ioc, 0); @@ -3472,9 +3440,6 @@ void taitoz_state::sci(machine_config &config) m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::sci_cpub_map); m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold)); - MCFG_MACHINE_START_OVERRIDE(taitoz_state,taitoz) - MCFG_MACHINE_RESET_OVERRIDE(taitoz_state,taitoz) - config.m_minimum_quantum = attotime::from_hz(3000); TC0220IOC(config, m_tc0220ioc, 0); @@ -3543,9 +3508,6 @@ void taitoz_state::nightstr(machine_config &config) m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::nightstr_cpub_map); m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold)); - MCFG_MACHINE_START_OVERRIDE(taitoz_state,taitoz) - MCFG_MACHINE_RESET_OVERRIDE(taitoz_state,taitoz) - config.m_minimum_quantum = attotime::from_hz(6000); adc0809_device &adc(ADC0809(config, "adc", 500000)); // clock unknown @@ -3622,9 +3584,6 @@ void taitoz_state::aquajack(machine_config &config) m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::aquajack_cpub_map); m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold)); - MCFG_MACHINE_START_OVERRIDE(taitoz_state,taitoz) - MCFG_MACHINE_RESET_OVERRIDE(taitoz_state,taitoz) - config.m_minimum_quantum = attotime::from_hz(30000); TC0220IOC(config, m_tc0220ioc, 0); @@ -3691,9 +3650,6 @@ void taitoz_state::spacegun(machine_config &config) m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::spacegun_cpub_map); m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold)); - MCFG_MACHINE_START_OVERRIDE(taitoz_state,taitoz) - MCFG_MACHINE_RESET_OVERRIDE(taitoz_state,taitoz) - EEPROM_93C46_16BIT(config, m_eeprom).default_data(spacegun_default_eeprom, 128); adc0809_device &adc(ADC0809(config, "adc", 500000)); // clock unknown @@ -3764,9 +3720,6 @@ void taitoz_state::dblaxle(machine_config &config) m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::dblaxle_cpub_map); m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold)); - MCFG_MACHINE_START_OVERRIDE(taitoz_state,taitoz) - MCFG_MACHINE_RESET_OVERRIDE(taitoz_state,taitoz) - // make quantum time to be a multiple of the xtal (fixes road layer stuck on continue) config.m_minimum_quantum = attotime::from_hz(XTAL(32'000'000)/1024); @@ -3837,9 +3790,6 @@ void taitoz_state::racingb(machine_config &config) m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::racingb_cpub_map); m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold)); - MCFG_MACHINE_START_OVERRIDE(taitoz_state,taitoz) - MCFG_MACHINE_RESET_OVERRIDE(taitoz_state,taitoz) - config.m_minimum_quantum = attotime::from_hz(600); TC0510NIO(config, m_tc0510nio, 0); @@ -3914,14 +3864,14 @@ ROM_START( contcirc ) /* 3D Effects controlled via dipswitch, when on can toggle ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 sound cpu */ ROM_LOAD( "b33-30.11", 0x00000, 0x10000, CRC(d8746234) SHA1(39132eedfe2ff4e3133f8020304da0d04dd757db) ) - ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_REGION( 0x80000, "tc0100scn", 0 ) ROM_LOAD16_WORD_SWAP( "b33-02.57", 0x00000, 0x80000, CRC(f6fb3ba2) SHA1(19b7c4cf33c4737405ebe53e7342578454e6ef95) ) /* SCR 8x8 */ - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "b33-06", 0x000000, 0x080000, CRC(2cb40599) SHA1(48b269610f80a42608f563742e5266dcf11638d1) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "b33-05", 0x000001, 0x080000, CRC(bddf9eea) SHA1(284f4ba3dc107b4e26424963d8206c5ec4882983) ) - ROM_LOAD32_BYTE( "b33-04", 0x000002, 0x080000, CRC(8df866a2) SHA1(6b87d8e683fe7d31070b16620ebfee4edf7711b8) ) - ROM_LOAD32_BYTE( "b33-03", 0x000003, 0x080000, CRC(4f6c36d9) SHA1(18b15a991c3daf22b7f3f144edf3bd2abb3917eb) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "b33-06", 0x000000, 0x080000, CRC(2cb40599) SHA1(48b269610f80a42608f563742e5266dcf11638d1) ) /* OBJ 16x8 */ + ROM_LOAD64_WORD_SWAP( "b33-05", 0x000002, 0x080000, CRC(bddf9eea) SHA1(284f4ba3dc107b4e26424963d8206c5ec4882983) ) + ROM_LOAD64_WORD_SWAP( "b33-04", 0x000004, 0x080000, CRC(8df866a2) SHA1(6b87d8e683fe7d31070b16620ebfee4edf7711b8) ) + ROM_LOAD64_WORD_SWAP( "b33-03", 0x000006, 0x080000, CRC(4f6c36d9) SHA1(18b15a991c3daf22b7f3f144edf3bd2abb3917eb) ) ROM_REGION16_LE( 0x80000, "tc0150rod", 0 ) ROM_LOAD16_WORD( "b33-01.3", 0x00000, 0x80000, CRC(f11f2be8) SHA1(72ae08dc5bf5f6901fbb52d3b1dabcba90929b38) ) /* ROD, road lines */ @@ -3955,14 +3905,14 @@ ROM_START( contcircu ) /* 3D Effects controlled via dipswitch, when on can toggl ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 sound cpu */ ROM_LOAD( "b33-30.11", 0x00000, 0x10000, CRC(d8746234) SHA1(39132eedfe2ff4e3133f8020304da0d04dd757db) ) - ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_REGION( 0x80000, "tc0100scn", 0 ) ROM_LOAD16_WORD_SWAP( "b33-02.57", 0x00000, 0x80000, CRC(f6fb3ba2) SHA1(19b7c4cf33c4737405ebe53e7342578454e6ef95) ) /* SCR 8x8 */ - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "b33-06", 0x000000, 0x080000, CRC(2cb40599) SHA1(48b269610f80a42608f563742e5266dcf11638d1) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "b33-05", 0x000001, 0x080000, CRC(bddf9eea) SHA1(284f4ba3dc107b4e26424963d8206c5ec4882983) ) - ROM_LOAD32_BYTE( "b33-04", 0x000002, 0x080000, CRC(8df866a2) SHA1(6b87d8e683fe7d31070b16620ebfee4edf7711b8) ) - ROM_LOAD32_BYTE( "b33-03", 0x000003, 0x080000, CRC(4f6c36d9) SHA1(18b15a991c3daf22b7f3f144edf3bd2abb3917eb) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "b33-06", 0x000000, 0x080000, CRC(2cb40599) SHA1(48b269610f80a42608f563742e5266dcf11638d1) ) /* OBJ 16x8 */ + ROM_LOAD64_WORD_SWAP( "b33-05", 0x000002, 0x080000, CRC(bddf9eea) SHA1(284f4ba3dc107b4e26424963d8206c5ec4882983) ) + ROM_LOAD64_WORD_SWAP( "b33-04", 0x000004, 0x080000, CRC(8df866a2) SHA1(6b87d8e683fe7d31070b16620ebfee4edf7711b8) ) + ROM_LOAD64_WORD_SWAP( "b33-03", 0x000006, 0x080000, CRC(4f6c36d9) SHA1(18b15a991c3daf22b7f3f144edf3bd2abb3917eb) ) ROM_REGION16_LE( 0x80000, "tc0150rod", 0 ) ROM_LOAD16_WORD( "b33-01.3", 0x00000, 0x80000, CRC(f11f2be8) SHA1(72ae08dc5bf5f6901fbb52d3b1dabcba90929b38) ) /* ROD, road lines */ @@ -3996,14 +3946,14 @@ ROM_START( contcircua ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 sound cpu */ ROM_LOAD( "b33-30.11", 0x00000, 0x10000, CRC(d8746234) SHA1(39132eedfe2ff4e3133f8020304da0d04dd757db) ) - ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_REGION( 0x80000, "tc0100scn", 0 ) ROM_LOAD16_WORD_SWAP( "b33-02.57", 0x00000, 0x80000, CRC(f6fb3ba2) SHA1(19b7c4cf33c4737405ebe53e7342578454e6ef95) ) /* SCR 8x8 */ - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "b33-06", 0x000000, 0x080000, CRC(2cb40599) SHA1(48b269610f80a42608f563742e5266dcf11638d1) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "b33-05", 0x000001, 0x080000, CRC(bddf9eea) SHA1(284f4ba3dc107b4e26424963d8206c5ec4882983) ) - ROM_LOAD32_BYTE( "b33-04", 0x000002, 0x080000, CRC(8df866a2) SHA1(6b87d8e683fe7d31070b16620ebfee4edf7711b8) ) - ROM_LOAD32_BYTE( "b33-03", 0x000003, 0x080000, CRC(4f6c36d9) SHA1(18b15a991c3daf22b7f3f144edf3bd2abb3917eb) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "b33-06", 0x000000, 0x080000, CRC(2cb40599) SHA1(48b269610f80a42608f563742e5266dcf11638d1) ) /* OBJ 16x8 */ + ROM_LOAD64_WORD_SWAP( "b33-05", 0x000002, 0x080000, CRC(bddf9eea) SHA1(284f4ba3dc107b4e26424963d8206c5ec4882983) ) + ROM_LOAD64_WORD_SWAP( "b33-04", 0x000004, 0x080000, CRC(8df866a2) SHA1(6b87d8e683fe7d31070b16620ebfee4edf7711b8) ) + ROM_LOAD64_WORD_SWAP( "b33-03", 0x000006, 0x080000, CRC(4f6c36d9) SHA1(18b15a991c3daf22b7f3f144edf3bd2abb3917eb) ) ROM_REGION16_LE( 0x80000, "tc0150rod", 0 ) ROM_LOAD16_WORD( "b33-01.3", 0x00000, 0x80000, CRC(f11f2be8) SHA1(72ae08dc5bf5f6901fbb52d3b1dabcba90929b38) ) /* ROD, road lines */ @@ -4037,14 +3987,14 @@ ROM_START( contcircj ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 sound cpu */ ROM_LOAD( "b33-30.11", 0x00000, 0x10000, CRC(d8746234) SHA1(39132eedfe2ff4e3133f8020304da0d04dd757db) ) - ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_REGION( 0x80000, "tc0100scn", 0 ) ROM_LOAD16_WORD_SWAP( "b33-02.57", 0x00000, 0x80000, CRC(f6fb3ba2) SHA1(19b7c4cf33c4737405ebe53e7342578454e6ef95) ) /* SCR 8x8 */ - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "b33-06", 0x000000, 0x080000, CRC(2cb40599) SHA1(48b269610f80a42608f563742e5266dcf11638d1) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "b33-05", 0x000001, 0x080000, CRC(bddf9eea) SHA1(284f4ba3dc107b4e26424963d8206c5ec4882983) ) - ROM_LOAD32_BYTE( "b33-04", 0x000002, 0x080000, CRC(8df866a2) SHA1(6b87d8e683fe7d31070b16620ebfee4edf7711b8) ) - ROM_LOAD32_BYTE( "b33-03", 0x000003, 0x080000, CRC(4f6c36d9) SHA1(18b15a991c3daf22b7f3f144edf3bd2abb3917eb) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "b33-06", 0x000000, 0x080000, CRC(2cb40599) SHA1(48b269610f80a42608f563742e5266dcf11638d1) ) /* OBJ 16x8 */ + ROM_LOAD64_WORD_SWAP( "b33-05", 0x000002, 0x080000, CRC(bddf9eea) SHA1(284f4ba3dc107b4e26424963d8206c5ec4882983) ) + ROM_LOAD64_WORD_SWAP( "b33-04", 0x000004, 0x080000, CRC(8df866a2) SHA1(6b87d8e683fe7d31070b16620ebfee4edf7711b8) ) + ROM_LOAD64_WORD_SWAP( "b33-03", 0x000006, 0x080000, CRC(4f6c36d9) SHA1(18b15a991c3daf22b7f3f144edf3bd2abb3917eb) ) ROM_REGION16_LE( 0x80000, "tc0150rod", 0 ) ROM_LOAD16_WORD( "b33-01.3", 0x00000, 0x80000, CRC(f11f2be8) SHA1(72ae08dc5bf5f6901fbb52d3b1dabcba90929b38) ) /* ROD, road lines */ @@ -4083,23 +4033,23 @@ ROM_START( chasehq ) ROM_REGION( 0x8000, "motorcpu", 0 ) ROM_LOAD( "27c256.ic17", 0x0000, 0x8000, CRC(e52dfee1) SHA1(6e58e18eb2de3c899b950a4307ea21cd23683657) ) - ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_REGION( 0x80000, "tc0100scn", 0 ) ROM_LOAD16_WORD_SWAP( "b52-29.27", 0x00000, 0x80000, CRC(8366d27c) SHA1(d7c5f588b39742927228ce73e5d69bda1e903df6) ) /* SCR 8x8 */ - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "b52-34.5", 0x000000, 0x080000, CRC(7d8dce36) SHA1(ca082e647d10378144c05a70a8e4fe352d95eeaf) ) - ROM_LOAD32_BYTE( "b52-35.7", 0x000001, 0x080000, CRC(78eeec0d) SHA1(2e82186ca17c579816865ef21c52aef9e133fbf5) ) /* OBJ A 16x16 */ - ROM_LOAD32_BYTE( "b52-36.9", 0x000002, 0x080000, CRC(61e89e91) SHA1(f655b3caa37a8835c2eb11f4d72e985636ac5379) ) - ROM_LOAD32_BYTE( "b52-37.11", 0x000003, 0x080000, CRC(f02e47b9) SHA1(093864bd18bd58dafa57990e999f394ca3124452) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "b52-34.5", 0x000000, 0x080000, CRC(7d8dce36) SHA1(ca082e647d10378144c05a70a8e4fe352d95eeaf) ) + ROM_LOAD64_WORD_SWAP( "b52-35.7", 0x000002, 0x080000, CRC(78eeec0d) SHA1(2e82186ca17c579816865ef21c52aef9e133fbf5) ) /* OBJ A 16x16 */ + ROM_LOAD64_WORD_SWAP( "b52-36.9", 0x000004, 0x080000, CRC(61e89e91) SHA1(f655b3caa37a8835c2eb11f4d72e985636ac5379) ) + ROM_LOAD64_WORD_SWAP( "b52-37.11", 0x000006, 0x080000, CRC(f02e47b9) SHA1(093864bd18bd58dafa57990e999f394ca3124452) ) ROM_REGION16_LE( 0x80000, "tc0150rod", 0 ) ROM_LOAD16_WORD( "b52-28.4", 0x00000, 0x80000, CRC(963bc82b) SHA1(e3558aecd1b82ddbf10ab2b71843a3664705f1f1) ) /* ROD, road lines */ - ROM_REGION( 0x200000, "gfx4", 0 ) - ROM_LOAD32_BYTE( "b52-30.4", 0x000000, 0x080000, CRC(1b8cc647) SHA1(8807fe01b6804507564fc179adf995bf86521fda) ) - ROM_LOAD32_BYTE( "b52-31.6", 0x000001, 0x080000, CRC(f1998e20) SHA1(b03d4e373e88933391f3533b885817edfca4cfdf) ) /* OBJ B 16x16 */ - ROM_LOAD32_BYTE( "b52-32.8", 0x000002, 0x080000, CRC(8620780c) SHA1(2545fd8fb03dcddc3da86d5ea06a6dc915acd1a1) ) - ROM_LOAD32_BYTE( "b52-33.10", 0x000003, 0x080000, CRC(e6f4b8c4) SHA1(8d15c75a16953aa56fb3dc6fd3b691e227bef622) ) + ROM_REGION( 0x200000, "sprites2", 0 ) + ROM_LOAD64_WORD_SWAP( "b52-30.4", 0x000000, 0x080000, CRC(1b8cc647) SHA1(8807fe01b6804507564fc179adf995bf86521fda) ) + ROM_LOAD64_WORD_SWAP( "b52-31.6", 0x000002, 0x080000, CRC(f1998e20) SHA1(b03d4e373e88933391f3533b885817edfca4cfdf) ) /* OBJ B 16x16 */ + ROM_LOAD64_WORD_SWAP( "b52-32.8", 0x000004, 0x080000, CRC(8620780c) SHA1(2545fd8fb03dcddc3da86d5ea06a6dc915acd1a1) ) + ROM_LOAD64_WORD_SWAP( "b52-33.10", 0x000006, 0x080000, CRC(e6f4b8c4) SHA1(8d15c75a16953aa56fb3dc6fd3b691e227bef622) ) ROM_REGION16_LE( 0x80000, "spritemap", 0 ) ROM_LOAD16_WORD( "b52-38.34", 0x00000, 0x80000, CRC(5b5bf7f6) SHA1(71dd5b40b83870d351c9ecaccc4fb98c3a6740ae) ) /* STY spritemap */ @@ -4165,23 +4115,23 @@ ROM_START( chasehqj ) ROM_REGION( 0x8000, "motorcpu", 0 ) ROM_LOAD( "27c256.ic17", 0x0000, 0x8000, CRC(e52dfee1) SHA1(6e58e18eb2de3c899b950a4307ea21cd23683657) ) - ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_REGION( 0x80000, "tc0100scn", 0 ) ROM_LOAD16_WORD_SWAP( "b52-29.27", 0x00000, 0x80000, CRC(8366d27c) SHA1(d7c5f588b39742927228ce73e5d69bda1e903df6) ) /* SCR 8x8*/ - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "b52-34.5", 0x000000, 0x080000, CRC(7d8dce36) SHA1(ca082e647d10378144c05a70a8e4fe352d95eeaf) ) - ROM_LOAD32_BYTE( "b52-35.7", 0x000001, 0x080000, CRC(78eeec0d) SHA1(2e82186ca17c579816865ef21c52aef9e133fbf5) ) /* OBJ A 16x16 */ - ROM_LOAD32_BYTE( "b52-36.9", 0x000002, 0x080000, CRC(61e89e91) SHA1(f655b3caa37a8835c2eb11f4d72e985636ac5379) ) - ROM_LOAD32_BYTE( "b52-37.11", 0x000003, 0x080000, CRC(f02e47b9) SHA1(093864bd18bd58dafa57990e999f394ca3124452) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "b52-34.5", 0x000000, 0x080000, CRC(7d8dce36) SHA1(ca082e647d10378144c05a70a8e4fe352d95eeaf) ) + ROM_LOAD64_WORD_SWAP( "b52-35.7", 0x000002, 0x080000, CRC(78eeec0d) SHA1(2e82186ca17c579816865ef21c52aef9e133fbf5) ) /* OBJ A 16x16 */ + ROM_LOAD64_WORD_SWAP( "b52-36.9", 0x000004, 0x080000, CRC(61e89e91) SHA1(f655b3caa37a8835c2eb11f4d72e985636ac5379) ) + ROM_LOAD64_WORD_SWAP( "b52-37.11", 0x000006, 0x080000, CRC(f02e47b9) SHA1(093864bd18bd58dafa57990e999f394ca3124452) ) ROM_REGION16_LE( 0x80000, "tc0150rod", 0 ) ROM_LOAD16_WORD( "b52-28.4", 0x00000, 0x80000, CRC(963bc82b) SHA1(e3558aecd1b82ddbf10ab2b71843a3664705f1f1) ) /* ROD, road lines */ - ROM_REGION( 0x200000, "gfx4", 0 ) - ROM_LOAD32_BYTE( "b52-30.4", 0x000000, 0x080000, CRC(1b8cc647) SHA1(8807fe01b6804507564fc179adf995bf86521fda) ) - ROM_LOAD32_BYTE( "b52-31.6", 0x000001, 0x080000, CRC(f1998e20) SHA1(b03d4e373e88933391f3533b885817edfca4cfdf) ) /* OBJ B 16x16 */ - ROM_LOAD32_BYTE( "b52-32.8", 0x000002, 0x080000, CRC(8620780c) SHA1(2545fd8fb03dcddc3da86d5ea06a6dc915acd1a1) ) - ROM_LOAD32_BYTE( "b52-33.10", 0x000003, 0x080000, CRC(e6f4b8c4) SHA1(8d15c75a16953aa56fb3dc6fd3b691e227bef622) ) + ROM_REGION( 0x200000, "sprites2", 0 ) + ROM_LOAD64_WORD_SWAP( "b52-30.4", 0x000000, 0x080000, CRC(1b8cc647) SHA1(8807fe01b6804507564fc179adf995bf86521fda) ) + ROM_LOAD64_WORD_SWAP( "b52-31.6", 0x000002, 0x080000, CRC(f1998e20) SHA1(b03d4e373e88933391f3533b885817edfca4cfdf) ) /* OBJ B 16x16 */ + ROM_LOAD64_WORD_SWAP( "b52-32.8", 0x000004, 0x080000, CRC(8620780c) SHA1(2545fd8fb03dcddc3da86d5ea06a6dc915acd1a1) ) + ROM_LOAD64_WORD_SWAP( "b52-33.10", 0x000006, 0x080000, CRC(e6f4b8c4) SHA1(8d15c75a16953aa56fb3dc6fd3b691e227bef622) ) ROM_REGION16_LE( 0x80000, "spritemap", 0 ) ROM_LOAD16_WORD( "b52-38.34", 0x00000, 0x80000, CRC(5b5bf7f6) SHA1(71dd5b40b83870d351c9ecaccc4fb98c3a6740ae) ) /* STY spritemap */ @@ -4230,8 +4180,6 @@ ROM_START( chasehqj ) ROM_LOAD( "pal16l8b-b52-125.ic112", 0x2800, 0x0104, CRC(7628c557) SHA1(11bf628e091dc02e0c2e17ae726061ac04705a54) ) ROM_END - - ROM_START( chasehqju ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 512K for 68000 code (CPU A) */ ROM_LOAD16_BYTE( "b52-130.36", 0x00000, 0x20000, CRC(4e7beb46) SHA1(b8890c4a2121aa93cfc3a41ddbb3b840d0804cfa) ) // == b52-130.36 chasehq Chase H.Q. (World) @@ -4246,23 +4194,23 @@ ROM_START( chasehqju ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 sound cpu */ ROM_LOAD( "b52-134.51", 0x00000, 0x10000, CRC(91faac7f) SHA1(05f00e0909444566877d0ef678bae49f107e1628) ) - ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_REGION( 0x80000, "tc0100scn", 0 ) ROM_LOAD16_WORD_SWAP( "b52-29.27", 0x00000, 0x80000, CRC(8366d27c) SHA1(d7c5f588b39742927228ce73e5d69bda1e903df6) ) /* SCR 8x8*/ - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "b52-34.5", 0x000000, 0x080000, CRC(7d8dce36) SHA1(ca082e647d10378144c05a70a8e4fe352d95eeaf) ) - ROM_LOAD32_BYTE( "b52-35.7", 0x000001, 0x080000, CRC(78eeec0d) SHA1(2e82186ca17c579816865ef21c52aef9e133fbf5) ) /* OBJ A 16x16 */ - ROM_LOAD32_BYTE( "b52-36.9", 0x000002, 0x080000, CRC(61e89e91) SHA1(f655b3caa37a8835c2eb11f4d72e985636ac5379) ) - ROM_LOAD32_BYTE( "b52-37.11", 0x000003, 0x080000, CRC(f02e47b9) SHA1(093864bd18bd58dafa57990e999f394ca3124452) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "b52-34.5", 0x000000, 0x080000, CRC(7d8dce36) SHA1(ca082e647d10378144c05a70a8e4fe352d95eeaf) ) + ROM_LOAD64_WORD_SWAP( "b52-35.7", 0x000002, 0x080000, CRC(78eeec0d) SHA1(2e82186ca17c579816865ef21c52aef9e133fbf5) ) /* OBJ A 16x16 */ + ROM_LOAD64_WORD_SWAP( "b52-36.9", 0x000004, 0x080000, CRC(61e89e91) SHA1(f655b3caa37a8835c2eb11f4d72e985636ac5379) ) + ROM_LOAD64_WORD_SWAP( "b52-37.11", 0x000006, 0x080000, CRC(f02e47b9) SHA1(093864bd18bd58dafa57990e999f394ca3124452) ) ROM_REGION16_LE( 0x80000, "tc0150rod", 0 ) ROM_LOAD16_WORD( "b52-28.4", 0x00000, 0x80000, CRC(963bc82b) SHA1(e3558aecd1b82ddbf10ab2b71843a3664705f1f1) ) /* ROD, road lines */ - ROM_REGION( 0x200000, "gfx4", 0 ) - ROM_LOAD32_BYTE( "b52-30.4", 0x000000, 0x080000, CRC(1b8cc647) SHA1(8807fe01b6804507564fc179adf995bf86521fda) ) - ROM_LOAD32_BYTE( "b52-31.6", 0x000001, 0x080000, CRC(f1998e20) SHA1(b03d4e373e88933391f3533b885817edfca4cfdf) ) /* OBJ B 16x16 */ - ROM_LOAD32_BYTE( "b52-32.8", 0x000002, 0x080000, CRC(8620780c) SHA1(2545fd8fb03dcddc3da86d5ea06a6dc915acd1a1) ) - ROM_LOAD32_BYTE( "b52-33.10", 0x000003, 0x080000, CRC(e6f4b8c4) SHA1(8d15c75a16953aa56fb3dc6fd3b691e227bef622) ) + ROM_REGION( 0x200000, "sprites2", 0 ) + ROM_LOAD64_WORD_SWAP( "b52-30.4", 0x000000, 0x080000, CRC(1b8cc647) SHA1(8807fe01b6804507564fc179adf995bf86521fda) ) + ROM_LOAD64_WORD_SWAP( "b52-31.6", 0x000002, 0x080000, CRC(f1998e20) SHA1(b03d4e373e88933391f3533b885817edfca4cfdf) ) /* OBJ B 16x16 */ + ROM_LOAD64_WORD_SWAP( "b52-32.8", 0x000004, 0x080000, CRC(8620780c) SHA1(2545fd8fb03dcddc3da86d5ea06a6dc915acd1a1) ) + ROM_LOAD64_WORD_SWAP( "b52-33.10", 0x000006, 0x080000, CRC(e6f4b8c4) SHA1(8d15c75a16953aa56fb3dc6fd3b691e227bef622) ) ROM_REGION16_LE( 0x80000, "spritemap", 0 ) ROM_LOAD16_WORD( "b52-38.34", 0x00000, 0x80000, CRC(5b5bf7f6) SHA1(71dd5b40b83870d351c9ecaccc4fb98c3a6740ae) ) /* STY spritemap */ @@ -4328,23 +4276,23 @@ ROM_START( chasehqu ) ROM_REGION( 0x8000, "motorcpu", 0 ) ROM_LOAD( "27c256.ic17", 0x0000, 0x8000, CRC(e52dfee1) SHA1(6e58e18eb2de3c899b950a4307ea21cd23683657) ) - ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_REGION( 0x80000, "tc0100scn", 0 ) ROM_LOAD16_WORD_SWAP( "b52-29.27", 0x00000, 0x80000, CRC(8366d27c) SHA1(d7c5f588b39742927228ce73e5d69bda1e903df6) ) /* SCR 8x8*/ - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "b52-34.5", 0x000000, 0x080000, CRC(7d8dce36) SHA1(ca082e647d10378144c05a70a8e4fe352d95eeaf) ) - ROM_LOAD32_BYTE( "b52-35.7", 0x000001, 0x080000, CRC(78eeec0d) SHA1(2e82186ca17c579816865ef21c52aef9e133fbf5) ) /* OBJ A 16x16 */ - ROM_LOAD32_BYTE( "b52-36.9", 0x000002, 0x080000, CRC(61e89e91) SHA1(f655b3caa37a8835c2eb11f4d72e985636ac5379) ) - ROM_LOAD32_BYTE( "b52-37.11", 0x000003, 0x080000, CRC(f02e47b9) SHA1(093864bd18bd58dafa57990e999f394ca3124452) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "b52-34.5", 0x000000, 0x080000, CRC(7d8dce36) SHA1(ca082e647d10378144c05a70a8e4fe352d95eeaf) ) + ROM_LOAD64_WORD_SWAP( "b52-35.7", 0x000002, 0x080000, CRC(78eeec0d) SHA1(2e82186ca17c579816865ef21c52aef9e133fbf5) ) /* OBJ A 16x16 */ + ROM_LOAD64_WORD_SWAP( "b52-36.9", 0x000004, 0x080000, CRC(61e89e91) SHA1(f655b3caa37a8835c2eb11f4d72e985636ac5379) ) + ROM_LOAD64_WORD_SWAP( "b52-37.11", 0x000006, 0x080000, CRC(f02e47b9) SHA1(093864bd18bd58dafa57990e999f394ca3124452) ) ROM_REGION16_LE( 0x80000, "tc0150rod", 0 ) ROM_LOAD16_WORD( "b52-28.4", 0x00000, 0x80000, CRC(963bc82b) SHA1(e3558aecd1b82ddbf10ab2b71843a3664705f1f1) ) /* ROD, road lines */ - ROM_REGION( 0x200000, "gfx4", 0 ) - ROM_LOAD32_BYTE( "b52-30.4", 0x000000, 0x080000, CRC(1b8cc647) SHA1(8807fe01b6804507564fc179adf995bf86521fda) ) - ROM_LOAD32_BYTE( "b52-31.6", 0x000001, 0x080000, CRC(f1998e20) SHA1(b03d4e373e88933391f3533b885817edfca4cfdf) ) /* OBJ B 16x16 */ - ROM_LOAD32_BYTE( "b52-32.8", 0x000002, 0x080000, CRC(8620780c) SHA1(2545fd8fb03dcddc3da86d5ea06a6dc915acd1a1) ) - ROM_LOAD32_BYTE( "b52-33.10", 0x000003, 0x080000, CRC(e6f4b8c4) SHA1(8d15c75a16953aa56fb3dc6fd3b691e227bef622) ) + ROM_REGION( 0x200000, "sprites2", 0 ) + ROM_LOAD64_WORD_SWAP( "b52-30.4", 0x000000, 0x080000, CRC(1b8cc647) SHA1(8807fe01b6804507564fc179adf995bf86521fda) ) + ROM_LOAD64_WORD_SWAP( "b52-31.6", 0x000002, 0x080000, CRC(f1998e20) SHA1(b03d4e373e88933391f3533b885817edfca4cfdf) ) /* OBJ B 16x16 */ + ROM_LOAD64_WORD_SWAP( "b52-32.8", 0x000004, 0x080000, CRC(8620780c) SHA1(2545fd8fb03dcddc3da86d5ea06a6dc915acd1a1) ) + ROM_LOAD64_WORD_SWAP( "b52-33.10", 0x000006, 0x080000, CRC(e6f4b8c4) SHA1(8d15c75a16953aa56fb3dc6fd3b691e227bef622) ) ROM_REGION16_LE( 0x80000, "spritemap", 0 ) ROM_LOAD16_WORD( "b52-38.34", 0x00000, 0x80000, CRC(5b5bf7f6) SHA1(71dd5b40b83870d351c9ecaccc4fb98c3a6740ae) ) /* STY spritemap */ @@ -4405,14 +4353,14 @@ ROM_START( enforce ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 sound cpu */ ROM_LOAD( "b58-32.41", 0x00000, 0x10000, CRC(f3fd8eca) SHA1(3b1ab64984ea43805b6494f8add26210ed1175c5) ) - ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_REGION( 0x80000, "tc0100scn", 0 ) ROM_LOAD16_WORD_SWAP( "b58-09.13", 0x00000, 0x80000, CRC(9ffd5b31) SHA1(0214fb32012a48560ca9c6ed5ee969d3c41cf95c) ) /* SCR 8x8 */ - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "b58-04.7", 0x000000, 0x080000, CRC(9482f08d) SHA1(3fc74b9bebca1d82b300ba72c7297c3bcd69cfa9) ) - ROM_LOAD32_BYTE( "b58-03.6", 0x000001, 0x080000, CRC(158bc440) SHA1(ceab296146363a2e9a48f62118fba6123b4b5a1b) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "b58-02.2", 0x000002, 0x080000, CRC(6a6e307c) SHA1(fc4a68220e0dd0e64d75ba7c7af0c1ac97dc7fd9) ) - ROM_LOAD32_BYTE( "b58-01.1", 0x000003, 0x080000, CRC(01e9f0a8) SHA1(0d3a4dc81702e3c57c790eb8a45caca36cb47d4c) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "b58-04.7", 0x000000, 0x080000, CRC(9482f08d) SHA1(3fc74b9bebca1d82b300ba72c7297c3bcd69cfa9) ) + ROM_LOAD64_WORD_SWAP( "b58-03.6", 0x000002, 0x080000, CRC(158bc440) SHA1(ceab296146363a2e9a48f62118fba6123b4b5a1b) ) /* OBJ 16x8 */ + ROM_LOAD64_WORD_SWAP( "b58-02.2", 0x000004, 0x080000, CRC(6a6e307c) SHA1(fc4a68220e0dd0e64d75ba7c7af0c1ac97dc7fd9) ) + ROM_LOAD64_WORD_SWAP( "b58-01.1", 0x000006, 0x080000, CRC(01e9f0a8) SHA1(0d3a4dc81702e3c57c790eb8a45caca36cb47d4c) ) ROM_REGION16_LE( 0x80000, "tc0150rod", 0 ) ROM_LOAD16_WORD( "b58-06.116", 0x00000, 0x80000, CRC(b3495d70) SHA1(ead4c2fd20b8f103a849201c7344cded013eb8bb) ) /* ROD, road lines */ @@ -4448,14 +4396,14 @@ ROM_START( enforcej ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 sound cpu */ ROM_LOAD( "b58-32.41", 0x00000, 0x10000, CRC(f3fd8eca) SHA1(3b1ab64984ea43805b6494f8add26210ed1175c5) ) - ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_REGION( 0x80000, "tc0100scn", 0 ) ROM_LOAD16_WORD_SWAP( "b58-09.13", 0x00000, 0x80000, CRC(9ffd5b31) SHA1(0214fb32012a48560ca9c6ed5ee969d3c41cf95c) ) /* SCR 8x8 */ - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "b58-04.7", 0x000000, 0x080000, CRC(9482f08d) SHA1(3fc74b9bebca1d82b300ba72c7297c3bcd69cfa9) ) - ROM_LOAD32_BYTE( "b58-03.6", 0x000001, 0x080000, CRC(158bc440) SHA1(ceab296146363a2e9a48f62118fba6123b4b5a1b) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "b58-02.2", 0x000002, 0x080000, CRC(6a6e307c) SHA1(fc4a68220e0dd0e64d75ba7c7af0c1ac97dc7fd9) ) - ROM_LOAD32_BYTE( "b58-01.1", 0x000003, 0x080000, CRC(01e9f0a8) SHA1(0d3a4dc81702e3c57c790eb8a45caca36cb47d4c) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "b58-04.7", 0x000000, 0x080000, CRC(9482f08d) SHA1(3fc74b9bebca1d82b300ba72c7297c3bcd69cfa9) ) + ROM_LOAD64_WORD_SWAP( "b58-03.6", 0x000002, 0x080000, CRC(158bc440) SHA1(ceab296146363a2e9a48f62118fba6123b4b5a1b) ) /* OBJ 16x8 */ + ROM_LOAD64_WORD_SWAP( "b58-02.2", 0x000004, 0x080000, CRC(6a6e307c) SHA1(fc4a68220e0dd0e64d75ba7c7af0c1ac97dc7fd9) ) + ROM_LOAD64_WORD_SWAP( "b58-01.1", 0x000006, 0x080000, CRC(01e9f0a8) SHA1(0d3a4dc81702e3c57c790eb8a45caca36cb47d4c) ) ROM_REGION16_LE( 0x80000, "tc0150rod", 0 ) ROM_LOAD16_WORD( "b58-06.116", 0x00000, 0x80000, CRC(b3495d70) SHA1(ead4c2fd20b8f103a849201c7344cded013eb8bb) ) /* ROD, road lines */ @@ -4491,14 +4439,14 @@ ROM_START( enforceja ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 sound cpu */ ROM_LOAD( "b58-32.41", 0x00000, 0x10000, CRC(f3fd8eca) SHA1(3b1ab64984ea43805b6494f8add26210ed1175c5) ) - ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_REGION( 0x80000, "tc0100scn", 0 ) ROM_LOAD16_WORD_SWAP( "b58-09.13", 0x00000, 0x80000, CRC(9ffd5b31) SHA1(0214fb32012a48560ca9c6ed5ee969d3c41cf95c) ) /* SCR 8x8 */ - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "b58-04.7", 0x000000, 0x080000, CRC(9482f08d) SHA1(3fc74b9bebca1d82b300ba72c7297c3bcd69cfa9) ) - ROM_LOAD32_BYTE( "b58-03.6", 0x000001, 0x080000, CRC(158bc440) SHA1(ceab296146363a2e9a48f62118fba6123b4b5a1b) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "b58-02.2", 0x000002, 0x080000, CRC(6a6e307c) SHA1(fc4a68220e0dd0e64d75ba7c7af0c1ac97dc7fd9) ) - ROM_LOAD32_BYTE( "b58-01.1", 0x000003, 0x080000, CRC(01e9f0a8) SHA1(0d3a4dc81702e3c57c790eb8a45caca36cb47d4c) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "b58-04.7", 0x000000, 0x080000, CRC(9482f08d) SHA1(3fc74b9bebca1d82b300ba72c7297c3bcd69cfa9) ) + ROM_LOAD64_WORD_SWAP( "b58-03.6", 0x000002, 0x080000, CRC(158bc440) SHA1(ceab296146363a2e9a48f62118fba6123b4b5a1b) ) /* OBJ 16x8 */ + ROM_LOAD64_WORD_SWAP( "b58-02.2", 0x000004, 0x080000, CRC(6a6e307c) SHA1(fc4a68220e0dd0e64d75ba7c7af0c1ac97dc7fd9) ) + ROM_LOAD64_WORD_SWAP( "b58-01.1", 0x000006, 0x080000, CRC(01e9f0a8) SHA1(0d3a4dc81702e3c57c790eb8a45caca36cb47d4c) ) ROM_REGION16_LE( 0x80000, "tc0150rod", 0 ) ROM_LOAD16_WORD( "b58-06.116", 0x00000, 0x80000, CRC(b3495d70) SHA1(ead4c2fd20b8f103a849201c7344cded013eb8bb) ) /* ROD, road lines */ @@ -4535,14 +4483,14 @@ ROM_START( bshark ) ROM_LOAD16_BYTE( "c34_75.129", 0x40000, 0x20000, CRC(6ba65542) SHA1(9ba5af9dd240a198dfa760ca14b0f0c84eb307c9) ) ROM_LOAD16_BYTE( "c34_73.113", 0x40001, 0x20000, CRC(f2fe62b5) SHA1(e31b5989b747de451ee6c2a5e15ec75235d84e0d) ) - ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_REGION( 0x80000, "tc0100scn", 0 ) ROM_LOAD16_WORD_SWAP( "c34_05.3", 0x00000, 0x80000, CRC(596b83da) SHA1(826cf1e48a017a0cbfcc4a4f507dfb285594178b) ) /* SCR 8x8 */ - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "c34_04.17", 0x000000, 0x080000, CRC(2446b0da) SHA1(bce5c73533e2bb7dfa7f18fad510f818cf1a542a) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "c34_03.16", 0x000001, 0x080000, CRC(a18eab78) SHA1(155f0efbfe73e18355804477d4b8954bb47bf1ef) ) - ROM_LOAD32_BYTE( "c34_02.15", 0x000002, 0x080000, CRC(8488ba10) SHA1(60f8f0dc9d4bc6bc452527250221c9915e9dfe6e) ) - ROM_LOAD32_BYTE( "c34_01.14", 0x000003, 0x080000, CRC(3ebe8c63) SHA1(fa7403bf895c041cb64234209c944683ae372e57) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "c34_04.17", 0x000000, 0x080000, CRC(2446b0da) SHA1(bce5c73533e2bb7dfa7f18fad510f818cf1a542a) ) /* OBJ 16x8 */ + ROM_LOAD64_WORD_SWAP( "c34_03.16", 0x000002, 0x080000, CRC(a18eab78) SHA1(155f0efbfe73e18355804477d4b8954bb47bf1ef) ) + ROM_LOAD64_WORD_SWAP( "c34_02.15", 0x000004, 0x080000, CRC(8488ba10) SHA1(60f8f0dc9d4bc6bc452527250221c9915e9dfe6e) ) + ROM_LOAD64_WORD_SWAP( "c34_01.14", 0x000006, 0x080000, CRC(3ebe8c63) SHA1(fa7403bf895c041cb64234209c944683ae372e57) ) ROM_REGION16_LE( 0x80000, "tc0150rod", 0 ) ROM_LOAD16_WORD( "c34_07.42", 0x00000, 0x80000, CRC(edb07808) SHA1(f32b4b93e9125536376d96fbca76c2b2f5f78656) ) /* ROD, road lines */ @@ -4577,14 +4525,14 @@ ROM_START( bsharku ) ROM_LOAD16_BYTE( "c34_75.129", 0x40000, 0x20000, CRC(6ba65542) SHA1(9ba5af9dd240a198dfa760ca14b0f0c84eb307c9) ) ROM_LOAD16_BYTE( "c34_73.113", 0x40001, 0x20000, CRC(f2fe62b5) SHA1(e31b5989b747de451ee6c2a5e15ec75235d84e0d) ) - ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_REGION( 0x80000, "tc0100scn", 0 ) ROM_LOAD16_WORD_SWAP( "c34_05.3", 0x00000, 0x80000, CRC(596b83da) SHA1(826cf1e48a017a0cbfcc4a4f507dfb285594178b) ) /* SCR 8x8 */ - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "c34_04.17", 0x000000, 0x080000, CRC(2446b0da) SHA1(bce5c73533e2bb7dfa7f18fad510f818cf1a542a) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "c34_03.16", 0x000001, 0x080000, CRC(a18eab78) SHA1(155f0efbfe73e18355804477d4b8954bb47bf1ef) ) - ROM_LOAD32_BYTE( "c34_02.15", 0x000002, 0x080000, CRC(8488ba10) SHA1(60f8f0dc9d4bc6bc452527250221c9915e9dfe6e) ) - ROM_LOAD32_BYTE( "c34_01.14", 0x000003, 0x080000, CRC(3ebe8c63) SHA1(fa7403bf895c041cb64234209c944683ae372e57) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "c34_04.17", 0x000000, 0x080000, CRC(2446b0da) SHA1(bce5c73533e2bb7dfa7f18fad510f818cf1a542a) ) /* OBJ 16x8 */ + ROM_LOAD64_WORD_SWAP( "c34_03.16", 0x000002, 0x080000, CRC(a18eab78) SHA1(155f0efbfe73e18355804477d4b8954bb47bf1ef) ) + ROM_LOAD64_WORD_SWAP( "c34_02.15", 0x000004, 0x080000, CRC(8488ba10) SHA1(60f8f0dc9d4bc6bc452527250221c9915e9dfe6e) ) + ROM_LOAD64_WORD_SWAP( "c34_01.14", 0x000006, 0x080000, CRC(3ebe8c63) SHA1(fa7403bf895c041cb64234209c944683ae372e57) ) ROM_REGION16_LE( 0x80000, "tc0150rod", 0 ) ROM_LOAD16_WORD( "c34_07.42", 0x00000, 0x80000, CRC(edb07808) SHA1(f32b4b93e9125536376d96fbca76c2b2f5f78656) ) /* ROD, road lines */ @@ -4619,14 +4567,14 @@ ROM_START( bsharkj ) ROM_LOAD16_BYTE( "c34_75.129", 0x40000, 0x20000, CRC(6ba65542) SHA1(9ba5af9dd240a198dfa760ca14b0f0c84eb307c9) ) ROM_LOAD16_BYTE( "c34_73.113", 0x40001, 0x20000, CRC(f2fe62b5) SHA1(e31b5989b747de451ee6c2a5e15ec75235d84e0d) ) - ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_REGION( 0x80000, "tc0100scn", 0 ) ROM_LOAD16_WORD_SWAP( "c34_05.3", 0x00000, 0x80000, CRC(596b83da) SHA1(826cf1e48a017a0cbfcc4a4f507dfb285594178b) ) /* SCR 8x8 */ - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "c34_04.17", 0x000000, 0x080000, CRC(2446b0da) SHA1(bce5c73533e2bb7dfa7f18fad510f818cf1a542a) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "c34_03.16", 0x000001, 0x080000, CRC(a18eab78) SHA1(155f0efbfe73e18355804477d4b8954bb47bf1ef) ) - ROM_LOAD32_BYTE( "c34_02.15", 0x000002, 0x080000, CRC(8488ba10) SHA1(60f8f0dc9d4bc6bc452527250221c9915e9dfe6e) ) - ROM_LOAD32_BYTE( "c34_01.14", 0x000003, 0x080000, CRC(3ebe8c63) SHA1(fa7403bf895c041cb64234209c944683ae372e57) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "c34_04.17", 0x000000, 0x080000, CRC(2446b0da) SHA1(bce5c73533e2bb7dfa7f18fad510f818cf1a542a) ) /* OBJ 16x8 */ + ROM_LOAD64_WORD_SWAP( "c34_03.16", 0x000002, 0x080000, CRC(a18eab78) SHA1(155f0efbfe73e18355804477d4b8954bb47bf1ef) ) + ROM_LOAD64_WORD_SWAP( "c34_02.15", 0x000004, 0x080000, CRC(8488ba10) SHA1(60f8f0dc9d4bc6bc452527250221c9915e9dfe6e) ) + ROM_LOAD64_WORD_SWAP( "c34_01.14", 0x000006, 0x080000, CRC(3ebe8c63) SHA1(fa7403bf895c041cb64234209c944683ae372e57) ) ROM_REGION16_LE( 0x80000, "tc0150rod", 0 ) ROM_LOAD16_WORD( "c34_07.42", 0x00000, 0x80000, CRC(edb07808) SHA1(f32b4b93e9125536376d96fbca76c2b2f5f78656) ) /* ROD, road lines */ @@ -4661,14 +4609,14 @@ ROM_START( bsharkjjs ) ROM_LOAD16_BYTE( "c34_83.129", 0x40000, 0x20000, CRC(eec0b364) SHA1(17010b19570ee65020ae09e5734b48a763a12e3f) ) ROM_LOAD16_BYTE( "c34_81.113", 0x40001, 0x20000, CRC(23ce6bcf) SHA1(b084209f809793d8f0f11ddabee217ba1abd6038) ) - ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_REGION( 0x80000, "tc0100scn", 0 ) ROM_LOAD16_WORD_SWAP( "c34_05.3", 0x00000, 0x80000, CRC(596b83da) SHA1(826cf1e48a017a0cbfcc4a4f507dfb285594178b) ) /* SCR 8x8 */ - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "c34_04.17", 0x000000, 0x080000, CRC(2446b0da) SHA1(bce5c73533e2bb7dfa7f18fad510f818cf1a542a) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "c34_03.16", 0x000001, 0x080000, CRC(a18eab78) SHA1(155f0efbfe73e18355804477d4b8954bb47bf1ef) ) - ROM_LOAD32_BYTE( "c34_02.15", 0x000002, 0x080000, CRC(8488ba10) SHA1(60f8f0dc9d4bc6bc452527250221c9915e9dfe6e) ) - ROM_LOAD32_BYTE( "c34_01.14", 0x000003, 0x080000, CRC(3ebe8c63) SHA1(fa7403bf895c041cb64234209c944683ae372e57) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "c34_04.17", 0x000000, 0x080000, CRC(2446b0da) SHA1(bce5c73533e2bb7dfa7f18fad510f818cf1a542a) ) /* OBJ 16x8 */ + ROM_LOAD64_WORD_SWAP( "c34_03.16", 0x000002, 0x080000, CRC(a18eab78) SHA1(155f0efbfe73e18355804477d4b8954bb47bf1ef) ) + ROM_LOAD64_WORD_SWAP( "c34_02.15", 0x000004, 0x080000, CRC(8488ba10) SHA1(60f8f0dc9d4bc6bc452527250221c9915e9dfe6e) ) + ROM_LOAD64_WORD_SWAP( "c34_01.14", 0x000006, 0x080000, CRC(3ebe8c63) SHA1(fa7403bf895c041cb64234209c944683ae372e57) ) ROM_REGION16_LE( 0x80000, "tc0150rod", 0 ) ROM_LOAD16_WORD( "c34_07.42", 0x00000, 0x80000, CRC(edb07808) SHA1(f32b4b93e9125536376d96fbca76c2b2f5f78656) ) /* ROD, road lines */ @@ -4704,14 +4652,14 @@ ROM_START( sci ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* Z80 sound cpu */ ROM_LOAD( "c09-34.31", 0x00000, 0x20000, CRC(a21b3151) SHA1(f59c7b1ba5edf97d72670ee194ce9fdc5c5b9a58) ) - ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_REGION( 0x80000, "tc0100scn", 0 ) ROM_LOAD16_WORD_SWAP( "c09-05.16", 0x00000, 0x80000, CRC(890b38f0) SHA1(b478c96214ce027926346a4653250c8ee8a98bdc) ) /* SCR 8x8 */ - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "c09-04.52", 0x000000, 0x080000, CRC(2cbb3c9b) SHA1(9e3d95f76f5f5d385b6a9516af781aefef1eb0ca) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "c09-02.53", 0x000001, 0x080000, CRC(a83a0389) SHA1(932788b5b5f01326d0fbb2b9fdb94a8c7c004db3) ) - ROM_LOAD32_BYTE( "c09-03.54", 0x000002, 0x080000, CRC(a31d0e80) SHA1(dfeff1b89dd7b3f19b26e77f2d66f6448cb00553) ) - ROM_LOAD32_BYTE( "c09-01.55", 0x000003, 0x080000, CRC(64bfea10) SHA1(15ea43092027b1717d0f24fbe6ac2cdf11a7ddc6) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "c09-04.52", 0x000000, 0x080000, CRC(2cbb3c9b) SHA1(9e3d95f76f5f5d385b6a9516af781aefef1eb0ca) ) /* OBJ 16x8 */ + ROM_LOAD64_WORD_SWAP( "c09-02.53", 0x000002, 0x080000, CRC(a83a0389) SHA1(932788b5b5f01326d0fbb2b9fdb94a8c7c004db3) ) + ROM_LOAD64_WORD_SWAP( "c09-03.54", 0x000004, 0x080000, CRC(a31d0e80) SHA1(dfeff1b89dd7b3f19b26e77f2d66f6448cb00553) ) + ROM_LOAD64_WORD_SWAP( "c09-01.55", 0x000006, 0x080000, CRC(64bfea10) SHA1(15ea43092027b1717d0f24fbe6ac2cdf11a7ddc6) ) ROM_REGION16_LE( 0x80000, "tc0150rod", 0 ) ROM_LOAD16_WORD( "c09-07.15", 0x00000, 0x80000, CRC(963bc82b) SHA1(e3558aecd1b82ddbf10ab2b71843a3664705f1f1) ) /* ROD, road lines */ @@ -4752,14 +4700,14 @@ ROM_START( scia ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* Z80 sound cpu */ ROM_LOAD( "c09-34.31", 0x00000, 0x20000, CRC(a21b3151) SHA1(f59c7b1ba5edf97d72670ee194ce9fdc5c5b9a58) ) - ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_REGION( 0x80000, "tc0100scn", 0 ) ROM_LOAD16_WORD_SWAP( "c09-05.16", 0x00000, 0x80000, CRC(890b38f0) SHA1(b478c96214ce027926346a4653250c8ee8a98bdc) ) /* SCR 8x8 */ - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "c09-04.52", 0x000000, 0x080000, CRC(2cbb3c9b) SHA1(9e3d95f76f5f5d385b6a9516af781aefef1eb0ca) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "c09-02.53", 0x000001, 0x080000, CRC(a83a0389) SHA1(932788b5b5f01326d0fbb2b9fdb94a8c7c004db3) ) - ROM_LOAD32_BYTE( "c09-03.54", 0x000002, 0x080000, CRC(a31d0e80) SHA1(dfeff1b89dd7b3f19b26e77f2d66f6448cb00553) ) - ROM_LOAD32_BYTE( "c09-01.55", 0x000003, 0x080000, CRC(64bfea10) SHA1(15ea43092027b1717d0f24fbe6ac2cdf11a7ddc6) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "c09-04.52", 0x000000, 0x080000, CRC(2cbb3c9b) SHA1(9e3d95f76f5f5d385b6a9516af781aefef1eb0ca) ) /* OBJ 16x8 */ + ROM_LOAD64_WORD_SWAP( "c09-02.53", 0x000002, 0x080000, CRC(a83a0389) SHA1(932788b5b5f01326d0fbb2b9fdb94a8c7c004db3) ) + ROM_LOAD64_WORD_SWAP( "c09-03.54", 0x000004, 0x080000, CRC(a31d0e80) SHA1(dfeff1b89dd7b3f19b26e77f2d66f6448cb00553) ) + ROM_LOAD64_WORD_SWAP( "c09-01.55", 0x000006, 0x080000, CRC(64bfea10) SHA1(15ea43092027b1717d0f24fbe6ac2cdf11a7ddc6) ) ROM_REGION16_LE( 0x80000, "tc0150rod", 0 ) ROM_LOAD16_WORD( "c09-07.15", 0x00000, 0x80000, CRC(963bc82b) SHA1(e3558aecd1b82ddbf10ab2b71843a3664705f1f1) ) /* ROD, road lines */ @@ -4795,14 +4743,14 @@ ROM_START( scij ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* Z80 sound cpu */ ROM_LOAD( "c09-27.31", 0x00000, 0x20000, CRC(cd161dca) SHA1(2e0632f290f8efae5e479c67ca8808a90e0f4afd) ) - ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_REGION( 0x80000, "tc0100scn", 0 ) ROM_LOAD16_WORD_SWAP( "c09-05.16", 0x00000, 0x80000, CRC(890b38f0) SHA1(b478c96214ce027926346a4653250c8ee8a98bdc) ) /* SCR 8x8 */ - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "c09-04.52", 0x000000, 0x080000, CRC(2cbb3c9b) SHA1(9e3d95f76f5f5d385b6a9516af781aefef1eb0ca) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "c09-02.53", 0x000001, 0x080000, CRC(a83a0389) SHA1(932788b5b5f01326d0fbb2b9fdb94a8c7c004db3) ) - ROM_LOAD32_BYTE( "c09-03.54", 0x000002, 0x080000, CRC(a31d0e80) SHA1(dfeff1b89dd7b3f19b26e77f2d66f6448cb00553) ) - ROM_LOAD32_BYTE( "c09-01.55", 0x000003, 0x080000, CRC(64bfea10) SHA1(15ea43092027b1717d0f24fbe6ac2cdf11a7ddc6) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "c09-04.52", 0x000000, 0x080000, CRC(2cbb3c9b) SHA1(9e3d95f76f5f5d385b6a9516af781aefef1eb0ca) ) /* OBJ 16x8 */ + ROM_LOAD64_WORD_SWAP( "c09-02.53", 0x000002, 0x080000, CRC(a83a0389) SHA1(932788b5b5f01326d0fbb2b9fdb94a8c7c004db3) ) + ROM_LOAD64_WORD_SWAP( "c09-03.54", 0x000004, 0x080000, CRC(a31d0e80) SHA1(dfeff1b89dd7b3f19b26e77f2d66f6448cb00553) ) + ROM_LOAD64_WORD_SWAP( "c09-01.55", 0x000006, 0x080000, CRC(64bfea10) SHA1(15ea43092027b1717d0f24fbe6ac2cdf11a7ddc6) ) ROM_REGION16_LE( 0x80000, "tc0150rod", 0 ) ROM_LOAD16_WORD( "c09-07.15", 0x00000, 0x80000, CRC(963bc82b) SHA1(e3558aecd1b82ddbf10ab2b71843a3664705f1f1) ) /* ROD, road lines */ @@ -4838,14 +4786,14 @@ ROM_START( sciu ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* Z80 sound cpu */ ROM_LOAD( "c09-34.31", 0x00000, 0x20000, CRC(a21b3151) SHA1(f59c7b1ba5edf97d72670ee194ce9fdc5c5b9a58) ) - ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_REGION( 0x80000, "tc0100scn", 0 ) ROM_LOAD16_WORD_SWAP( "c09-05.16", 0x00000, 0x80000, CRC(890b38f0) SHA1(b478c96214ce027926346a4653250c8ee8a98bdc) ) /* SCR 8x8 */ - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "c09-04.52", 0x000000, 0x080000, CRC(2cbb3c9b) SHA1(9e3d95f76f5f5d385b6a9516af781aefef1eb0ca) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "c09-02.53", 0x000001, 0x080000, CRC(a83a0389) SHA1(932788b5b5f01326d0fbb2b9fdb94a8c7c004db3) ) - ROM_LOAD32_BYTE( "c09-03.54", 0x000002, 0x080000, CRC(a31d0e80) SHA1(dfeff1b89dd7b3f19b26e77f2d66f6448cb00553) ) - ROM_LOAD32_BYTE( "c09-01.55", 0x000003, 0x080000, CRC(64bfea10) SHA1(15ea43092027b1717d0f24fbe6ac2cdf11a7ddc6) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "c09-04.52", 0x000000, 0x080000, CRC(2cbb3c9b) SHA1(9e3d95f76f5f5d385b6a9516af781aefef1eb0ca) ) /* OBJ 16x8 */ + ROM_LOAD64_WORD_SWAP( "c09-02.53", 0x000002, 0x080000, CRC(a83a0389) SHA1(932788b5b5f01326d0fbb2b9fdb94a8c7c004db3) ) + ROM_LOAD64_WORD_SWAP( "c09-03.54", 0x000004, 0x080000, CRC(a31d0e80) SHA1(dfeff1b89dd7b3f19b26e77f2d66f6448cb00553) ) + ROM_LOAD64_WORD_SWAP( "c09-01.55", 0x000006, 0x080000, CRC(64bfea10) SHA1(15ea43092027b1717d0f24fbe6ac2cdf11a7ddc6) ) ROM_REGION16_LE( 0x80000, "tc0150rod", 0 ) ROM_LOAD16_WORD( "c09-07.15", 0x00000, 0x80000, CRC(963bc82b) SHA1(e3558aecd1b82ddbf10ab2b71843a3664705f1f1) ) /* ROD, road lines */ @@ -4881,14 +4829,14 @@ ROM_START( scin ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* Z80 sound cpu */ ROM_LOAD( "c09-34.31", 0x00000, 0x20000, CRC(a21b3151) SHA1(f59c7b1ba5edf97d72670ee194ce9fdc5c5b9a58) ) - ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_REGION( 0x80000, "tc0100scn", 0 ) ROM_LOAD16_WORD_SWAP( "c09-05.16", 0x00000, 0x80000, CRC(890b38f0) SHA1(b478c96214ce027926346a4653250c8ee8a98bdc) ) /* SCR 8x8 */ - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "c09-04.52", 0x000000, 0x080000, CRC(2cbb3c9b) SHA1(9e3d95f76f5f5d385b6a9516af781aefef1eb0ca) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "c09-02.53", 0x000001, 0x080000, CRC(a83a0389) SHA1(932788b5b5f01326d0fbb2b9fdb94a8c7c004db3) ) - ROM_LOAD32_BYTE( "c09-03.54", 0x000002, 0x080000, CRC(a31d0e80) SHA1(dfeff1b89dd7b3f19b26e77f2d66f6448cb00553) ) - ROM_LOAD32_BYTE( "c09-01.55", 0x000003, 0x080000, CRC(64bfea10) SHA1(15ea43092027b1717d0f24fbe6ac2cdf11a7ddc6) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "c09-04.52", 0x000000, 0x080000, CRC(2cbb3c9b) SHA1(9e3d95f76f5f5d385b6a9516af781aefef1eb0ca) ) /* OBJ 16x8 */ + ROM_LOAD64_WORD_SWAP( "c09-02.53", 0x000002, 0x080000, CRC(a83a0389) SHA1(932788b5b5f01326d0fbb2b9fdb94a8c7c004db3) ) + ROM_LOAD64_WORD_SWAP( "c09-03.54", 0x000004, 0x080000, CRC(a31d0e80) SHA1(dfeff1b89dd7b3f19b26e77f2d66f6448cb00553) ) + ROM_LOAD64_WORD_SWAP( "c09-01.55", 0x000006, 0x080000, CRC(64bfea10) SHA1(15ea43092027b1717d0f24fbe6ac2cdf11a7ddc6) ) ROM_REGION16_LE( 0x80000, "tc0150rod", 0 ) ROM_LOAD16_WORD( "c09-07.15", 0x00000, 0x80000, CRC(963bc82b) SHA1(e3558aecd1b82ddbf10ab2b71843a3664705f1f1) ) /* ROD, road lines */ @@ -4925,23 +4873,23 @@ ROM_START( nightstr ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* Z80 sound cpu */ ROM_LOAD( "b91-41.bin", 0x00000, 0x20000, CRC(2694bb42) SHA1(ee770472655ac0ef55eeff04037457dbf6744e4f) ) - ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_REGION( 0x80000, "tc0100scn", 0 ) ROM_LOAD16_WORD_SWAP( "b91-11.bin", 0x00000, 0x80000, CRC(fff8ce31) SHA1(fc729de92937a805d79379228d7a30041594c0df) ) /* SCR 8x8 */ - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "b91-04.bin", 0x000000, 0x080000, CRC(8ca1970d) SHA1(d8504298a38a95f1d8f3a2fba479ec75fe4d5de7) ) /* OBJ A 16x16 */ - ROM_LOAD32_BYTE( "b91-03.bin", 0x000001, 0x080000, CRC(cd5fed39) SHA1(c16c67cc998889288e6e96535fd8e61afc93bc78) ) - ROM_LOAD32_BYTE( "b91-02.bin", 0x000002, 0x080000, CRC(457c64b8) SHA1(443f13d56d53ca6a7750ec974da675bad3f34a38) ) - ROM_LOAD32_BYTE( "b91-01.bin", 0x000003, 0x080000, CRC(3731d94f) SHA1(2978d3eb1f44595681e84f3aa8dc03d34a191455) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "b91-04.bin", 0x000000, 0x080000, CRC(8ca1970d) SHA1(d8504298a38a95f1d8f3a2fba479ec75fe4d5de7) ) /* OBJ A 16x16 */ + ROM_LOAD64_WORD_SWAP( "b91-03.bin", 0x000002, 0x080000, CRC(cd5fed39) SHA1(c16c67cc998889288e6e96535fd8e61afc93bc78) ) + ROM_LOAD64_WORD_SWAP( "b91-02.bin", 0x000004, 0x080000, CRC(457c64b8) SHA1(443f13d56d53ca6a7750ec974da675bad3f34a38) ) + ROM_LOAD64_WORD_SWAP( "b91-01.bin", 0x000006, 0x080000, CRC(3731d94f) SHA1(2978d3eb1f44595681e84f3aa8dc03d34a191455) ) ROM_REGION16_LE( 0x80000, "tc0150rod", 0 ) ROM_LOAD16_WORD( "b91-10.bin", 0x00000, 0x80000, CRC(1d8f05b4) SHA1(04caa6a0887b90860c426a973dc3c3270e996818) ) /* ROD, road lines */ - ROM_REGION( 0x200000, "gfx4", 0 ) - ROM_LOAD32_BYTE( "b91-08.bin", 0x000000, 0x080000, CRC(66f35c34) SHA1(9040390fa9c626a54076a9461e0e198f059e2cb1) ) /* OBJ B 16x16 */ - ROM_LOAD32_BYTE( "b91-07.bin", 0x000001, 0x080000, CRC(4d8ec6cf) SHA1(2b7c10b459dc45313c4c90899a73c42c55b6c5c9) ) - ROM_LOAD32_BYTE( "b91-06.bin", 0x000002, 0x080000, CRC(a34dc839) SHA1(e1fcb763dbc562a62e862297458bde66d691606c) ) - ROM_LOAD32_BYTE( "b91-05.bin", 0x000003, 0x080000, CRC(5e72ac90) SHA1(c28c2718e873be5a254992ef8db256a394ca03ff) ) + ROM_REGION( 0x200000, "sprites2", 0 ) + ROM_LOAD64_WORD_SWAP( "b91-08.bin", 0x000000, 0x080000, CRC(66f35c34) SHA1(9040390fa9c626a54076a9461e0e198f059e2cb1) ) /* OBJ B 16x16 */ + ROM_LOAD64_WORD_SWAP( "b91-07.bin", 0x000002, 0x080000, CRC(4d8ec6cf) SHA1(2b7c10b459dc45313c4c90899a73c42c55b6c5c9) ) + ROM_LOAD64_WORD_SWAP( "b91-06.bin", 0x000004, 0x080000, CRC(a34dc839) SHA1(e1fcb763dbc562a62e862297458bde66d691606c) ) + ROM_LOAD64_WORD_SWAP( "b91-05.bin", 0x000006, 0x080000, CRC(5e72ac90) SHA1(c28c2718e873be5a254992ef8db256a394ca03ff) ) ROM_REGION16_LE( 0x80000, "spritemap", 0 ) ROM_LOAD16_WORD( "b91-09.bin", 0x00000, 0x80000, CRC(5f247ca2) SHA1(3b89e5d035f27f62a14c5c7a976c804f9bb5c04d) ) /* STY spritemap */ @@ -4978,23 +4926,23 @@ ROM_START( nightstru ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* Z80 sound cpu */ ROM_LOAD( "b91-41.bin", 0x00000, 0x20000, CRC(2694bb42) SHA1(ee770472655ac0ef55eeff04037457dbf6744e4f) ) - ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_REGION( 0x80000, "tc0100scn", 0 ) ROM_LOAD16_WORD_SWAP( "b91-11.bin", 0x00000, 0x80000, CRC(fff8ce31) SHA1(fc729de92937a805d79379228d7a30041594c0df) ) /* SCR 8x8 */ - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "b91-04.bin", 0x000000, 0x080000, CRC(8ca1970d) SHA1(d8504298a38a95f1d8f3a2fba479ec75fe4d5de7) ) /* OBJ A 16x16 */ - ROM_LOAD32_BYTE( "b91-03.bin", 0x000001, 0x080000, CRC(cd5fed39) SHA1(c16c67cc998889288e6e96535fd8e61afc93bc78) ) - ROM_LOAD32_BYTE( "b91-02.bin", 0x000002, 0x080000, CRC(457c64b8) SHA1(443f13d56d53ca6a7750ec974da675bad3f34a38) ) - ROM_LOAD32_BYTE( "b91-01.bin", 0x000003, 0x080000, CRC(3731d94f) SHA1(2978d3eb1f44595681e84f3aa8dc03d34a191455) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "b91-04.bin", 0x000000, 0x080000, CRC(8ca1970d) SHA1(d8504298a38a95f1d8f3a2fba479ec75fe4d5de7) ) /* OBJ A 16x16 */ + ROM_LOAD64_WORD_SWAP( "b91-03.bin", 0x000002, 0x080000, CRC(cd5fed39) SHA1(c16c67cc998889288e6e96535fd8e61afc93bc78) ) + ROM_LOAD64_WORD_SWAP( "b91-02.bin", 0x000004, 0x080000, CRC(457c64b8) SHA1(443f13d56d53ca6a7750ec974da675bad3f34a38) ) + ROM_LOAD64_WORD_SWAP( "b91-01.bin", 0x000006, 0x080000, CRC(3731d94f) SHA1(2978d3eb1f44595681e84f3aa8dc03d34a191455) ) ROM_REGION16_LE( 0x80000, "tc0150rod", 0 ) ROM_LOAD16_WORD( "b91-10.bin", 0x00000, 0x80000, CRC(1d8f05b4) SHA1(04caa6a0887b90860c426a973dc3c3270e996818) ) /* ROD, road lines */ - ROM_REGION( 0x200000, "gfx4", 0 ) - ROM_LOAD32_BYTE( "b91-08.bin", 0x000000, 0x080000, CRC(66f35c34) SHA1(9040390fa9c626a54076a9461e0e198f059e2cb1) ) /* OBJ B 16x16 */ - ROM_LOAD32_BYTE( "b91-07.bin", 0x000001, 0x080000, CRC(4d8ec6cf) SHA1(2b7c10b459dc45313c4c90899a73c42c55b6c5c9) ) - ROM_LOAD32_BYTE( "b91-06.bin", 0x000002, 0x080000, CRC(a34dc839) SHA1(e1fcb763dbc562a62e862297458bde66d691606c) ) - ROM_LOAD32_BYTE( "b91-05.bin", 0x000003, 0x080000, CRC(5e72ac90) SHA1(c28c2718e873be5a254992ef8db256a394ca03ff) ) + ROM_REGION( 0x200000, "sprites2", 0 ) + ROM_LOAD64_WORD_SWAP( "b91-08.bin", 0x000000, 0x080000, CRC(66f35c34) SHA1(9040390fa9c626a54076a9461e0e198f059e2cb1) ) /* OBJ B 16x16 */ + ROM_LOAD64_WORD_SWAP( "b91-07.bin", 0x000002, 0x080000, CRC(4d8ec6cf) SHA1(2b7c10b459dc45313c4c90899a73c42c55b6c5c9) ) + ROM_LOAD64_WORD_SWAP( "b91-06.bin", 0x000004, 0x080000, CRC(a34dc839) SHA1(e1fcb763dbc562a62e862297458bde66d691606c) ) + ROM_LOAD64_WORD_SWAP( "b91-05.bin", 0x000006, 0x080000, CRC(5e72ac90) SHA1(c28c2718e873be5a254992ef8db256a394ca03ff) ) ROM_REGION16_LE( 0x80000, "spritemap", 0 ) ROM_LOAD16_WORD( "b91-09.bin", 0x00000, 0x80000, CRC(5f247ca2) SHA1(3b89e5d035f27f62a14c5c7a976c804f9bb5c04d) ) /* STY spritemap */ @@ -5031,23 +4979,23 @@ ROM_START( nightstrj ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* Z80 sound cpu */ ROM_LOAD( "b91-41.bin", 0x00000, 0x20000, CRC(2694bb42) SHA1(ee770472655ac0ef55eeff04037457dbf6744e4f) ) - ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_REGION( 0x80000, "tc0100scn", 0 ) ROM_LOAD16_WORD_SWAP( "b91-11.bin", 0x00000, 0x80000, CRC(fff8ce31) SHA1(fc729de92937a805d79379228d7a30041594c0df) ) /* SCR 8x8 */ - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "b91-04.bin", 0x000000, 0x080000, CRC(8ca1970d) SHA1(d8504298a38a95f1d8f3a2fba479ec75fe4d5de7) ) /* OBJ A 16x16 */ - ROM_LOAD32_BYTE( "b91-03.bin", 0x000001, 0x080000, CRC(cd5fed39) SHA1(c16c67cc998889288e6e96535fd8e61afc93bc78) ) - ROM_LOAD32_BYTE( "b91-02.bin", 0x000002, 0x080000, CRC(457c64b8) SHA1(443f13d56d53ca6a7750ec974da675bad3f34a38) ) - ROM_LOAD32_BYTE( "b91-01.bin", 0x000003, 0x080000, CRC(3731d94f) SHA1(2978d3eb1f44595681e84f3aa8dc03d34a191455) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "b91-04.bin", 0x000000, 0x080000, CRC(8ca1970d) SHA1(d8504298a38a95f1d8f3a2fba479ec75fe4d5de7) ) /* OBJ A 16x16 */ + ROM_LOAD64_WORD_SWAP( "b91-03.bin", 0x000002, 0x080000, CRC(cd5fed39) SHA1(c16c67cc998889288e6e96535fd8e61afc93bc78) ) + ROM_LOAD64_WORD_SWAP( "b91-02.bin", 0x000004, 0x080000, CRC(457c64b8) SHA1(443f13d56d53ca6a7750ec974da675bad3f34a38) ) + ROM_LOAD64_WORD_SWAP( "b91-01.bin", 0x000006, 0x080000, CRC(3731d94f) SHA1(2978d3eb1f44595681e84f3aa8dc03d34a191455) ) ROM_REGION16_LE( 0x80000, "tc0150rod", 0 ) ROM_LOAD16_WORD( "b91-10.bin", 0x00000, 0x80000, CRC(1d8f05b4) SHA1(04caa6a0887b90860c426a973dc3c3270e996818) ) /* ROD, road lines */ - ROM_REGION( 0x200000, "gfx4", 0 ) - ROM_LOAD32_BYTE( "b91-08.bin", 0x000000, 0x080000, CRC(66f35c34) SHA1(9040390fa9c626a54076a9461e0e198f059e2cb1) ) /* OBJ B 16x16 */ - ROM_LOAD32_BYTE( "b91-07.bin", 0x000001, 0x080000, CRC(4d8ec6cf) SHA1(2b7c10b459dc45313c4c90899a73c42c55b6c5c9) ) - ROM_LOAD32_BYTE( "b91-06.bin", 0x000002, 0x080000, CRC(a34dc839) SHA1(e1fcb763dbc562a62e862297458bde66d691606c) ) - ROM_LOAD32_BYTE( "b91-05.bin", 0x000003, 0x080000, CRC(5e72ac90) SHA1(c28c2718e873be5a254992ef8db256a394ca03ff) ) + ROM_REGION( 0x200000, "sprites2", 0 ) + ROM_LOAD64_WORD_SWAP( "b91-08.bin", 0x000000, 0x080000, CRC(66f35c34) SHA1(9040390fa9c626a54076a9461e0e198f059e2cb1) ) /* OBJ B 16x16 */ + ROM_LOAD64_WORD_SWAP( "b91-07.bin", 0x000002, 0x080000, CRC(4d8ec6cf) SHA1(2b7c10b459dc45313c4c90899a73c42c55b6c5c9) ) + ROM_LOAD64_WORD_SWAP( "b91-06.bin", 0x000004, 0x080000, CRC(a34dc839) SHA1(e1fcb763dbc562a62e862297458bde66d691606c) ) + ROM_LOAD64_WORD_SWAP( "b91-05.bin", 0x000006, 0x080000, CRC(5e72ac90) SHA1(c28c2718e873be5a254992ef8db256a394ca03ff) ) ROM_REGION16_LE( 0x80000, "spritemap", 0 ) ROM_LOAD16_WORD( "b91-09.bin", 0x00000, 0x80000, CRC(5f247ca2) SHA1(3b89e5d035f27f62a14c5c7a976c804f9bb5c04d) ) /* STY spritemap */ @@ -5082,14 +5030,14 @@ ROM_START( aquajack ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "b77-20.ic54", 0x00000, 0x10000, CRC(84ba54b7) SHA1(84e51c1a6a5b4eb2a65f4a6d9d54037323348f50) ) - ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_REGION( 0x80000, "tc0100scn", 0 ) ROM_LOAD16_WORD_SWAP( "b77-05.ic105", 0x00000, 0x80000, CRC(7238f0ff) SHA1(95e2d6815e99392358bbeabf1afbf237673f2e24) ) /* SCR 8x8 */ - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "b77-04.ic16", 0x000000, 0x80000, CRC(bed0be6c) SHA1(2b11824f741b7f6755bd78f594af19b63a29092f) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "b77-03.ic15", 0x000001, 0x80000, CRC(9a3030a7) SHA1(7b60fd066eccd04d9fcc131d9d06f151334ccab2) ) - ROM_LOAD32_BYTE( "b77-02.ic14", 0x000002, 0x80000, CRC(daea0d2e) SHA1(10640651824234a589838e8f017964b79de79cb4) ) - ROM_LOAD32_BYTE( "b77-01.ic13", 0x000003, 0x80000, CRC(cdab000d) SHA1(d83ee7f1dc17ab113bac38d0d062bb1519ff69f7) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "b77-04.ic16", 0x000000, 0x80000, CRC(bed0be6c) SHA1(2b11824f741b7f6755bd78f594af19b63a29092f) ) /* OBJ 16x8 */ + ROM_LOAD64_WORD_SWAP( "b77-03.ic15", 0x000002, 0x80000, CRC(9a3030a7) SHA1(7b60fd066eccd04d9fcc131d9d06f151334ccab2) ) + ROM_LOAD64_WORD_SWAP( "b77-02.ic14", 0x000004, 0x80000, CRC(daea0d2e) SHA1(10640651824234a589838e8f017964b79de79cb4) ) + ROM_LOAD64_WORD_SWAP( "b77-01.ic13", 0x000006, 0x80000, CRC(cdab000d) SHA1(d83ee7f1dc17ab113bac38d0d062bb1519ff69f7) ) ROM_REGION16_LE( 0x80000, "tc0150rod", 0 ) ROM_LOAD16_WORD( "b77-07.ic33", 0x000000, 0x80000, CRC(7db1fc5e) SHA1(fbc88c2179b881d34d3a33d0a901d8da3445f9a8) ) /* ROD, road lines */ @@ -5122,14 +5070,14 @@ ROM_START( aquajacku ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "b77-20.ic54", 0x00000, 0x10000, CRC(84ba54b7) SHA1(84e51c1a6a5b4eb2a65f4a6d9d54037323348f50) ) - ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_REGION( 0x80000, "tc0100scn", 0 ) ROM_LOAD16_WORD_SWAP( "b77-05.ic105", 0x00000, 0x80000, CRC(7238f0ff) SHA1(95e2d6815e99392358bbeabf1afbf237673f2e24) ) /* SCR 8x8 */ - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "b77-04.ic16", 0x000000, 0x80000, CRC(bed0be6c) SHA1(2b11824f741b7f6755bd78f594af19b63a29092f) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "b77-03.ic15", 0x000001, 0x80000, CRC(9a3030a7) SHA1(7b60fd066eccd04d9fcc131d9d06f151334ccab2) ) - ROM_LOAD32_BYTE( "b77-02.ic14", 0x000002, 0x80000, CRC(daea0d2e) SHA1(10640651824234a589838e8f017964b79de79cb4) ) - ROM_LOAD32_BYTE( "b77-01.ic13", 0x000003, 0x80000, CRC(cdab000d) SHA1(d83ee7f1dc17ab113bac38d0d062bb1519ff69f7) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "b77-04.ic16", 0x000000, 0x80000, CRC(bed0be6c) SHA1(2b11824f741b7f6755bd78f594af19b63a29092f) ) /* OBJ 16x8 */ + ROM_LOAD64_WORD_SWAP( "b77-03.ic15", 0x000002, 0x80000, CRC(9a3030a7) SHA1(7b60fd066eccd04d9fcc131d9d06f151334ccab2) ) + ROM_LOAD64_WORD_SWAP( "b77-02.ic14", 0x000004, 0x80000, CRC(daea0d2e) SHA1(10640651824234a589838e8f017964b79de79cb4) ) + ROM_LOAD64_WORD_SWAP( "b77-01.ic13", 0x000006, 0x80000, CRC(cdab000d) SHA1(d83ee7f1dc17ab113bac38d0d062bb1519ff69f7) ) ROM_REGION16_LE( 0x80000, "tc0150rod", 0 ) ROM_LOAD16_WORD( "b77-07.ic33", 0x000000, 0x80000, CRC(7db1fc5e) SHA1(fbc88c2179b881d34d3a33d0a901d8da3445f9a8) ) /* ROD, road lines */ @@ -5162,14 +5110,14 @@ ROM_START( aquajackj ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "b77-20.ic54", 0x00000, 0x10000, CRC(84ba54b7) SHA1(84e51c1a6a5b4eb2a65f4a6d9d54037323348f50) ) - ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_REGION( 0x80000, "tc0100scn", 0 ) ROM_LOAD16_WORD_SWAP( "b77-05.ic105", 0x00000, 0x80000, CRC(7238f0ff) SHA1(95e2d6815e99392358bbeabf1afbf237673f2e24) ) /* SCR 8x8 */ - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "b77-04.ic16", 0x000000, 0x80000, CRC(bed0be6c) SHA1(2b11824f741b7f6755bd78f594af19b63a29092f) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "b77-03.ic15", 0x000001, 0x80000, CRC(9a3030a7) SHA1(7b60fd066eccd04d9fcc131d9d06f151334ccab2) ) - ROM_LOAD32_BYTE( "b77-02.ic14", 0x000002, 0x80000, CRC(daea0d2e) SHA1(10640651824234a589838e8f017964b79de79cb4) ) - ROM_LOAD32_BYTE( "b77-01.ic13", 0x000003, 0x80000, CRC(cdab000d) SHA1(d83ee7f1dc17ab113bac38d0d062bb1519ff69f7) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "b77-04.ic16", 0x000000, 0x80000, CRC(bed0be6c) SHA1(2b11824f741b7f6755bd78f594af19b63a29092f) ) /* OBJ 16x8 */ + ROM_LOAD64_WORD_SWAP( "b77-03.ic15", 0x000002, 0x80000, CRC(9a3030a7) SHA1(7b60fd066eccd04d9fcc131d9d06f151334ccab2) ) + ROM_LOAD64_WORD_SWAP( "b77-02.ic14", 0x000004, 0x80000, CRC(daea0d2e) SHA1(10640651824234a589838e8f017964b79de79cb4) ) + ROM_LOAD64_WORD_SWAP( "b77-01.ic13", 0x000006, 0x80000, CRC(cdab000d) SHA1(d83ee7f1dc17ab113bac38d0d062bb1519ff69f7) ) ROM_REGION16_LE( 0x80000, "tc0150rod", 0 ) ROM_LOAD16_WORD( "b77-07.ic33", 0x000000, 0x80000, CRC(7db1fc5e) SHA1(fbc88c2179b881d34d3a33d0a901d8da3445f9a8) ) /* ROD, road lines */ @@ -5201,14 +5149,14 @@ ROM_START( spacegun ) ROM_LOAD16_BYTE( "c57-15+.27", 0x00000, 0x20000, CRC(b36eb8f1) SHA1(e6e9fb844fd9acc6ee8a515a964d5df8de088a8c) ) /* Actual label is "C57 15*" */ ROM_LOAD16_BYTE( "c57-16+.29", 0x00001, 0x20000, CRC(bfb5d1e7) SHA1(cbf22e9043aac54e08c5da74d973da27844170ef) ) /* Actual label is "C57 16*" */ - ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_REGION( 0x80000, "tc0100scn", 0 ) ROM_LOAD16_WORD_SWAP( "c57-06.52", 0x00000, 0x80000, CRC(4ebadd5b) SHA1(d32a52b4d7dd19b0fa2551f93ce3d5cbcf2bc158) ) /* SCR 8x8 */ - ROM_REGION( 0x400000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "c57-01.25", 0x000000, 0x100000, CRC(f901b04e) SHA1(24bac1c3a0c585966a7cbeeebd9b2dd3acf45a67) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "c57-02.24", 0x000001, 0x100000, CRC(21ee4633) SHA1(ddb948b165127c8fb1a988b5a0f17f92117f1b66) ) - ROM_LOAD32_BYTE( "c57-03.12", 0x000002, 0x100000, CRC(fafca86f) SHA1(dc6ea78f0deafef632d8bd3677ec74e797dc69a2) ) - ROM_LOAD32_BYTE( "c57-04.11", 0x000003, 0x100000, CRC(a9787090) SHA1(8c05c4c0d14a9f60defb37225da37aadf946c563) ) + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "c57-01.25", 0x000000, 0x100000, CRC(f901b04e) SHA1(24bac1c3a0c585966a7cbeeebd9b2dd3acf45a67) ) /* OBJ 16x8 */ + ROM_LOAD64_WORD_SWAP( "c57-02.24", 0x000002, 0x100000, CRC(21ee4633) SHA1(ddb948b165127c8fb1a988b5a0f17f92117f1b66) ) + ROM_LOAD64_WORD_SWAP( "c57-03.12", 0x000004, 0x100000, CRC(fafca86f) SHA1(dc6ea78f0deafef632d8bd3677ec74e797dc69a2) ) + ROM_LOAD64_WORD_SWAP( "c57-04.11", 0x000006, 0x100000, CRC(a9787090) SHA1(8c05c4c0d14a9f60defb37225da37aadf946c563) ) ROM_REGION16_LE( 0x80000, "spritemap", 0 ) ROM_LOAD16_WORD( "c57-05.36", 0x00000, 0x80000, CRC(6a70eb2e) SHA1(307dd876af65204e86e094b4015ffb4a655824f8) ) /* STY spritemap */ @@ -5239,14 +5187,14 @@ ROM_START( spacegunu ) ROM_LOAD16_BYTE( "c57-15+.27", 0x00000, 0x20000, CRC(b36eb8f1) SHA1(e6e9fb844fd9acc6ee8a515a964d5df8de088a8c) ) /* Actual label is "C57 15*" */ ROM_LOAD16_BYTE( "c57-16+.29", 0x00001, 0x20000, CRC(bfb5d1e7) SHA1(cbf22e9043aac54e08c5da74d973da27844170ef) ) /* Actual label is "C57 16*" */ - ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_REGION( 0x80000, "tc0100scn", 0 ) ROM_LOAD16_WORD_SWAP( "c57-06.52", 0x00000, 0x80000, CRC(4ebadd5b) SHA1(d32a52b4d7dd19b0fa2551f93ce3d5cbcf2bc158) ) /* SCR 8x8 */ - ROM_REGION( 0x400000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "c57-01.25", 0x000000, 0x100000, CRC(f901b04e) SHA1(24bac1c3a0c585966a7cbeeebd9b2dd3acf45a67) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "c57-02.24", 0x000001, 0x100000, CRC(21ee4633) SHA1(ddb948b165127c8fb1a988b5a0f17f92117f1b66) ) - ROM_LOAD32_BYTE( "c57-03.12", 0x000002, 0x100000, CRC(fafca86f) SHA1(dc6ea78f0deafef632d8bd3677ec74e797dc69a2) ) - ROM_LOAD32_BYTE( "c57-04.11", 0x000003, 0x100000, CRC(a9787090) SHA1(8c05c4c0d14a9f60defb37225da37aadf946c563) ) + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "c57-01.25", 0x000000, 0x100000, CRC(f901b04e) SHA1(24bac1c3a0c585966a7cbeeebd9b2dd3acf45a67) ) /* OBJ 16x8 */ + ROM_LOAD64_WORD_SWAP( "c57-02.24", 0x000002, 0x100000, CRC(21ee4633) SHA1(ddb948b165127c8fb1a988b5a0f17f92117f1b66) ) + ROM_LOAD64_WORD_SWAP( "c57-03.12", 0x000004, 0x100000, CRC(fafca86f) SHA1(dc6ea78f0deafef632d8bd3677ec74e797dc69a2) ) + ROM_LOAD64_WORD_SWAP( "c57-04.11", 0x000006, 0x100000, CRC(a9787090) SHA1(8c05c4c0d14a9f60defb37225da37aadf946c563) ) ROM_REGION16_LE( 0x80000, "spritemap", 0 ) ROM_LOAD16_WORD( "c57-05.36", 0x00000, 0x80000, CRC(6a70eb2e) SHA1(307dd876af65204e86e094b4015ffb4a655824f8) ) /* STY spritemap */ @@ -5277,14 +5225,14 @@ ROM_START( spacegunj ) ROM_LOAD16_BYTE( "c57-15+.27", 0x00000, 0x20000, CRC(b36eb8f1) SHA1(e6e9fb844fd9acc6ee8a515a964d5df8de088a8c) ) /* Actual label is "C57 15*" */ ROM_LOAD16_BYTE( "c57-16+.29", 0x00001, 0x20000, CRC(bfb5d1e7) SHA1(cbf22e9043aac54e08c5da74d973da27844170ef) ) /* Actual label is "C57 16*" */ - ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_REGION( 0x80000, "tc0100scn", 0 ) ROM_LOAD16_WORD_SWAP( "c57-06.52", 0x00000, 0x80000, CRC(4ebadd5b) SHA1(d32a52b4d7dd19b0fa2551f93ce3d5cbcf2bc158) ) /* SCR 8x8 */ - ROM_REGION( 0x400000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "c57-01.25", 0x000000, 0x100000, CRC(f901b04e) SHA1(24bac1c3a0c585966a7cbeeebd9b2dd3acf45a67) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "c57-02.24", 0x000001, 0x100000, CRC(21ee4633) SHA1(ddb948b165127c8fb1a988b5a0f17f92117f1b66) ) - ROM_LOAD32_BYTE( "c57-03.12", 0x000002, 0x100000, CRC(fafca86f) SHA1(dc6ea78f0deafef632d8bd3677ec74e797dc69a2) ) - ROM_LOAD32_BYTE( "c57-04.11", 0x000003, 0x100000, CRC(a9787090) SHA1(8c05c4c0d14a9f60defb37225da37aadf946c563) ) + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "c57-01.25", 0x000000, 0x100000, CRC(f901b04e) SHA1(24bac1c3a0c585966a7cbeeebd9b2dd3acf45a67) ) /* OBJ 16x8 */ + ROM_LOAD64_WORD_SWAP( "c57-02.24", 0x000002, 0x100000, CRC(21ee4633) SHA1(ddb948b165127c8fb1a988b5a0f17f92117f1b66) ) + ROM_LOAD64_WORD_SWAP( "c57-03.12", 0x000004, 0x100000, CRC(fafca86f) SHA1(dc6ea78f0deafef632d8bd3677ec74e797dc69a2) ) + ROM_LOAD64_WORD_SWAP( "c57-04.11", 0x000006, 0x100000, CRC(a9787090) SHA1(8c05c4c0d14a9f60defb37225da37aadf946c563) ) ROM_REGION16_LE( 0x80000, "spritemap", 0 ) ROM_LOAD16_WORD( "c57-05.36", 0x00000, 0x80000, CRC(6a70eb2e) SHA1(307dd876af65204e86e094b4015ffb4a655824f8) ) /* STY spritemap */ @@ -5316,19 +5264,19 @@ ROM_START( dblaxle ) /* Manual refers to this version as the "Version Without Co ROM_LOAD16_BYTE( "c78-31-1.36", 0x00001, 0x20000, CRC(67ce23e8) SHA1(983e998a79e3d4376b005c92ded050be236d37cc) ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound cpu */ - ROM_LOAD ( "c78-34.c42", 0x00000, 0x20000, CRC(f2186943) SHA1(2e9aed39fddf3aa1db7e20f8a709b6b82cc3e7df) ) + ROM_LOAD( "c78-34.c42", 0x00000, 0x20000, CRC(f2186943) SHA1(2e9aed39fddf3aa1db7e20f8a709b6b82cc3e7df) ) - ROM_REGION( 0x100000, "gfx1", 0 ) - ROM_LOAD32_WORD_SWAP( "c78-10.12", 0x00002, 0x80000, CRC(44b1897c) SHA1(7ad179db6d7dfeb139ea13cb4a231f99d177f2b1) ) /* SCR 8x8 */ - ROM_LOAD32_WORD_SWAP( "c78-11.11", 0x00000, 0x80000, CRC(7db3d4a3) SHA1(fc3c44ed36b212688a5bd8dc61321a994578258e) ) + ROM_REGION( 0x100000, "tc0480scp", 0 ) + ROM_LOAD32_WORD( "c78-10.12", 0x00000, 0x80000, CRC(44b1897c) SHA1(7ad179db6d7dfeb139ea13cb4a231f99d177f2b1) ) /* SCR 16x16 */ + ROM_LOAD32_WORD( "c78-11.11", 0x00002, 0x80000, CRC(7db3d4a3) SHA1(fc3c44ed36b212688a5bd8dc61321a994578258e) ) - ROM_REGION( 0x400000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "c78-08.25", 0x000000, 0x100000, CRC(6c725211) SHA1(3c1765f44fe57b496d305e994516674f71bd4c3c) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "c78-07.33", 0x000001, 0x100000, CRC(9da00d5b) SHA1(f6b664c7495b936ce1b99852da45ec92cb37062a) ) - ROM_LOAD32_BYTE( "c78-06.23", 0x000002, 0x100000, CRC(8309e91b) SHA1(3f27557bc82bf42cc77e3c7e363b51a0b119144d) ) - ROM_LOAD32_BYTE( "c78-05.31", 0x000003, 0x100000, CRC(90001f68) SHA1(5c08dfe6a2e12e6ca84035815563f38fc2c2c029) ) -// ROMX_LOAD ( "c78-05l.1", 0x000003, 0x080000, CRC(f24bf972) , ROM_SKIP(7) ) -// ROMX_LOAD ( "c78-05h.2", 0x000007, 0x080000, CRC(c01039b5) , ROM_SKIP(7) ) + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "c78-08.25", 0x000000, 0x100000, CRC(6c725211) SHA1(3c1765f44fe57b496d305e994516674f71bd4c3c) ) /* OBJ 16x8 */ + ROM_LOAD64_WORD_SWAP( "c78-07.33", 0x000002, 0x100000, CRC(9da00d5b) SHA1(f6b664c7495b936ce1b99852da45ec92cb37062a) ) + ROM_LOAD64_WORD_SWAP( "c78-06.23", 0x000004, 0x100000, CRC(8309e91b) SHA1(3f27557bc82bf42cc77e3c7e363b51a0b119144d) ) + ROM_LOAD64_WORD_SWAP( "c78-05.31", 0x000006, 0x100000, CRC(90001f68) SHA1(5c08dfe6a2e12e6ca84035815563f38fc2c2c029) ) +// ROMX_LOAD ( "c78-05l.1", 0x000007, 0x080000, CRC(f24bf972) , ROM_SKIP(7) ) +// ROMX_LOAD ( "c78-05h.2", 0x000006, 0x080000, CRC(c01039b5) , ROM_SKIP(7) ) ROM_REGION16_LE( 0x80000, "tc0150rod", 0 ) ROM_LOAD16_WORD( "c78-09.12", 0x000000, 0x80000, CRC(0dbde6f5) SHA1(4049271e3738b54e0c56d191889b1aea5664d49f) ) /* ROD, road lines */ @@ -5363,19 +5311,19 @@ ROM_START( dblaxleu ) /* Manual refers to this version as the "Version Without C ROM_LOAD16_BYTE( "c78-31+.36", 0x00001, 0x20000, CRC(4639adee) SHA1(24569dd4801c622758e60d3e526480ac6b5f85d2) ) /* Label missing, it's either C78 31 or C78 31* */ ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound cpu */ - ROM_LOAD ( "c78-34.c42", 0x00000, 0x20000, CRC(f2186943) SHA1(2e9aed39fddf3aa1db7e20f8a709b6b82cc3e7df) ) + ROM_LOAD( "c78-34.c42", 0x00000, 0x20000, CRC(f2186943) SHA1(2e9aed39fddf3aa1db7e20f8a709b6b82cc3e7df) ) - ROM_REGION( 0x100000, "gfx1", 0 ) - ROM_LOAD32_WORD_SWAP( "c78-10.12", 0x00002, 0x80000, CRC(44b1897c) SHA1(7ad179db6d7dfeb139ea13cb4a231f99d177f2b1) ) /* SCR 8x8 */ - ROM_LOAD32_WORD_SWAP( "c78-11.11", 0x00000, 0x80000, CRC(7db3d4a3) SHA1(fc3c44ed36b212688a5bd8dc61321a994578258e) ) + ROM_REGION( 0x100000, "tc0480scp", 0 ) + ROM_LOAD32_WORD( "c78-10.12", 0x00000, 0x80000, CRC(44b1897c) SHA1(7ad179db6d7dfeb139ea13cb4a231f99d177f2b1) ) /* SCR 16x16 */ + ROM_LOAD32_WORD( "c78-11.11", 0x00002, 0x80000, CRC(7db3d4a3) SHA1(fc3c44ed36b212688a5bd8dc61321a994578258e) ) - ROM_REGION( 0x400000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "c78-08.25", 0x000000, 0x100000, CRC(6c725211) SHA1(3c1765f44fe57b496d305e994516674f71bd4c3c) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "c78-07.33", 0x000001, 0x100000, CRC(9da00d5b) SHA1(f6b664c7495b936ce1b99852da45ec92cb37062a) ) - ROM_LOAD32_BYTE( "c78-06.23", 0x000002, 0x100000, CRC(8309e91b) SHA1(3f27557bc82bf42cc77e3c7e363b51a0b119144d) ) - ROM_LOAD32_BYTE( "c78-05.31", 0x000003, 0x100000, CRC(90001f68) SHA1(5c08dfe6a2e12e6ca84035815563f38fc2c2c029) ) -// ROMX_LOAD ( "c78-05l.1", 0x000003, 0x080000, CRC(f24bf972) , ROM_SKIP(7) ) -// ROMX_LOAD ( "c78-05h.2", 0x000007, 0x080000, CRC(c01039b5) , ROM_SKIP(7) ) + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "c78-08.25", 0x000000, 0x100000, CRC(6c725211) SHA1(3c1765f44fe57b496d305e994516674f71bd4c3c) ) /* OBJ 16x8 */ + ROM_LOAD64_WORD_SWAP( "c78-07.33", 0x000002, 0x100000, CRC(9da00d5b) SHA1(f6b664c7495b936ce1b99852da45ec92cb37062a) ) + ROM_LOAD64_WORD_SWAP( "c78-06.23", 0x000004, 0x100000, CRC(8309e91b) SHA1(3f27557bc82bf42cc77e3c7e363b51a0b119144d) ) + ROM_LOAD64_WORD_SWAP( "c78-05.31", 0x000006, 0x100000, CRC(90001f68) SHA1(5c08dfe6a2e12e6ca84035815563f38fc2c2c029) ) +// ROMX_LOAD ( "c78-05l.1", 0x000007, 0x080000, CRC(f24bf972) , ROM_SKIP(7) ) +// ROMX_LOAD ( "c78-05h.2", 0x000006, 0x080000, CRC(c01039b5) , ROM_SKIP(7) ) ROM_REGION16_LE( 0x80000, "tc0150rod", 0 ) ROM_LOAD16_WORD( "c78-09.12", 0x000000, 0x80000, CRC(0dbde6f5) SHA1(4049271e3738b54e0c56d191889b1aea5664d49f) ) /* ROD, road lines */ @@ -5410,19 +5358,19 @@ ROM_START( dblaxleul ) /* Side by side linkable version */ ROM_LOAD16_BYTE( "c78-31-1.36", 0x00001, 0x20000, CRC(67ce23e8) SHA1(983e998a79e3d4376b005c92ded050be236d37cc) ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound cpu */ - ROM_LOAD ( "c78-34.c42", 0x00000, 0x20000, CRC(f2186943) SHA1(2e9aed39fddf3aa1db7e20f8a709b6b82cc3e7df) ) + ROM_LOAD( "c78-34.c42", 0x00000, 0x20000, CRC(f2186943) SHA1(2e9aed39fddf3aa1db7e20f8a709b6b82cc3e7df) ) - ROM_REGION( 0x100000, "gfx1", 0 ) - ROM_LOAD32_WORD_SWAP( "c78-10.12", 0x00002, 0x80000, CRC(44b1897c) SHA1(7ad179db6d7dfeb139ea13cb4a231f99d177f2b1) ) /* SCR 8x8 */ - ROM_LOAD32_WORD_SWAP( "c78-11.11", 0x00000, 0x80000, CRC(7db3d4a3) SHA1(fc3c44ed36b212688a5bd8dc61321a994578258e) ) + ROM_REGION( 0x100000, "tc0480scp", 0 ) + ROM_LOAD32_WORD( "c78-10.12", 0x00000, 0x80000, CRC(44b1897c) SHA1(7ad179db6d7dfeb139ea13cb4a231f99d177f2b1) ) /* SCR 16x16 */ + ROM_LOAD32_WORD( "c78-11.11", 0x00002, 0x80000, CRC(7db3d4a3) SHA1(fc3c44ed36b212688a5bd8dc61321a994578258e) ) - ROM_REGION( 0x400000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "c78-08.25", 0x000000, 0x100000, CRC(6c725211) SHA1(3c1765f44fe57b496d305e994516674f71bd4c3c) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "c78-07.33", 0x000001, 0x100000, CRC(9da00d5b) SHA1(f6b664c7495b936ce1b99852da45ec92cb37062a) ) - ROM_LOAD32_BYTE( "c78-06.23", 0x000002, 0x100000, CRC(8309e91b) SHA1(3f27557bc82bf42cc77e3c7e363b51a0b119144d) ) - ROM_LOAD32_BYTE( "c78-05.31", 0x000003, 0x100000, CRC(90001f68) SHA1(5c08dfe6a2e12e6ca84035815563f38fc2c2c029) ) -// ROMX_LOAD ( "c78-05l.1", 0x000003, 0x080000, CRC(f24bf972) , ROM_SKIP(7) ) -// ROMX_LOAD ( "c78-05h.2", 0x000007, 0x080000, CRC(c01039b5) , ROM_SKIP(7) ) + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "c78-08.25", 0x000000, 0x100000, CRC(6c725211) SHA1(3c1765f44fe57b496d305e994516674f71bd4c3c) ) /* OBJ 16x8 */ + ROM_LOAD64_WORD_SWAP( "c78-07.33", 0x000002, 0x100000, CRC(9da00d5b) SHA1(f6b664c7495b936ce1b99852da45ec92cb37062a) ) + ROM_LOAD64_WORD_SWAP( "c78-06.23", 0x000004, 0x100000, CRC(8309e91b) SHA1(3f27557bc82bf42cc77e3c7e363b51a0b119144d) ) + ROM_LOAD64_WORD_SWAP( "c78-05.31", 0x000006, 0x100000, CRC(90001f68) SHA1(5c08dfe6a2e12e6ca84035815563f38fc2c2c029) ) +// ROMX_LOAD ( "c78-05l.1", 0x000007, 0x080000, CRC(f24bf972) , ROM_SKIP(7) ) +// ROMX_LOAD ( "c78-05h.2", 0x000006, 0x080000, CRC(c01039b5) , ROM_SKIP(7) ) ROM_REGION16_LE( 0x80000, "tc0150rod", 0 ) ROM_LOAD16_WORD( "c78-09.12", 0x000000, 0x80000, CRC(0dbde6f5) SHA1(4049271e3738b54e0c56d191889b1aea5664d49f) ) /* ROD, road lines */ @@ -5457,17 +5405,17 @@ ROM_START( pwheelsj ) /* Side by side linkable version */ ROM_LOAD16_BYTE( "c78-31-1.36", 0x00001, 0x20000, CRC(67ce23e8) SHA1(983e998a79e3d4376b005c92ded050be236d37cc) ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound cpu */ - ROM_LOAD ( "c78-32.42", 0x00000, 0x20000, CRC(1494199c) SHA1(f6b6ccaadbc5440f9342750a79ebc00c019ef355) ) + ROM_LOAD( "c78-32.42", 0x00000, 0x20000, CRC(1494199c) SHA1(f6b6ccaadbc5440f9342750a79ebc00c019ef355) ) - ROM_REGION( 0x100000, "gfx1", 0 ) - ROM_LOAD32_WORD_SWAP( "c78-10.12", 0x00002, 0x80000, CRC(44b1897c) SHA1(7ad179db6d7dfeb139ea13cb4a231f99d177f2b1) ) /* SCR 8x8 */ - ROM_LOAD32_WORD_SWAP( "c78-11.11", 0x00000, 0x80000, CRC(7db3d4a3) SHA1(fc3c44ed36b212688a5bd8dc61321a994578258e) ) + ROM_REGION( 0x100000, "tc0480scp", 0 ) + ROM_LOAD32_WORD( "c78-10.12", 0x00000, 0x80000, CRC(44b1897c) SHA1(7ad179db6d7dfeb139ea13cb4a231f99d177f2b1) ) /* SCR 16x16 */ + ROM_LOAD32_WORD( "c78-11.11", 0x00002, 0x80000, CRC(7db3d4a3) SHA1(fc3c44ed36b212688a5bd8dc61321a994578258e) ) - ROM_REGION( 0x400000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "c78-08.25", 0x000000, 0x100000, CRC(6c725211) SHA1(3c1765f44fe57b496d305e994516674f71bd4c3c) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "c78-07.33", 0x000001, 0x100000, CRC(9da00d5b) SHA1(f6b664c7495b936ce1b99852da45ec92cb37062a) ) - ROM_LOAD32_BYTE( "c78-06.23", 0x000002, 0x100000, CRC(8309e91b) SHA1(3f27557bc82bf42cc77e3c7e363b51a0b119144d) ) - ROM_LOAD32_BYTE( "c78-05.31", 0x000003, 0x100000, CRC(90001f68) SHA1(5c08dfe6a2e12e6ca84035815563f38fc2c2c029) ) + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "c78-08.25", 0x000000, 0x100000, CRC(6c725211) SHA1(3c1765f44fe57b496d305e994516674f71bd4c3c) ) /* OBJ 16x8 */ + ROM_LOAD64_WORD_SWAP( "c78-07.33", 0x000002, 0x100000, CRC(9da00d5b) SHA1(f6b664c7495b936ce1b99852da45ec92cb37062a) ) + ROM_LOAD64_WORD_SWAP( "c78-06.23", 0x000004, 0x100000, CRC(8309e91b) SHA1(3f27557bc82bf42cc77e3c7e363b51a0b119144d) ) + ROM_LOAD64_WORD_SWAP( "c78-05.31", 0x000006, 0x100000, CRC(90001f68) SHA1(5c08dfe6a2e12e6ca84035815563f38fc2c2c029) ) ROM_REGION16_LE( 0x80000, "tc0150rod", 0 ) ROM_LOAD16_WORD( "c78-09.12", 0x000000, 0x80000, CRC(0dbde6f5) SHA1(4049271e3738b54e0c56d191889b1aea5664d49f) ) /* ROD, road lines */ @@ -5502,17 +5450,17 @@ ROM_START( racingb ) ROM_LOAD16_BYTE( "c84-100.36", 0x00001, 0x20000, CRC(2b99258a) SHA1(ff2da0f3a0391f55e20655554d72b82cc29fbc87) ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound cpu */ - ROM_LOAD ( "c84-101.42", 0x00000, 0x20000, CRC(9322106e) SHA1(6c42ee7b9c76483fec2e397ec2737c030a082267) ) + ROM_LOAD( "c84-101.42", 0x00000, 0x20000, CRC(9322106e) SHA1(6c42ee7b9c76483fec2e397ec2737c030a082267) ) - ROM_REGION( 0x100000, "gfx1", 0 ) - ROM_LOAD32_WORD_SWAP( "c84-90.12", 0x00002, 0x80000, CRC(83ee0e8d) SHA1(a3b6067913f15656e1f74b30b4c0364a50d1846a) ) /* SCR 8x8 */ - ROM_LOAD32_WORD_SWAP( "c84-89.11", 0x00000, 0x80000, CRC(aae43c87) SHA1(cfc05553f7a18132127ae5f1d181fcc582432b56) ) + ROM_REGION( 0x100000, "tc0480scp", 0 ) + ROM_LOAD32_WORD( "c84-90.12", 0x00000, 0x80000, CRC(83ee0e8d) SHA1(a3b6067913f15656e1f74b30b4c0364a50d1846a) ) /* SCR 16x16 */ + ROM_LOAD32_WORD( "c84-89.11", 0x00002, 0x80000, CRC(aae43c87) SHA1(cfc05553f7a18132127ae5f1d181fcc582432b56) ) - ROM_REGION( 0x400000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "c84-92.25", 0x000000, 0x100000, CRC(56e8fd55) SHA1(852446d4069a446dd9b88b29e461b83b8d626b2c) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "c84-94.33", 0x000001, 0x100000, CRC(6117c19b) SHA1(6b9587fb864a325aec17a73046ba5b7be08a8dd2) ) - ROM_LOAD32_BYTE( "c84-91.23", 0x000002, 0x100000, CRC(b1b0146c) SHA1(d01f08085d644b17445d904a4684c00f133f7bae) ) - ROM_LOAD32_BYTE( "c84-93.31", 0x000003, 0x100000, CRC(8837bb4e) SHA1(c41fff198a3c87c6e1672174ede589434374c1b3) ) + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "c84-92.25", 0x000000, 0x100000, CRC(56e8fd55) SHA1(852446d4069a446dd9b88b29e461b83b8d626b2c) ) /* OBJ 16x8 */ + ROM_LOAD64_WORD_SWAP( "c84-94.33", 0x000002, 0x100000, CRC(6117c19b) SHA1(6b9587fb864a325aec17a73046ba5b7be08a8dd2) ) + ROM_LOAD64_WORD_SWAP( "c84-91.23", 0x000004, 0x100000, CRC(b1b0146c) SHA1(d01f08085d644b17445d904a4684c00f133f7bae) ) + ROM_LOAD64_WORD_SWAP( "c84-93.31", 0x000006, 0x100000, CRC(8837bb4e) SHA1(c41fff198a3c87c6e1672174ede589434374c1b3) ) ROM_REGION16_LE( 0x80000, "tc0150rod", 0 ) ROM_LOAD16_WORD( "c84-84.12", 0x000000, 0x80000, CRC(34dc486b) SHA1(2f503be67adbc5293f2d1218c838416fd931796c) ) /* ROD, road lines */ @@ -5547,17 +5495,17 @@ ROM_START( racingbj ) ROM_LOAD16_BYTE( "c84-100.36", 0x00001, 0x20000, CRC(2b99258a) SHA1(ff2da0f3a0391f55e20655554d72b82cc29fbc87) ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound cpu */ - ROM_LOAD ( "c84-101.42", 0x00000, 0x20000, CRC(9322106e) SHA1(6c42ee7b9c76483fec2e397ec2737c030a082267) ) + ROM_LOAD( "c84-101.42", 0x00000, 0x20000, CRC(9322106e) SHA1(6c42ee7b9c76483fec2e397ec2737c030a082267) ) - ROM_REGION( 0x100000, "gfx1", 0 ) - ROM_LOAD32_WORD_SWAP( "c84-90.12", 0x00002, 0x80000, CRC(83ee0e8d) SHA1(a3b6067913f15656e1f74b30b4c0364a50d1846a) ) /* SCR 8x8 */ - ROM_LOAD32_WORD_SWAP( "c84-89.11", 0x00000, 0x80000, CRC(aae43c87) SHA1(cfc05553f7a18132127ae5f1d181fcc582432b56) ) + ROM_REGION( 0x100000, "tc0480scp", 0 ) + ROM_LOAD32_WORD( "c84-90.12", 0x00000, 0x80000, CRC(83ee0e8d) SHA1(a3b6067913f15656e1f74b30b4c0364a50d1846a) ) /* SCR 16x16 */ + ROM_LOAD32_WORD( "c84-89.11", 0x00002, 0x80000, CRC(aae43c87) SHA1(cfc05553f7a18132127ae5f1d181fcc582432b56) ) - ROM_REGION( 0x400000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "c84-92.25", 0x000000, 0x100000, CRC(56e8fd55) SHA1(852446d4069a446dd9b88b29e461b83b8d626b2c) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "c84-94.33", 0x000001, 0x100000, CRC(6117c19b) SHA1(6b9587fb864a325aec17a73046ba5b7be08a8dd2) ) - ROM_LOAD32_BYTE( "c84-91.23", 0x000002, 0x100000, CRC(b1b0146c) SHA1(d01f08085d644b17445d904a4684c00f133f7bae) ) - ROM_LOAD32_BYTE( "c84-93.31", 0x000003, 0x100000, CRC(8837bb4e) SHA1(c41fff198a3c87c6e1672174ede589434374c1b3) ) + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD64_WORD_SWAP( "c84-92.25", 0x000000, 0x100000, CRC(56e8fd55) SHA1(852446d4069a446dd9b88b29e461b83b8d626b2c) ) /* OBJ 16x8 */ + ROM_LOAD64_WORD_SWAP( "c84-94.33", 0x000002, 0x100000, CRC(6117c19b) SHA1(6b9587fb864a325aec17a73046ba5b7be08a8dd2) ) + ROM_LOAD64_WORD_SWAP( "c84-91.23", 0x000004, 0x100000, CRC(b1b0146c) SHA1(d01f08085d644b17445d904a4684c00f133f7bae) ) + ROM_LOAD64_WORD_SWAP( "c84-93.31", 0x000006, 0x100000, CRC(8837bb4e) SHA1(c41fff198a3c87c6e1672174ede589434374c1b3) ) ROM_REGION16_LE( 0x80000, "tc0150rod", 0 ) ROM_LOAD16_WORD( "c84-84.12", 0x000000, 0x80000, CRC(34dc486b) SHA1(2f503be67adbc5293f2d1218c838416fd931796c) ) /* ROD, road lines */ @@ -5589,7 +5537,6 @@ void taitoz_state::init_bshark() } - GAMEL(1987, contcirc, 0, contcirc, contcirc, taitoz_state, empty_init, ROT0, "Taito Corporation Japan", "Continental Circus (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc ) GAMEL(1987, contcircu, contcirc, contcirc, contcrcu, taitoz_state, empty_init, ROT0, "Taito America Corporation", "Continental Circus (US set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc ) GAMEL(1987, contcircua, contcirc, contcirc, contcrcj, taitoz_state, empty_init, ROT0, "Taito America Corporation", "Continental Circus (US set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc ) diff --git a/src/mame/drivers/tasc.cpp b/src/mame/drivers/tasc.cpp index 2665c2d2c72..671c521eedc 100644 --- a/src/mame/drivers/tasc.cpp +++ b/src/mame/drivers/tasc.cpp @@ -4,6 +4,9 @@ Tasc ChessSystem +Commonly known as Tasc R30, it's basically a dedicated ChessMachine. +The chess engine is also compatible with Tasc's The ChessMachine software. + R30 hardware notes: - ARM6 CPU(P60ARM/CG) @ 30MHz - 256KB ROM, 512KB program RAM, 128KB permanent RAM diff --git a/src/mame/drivers/undrfire.cpp b/src/mame/drivers/undrfire.cpp index 3809d36d722..813988e3054 100644 --- a/src/mame/drivers/undrfire.cpp +++ b/src/mame/drivers/undrfire.cpp @@ -497,38 +497,16 @@ static const gfx_layout tile16x16_layout = 16*16 /* every sprite takes 128 consecutive bytes */ }; -static const gfx_layout charlayout = -{ - 16,16, /* 16*16 characters */ - RGN_FRAC(1,1), - 4, /* 4 bits per pixel */ - { STEP4(0,1) }, - { STEP8(7*4,-4), STEP8(15*4,-4) }, - { STEP16(0,16*4) }, - 16*16*4 /* every sprite takes 128 consecutive bytes */ -}; - -static const gfx_layout scclayout = -{ - 8,8, /* 8*8 characters */ - RGN_FRAC(1,2), - 6, /* 4 bits per pixel */ - { RGN_FRAC(1,2), RGN_FRAC(1,2)+1, STEP4(0,1) }, - { STEP8(0,4) }, - { STEP8(0,4*8) }, - 32*8 /* every sprite takes 32 consecutive bytes */ -}; - static GFXDECODE_START( gfx_undrfire ) - GFXDECODE_ENTRY( "gfx2", 0x0, tile16x16_layout, 0, 512 ) - GFXDECODE_ENTRY( "gfx1", 0x0, charlayout, 0, 512 ) - GFXDECODE_ENTRY( "gfx3", 0x0, scclayout, 0, 512 ) + GFXDECODE_ENTRY( "sprites", 0x0, tile16x16_layout, 0, 512 ) + GFXDECODE_ENTRY( "tc0480scp", 0x0, gfx_16x16x4_packed_lsb, 0, 512 ) + GFXDECODE_ENTRY( "tc0100scn", 0x0, gfx_8x8x4_packed_msb, 0, 512 ) GFXDECODE_END static GFXDECODE_START( gfx_cbombers ) - GFXDECODE_ENTRY( "gfx2", 0x0, tile16x16_layout, 0, 512 ) - GFXDECODE_ENTRY( "gfx1", 0x0, charlayout, 0x1000, 512 ) - GFXDECODE_ENTRY( "gfx3", 0x0, scclayout, 0, 512 ) + GFXDECODE_ENTRY( "sprites", 0x0, tile16x16_layout, 0, 512 ) + GFXDECODE_ENTRY( "tc0480scp", 0x0, gfx_16x16x4_packed_lsb, 0x1000, 512 ) + GFXDECODE_ENTRY( "tc0100scn", 0x0, gfx_8x8x4_packed_msb, 0, 512 ) GFXDECODE_END /*********************************************************** @@ -669,22 +647,23 @@ ROM_START( undrfire ) ROM_LOAD16_BYTE( "d67-20", 0x100000, 0x20000, CRC(974ebf69) SHA1(8a5de503c514bf0da0c956e2dfdf0cfb83ea1f72) ) ROM_LOAD16_BYTE( "d67-21", 0x100001, 0x20000, CRC(8fc6046f) SHA1(28522ce5c5900f74d3faa86710256a7201b32500) ) - ROM_REGION( 0x400000, "gfx1", 0 ) - ROM_LOAD32_WORD_SWAP( "d67-08", 0x000002, 0x200000, CRC(56730d44) SHA1(110872714b3c26a82473c7b80c120918b91b1b4b) ) /* SCR 16x16 tiles */ - ROM_LOAD32_WORD_SWAP( "d67-09", 0x000000, 0x200000, CRC(3c19f9e3) SHA1(7ba8475d37cbf8bf38029124afdf62c915c8668d) ) + ROM_REGION( 0x400000, "tc0480scp", 0 ) + ROM_LOAD32_WORD( "d67-08", 0x000000, 0x200000, CRC(56730d44) SHA1(110872714b3c26a82473c7b80c120918b91b1b4b) ) /* SCR 16x16 tiles */ + ROM_LOAD32_WORD( "d67-09", 0x000002, 0x200000, CRC(3c19f9e3) SHA1(7ba8475d37cbf8bf38029124afdf62c915c8668d) ) - ROM_REGION( 0xa00000, "gfx2", 0 ) + ROM_REGION( 0xa00000, "sprites", 0 ) ROM_LOAD16_WORD_SWAP( "d67-03", 0x000000, 0x200000, CRC(3b6e99a9) SHA1(1e0e66763ddfa18a2d291626b245633555092959) ) /* OBJ 16x16 tiles */ ROM_LOAD16_WORD_SWAP( "d67-04", 0x200000, 0x200000, CRC(8f2934c9) SHA1(ead95b34eec3a6df27199edcbdd5595bc6555a50) ) ROM_LOAD16_WORD_SWAP( "d67-05", 0x400000, 0x200000, CRC(e2e7dcf3) SHA1(185dbd0489931123a295139dc0a045ad239018fb) ) ROM_LOAD16_WORD_SWAP( "d67-06", 0x600000, 0x200000, CRC(a2a63488) SHA1(a1ed140cc3757c3c05a0a822089c6efc83bf4805) ) ROM_LOAD16_WORD_SWAP( "d67-07", 0x800000, 0x200000, CRC(189c0ee5) SHA1(de85b39dc67f31ef80800ff6ec9a391652eb12e4) ) - ROM_REGION( 0x400000, "gfx3", 0 ) - ROM_LOAD16_BYTE( "d67-10", 0x000001, 0x100000, CRC(d79e6ce9) SHA1(8b38302971816d599cdaa3279cb6395441373c6f) ) /* PIV 8x8 tiles, 6bpp */ + ROM_REGION( 0x200000, "tc0100scn", 0 ) + ROM_LOAD16_BYTE( "d67-10", 0x000001, 0x100000, CRC(d79e6ce9) SHA1(8b38302971816d599cdaa3279cb6395441373c6f) ) /* PIV 8x8 tiles, 4bpp */ ROM_LOAD16_BYTE( "d67-11", 0x000000, 0x100000, CRC(7a401bb3) SHA1(47257a6a4b37ec1ceb4e974b776ee3ea30db06fa) ) - ROM_LOAD ( "d67-12", 0x300000, 0x100000, CRC(67b16fec) SHA1(af0f9f50516331780ef6cfab1e12a23edf87daa7) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + + ROM_REGION( 0x100000, "tc0100scn:hi_gfx", 0 ) + ROM_LOAD ( "d67-12", 0x000000, 0x100000, CRC(67b16fec) SHA1(af0f9f50516331780ef6cfab1e12a23edf87daa7) ) /* PIV 8x8 tiles, 2bpp */ ROM_REGION16_LE( 0x80000, "spritemap", 0 ) ROM_LOAD16_WORD( "d67-13", 0x00000, 0x80000, CRC(42e7690d) SHA1(5f00f3f814653733bf9a5cb010675799de02fa76) ) /* STY, spritemap */ @@ -709,22 +688,23 @@ ROM_START( undrfireu ) ROM_LOAD16_BYTE( "d67-20", 0x100000, 0x20000, CRC(974ebf69) SHA1(8a5de503c514bf0da0c956e2dfdf0cfb83ea1f72) ) ROM_LOAD16_BYTE( "d67-21", 0x100001, 0x20000, CRC(8fc6046f) SHA1(28522ce5c5900f74d3faa86710256a7201b32500) ) - ROM_REGION( 0x400000, "gfx1", 0 ) - ROM_LOAD32_WORD_SWAP( "d67-08", 0x000002, 0x200000, CRC(56730d44) SHA1(110872714b3c26a82473c7b80c120918b91b1b4b) ) /* SCR 16x16 tiles */ - ROM_LOAD32_WORD_SWAP( "d67-09", 0x000000, 0x200000, CRC(3c19f9e3) SHA1(7ba8475d37cbf8bf38029124afdf62c915c8668d) ) + ROM_REGION( 0x400000, "tc0480scp", 0 ) + ROM_LOAD32_WORD( "d67-08", 0x000000, 0x200000, CRC(56730d44) SHA1(110872714b3c26a82473c7b80c120918b91b1b4b) ) /* SCR 16x16 tiles */ + ROM_LOAD32_WORD( "d67-09", 0x000002, 0x200000, CRC(3c19f9e3) SHA1(7ba8475d37cbf8bf38029124afdf62c915c8668d) ) - ROM_REGION( 0xa00000, "gfx2", 0 ) + ROM_REGION( 0xa00000, "sprites", 0 ) ROM_LOAD16_WORD_SWAP( "d67-03", 0x000000, 0x200000, CRC(3b6e99a9) SHA1(1e0e66763ddfa18a2d291626b245633555092959) ) /* OBJ 16x16 tiles */ ROM_LOAD16_WORD_SWAP( "d67-04", 0x200000, 0x200000, CRC(8f2934c9) SHA1(ead95b34eec3a6df27199edcbdd5595bc6555a50) ) ROM_LOAD16_WORD_SWAP( "d67-05", 0x400000, 0x200000, CRC(e2e7dcf3) SHA1(185dbd0489931123a295139dc0a045ad239018fb) ) ROM_LOAD16_WORD_SWAP( "d67-06", 0x600000, 0x200000, CRC(a2a63488) SHA1(a1ed140cc3757c3c05a0a822089c6efc83bf4805) ) ROM_LOAD16_WORD_SWAP( "d67-07", 0x800000, 0x200000, CRC(189c0ee5) SHA1(de85b39dc67f31ef80800ff6ec9a391652eb12e4) ) - ROM_REGION( 0x400000, "gfx3", 0 ) - ROM_LOAD16_BYTE( "d67-10", 0x000001, 0x100000, CRC(d79e6ce9) SHA1(8b38302971816d599cdaa3279cb6395441373c6f) ) /* PIV 8x8 tiles, 6bpp */ + ROM_REGION( 0x200000, "tc0100scn", 0 ) + ROM_LOAD16_BYTE( "d67-10", 0x000001, 0x100000, CRC(d79e6ce9) SHA1(8b38302971816d599cdaa3279cb6395441373c6f) ) /* PIV 8x8 tiles, 4bpp */ ROM_LOAD16_BYTE( "d67-11", 0x000000, 0x100000, CRC(7a401bb3) SHA1(47257a6a4b37ec1ceb4e974b776ee3ea30db06fa) ) - ROM_LOAD ( "d67-12", 0x300000, 0x100000, CRC(67b16fec) SHA1(af0f9f50516331780ef6cfab1e12a23edf87daa7) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + + ROM_REGION( 0x100000, "tc0100scn:hi_gfx", 0 ) + ROM_LOAD ( "d67-12", 0x000000, 0x100000, CRC(67b16fec) SHA1(af0f9f50516331780ef6cfab1e12a23edf87daa7) ) /* PIV 8x8 tiles, 2bpp */ ROM_REGION16_LE( 0x80000, "spritemap", 0 ) ROM_LOAD16_WORD( "d67-13", 0x00000, 0x80000, CRC(42e7690d) SHA1(5f00f3f814653733bf9a5cb010675799de02fa76) ) /* STY, spritemap */ @@ -748,22 +728,23 @@ ROM_START( undrfirej ) ROM_LOAD16_BYTE( "d67-20", 0x100000, 0x20000, CRC(974ebf69) SHA1(8a5de503c514bf0da0c956e2dfdf0cfb83ea1f72) ) ROM_LOAD16_BYTE( "d67-21", 0x100001, 0x20000, CRC(8fc6046f) SHA1(28522ce5c5900f74d3faa86710256a7201b32500) ) - ROM_REGION( 0x400000, "gfx1", 0 ) - ROM_LOAD32_WORD_SWAP( "d67-08", 0x000002, 0x200000, CRC(56730d44) SHA1(110872714b3c26a82473c7b80c120918b91b1b4b) ) /* SCR 16x16 tiles */ - ROM_LOAD32_WORD_SWAP( "d67-09", 0x000000, 0x200000, CRC(3c19f9e3) SHA1(7ba8475d37cbf8bf38029124afdf62c915c8668d) ) + ROM_REGION( 0x400000, "tc0480scp", 0 ) + ROM_LOAD32_WORD( "d67-08", 0x000000, 0x200000, CRC(56730d44) SHA1(110872714b3c26a82473c7b80c120918b91b1b4b) ) /* SCR 16x16 tiles */ + ROM_LOAD32_WORD( "d67-09", 0x000002, 0x200000, CRC(3c19f9e3) SHA1(7ba8475d37cbf8bf38029124afdf62c915c8668d) ) - ROM_REGION( 0xa00000, "gfx2", 0 ) + ROM_REGION( 0xa00000, "sprites", 0 ) ROM_LOAD16_WORD_SWAP( "d67-03", 0x000000, 0x200000, CRC(3b6e99a9) SHA1(1e0e66763ddfa18a2d291626b245633555092959) ) /* OBJ 16x16 tiles */ ROM_LOAD16_WORD_SWAP( "d67-04", 0x200000, 0x200000, CRC(8f2934c9) SHA1(ead95b34eec3a6df27199edcbdd5595bc6555a50) ) ROM_LOAD16_WORD_SWAP( "d67-05", 0x400000, 0x200000, CRC(e2e7dcf3) SHA1(185dbd0489931123a295139dc0a045ad239018fb) ) ROM_LOAD16_WORD_SWAP( "d67-06", 0x600000, 0x200000, CRC(a2a63488) SHA1(a1ed140cc3757c3c05a0a822089c6efc83bf4805) ) ROM_LOAD16_WORD_SWAP( "d67-07", 0x800000, 0x200000, CRC(189c0ee5) SHA1(de85b39dc67f31ef80800ff6ec9a391652eb12e4) ) - ROM_REGION( 0x400000, "gfx3", 0 ) - ROM_LOAD16_BYTE( "d67-10", 0x000001, 0x100000, CRC(d79e6ce9) SHA1(8b38302971816d599cdaa3279cb6395441373c6f) ) /* PIV 8x8 tiles, 6bpp */ + ROM_REGION( 0x200000, "tc0100scn", 0 ) + ROM_LOAD16_BYTE( "d67-10", 0x000001, 0x100000, CRC(d79e6ce9) SHA1(8b38302971816d599cdaa3279cb6395441373c6f) ) /* PIV 8x8 tiles, 4bpp */ ROM_LOAD16_BYTE( "d67-11", 0x000000, 0x100000, CRC(7a401bb3) SHA1(47257a6a4b37ec1ceb4e974b776ee3ea30db06fa) ) - ROM_LOAD ( "d67-12", 0x300000, 0x100000, CRC(67b16fec) SHA1(af0f9f50516331780ef6cfab1e12a23edf87daa7) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + + ROM_REGION( 0x100000, "tc0100scn:hi_gfx", 0 ) + ROM_LOAD ( "d67-12", 0x000000, 0x100000, CRC(67b16fec) SHA1(af0f9f50516331780ef6cfab1e12a23edf87daa7) ) /* PIV 8x8 tiles, 2bpp */ ROM_REGION16_LE( 0x80000, "spritemap", 0 ) ROM_LOAD16_WORD( "d67-13", 0x00000, 0x80000, CRC(42e7690d) SHA1(5f00f3f814653733bf9a5cb010675799de02fa76) ) /* STY, spritemap */ @@ -791,11 +772,11 @@ ROM_START( cbombers ) ROM_LOAD16_BYTE( "d83_28.ic26", 0x00001, 0x20000, CRC(06328ef7) SHA1(90a14649e56221e47b87958896f6eae4556265c2) ) ROM_LOAD16_BYTE( "d83_29.ic27", 0x00000, 0x20000, CRC(771b4080) SHA1(a47c3a6abc07a6a61b694d32baa0ad4c25045841) ) - ROM_REGION( 0x400000, "gfx1", 0 ) - ROM_LOAD32_WORD_SWAP( "d83_04.ic8", 0x000002, 0x200000, CRC(79f36cce) SHA1(2c8dc4cd5c4aa335c1e45888f5947acf94fa628a) ) - ROM_LOAD32_WORD_SWAP( "d83_05.ic7", 0x000000, 0x200000, CRC(7787e495) SHA1(1758de5fdd1d12727368d08d7d4752c3756fc23e) ) + ROM_REGION( 0x400000, "tc0480scp", 0 ) + ROM_LOAD32_WORD( "d83_04.ic8", 0x000000, 0x200000, CRC(79f36cce) SHA1(2c8dc4cd5c4aa335c1e45888f5947acf94fa628a) ) + ROM_LOAD32_WORD( "d83_05.ic7", 0x000002, 0x200000, CRC(7787e495) SHA1(1758de5fdd1d12727368d08d7d4752c3756fc23e) ) - ROM_REGION( 0xf00000, "gfx2", 0 ) + ROM_REGION( 0xf00000, "sprites", 0 ) ROM_LOAD16_WORD_SWAP( "d83_06.ic28", 0x000000, 0x200000, CRC(4b71944e) SHA1(e8ed190280c7378fb4edcb192cef0d4d62582ad5) ) ROM_LOAD16_WORD_SWAP( "d83_07.ic30", 0x300000, 0x200000, CRC(29861b61) SHA1(76562b0243c1bc38623c0ef9d20de7572a979e37) ) ROM_LOAD16_WORD_SWAP( "d83_08.ic32", 0x600000, 0x200000, CRC(a0e81e01) SHA1(96ad8cfc849caaf85350cfc7cf23ad23635a3813) ) @@ -807,11 +788,12 @@ ROM_START( cbombers ) ROM_LOAD16_WORD_SWAP( "d83_14.ic44", 0xb00000, 0x100000, CRC(8b6f4f12) SHA1(6a28004d287f00627622376aa3d6704f2684a6f3) ) ROM_LOAD16_WORD_SWAP( "d83_15.ic42", 0xe00000, 0x100000, CRC(1b71175e) SHA1(60ad38ce97fd7995ff2f29d6b1a3b873dc2f0eb3) ) - ROM_REGION( 0x400000, "gfx3", 0 ) + ROM_REGION( 0x200000, "tc0100scn", 0 ) ROM_LOAD16_BYTE( "d83_16.ic19", 0x000001, 0x100000, CRC(d364cf1e) SHA1(ee43f50edf50ec840acfb98b1314140ee9693839) ) ROM_LOAD16_BYTE( "d83_17.ic5", 0x000000, 0x100000, CRC(0ffe737c) SHA1(5923a4edf9d0c8339f793840c2bdc691e2c651e6) ) - ROM_LOAD ( "d83_18.ic6", 0x300000, 0x100000, CRC(87979155) SHA1(0ffafa970f9f9c98f8938104b97e63d2b5757804) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + + ROM_REGION( 0x100000, "tc0100scn:hi_gfx", 0 ) + ROM_LOAD ( "d83_18.ic6", 0x000000, 0x100000, CRC(87979155) SHA1(0ffafa970f9f9c98f8938104b97e63d2b5757804) ) ROM_REGION16_LE( 0x80000, "spritemap", 0 ) ROM_LOAD16_BYTE( "d83_31.ic10", 0x000001, 0x40000, CRC(85c37961) SHA1(15ea5c4904d910575e984e146c8941dff913d45f) ) @@ -845,11 +827,11 @@ ROM_START( cbombersj ) ROM_LOAD16_BYTE( "d83_28.ic26", 0x00001, 0x20000, CRC(06328ef7) SHA1(90a14649e56221e47b87958896f6eae4556265c2) ) ROM_LOAD16_BYTE( "d83_29.ic27", 0x00000, 0x20000, CRC(771b4080) SHA1(a47c3a6abc07a6a61b694d32baa0ad4c25045841) ) - ROM_REGION( 0x400000, "gfx1", 0 ) - ROM_LOAD32_WORD_SWAP( "d83_04.ic8", 0x000002, 0x200000, CRC(79f36cce) SHA1(2c8dc4cd5c4aa335c1e45888f5947acf94fa628a) ) - ROM_LOAD32_WORD_SWAP( "d83_05.ic7", 0x000000, 0x200000, CRC(7787e495) SHA1(1758de5fdd1d12727368d08d7d4752c3756fc23e) ) + ROM_REGION( 0x400000, "tc0480scp", 0 ) + ROM_LOAD32_WORD( "d83_04.ic8", 0x000000, 0x200000, CRC(79f36cce) SHA1(2c8dc4cd5c4aa335c1e45888f5947acf94fa628a) ) + ROM_LOAD32_WORD( "d83_05.ic7", 0x000002, 0x200000, CRC(7787e495) SHA1(1758de5fdd1d12727368d08d7d4752c3756fc23e) ) - ROM_REGION( 0xf00000, "gfx2", 0 ) + ROM_REGION( 0xf00000, "sprites", 0 ) ROM_LOAD16_WORD_SWAP( "d83_06.ic28", 0x000000, 0x200000, CRC(4b71944e) SHA1(e8ed190280c7378fb4edcb192cef0d4d62582ad5) ) ROM_LOAD16_WORD_SWAP( "d83_07.ic30", 0x300000, 0x200000, CRC(29861b61) SHA1(76562b0243c1bc38623c0ef9d20de7572a979e37) ) ROM_LOAD16_WORD_SWAP( "d83_08.ic32", 0x600000, 0x200000, CRC(a0e81e01) SHA1(96ad8cfc849caaf85350cfc7cf23ad23635a3813) ) @@ -861,11 +843,12 @@ ROM_START( cbombersj ) ROM_LOAD16_WORD_SWAP( "d83_14.ic44", 0xb00000, 0x100000, CRC(8b6f4f12) SHA1(6a28004d287f00627622376aa3d6704f2684a6f3) ) ROM_LOAD16_WORD_SWAP( "d83_15.ic42", 0xe00000, 0x100000, CRC(1b71175e) SHA1(60ad38ce97fd7995ff2f29d6b1a3b873dc2f0eb3) ) - ROM_REGION( 0x400000, "gfx3", 0 ) + ROM_REGION( 0x200000, "tc0100scn", 0 ) ROM_LOAD16_BYTE( "d83_16.ic19", 0x000001, 0x100000, CRC(d364cf1e) SHA1(ee43f50edf50ec840acfb98b1314140ee9693839) ) ROM_LOAD16_BYTE( "d83_17.ic5", 0x000000, 0x100000, CRC(0ffe737c) SHA1(5923a4edf9d0c8339f793840c2bdc691e2c651e6) ) - ROM_LOAD ( "d83_18.ic6", 0x300000, 0x100000, CRC(87979155) SHA1(0ffafa970f9f9c98f8938104b97e63d2b5757804) ) - ROM_FILL ( 0x200000, 0x100000, 0x00 ) + + ROM_REGION( 0x100000, "tc0100scn:hi_gfx", 0 ) + ROM_LOAD ( "d83_18.ic6", 0x000000, 0x100000, CRC(87979155) SHA1(0ffafa970f9f9c98f8938104b97e63d2b5757804) ) ROM_REGION16_LE( 0x80000, "spritemap", 0 ) ROM_LOAD16_BYTE( "d83_31.ic10", 0x000001, 0x40000, CRC(85c37961) SHA1(15ea5c4904d910575e984e146c8941dff913d45f) ) @@ -901,17 +884,17 @@ ROM_START( cbombersp ) ROM_LOAD16_BYTE( "5-l.bin", 0x00001, 0x20000, CRC(aed4c3c0) SHA1(004f83ce0739cb2839022eb4d83f82e54776914f) ) ROM_LOAD16_BYTE( "5-h.bin", 0x00000, 0x20000, CRC(c6ec60e4) SHA1(554f19926e050ff2b8c56c30f174aca5a3fff845) ) - ROM_REGION( 0x400000, "gfx1", 0 ) - ROM_LOAD32_BYTE( "scp0aa_2b04_ic35.bin", 0x000000, 0x80000, CRC(b8ec56bd) SHA1(00191fd4b2e315a5a18f2e690a45b6f6a6ebb3d2) ) - ROM_LOAD32_BYTE( "scp0hl_ic9.bin", 0x000001, 0x80000, CRC(5b6e413e) SHA1(7eaee158e985a20b5c228b476ee102f88311423a) ) - ROM_LOAD32_BYTE( "scp0lh_ic22.bin", 0x000002, 0x80000, CRC(d5109bca) SHA1(c4c5b8dbc1139718d2aa73413b1b206f9df10fed) ) - ROM_LOAD32_BYTE( "scp0ll_ic7.bin", 0x000003, 0x80000, CRC(b1af439d) SHA1(a13fb4242808d1f3fc629988912c8186a99fb878) ) - ROM_LOAD32_BYTE( "scp1hh_ic36.bin", 0x200000, 0x80000, CRC(24f545d8) SHA1(c5ae0e714ed4765f3416cb58bc9cfccfbf78081c) ) - ROM_LOAD32_BYTE( "scp1hl_ic24.bin", 0x200001, 0x80000, CRC(46d198ba) SHA1(d9c9ddb23ad8f2abbd0ab2322d31d929085f0591) ) - ROM_LOAD32_BYTE( "scp1lh_ic23.bin", 0x200002, 0x80000, CRC(7c9f0035) SHA1(a5632bd11426ba2cf0016847a3c08a2b90498271) ) - ROM_LOAD32_BYTE( "scp1ll_ic8.bin", 0x200003, 0x80000, CRC(eaa5839a) SHA1(80c7bb1151253a23934b65110db973641f7a073e) ) + ROM_REGION( 0x400000, "tc0480scp", 0 ) + ROM_LOAD32_BYTE( "scp0aa_2b04_ic35.bin", 0x000003, 0x80000, CRC(b8ec56bd) SHA1(00191fd4b2e315a5a18f2e690a45b6f6a6ebb3d2) ) + ROM_LOAD32_BYTE( "scp0hl_ic9.bin", 0x000002, 0x80000, CRC(5b6e413e) SHA1(7eaee158e985a20b5c228b476ee102f88311423a) ) + ROM_LOAD32_BYTE( "scp0lh_ic22.bin", 0x000001, 0x80000, CRC(d5109bca) SHA1(c4c5b8dbc1139718d2aa73413b1b206f9df10fed) ) + ROM_LOAD32_BYTE( "scp0ll_ic7.bin", 0x000000, 0x80000, CRC(b1af439d) SHA1(a13fb4242808d1f3fc629988912c8186a99fb878) ) + ROM_LOAD32_BYTE( "scp1hh_ic36.bin", 0x200003, 0x80000, CRC(24f545d8) SHA1(c5ae0e714ed4765f3416cb58bc9cfccfbf78081c) ) + ROM_LOAD32_BYTE( "scp1hl_ic24.bin", 0x200002, 0x80000, CRC(46d198ba) SHA1(d9c9ddb23ad8f2abbd0ab2322d31d929085f0591) ) + ROM_LOAD32_BYTE( "scp1lh_ic23.bin", 0x200001, 0x80000, CRC(7c9f0035) SHA1(a5632bd11426ba2cf0016847a3c08a2b90498271) ) + ROM_LOAD32_BYTE( "scp1ll_ic8.bin", 0x200000, 0x80000, CRC(eaa5839a) SHA1(80c7bb1151253a23934b65110db973641f7a073e) ) - ROM_REGION( 0xf00000, "gfx2", 0 ) + ROM_REGION( 0xf00000, "sprites", 0 ) // tiles 0x00000 - 0x07fff ROM_LOAD16_BYTE( "obj0l_ic29.bin", 0x0000001, 0x80000, CRC(4b954950) SHA1(cafd9ba3128aa2e7dbde959a705aff8db6c311fa) ) // bp 1 ROM_LOAD16_BYTE( "obj16l_ic20.bin", 0x0300001, 0x80000, CRC(b53932c0) SHA1(94ea6ccc29bd7b7e94d7494aaf0cc19b67c4ce72) ) // bp 2 @@ -946,15 +929,15 @@ ROM_START( cbombersp ) ROM_LOAD16_BYTE( "ic80_d511.bin", 0x0b00000, 0x80000, CRC(37da5baf) SHA1(a78ac413de08a1ff70ab14561b75df633a9e5be8) ) // bp 4 ROM_LOAD16_BYTE( "ic82_3d3d.bin", 0x0e00000, 0x80000, CRC(3e62970e) SHA1(82970accb4ce29034e7b97b74c831ec0314c5a8f) ) // bp 5 - ROM_REGION( 0x400000, "gfx3", 0 ) + ROM_REGION( 0x200000, "tc0100scn", 0 ) ROM_LOAD16_BYTE( "ic44_scc1.bin", 0x000000, 0x080000, CRC(868d0d3d) SHA1(29251d545548856296b5ae32a96f2eeef2418dc4) ) ROM_LOAD16_BYTE( "ic43_scc4.bin", 0x000001, 0x080000, CRC(2f170ee4) SHA1(2b8f07186c9f7589e1af131b8c377443a29bd149) ) - ROM_LOAD ( "ic45_5cc2.bin", 0x300000, 0x080000, CRC(7ae48d63) SHA1(2a8b291f0a683ed5b0c39d221737956b6fc72fa5) ) - ROM_FILL ( 0x200000, 0x080000, 0x00 ) ROM_LOAD16_BYTE( "ic58_f357.bin", 0x100000, 0x080000, CRC(16486967) SHA1(c2fd6c9f21232656b52ab589ac61f94aa728524e) ) ROM_LOAD16_BYTE( "ic57_1a62.bin", 0x100001, 0x080000, CRC(afd45e35) SHA1(6d7c0729c7d2b204473679b97923130e289f429d) ) - ROM_LOAD ( "ic59_7cce.bin", 0x380000, 0x080000, CRC(ee762199) SHA1(d56e96feeedba8b77f8f18cb380d2902ca3f1e50) ) - ROM_FILL ( 0x280000, 0x080000, 0x00 ) + + ROM_REGION( 0x100000, "tc0100scn:hi_gfx", 0 ) + ROM_LOAD ( "ic45_5cc2.bin", 0x000000, 0x080000, CRC(7ae48d63) SHA1(2a8b291f0a683ed5b0c39d221737956b6fc72fa5) ) + ROM_LOAD ( "ic59_7cce.bin", 0x080000, 0x080000, CRC(ee762199) SHA1(d56e96feeedba8b77f8f18cb380d2902ca3f1e50) ) ROM_REGION16_LE( 0x80000, "spritemap", 0 ) ROM_LOAD16_BYTE( "st8_ic2.bin", 0x000001, 0x40000, CRC(d74254d8) SHA1(f4a4f9d95f70edf74d937be067d6a9f68a955ea7) ) @@ -985,26 +968,41 @@ ROM_END void undrfire_state::driver_init() { - u8 *gfx = memregion("gfx3")->base(); - const u32 size = memregion("gfx3")->bytes(); - /* make SCC tile GFX format suitable for gfxdecode */ - u32 offset = size / 2; - for (u32 i = size / 2 + size / 4; i < size; i++) + u8 *gfx_hi = memregion("tc0100scn:hi_gfx")->base(); + gfx_element *gx0 = m_gfxdecode->gfx(2); + + // allocate memory for the assembled data + u8 *srcdata = auto_alloc_array(machine(), u8, gx0->elements() * gx0->width() * gx0->height()); + + // loop over elements + u8 *dest = srcdata; + for (int c = 0; c < gx0->elements(); c++) { - /* Expand 2bits into 4bits format */ - const u8 data = gfx[i]; - const u8 d1 = (data >> 0) & 3; - const u8 d2 = (data >> 2) & 3; - const u8 d3 = (data >> 4) & 3; - const u8 d4 = (data >> 6) & 3; + const u8 *c0base = gx0->get_data(c); - gfx[offset] = (d3 << 2) | (d4 << 6); - offset++; + // loop over height + for (int y = 0; y < gx0->height(); y++) + { + const u8 *c0 = c0base; - gfx[offset] = (d1 << 2) | (d2 << 6); - offset++; + for (int x = 0; x < gx0->width();) + { + u8 hipix = *gfx_hi++; + for (int i = 0; i < 4; i++) + { + *dest++ = (*c0++ & 0xf) | ((hipix >> 2) & 0x30); + x++; + hipix <<= 2; + } + } + c0base += gx0->rowbytes(); + } } + + gx0->set_raw_layout(srcdata, gx0->width(), gx0->height(), gx0->elements(), 8 * gx0->width(), 8 * gx0->width() * gx0->height()); + gx0->set_granularity(64); + m_tc0100scn->update_granularity(); } diff --git a/src/mame/drivers/warriorb.cpp b/src/mame/drivers/warriorb.cpp index f80029c4638..4187d6f0f57 100644 --- a/src/mame/drivers/warriorb.cpp +++ b/src/mame/drivers/warriorb.cpp @@ -197,7 +197,7 @@ void warriorb_state::pancontrol_w(offs_t offset, u8 data) } -WRITE16_MEMBER(warriorb_state::tc0100scn_dual_screen_w) +void warriorb_state::tc0100scn_dual_screen_w(offs_t offset, u16 data, u16 mem_mask) { m_tc0100scn[0]->ram_w(offset, data, mem_mask); m_tc0100scn[1]->ram_w(offset, data, mem_mask); @@ -376,36 +376,14 @@ INPUT_PORTS_END GFX DECODING ***********************************************************/ -static const gfx_layout tilelayout = -{ - 16,16, /* 16*16 sprites */ - RGN_FRAC(1,1), - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, - { 3*4, 2*4, 11*4, 10*4, 1*4, 0*4, 9*4, 8*4, 7*4, 6*4, 15*4, 14*4, 5*4, 4*4, 13*4, 12*4 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 128*8 /* every sprite takes 128 consecutive bytes */ -}; - -static const gfx_layout charlayout = -{ - 8,8, /* 8*8 characters */ - RGN_FRAC(1,1), - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, - { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 32*8 /* every sprite takes 32 consecutive bytes */ -}; - static GFXDECODE_START( gfx_warriorb_1 ) - GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0, 256 ) /* sprites */ - GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 256 ) /* scr tiles (screen 1) */ + GFXDECODE_ENTRY( "sprites", 0, gfx_16x16x4_packed_lsb, 0, 256 ) /* sprites */ + GFXDECODE_ENTRY( "tc0100scn_1", 0, gfx_8x8x4_packed_msb, 0, 256 ) /* scr tiles (screen 1) */ GFXDECODE_END static GFXDECODE_START( gfx_warriorb_2 ) - GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0, 256 ) /* sprites */ - GFXDECODE_ENTRY( "gfx3", 0, charlayout, 0, 256 ) /* scr tiles (screen 2) */ + GFXDECODE_ENTRY( "sprites", 0, gfx_16x16x4_packed_lsb, 0, 256 ) /* sprites */ + GFXDECODE_ENTRY( "tc0100scn_2", 0, gfx_8x8x4_packed_msb, 0, 256 ) /* scr tiles (screen 2) */ GFXDECODE_END /*********************************************************** @@ -428,11 +406,11 @@ void warriorb_state::machine_reset() void warriorb_state::darius2d(machine_config &config) { /* basic machine hardware */ - M68000(config, m_maincpu, 12000000); /* 12 MHz ??? (Might well be 16!) */ + M68000(config, m_maincpu, 16_MHz_XTAL); /* MC68000P12F 16 MHz, 16 MHz XTAL */ m_maincpu->set_addrmap(AS_PROGRAM, &warriorb_state::darius2d_map); m_maincpu->set_vblank_int("lscreen", FUNC(warriorb_state::irq4_line_hold)); - z80_device &audiocpu(Z80(config, "audiocpu", 16000000/4)); /* 4 MHz ? */ + z80_device &audiocpu(Z80(config, "audiocpu", 16_MHz_XTAL / 4)); /* 4 MHz (16 MHz XTAL / 4) */ audiocpu.set_addrmap(AS_PROGRAM, &warriorb_state::z80_sound_map); TC0220IOC(config, m_tc0220ioc, 0); @@ -486,7 +464,7 @@ void warriorb_state::darius2d(machine_config &config) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - ym2610_device &ymsnd(YM2610(config, "ymsnd", 16000000/2)); + ym2610_device &ymsnd(YM2610(config, "ymsnd", 16_MHz_XTAL / 2)); ymsnd.irq_handler().set_inputline("audiocpu", 0); ymsnd.add_route(0, "lspeaker", 0.25); ymsnd.add_route(0, "rspeaker", 0.25); @@ -508,11 +486,11 @@ void warriorb_state::darius2d(machine_config &config) void warriorb_state::warriorb(machine_config &config) { /* basic machine hardware */ - M68000(config, m_maincpu, 16000000); /* 16 MHz ? */ + M68000(config, m_maincpu, 16_MHz_XTAL); /* MC68000P12F 16 MHz, 16 MHz XTAL */ m_maincpu->set_addrmap(AS_PROGRAM, &warriorb_state::warriorb_map); m_maincpu->set_vblank_int("lscreen", FUNC(warriorb_state::irq4_line_hold)); - z80_device &audiocpu(Z80(config, "audiocpu", 16000000/4)); /* 4 MHz ? */ + z80_device &audiocpu(Z80(config, "audiocpu", 16_MHz_XTAL / 4)); /* 4 MHz (16 MHz XTAL / 4) */ audiocpu.set_addrmap(AS_PROGRAM, &warriorb_state::z80_sound_map); TC0510NIO(config, m_tc0510nio, 0); @@ -567,7 +545,7 @@ void warriorb_state::warriorb(machine_config &config) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - ym2610b_device &ymsnd(YM2610B(config, "ymsnd", 16000000/2)); + ym2610b_device &ymsnd(YM2610B(config, "ymsnd", 16_MHz_XTAL / 2)); ymsnd.irq_handler().set_inputline("audiocpu", 0); ymsnd.add_route(0, "lspeaker", 0.25); ymsnd.add_route(0, "rspeaker", 0.25); @@ -603,22 +581,19 @@ ROM_START( sagaia ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c07_41.69", 0x00000, 0x20000, CRC(b50256ea) SHA1(6ed271e4dafd1c759adaa55d5b2343d7374c721a) ) - ROM_REGION( 0x100000, "gfx1", 0 ) - ROM_LOAD( "c07-03.12", 0x00000, 0x80000, CRC(189bafce) SHA1(d885e444523489fe24269b90dec58e0d92cfbd6e) ) /* SCr(screen 1) */ - ROM_LOAD( "c07-04.11", 0x80000, 0x80000, CRC(50421e81) SHA1(27ac420602f1dac00dc32903543a518e6f47fb2f) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD( "c07-05.24", 0x00000, 0x80000, CRC(fb6d0550) SHA1(2d570ff5ef262cb4cb52e8584a7f167263194d37) ) /* OBJ */ + ROM_LOAD64_WORD( "c07-06.27", 0x00002, 0x80000, CRC(5eebbcd6) SHA1(d4d860bf6b099956c45c7273ad77b1d35deba4c1) ) + ROM_LOAD64_WORD( "c07-07.26", 0x00004, 0x80000, CRC(fd9f9e74) SHA1(e89beb5cac844fe16662465b0c76337692591aae) ) + ROM_LOAD64_WORD( "c07-08.25", 0x00006, 0x80000, CRC(a07dc846) SHA1(7199a604fcd693215ddb7670bfb2daf150145fd7) ) - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "c07-06.27", 0x00000, 0x80000, CRC(5eebbcd6) SHA1(d4d860bf6b099956c45c7273ad77b1d35deba4c1) ) /* OBJ */ - ROM_LOAD32_BYTE( "c07-05.24", 0x00001, 0x80000, CRC(fb6d0550) SHA1(2d570ff5ef262cb4cb52e8584a7f167263194d37) ) - ROM_LOAD32_BYTE( "c07-08.25", 0x00002, 0x80000, CRC(a07dc846) SHA1(7199a604fcd693215ddb7670bfb2daf150145fd7) ) - ROM_LOAD32_BYTE( "c07-07.26", 0x00003, 0x80000, CRC(fd9f9e74) SHA1(e89beb5cac844fe16662465b0c76337692591aae) ) + ROM_REGION( 0x100000, "tc0100scn_1", 0 ) + ROM_LOAD16_WORD_SWAP( "c07-03.12", 0x00000, 0x80000, CRC(189bafce) SHA1(d885e444523489fe24269b90dec58e0d92cfbd6e) ) /* SCr(screen 1) */ + ROM_LOAD16_WORD_SWAP( "c07-04.11", 0x80000, 0x80000, CRC(50421e81) SHA1(27ac420602f1dac00dc32903543a518e6f47fb2f) ) - ROM_REGION( 0x100000, "gfx3", 0 ) - ROM_COPY( "gfx1", 0x00000, 0x000000, 0x100000 ) /* SCr(screen 2) */ - -/* The actual board duplicates the SCR gfx roms for the 2nd TC0100SCN */ -// ROM_LOAD( "c07-03.47", 0x00000, 0x80000, CRC(189bafce) SHA1(d885e444523489fe24269b90dec58e0d92cfbd6e) ) -// ROM_LOAD( "c07-04.48", 0x80000, 0x80000, CRC(50421e81) SHA1(27ac420602f1dac00dc32903543a518e6f47fb2f) ) + ROM_REGION( 0x100000, "tc0100scn_2", 0 ) + ROM_LOAD16_WORD_SWAP( "c07-03.47", 0x00000, 0x80000, CRC(189bafce) SHA1(d885e444523489fe24269b90dec58e0d92cfbd6e) ) /* SCr(screen 2) */ + ROM_LOAD16_WORD_SWAP( "c07-04.48", 0x80000, 0x80000, CRC(50421e81) SHA1(27ac420602f1dac00dc32903543a518e6f47fb2f) ) ROM_REGION( 0x100000, "ymsnd", 0 ) /* ADPCM samples */ ROM_LOAD( "c07-10.95", 0x00000, 0x80000, CRC(4bbe0ed9) SHA1(081b73c4e4d4fa548445e5548573099bcb1e9213) ) @@ -648,22 +623,19 @@ ROM_START( darius2d ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c07_17.69", 0x00000, 0x20000, CRC(ae16c905) SHA1(70ba5aacd8a8e00b94719e3955abad8827c67aa8) ) - ROM_REGION( 0x100000, "gfx1", 0 ) - ROM_LOAD( "c07-03.12", 0x00000, 0x80000, CRC(189bafce) SHA1(d885e444523489fe24269b90dec58e0d92cfbd6e) ) /* SCr(screen 1) */ - ROM_LOAD( "c07-04.11", 0x80000, 0x80000, CRC(50421e81) SHA1(27ac420602f1dac00dc32903543a518e6f47fb2f) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD( "c07-05.24", 0x00000, 0x80000, CRC(fb6d0550) SHA1(2d570ff5ef262cb4cb52e8584a7f167263194d37) ) /* OBJ */ + ROM_LOAD64_WORD( "c07-06.27", 0x00002, 0x80000, CRC(5eebbcd6) SHA1(d4d860bf6b099956c45c7273ad77b1d35deba4c1) ) + ROM_LOAD64_WORD( "c07-07.26", 0x00004, 0x80000, CRC(fd9f9e74) SHA1(e89beb5cac844fe16662465b0c76337692591aae) ) + ROM_LOAD64_WORD( "c07-08.25", 0x00006, 0x80000, CRC(a07dc846) SHA1(7199a604fcd693215ddb7670bfb2daf150145fd7) ) - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "c07-06.27", 0x00000, 0x80000, CRC(5eebbcd6) SHA1(d4d860bf6b099956c45c7273ad77b1d35deba4c1) ) /* OBJ */ - ROM_LOAD32_BYTE( "c07-05.24", 0x00001, 0x80000, CRC(fb6d0550) SHA1(2d570ff5ef262cb4cb52e8584a7f167263194d37) ) - ROM_LOAD32_BYTE( "c07-08.25", 0x00002, 0x80000, CRC(a07dc846) SHA1(7199a604fcd693215ddb7670bfb2daf150145fd7) ) - ROM_LOAD32_BYTE( "c07-07.26", 0x00003, 0x80000, CRC(fd9f9e74) SHA1(e89beb5cac844fe16662465b0c76337692591aae) ) + ROM_REGION( 0x100000, "tc0100scn_1", 0 ) + ROM_LOAD16_WORD_SWAP( "c07-03.12", 0x00000, 0x80000, CRC(189bafce) SHA1(d885e444523489fe24269b90dec58e0d92cfbd6e) ) /* SCr(screen 1) */ + ROM_LOAD16_WORD_SWAP( "c07-04.11", 0x80000, 0x80000, CRC(50421e81) SHA1(27ac420602f1dac00dc32903543a518e6f47fb2f) ) - ROM_REGION( 0x100000, "gfx3", 0 ) - ROM_COPY( "gfx1", 0x00000, 0x000000, 0x100000 ) /* SCr(screen 2) */ - -/* The actual board duplicates the SCR gfx roms for the 2nd TC0100SCN */ -// ROM_LOAD( "c07-03.47", 0x00000, 0x80000, CRC(189bafce) SHA1(d885e444523489fe24269b90dec58e0d92cfbd6e) ) -// ROM_LOAD( "c07-04.48", 0x80000, 0x80000, CRC(50421e81) SHA1(27ac420602f1dac00dc32903543a518e6f47fb2f) ) + ROM_REGION( 0x100000, "tc0100scn_2", 0 ) + ROM_LOAD16_WORD_SWAP( "c07-03.47", 0x00000, 0x80000, CRC(189bafce) SHA1(d885e444523489fe24269b90dec58e0d92cfbd6e) ) /* SCr(screen 2) */ + ROM_LOAD16_WORD_SWAP( "c07-04.48", 0x80000, 0x80000, CRC(50421e81) SHA1(27ac420602f1dac00dc32903543a518e6f47fb2f) ) ROM_REGION( 0x100000, "ymsnd", 0 ) /* ADPCM samples */ ROM_LOAD( "c07-10.95", 0x00000, 0x80000, CRC(4bbe0ed9) SHA1(081b73c4e4d4fa548445e5548573099bcb1e9213) ) @@ -693,22 +665,19 @@ ROM_START( darius2do ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "c07_17.69", 0x00000, 0x20000, CRC(ae16c905) SHA1(70ba5aacd8a8e00b94719e3955abad8827c67aa8) ) - ROM_REGION( 0x100000, "gfx1", 0 ) - ROM_LOAD( "c07-03.12", 0x00000, 0x80000, CRC(189bafce) SHA1(d885e444523489fe24269b90dec58e0d92cfbd6e) ) /* SCr(screen 1) */ - ROM_LOAD( "c07-04.11", 0x80000, 0x80000, CRC(50421e81) SHA1(27ac420602f1dac00dc32903543a518e6f47fb2f) ) + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD64_WORD( "c07-05.24", 0x00000, 0x80000, CRC(fb6d0550) SHA1(2d570ff5ef262cb4cb52e8584a7f167263194d37) ) /* OBJ */ + ROM_LOAD64_WORD( "c07-06.27", 0x00002, 0x80000, CRC(5eebbcd6) SHA1(d4d860bf6b099956c45c7273ad77b1d35deba4c1) ) + ROM_LOAD64_WORD( "c07-07.26", 0x00004, 0x80000, CRC(fd9f9e74) SHA1(e89beb5cac844fe16662465b0c76337692591aae) ) + ROM_LOAD64_WORD( "c07-08.25", 0x00006, 0x80000, CRC(a07dc846) SHA1(7199a604fcd693215ddb7670bfb2daf150145fd7) ) - ROM_REGION( 0x200000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "c07-06.27", 0x00000, 0x80000, CRC(5eebbcd6) SHA1(d4d860bf6b099956c45c7273ad77b1d35deba4c1) ) /* OBJ */ - ROM_LOAD32_BYTE( "c07-05.24", 0x00001, 0x80000, CRC(fb6d0550) SHA1(2d570ff5ef262cb4cb52e8584a7f167263194d37) ) - ROM_LOAD32_BYTE( "c07-08.25", 0x00002, 0x80000, CRC(a07dc846) SHA1(7199a604fcd693215ddb7670bfb2daf150145fd7) ) - ROM_LOAD32_BYTE( "c07-07.26", 0x00003, 0x80000, CRC(fd9f9e74) SHA1(e89beb5cac844fe16662465b0c76337692591aae) ) + ROM_REGION( 0x100000, "tc0100scn_1", 0 ) + ROM_LOAD16_WORD_SWAP( "c07-03.12", 0x00000, 0x80000, CRC(189bafce) SHA1(d885e444523489fe24269b90dec58e0d92cfbd6e) ) /* SCr(screen 1) */ + ROM_LOAD16_WORD_SWAP( "c07-04.11", 0x80000, 0x80000, CRC(50421e81) SHA1(27ac420602f1dac00dc32903543a518e6f47fb2f) ) - ROM_REGION( 0x100000, "gfx3", 0 ) - ROM_COPY( "gfx1", 0x00000, 0x000000, 0x100000 ) /* SCr(screen 2) */ - -/* The actual board duplicates the SCR gfx roms for the 2nd TC0100SCN */ -// ROM_LOAD( "c07-03.47", 0x00000, 0x80000, CRC(189bafce) SHA1(d885e444523489fe24269b90dec58e0d92cfbd6e) ) -// ROM_LOAD( "c07-04.48", 0x80000, 0x80000, CRC(50421e81) SHA1(27ac420602f1dac00dc32903543a518e6f47fb2f) ) + ROM_REGION( 0x100000, "tc0100scn_2", 0 ) + ROM_LOAD16_WORD_SWAP( "c07-03.47", 0x00000, 0x80000, CRC(189bafce) SHA1(d885e444523489fe24269b90dec58e0d92cfbd6e) ) /* SCr(screen 2) */ + ROM_LOAD16_WORD_SWAP( "c07-04.48", 0x80000, 0x80000, CRC(50421e81) SHA1(27ac420602f1dac00dc32903543a518e6f47fb2f) ) ROM_REGION( 0x100000, "ymsnd", 0 ) /* ADPCM samples */ ROM_LOAD( "c07-10.95", 0x00000, 0x80000, CRC(4bbe0ed9) SHA1(081b73c4e4d4fa548445e5548573099bcb1e9213) ) @@ -735,19 +704,19 @@ ROM_START( warriorb ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound cpu */ ROM_LOAD( "d24_17.69", 0x00000, 0x20000, CRC(e41e4aae) SHA1(9bf40b6e8aa5c6ec62c5d21edbb2214f6550c94f) ) - ROM_REGION( 0x200000, "gfx1", 0 ) - ROM_LOAD( "d24-02.12", 0x000000, 0x100000, CRC(9f50c271) SHA1(1a1b2ae7cb7785e7f66aa26258a6cd2921a29545) ) /* SCR A, screen 1 */ - ROM_LOAD( "d24-01.11", 0x100000, 0x100000, CRC(326dcca9) SHA1(1993776d71bca7d6dfc6f84dd9262d0dcae87f69) ) + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD64_WORD( "d24-03.24", 0x000000, 0x100000, CRC(46db9fd7) SHA1(f08f3c9833d80ce161b06f4ae484c5c79539639c) ) /* OBJ */ + ROM_LOAD64_WORD( "d24-06.27", 0x000002, 0x100000, CRC(918486fe) SHA1(cc9e287221ef33dba77a22975e23b250ba50b758) ) + ROM_LOAD64_WORD( "d24-05.26", 0x000004, 0x100000, CRC(9f414317) SHA1(204cf47404e5e1085c1108abacd2b79a6cd0f74a) ) + ROM_LOAD64_WORD( "d24-04.25", 0x000006, 0x100000, CRC(148e0493) SHA1(f1cb819830e5bd544b11762784e228b5cb62b7e4) ) - ROM_REGION( 0x400000, "gfx2", 0 ) - ROM_LOAD32_BYTE( "d24-06.27", 0x000000, 0x100000, CRC(918486fe) SHA1(cc9e287221ef33dba77a22975e23b250ba50b758) ) /* OBJ */ - ROM_LOAD32_BYTE( "d24-03.24", 0x000001, 0x100000, CRC(46db9fd7) SHA1(f08f3c9833d80ce161b06f4ae484c5c79539639c) ) - ROM_LOAD32_BYTE( "d24-04.25", 0x000002, 0x100000, CRC(148e0493) SHA1(f1cb819830e5bd544b11762784e228b5cb62b7e4) ) - ROM_LOAD32_BYTE( "d24-05.26", 0x000003, 0x100000, CRC(9f414317) SHA1(204cf47404e5e1085c1108abacd2b79a6cd0f74a) ) + ROM_REGION( 0x200000, "tc0100scn_1", 0 ) + ROM_LOAD16_WORD_SWAP( "d24-02.12", 0x000000, 0x100000, CRC(9f50c271) SHA1(1a1b2ae7cb7785e7f66aa26258a6cd2921a29545) ) /* SCR A, screen 1 */ + ROM_LOAD16_WORD_SWAP( "d24-01.11", 0x100000, 0x100000, CRC(326dcca9) SHA1(1993776d71bca7d6dfc6f84dd9262d0dcae87f69) ) - ROM_REGION( 0x200000, "gfx3", 0 ) - ROM_LOAD( "d24-07.47", 0x000000, 0x100000, CRC(9f50c271) SHA1(1a1b2ae7cb7785e7f66aa26258a6cd2921a29545) ) /* SCR B, screen 2 */ - ROM_LOAD( "d24-08.48", 0x100000, 0x100000, CRC(1e6d1528) SHA1(d6843aa67befd7db44f468be16ba2f0efb85d40f) ) + ROM_REGION( 0x200000, "tc0100scn_2", 0 ) + ROM_LOAD16_WORD_SWAP( "d24-07.47", 0x000000, 0x100000, CRC(9f50c271) SHA1(1a1b2ae7cb7785e7f66aa26258a6cd2921a29545) ) /* SCR B, screen 2 */ + ROM_LOAD16_WORD_SWAP( "d24-08.48", 0x100000, 0x100000, CRC(1e6d1528) SHA1(d6843aa67befd7db44f468be16ba2f0efb85d40f) ) ROM_REGION( 0x300000, "ymsnd", 0 ) /* ADPCM samples */ ROM_LOAD( "d24-12.107", 0x000000, 0x100000, CRC(279203a1) SHA1(ed75e811a1f0863c134034457ce2e97372726bdb) ) diff --git a/src/mame/drivers/xbox.cpp b/src/mame/drivers/xbox.cpp index d711932aa4f..3cfd148641a 100644 --- a/src/mame/drivers/xbox.cpp +++ b/src/mame/drivers/xbox.cpp @@ -4,8 +4,6 @@ XBOX (c) 2001 Microsoft - Skeleton driver - ***************************************************************************/ @@ -33,15 +31,14 @@ class xbox_state : public xbox_base_state public: xbox_state(const machine_config &mconfig, device_type type, const char *tag) : xbox_base_state(mconfig, type, tag) - , m_ide(*this, "pci:09.0:ide") - , m_devh(*this, "pci:09.0:ide:0:hdd") - , m_devc(*this, "pci:09.0:ide:1:cdrom") + , m_ide(*this, "pci:09.0:ide1") + , m_devh(*this, "pci:09.0:ide1:0:hdd") + , m_devc(*this, "pci:09.0:ide1:1:cdrom") { } void xbox(machine_config &config); protected: void xbox_map(address_map &map); - void xbox_map_io(address_map &map); // driver_device overrides virtual void machine_start() override; @@ -62,15 +59,9 @@ void xbox_state::video_start() void xbox_state::xbox_map(address_map &map) { - xbox_base_map(map); map(0xff000000, 0xff0fffff).rom().region("bios", 0).mirror(0x00f00000); } -void xbox_state::xbox_map_io(address_map &map) -{ - xbox_base_map_io(map); -} - static INPUT_PORTS_START( xbox ) /* dummy active high structure */ PORT_START("SYSA") @@ -174,9 +165,8 @@ void xbox_state::xbox(machine_config &config) { xbox_base(config); m_maincpu->set_addrmap(AS_PROGRAM, &xbox_state::xbox_map); - m_maincpu->set_addrmap(AS_IO, &xbox_state::xbox_map_io); - subdevice(":pci:09.0:ide")->options(xbox_ata_devices, "hdd", "cdrom", true); + subdevice(":pci:09.0:ide1")->options(xbox_ata_devices, "hdd", "cdrom", true); OHCI_USB_CONNECTOR(config, ":pci:02.0:port1", usb_xbox, nullptr, false); OHCI_USB_CONNECTOR(config, ":pci:02.0:port2", usb_xbox, nullptr, false); diff --git a/src/mame/includes/ashnojoe.h b/src/mame/includes/ashnojoe.h index 458bc126c00..bcbe689ae82 100644 --- a/src/mame/includes/ashnojoe.h +++ b/src/mame/includes/ashnojoe.h @@ -19,14 +19,9 @@ class ashnojoe_state : public driver_device public: ashnojoe_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_tileram_3(*this, "tileram_3"), - m_tileram_4(*this, "tileram_4"), - m_tileram_5(*this, "tileram_5"), - m_tileram_2(*this, "tileram_2"), - m_tileram_6(*this, "tileram_6"), - m_tileram_7(*this, "tileram_7"), - m_tileram(*this, "tileram"), + m_tileram(*this, "tileram_%u", 1U), m_tilemap_reg(*this, "tilemap_reg"), + m_audiobank(*this, "audiobank"), m_maincpu(*this, "maincpu"), m_audiocpu(*this, "audiocpu"), m_msm(*this, "msm"), @@ -34,29 +29,27 @@ public: m_soundlatch(*this, "soundlatch") { } + void init_ashnojoe(); + + void ashnojoe(machine_config &config); + +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + virtual void video_start() override; + +private: /* memory pointers */ - uint16_t * m_tileram_1; - required_shared_ptr m_tileram_3; - required_shared_ptr m_tileram_4; - required_shared_ptr m_tileram_5; - required_shared_ptr m_tileram_2; - required_shared_ptr m_tileram_6; - required_shared_ptr m_tileram_7; - required_shared_ptr m_tileram; - required_shared_ptr m_tilemap_reg; + required_shared_ptr_array m_tileram; + required_shared_ptr m_tilemap_reg; + required_memory_bank m_audiobank; /* video-related */ - tilemap_t *m_joetilemap; - tilemap_t *m_joetilemap2; - tilemap_t *m_joetilemap3; - tilemap_t *m_joetilemap4; - tilemap_t *m_joetilemap5; - tilemap_t *m_joetilemap6; - tilemap_t *m_joetilemap7; + tilemap_t *m_tilemap[7]; /* sound-related */ - uint8_t m_adpcm_byte; - int m_msm5205_vclk_toggle; + u8 m_adpcm_byte; + int m_msm5205_vclk_toggle; /* devices */ required_device m_maincpu; @@ -65,34 +58,24 @@ public: required_device m_gfxdecode; required_device m_soundlatch; - DECLARE_READ16_MEMBER(fake_4a00a_r); - DECLARE_WRITE8_MEMBER(adpcm_w); - DECLARE_READ8_MEMBER(sound_latch_status_r); - DECLARE_WRITE16_MEMBER(ashnojoe_tileram_w); - DECLARE_WRITE16_MEMBER(ashnojoe_tileram2_w); - DECLARE_WRITE16_MEMBER(ashnojoe_tileram3_w); - DECLARE_WRITE16_MEMBER(ashnojoe_tileram4_w); - DECLARE_WRITE16_MEMBER(ashnojoe_tileram5_w); - DECLARE_WRITE16_MEMBER(ashnojoe_tileram6_w); - DECLARE_WRITE16_MEMBER(ashnojoe_tileram7_w); - DECLARE_WRITE16_MEMBER(joe_tilemaps_xscroll_w); - DECLARE_WRITE16_MEMBER(joe_tilemaps_yscroll_w); - DECLARE_WRITE8_MEMBER(ym2203_write_a); - DECLARE_WRITE8_MEMBER(ym2203_write_b); - void init_ashnojoe(); - TILE_GET_INFO_MEMBER(get_joe_tile_info); - TILE_GET_INFO_MEMBER(get_joe_tile_info_2); - TILE_GET_INFO_MEMBER(get_joe_tile_info_3); - TILE_GET_INFO_MEMBER(get_joe_tile_info_4); - TILE_GET_INFO_MEMBER(get_joe_tile_info_5); - TILE_GET_INFO_MEMBER(get_joe_tile_info_6); - TILE_GET_INFO_MEMBER(get_joe_tile_info_7); - virtual void machine_start() override; - virtual void machine_reset() override; - virtual void video_start() override; - uint32_t screen_update_ashnojoe(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + u16 fake_4a00a_r(); + void adpcm_w(u8 data); + u8 sound_latch_status_r(); + template void tileram_8x8_w(offs_t offset, u16 data); + template void tileram_16x16_w(offs_t offset, u16 data); + void tilemaps_xscroll_w(offs_t offset, u16 data); + void tilemaps_yscroll_w(offs_t offset, u16 data); + void tilemap_regs_w(offs_t offset, u16 data, u16 mem_mask); + void ym2203_write_a(u8 data); + void ym2203_write_b(u8 data); + TILE_GET_INFO_MEMBER(get_tile_info_highest); + TILE_GET_INFO_MEMBER(get_tile_info_midlow); + TILE_GET_INFO_MEMBER(get_tile_info_high); + TILE_GET_INFO_MEMBER(get_tile_info_low); + TILE_GET_INFO_MEMBER(get_tile_info_midhigh); + TILE_GET_INFO_MEMBER(get_tile_info_lowest); + u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); DECLARE_WRITE_LINE_MEMBER(ashnojoe_vclk_cb); - void ashnojoe(machine_config &config); void ashnojoe_map(address_map &map); void sound_map(address_map &map); void sound_portmap(address_map &map); diff --git a/src/mame/includes/asuka.h b/src/mame/includes/asuka.h index 8eb1492a286..4687e120fb1 100644 --- a/src/mame/includes/asuka.h +++ b/src/mame/includes/asuka.h @@ -34,62 +34,39 @@ public: asuka_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , m_cadash_shared_ram(*this, "sharedram") + , m_audiobank(*this, "audiobank") , m_maincpu(*this, "maincpu") , m_audiocpu(*this, "audiocpu") , m_cchip(*this, "cchip") , m_msm(*this, "msm") , m_adpcm_select(*this, "adpcm_select") - , m_sound_data(*this, "ymsnd") + , m_sound_data(*this, "msm") , m_pc090oj(*this, "pc090oj") , m_tc0100scn(*this, "tc0100scn") , m_tc0110pcr(*this, "tc0110pcr") , m_tc0220ioc(*this, "tc0220ioc") , m_cchip_irq_clear(*this, "cchip_irq_clear") - , m_audiobank(*this, "audiobank") { } - DECLARE_WRITE8_MEMBER(coin_control_w); - DECLARE_WRITE8_MEMBER(sound_bankswitch_w); - DECLARE_WRITE8_MEMBER(asuka_msm5205_address_w); - DECLARE_READ16_MEMBER(cadash_share_r); - DECLARE_WRITE16_MEMBER(cadash_share_w); - DECLARE_WRITE16_MEMBER(asuka_spritectrl_w); - DECLARE_WRITE8_MEMBER(asuka_msm5205_start_w); - DECLARE_WRITE8_MEMBER(asuka_msm5205_stop_w); - DECLARE_WRITE8_MEMBER(counters_w); - virtual void machine_start() override; - virtual void machine_reset() override; - uint32_t screen_update_bonzeadv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - uint32_t screen_update_asuka(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - DECLARE_WRITE_LINE_MEMBER(screen_vblank_asuka); - INTERRUPT_GEN_MEMBER(cadash_interrupt); void init_cadash(); void init_earthjkr(); - INTERRUPT_GEN_MEMBER(bonze_interrupt); - TIMER_DEVICE_CALLBACK_MEMBER(cchip_irq_clear_cb); - - DECLARE_WRITE_LINE_MEMBER(asuka_msm5205_vck); void mofflott(machine_config &config); void asuka(machine_config &config); void cadash(machine_config &config); void eto(machine_config &config); void bonzeadv(machine_config &config); - void asuka_map(address_map &map); - void bonzeadv_map(address_map &map); - void bonzeadv_z80_map(address_map &map); - void cadash_map(address_map &map); - void cadash_sub_io(address_map &map); - void cadash_sub_map(address_map &map); - void cadash_z80_map(address_map &map); - void eto_map(address_map &map); - void z80_map(address_map &map); + protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + virtual void machine_start() override; + virtual void machine_reset() override; - /* video-related */ - u16 m_video_ctrl; - u16 m_video_mask; +private: + // memory pointers + optional_shared_ptr m_cadash_shared_ram; + + required_memory_bank m_audiobank; /* misc */ u16 m_adpcm_pos; @@ -97,8 +74,6 @@ protected: emu_timer *m_cadash_int5_timer; - optional_shared_ptr m_cadash_shared_ram; - /* devices */ required_device m_maincpu; required_device m_audiocpu; @@ -113,7 +88,33 @@ protected: optional_device m_cchip_irq_clear; - required_memory_bank m_audiobank; + void coin_control_w(u8 data); + void sound_bankswitch_w(u8 data); + void msm5205_address_w(u8 data); + u16 cadash_share_r(offs_t offset); + void cadash_share_w(offs_t offset, u16 data); + void asuka_spritectrl_w(u16 data); + void msm5205_start_w(u8 data); + void msm5205_stop_w(u8 data); + void counters_w(u8 data); + uint32_t screen_update_bonzeadv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + uint32_t screen_update_asuka(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + DECLARE_WRITE_LINE_MEMBER(screen_vblank_asuka); + INTERRUPT_GEN_MEMBER(cadash_interrupt); + INTERRUPT_GEN_MEMBER(bonze_interrupt); + TIMER_DEVICE_CALLBACK_MEMBER(cchip_irq_clear_cb); + + DECLARE_WRITE_LINE_MEMBER(asuka_msm5205_vck); + + void asuka_map(address_map &map); + void bonzeadv_map(address_map &map); + void bonzeadv_z80_map(address_map &map); + void cadash_map(address_map &map); + void cadash_sub_io(address_map &map); + void cadash_sub_map(address_map &map); + void cadash_z80_map(address_map &map); + void eto_map(address_map &map); + void z80_map(address_map &map); }; #endif // MAME_INCLUDES_ASUKA_H diff --git a/src/mame/includes/mcr.h b/src/mame/includes/mcr.h index 12742d2cc1d..6205110d251 100644 --- a/src/mame/includes/mcr.h +++ b/src/mame/includes/mcr.h @@ -17,6 +17,7 @@ #include "machine/z80pio.h" #include "machine/z80dart.h" #include "machine/watchdog.h" +#include "audio/bally.h" #include "audio/midway.h" #include "audio/csd.h" #include "sound/samples.h" @@ -126,7 +127,7 @@ protected: optional_device m_cheap_squeak_deluxe; optional_device m_sounds_good; optional_device m_turbo_cheap_squeak; - optional_device m_squawk_n_talk; + optional_device m_squawk_n_talk; optional_device m_samples; required_device m_gfxdecode; required_device m_palette; diff --git a/src/mame/includes/mtx.h b/src/mame/includes/mtx.h index 111ac5931f3..98142043f14 100644 --- a/src/mame/includes/mtx.h +++ b/src/mame/includes/mtx.h @@ -29,6 +29,7 @@ class mtx_state : public driver_device public: mtx_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) + , m_cassold(0) , m_maincpu(*this, "z80") , m_sn(*this, "sn76489a") , m_z80ctc(*this, "z80ctc") @@ -50,6 +51,7 @@ protected: virtual void machine_reset() override; private: + bool m_cassold; required_device m_maincpu; required_device m_sn; required_device m_z80ctc; diff --git a/src/mame/includes/nforcepc.h b/src/mame/includes/nforcepc.h index 1a85046cb98..002824319dd 100644 --- a/src/mame/includes/nforcepc.h +++ b/src/mame/includes/nforcepc.h @@ -43,6 +43,7 @@ private: required_device biosrom; uint32_t ram_size; + virtual DECLARE_READ8_MEMBER(header_type_r) override; DECLARE_READ8_MEMBER(unknown_r); DECLARE_WRITE8_MEMBER(unknown_w); DECLARE_READ32_MEMBER(ram_size_r); diff --git a/src/mame/includes/ninjaw.h b/src/mame/includes/ninjaw.h index e89cacf7392..5a1b8fcf8b9 100644 --- a/src/mame/includes/ninjaw.h +++ b/src/mame/includes/ninjaw.h @@ -38,6 +38,11 @@ public: void darius2(machine_config &config); void ninjaw(machine_config &config); +protected: + virtual void device_post_load() override; + virtual void machine_start() override; + virtual void machine_reset() override; + private: /* devices */ required_device m_maincpu; @@ -50,31 +55,27 @@ private: required_device_array m_gfxdecode; /* memory pointers */ - required_shared_ptr m_spriteram; + required_shared_ptr m_spriteram; /* memory regions */ required_memory_bank m_z80bank; /* misc */ - uint16_t m_cpua_ctrl; + u16 m_cpua_ctrl; int m_pandata[4]; void coin_control_w(u8 data); - DECLARE_WRITE16_MEMBER(cpua_ctrl_w); + void cpua_ctrl_w(u16 data); void sound_bankswitch_w(u8 data); void pancontrol_w(offs_t offset, u8 data); - DECLARE_WRITE16_MEMBER(tc0100scn_triple_screen_w); + void tc0100scn_triple_screen_w(offs_t offset, u16 data, u16 mem_mask = ~0); - virtual void machine_start() override; - virtual void machine_reset() override; - - uint32_t screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - uint32_t screen_update_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - uint32_t screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void postload(); - void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int primask, int x_offs, int y_offs, int chip); + u32 screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + u32 screen_update_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + u32 screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int x_offs, int y_offs, int chip); void parse_control(); - uint32_t update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffs, int chip); + u32 update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffs, int chip); void darius2_master_map(address_map &map); void darius2_slave_map(address_map &map); void ninjaw_master_map(address_map &map); diff --git a/src/mame/includes/osi.h b/src/mame/includes/osi.h index 2e50c0d585d..73e0457cf03 100644 --- a/src/mame/includes/osi.h +++ b/src/mame/includes/osi.h @@ -12,6 +12,7 @@ #include "imagedev/floppy.h" #include "machine/6850acia.h" #include "machine/6821pia.h" +#include "machine/timer.h" #include "machine/ram.h" #include "sound/discrete.h" #include "sound/beep.h" @@ -32,9 +33,11 @@ class sb2m600_state : public driver_device public: sb2m600_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) + , m_cassbit(0) + , m_cassold(0) , m_maincpu(*this, M6502_TAG) - , m_acia_0(*this, "acia_0") - , m_cassette(*this, "cassette") + , m_acia(*this, "acia") + , m_cass(*this, "cassette") , m_discrete(*this, DISCRETE_TAG) , m_ram(*this, RAM_TAG) , m_video_ram(*this, "video_ram") @@ -55,8 +58,8 @@ protected: DECLARE_READ8_MEMBER( keyboard_r ); DECLARE_WRITE8_MEMBER( keyboard_w ); DECLARE_WRITE8_MEMBER( ctrl_w ); - DECLARE_WRITE_LINE_MEMBER( cassette_tx ); - DECLARE_WRITE_LINE_MEMBER( write_cassette_clock ); + TIMER_DEVICE_CALLBACK_MEMBER(kansas_w); + TIMER_DEVICE_CALLBACK_MEMBER(kansas_r); void floppy_index_callback(floppy_image_device *floppy, int state); @@ -66,9 +69,12 @@ protected: void osi630_video(machine_config &config); void osi600_mem(address_map &map); + uint8_t m_cass_data[4]; + bool m_cassbit; + bool m_cassold; required_device m_maincpu; - required_device m_acia_0; - required_device m_cassette; + required_device m_acia; + required_device m_cass; optional_device m_discrete; required_device m_ram; required_shared_ptr m_video_ram; diff --git a/src/mame/includes/othunder.h b/src/mame/includes/othunder.h index d36820a8ab9..2dd8e47bb7e 100644 --- a/src/mame/includes/othunder.h +++ b/src/mame/includes/othunder.h @@ -25,6 +25,8 @@ public: othunder_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_spriteram(*this,"spriteram"), + m_sprmap_rom(*this,"sprmap_rom"), + m_z80bank(*this,"z80bank"), m_maincpu(*this, "maincpu"), m_audiocpu(*this, "audiocpu"), m_eeprom(*this, "eeprom"), @@ -48,7 +50,7 @@ protected: virtual void video_start() override; private: - void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, const int *primasks, int y_offs); + void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, const u32 *primasks, int y_offs); void irq_ack_w(offs_t offset, u16 data); void eeprom_w(u8 data); @@ -56,24 +58,25 @@ private: DECLARE_WRITE_LINE_MEMBER(adc_eoc_w); void sound_bankswitch_w(u8 data); void tc0310fam_w(offs_t offset, u8 data); - uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); DECLARE_WRITE_LINE_MEMBER(vblank_w); void othunder_map(address_map &map); void z80_sound_map(address_map &map); /* memory pointers */ - required_shared_ptr m_spriteram; + required_shared_ptr m_spriteram; + required_region_ptr m_sprmap_rom; + required_memory_bank m_z80bank; /* video-related */ struct tempsprite { - int gfx; - int code,color; - int flipx,flipy; + u32 code,color; + bool flipx,flipy; int x,y; int zoomx,zoomy; - int primask; + u32 primask; }; std::unique_ptr m_spritelist; diff --git a/src/mame/includes/psikyo.h b/src/mame/includes/psikyo.h index a46f8897df7..05fbe0e6428 100644 --- a/src/mame/includes/psikyo.h +++ b/src/mame/includes/psikyo.h @@ -109,7 +109,7 @@ private: DECLARE_READ32_MEMBER(sngkace_input_r); DECLARE_READ32_MEMBER(gunbird_input_r); - DECLARE_WRITE32_MEMBER(s1945_mcu_w); + void s1945_mcu_w(offs_t offset, uint8_t data); DECLARE_READ32_MEMBER(s1945_mcu_r); DECLARE_READ32_MEMBER(s1945_input_r); DECLARE_WRITE8_MEMBER(s1945bl_okibank_w); diff --git a/src/mame/includes/taito_f2.h b/src/mame/includes/taito_f2.h index 78310d110a8..750f9d2bec6 100644 --- a/src/mame/includes/taito_f2.h +++ b/src/mame/includes/taito_f2.h @@ -199,7 +199,7 @@ protected: void sprite_extension_w(offs_t offset, u16 data, u16 mem_mask = ~0); void spritebank_w(offs_t offset, u16 data); void koshien_spritebank_w(u16 data); - DECLARE_WRITE8_MEMBER(cameltrya_porta_w); + void cameltrya_porta_w(u8 data); void mjnquest_gfxbank_w(u8 data); TC0100SCN_CB_MEMBER(mjnquest_tmap_cb); @@ -247,7 +247,7 @@ protected: void update_spritebanks(); void handle_sprite_buffering(); void update_sprites_active_area(); - void draw_roz_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, u32 priority); + void draw_roz_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, u8 priority, u8 priority_mask = 0xff); void taito_f2_tc360_spritemixdraw(screen_device &screen, bitmap_ind16 &dest_bmp, const rectangle &clip, gfx_element *gfx, u32 code, u32 color, int flipx, int flipy, int sx, int sy, int scalex, int scaley); diff --git a/src/mame/includes/taito_f3.h b/src/mame/includes/taito_f3.h index fff482d847c..787d2ca8554 100644 --- a/src/mame/includes/taito_f3.h +++ b/src/mame/includes/taito_f3.h @@ -60,19 +60,28 @@ public: taito_f3_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), - m_audiocpu(*this, "taito_en:audiocpu"), - m_taito_en(*this, "taito_en"), m_watchdog(*this, "watchdog"), - m_oki(*this, "oki"), m_gfxdecode(*this, "gfxdecode"), m_screen(*this, "screen"), m_palette(*this, "palette"), m_eeprom(*this, "eeprom"), - m_f3_ram(*this,"f3_ram"), - m_paletteram32(*this, "paletteram"), + m_spriterom_hi(*this, "sprites_hi"), + m_tilemaprom_hi(*this, "tilemap_hi"), + m_textram(*this, "textram", 0), + m_spriteram(*this, "spriteram", 0), + m_charram(*this, "charram", 0), + m_line_ram(*this, "line_ram", 0), + m_pf_ram(*this, "pf_ram", 0), + m_pivot_ram(*this, "pivot_ram", 0), m_input(*this, "IN.%u", 0), m_dial(*this, "DIAL.%u", 0), - m_eepromin(*this, "EEPROMIN") + m_eepromin(*this, "EEPROMIN"), + m_eepromout(*this, "EEPROMOUT"), + m_audiocpu(*this, "taito_en:audiocpu"), + m_taito_en(*this, "taito_en"), + m_oki(*this, "oki"), + m_paletteram32(*this, "paletteram"), + m_okibank(*this, "okibank") { } void f3_eeprom(machine_config &config); @@ -132,75 +141,103 @@ protected: TIMER_F3_INTERRUPT3 }; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + virtual void device_post_load(void) override; + + virtual void machine_start() override; + virtual void machine_reset() override; + virtual void video_start() override; + required_device m_maincpu; - optional_device m_audiocpu; - optional_device m_taito_en; optional_device m_watchdog; - optional_device m_oki; required_device m_gfxdecode; required_device m_screen; required_device m_palette; optional_device m_eeprom; - optional_shared_ptr m_f3_ram; - optional_shared_ptr m_paletteram32; + optional_region_ptr m_spriterom_hi; // all but 2mindril, bubsymphb + optional_region_ptr m_tilemaprom_hi; + + required_shared_ptr m_textram; + required_shared_ptr m_spriteram; + required_shared_ptr m_charram; + required_shared_ptr m_line_ram; + required_shared_ptr m_pf_ram; + required_shared_ptr m_pivot_ram; + optional_ioport_array<6> m_input; optional_ioport_array<2> m_dial; optional_ioport m_eepromin; - - - std::unique_ptr m_videoram; - std::unique_ptr m_spriteram; - std::unique_ptr m_f3_vram; - std::unique_ptr m_f3_line_ram; - std::unique_ptr m_f3_pf_data; - std::unique_ptr m_f3_pivot_ram; + optional_ioport m_eepromout; emu_timer *m_interrupt3_timer; - uint32_t m_coin_word[2]; - int m_f3_game; - tilemap_t *m_pf1_tilemap; - tilemap_t *m_pf2_tilemap; - tilemap_t *m_pf3_tilemap; - tilemap_t *m_pf4_tilemap; - tilemap_t *m_pf5_tilemap; - tilemap_t *m_pf6_tilemap; - tilemap_t *m_pf7_tilemap; - tilemap_t *m_pf8_tilemap; + u32 m_coin_word[2]; + + struct tempsprite + { + int code, color; + int flipx, flipy; + int x, y; + int zoomx, zoomy; + int pri; + }; + + struct f3_playfield_line_inf + { + int alpha_mode[256]; + int pri[256]; + + /* use for draw_scanlines */ + u16 *src[256], *src_s[256], *src_e[256]; + u8 *tsrc[256], *tsrc_s[256]; + int x_count[256]; + u32 x_zoom[256]; + u32 clip0[256]; + u32 clip1[256]; + }; + + struct f3_spritealpha_line_inf + { + u16 alpha_level[256]; + u16 spri[256]; + u16 sprite_alpha[256]; + u32 sprite_clip0[256]; + u32 sprite_clip1[256]; + s16 clip0_l[256]; + s16 clip0_r[256]; + s16 clip1_l[256]; + s16 clip1_r[256]; + }; + + int m_game; + tilemap_t *m_tilemap[8]; tilemap_t *m_pixel_layer; tilemap_t *m_vram_layer; - std::unique_ptr m_spriteram16_buffered; - uint16_t m_f3_control_0[8]; - uint16_t m_f3_control_1[8]; + std::unique_ptr m_spriteram16_buffered; + u16 m_control_0[8]; + u16 m_control_1[8]; int m_flipscreen; - uint8_t m_sprite_extra_planes; - uint8_t m_sprite_pen_mask; - uint16_t *m_f3_pf_data_1; - uint16_t *m_f3_pf_data_2; - uint16_t *m_f3_pf_data_3; - uint16_t *m_f3_pf_data_4; - uint16_t *m_f3_pf_data_5; - uint16_t *m_f3_pf_data_6; - uint16_t *m_f3_pf_data_7; - uint16_t *m_f3_pf_data_8; + u8 m_sprite_extra_planes; + u8 m_sprite_pen_mask; + u16 *m_pf_data[8]; int m_sprite_lag; - uint8_t m_sprite_pri_usage; + u8 m_sprite_pri_usage; bitmap_ind8 m_pri_alp_bitmap; - int m_f3_alpha_level_2as; - int m_f3_alpha_level_2ad; - int m_f3_alpha_level_3as; - int m_f3_alpha_level_3ad; - int m_f3_alpha_level_2bs; - int m_f3_alpha_level_2bd; - int m_f3_alpha_level_3bs; - int m_f3_alpha_level_3bd; + int m_alpha_level_2as; + int m_alpha_level_2ad; + int m_alpha_level_3as; + int m_alpha_level_3ad; + int m_alpha_level_2bs; + int m_alpha_level_2bd; + int m_alpha_level_3bs; + int m_alpha_level_3bd; int m_alpha_level_last; int m_width_mask; int m_twidth_mask; int m_twidth_mask_bit; - std::unique_ptr m_tile_opaque_sp; - std::unique_ptr m_tile_opaque_pf[8]; - uint8_t m_add_sat[256][256]; + std::unique_ptr m_tile_opaque_sp; + std::unique_ptr m_tile_opaque_pf[8]; + u8 m_add_sat[256][256]; int m_alpha_s_1_1; int m_alpha_s_1_2; int m_alpha_s_1_4; @@ -221,197 +258,151 @@ protected: int m_alpha_s_3b_0; int m_alpha_s_3b_1; int m_alpha_s_3b_2; - uint32_t m_dval; - uint8_t m_pval; - uint8_t m_tval; - uint8_t m_pdest_2a; - uint8_t m_pdest_2b; + u32 m_dval; + u8 m_pval; + u8 m_tval; + u8 m_pdest_2a; + u8 m_pdest_2b; int m_tr_2a; int m_tr_2b; - uint8_t m_pdest_3a; - uint8_t m_pdest_3b; + u8 m_pdest_3a; + u8 m_pdest_3b; int m_tr_3a; int m_tr_3b; - uint16_t *m_src0; - uint16_t *m_src_s0; - uint16_t *m_src_e0; - uint16_t m_clip_al0; - uint16_t m_clip_ar0; - uint16_t m_clip_bl0; - uint16_t m_clip_br0; - uint8_t *m_tsrc0; - uint8_t *m_tsrc_s0; - uint32_t m_x_count0; - uint32_t m_x_zoom0; - uint16_t *m_src1; - uint16_t *m_src_s1; - uint16_t *m_src_e1; - uint16_t m_clip_al1; - uint16_t m_clip_ar1; - uint16_t m_clip_bl1; - uint16_t m_clip_br1; - uint8_t *m_tsrc1; - uint8_t *m_tsrc_s1; - uint32_t m_x_count1; - uint32_t m_x_zoom1; - uint16_t *m_src2; - uint16_t *m_src_s2; - uint16_t *m_src_e2; - uint16_t m_clip_al2; - uint16_t m_clip_ar2; - uint16_t m_clip_bl2; - uint16_t m_clip_br2; - uint8_t *m_tsrc2; - uint8_t *m_tsrc_s2; - uint32_t m_x_count2; - uint32_t m_x_zoom2; - uint16_t *m_src3; - uint16_t *m_src_s3; - uint16_t *m_src_e3; - uint16_t m_clip_al3; - uint16_t m_clip_ar3; - uint16_t m_clip_bl3; - uint16_t m_clip_br3; - uint8_t *m_tsrc3; - uint8_t *m_tsrc_s3; - uint32_t m_x_count3; - uint32_t m_x_zoom3; - uint16_t *m_src4; - uint16_t *m_src_s4; - uint16_t *m_src_e4; - uint16_t m_clip_al4; - uint16_t m_clip_ar4; - uint16_t m_clip_bl4; - uint16_t m_clip_br4; - uint8_t *m_tsrc4; - uint8_t *m_tsrc_s4; - uint32_t m_x_count4; - uint32_t m_x_zoom4; + u16 *m_src[5]; + u16 *m_src_s[5]; + u16 *m_src_e[5]; + u16 m_clip_al[5]; + u16 m_clip_ar[5]; + u16 m_clip_bl[5]; + u16 m_clip_br[5]; + u8 *m_tsrc[5]; + u8 *m_tsrc_s[5]; + u32 m_x_count[5]; + u32 m_x_zoom[5]; struct tempsprite *m_spritelist; const struct tempsprite *m_sprite_end; struct f3_playfield_line_inf *m_pf_line_inf; struct f3_spritealpha_line_inf *m_sa_line_inf; - const struct F3config *m_f3_game_config; - int (taito_f3_state::*m_dpix_n[8][16])(uint32_t s_pix); - int (taito_f3_state::**m_dpix_lp[5])(uint32_t s_pix); - int (taito_f3_state::**m_dpix_sp[9])(uint32_t s_pix); + const struct F3config *m_game_config; + int (taito_f3_state::*m_dpix_n[8][16])(u32 s_pix); + int (taito_f3_state::**m_dpix_lp[5])(u32 s_pix); + int (taito_f3_state::**m_dpix_sp[9])(u32 s_pix); - DECLARE_READ32_MEMBER(f3_control_r); - DECLARE_WRITE32_MEMBER(f3_control_w); - DECLARE_WRITE32_MEMBER(f3_sound_reset_0_w); - DECLARE_WRITE32_MEMBER(f3_sound_reset_1_w); - DECLARE_WRITE32_MEMBER(f3_sound_bankswitch_w); - DECLARE_WRITE16_MEMBER(f3_unk_w); - DECLARE_READ32_MEMBER(bubsympb_oki_r); - DECLARE_WRITE32_MEMBER(bubsympb_oki_w); - DECLARE_READ16_MEMBER(f3_pf_data_r); - DECLARE_WRITE16_MEMBER(f3_pf_data_w); - DECLARE_WRITE16_MEMBER(f3_control_0_w); - DECLARE_WRITE16_MEMBER(f3_control_1_w); - DECLARE_READ16_MEMBER(f3_spriteram_r); - DECLARE_WRITE16_MEMBER(f3_spriteram_w); - DECLARE_READ16_MEMBER(f3_videoram_r); - DECLARE_WRITE16_MEMBER(f3_videoram_w); - DECLARE_READ16_MEMBER(f3_vram_r); - DECLARE_WRITE16_MEMBER(f3_vram_w); - DECLARE_READ16_MEMBER(f3_pivot_r); - DECLARE_WRITE16_MEMBER(f3_pivot_w); - DECLARE_READ16_MEMBER(f3_lineram_r); - DECLARE_WRITE16_MEMBER(f3_lineram_w); - DECLARE_WRITE32_MEMBER(f3_palette_24bit_w); + u16 pf_ram_r(offs_t offset); + void pf_ram_w(offs_t offset, u16 data, u16 mem_mask = ~0); + void control_0_w(offs_t offset, u16 data, u16 mem_mask = ~0); + void control_1_w(offs_t offset, u16 data, u16 mem_mask = ~0); + u16 spriteram_r(offs_t offset); + void spriteram_w(offs_t offset, u16 data, u16 mem_mask = ~0); + u16 textram_r(offs_t offset); + void textram_w(offs_t offset, u16 data, u16 mem_mask = ~0); + u16 charram_r(offs_t offset); + void charram_w(offs_t offset, u16 data, u16 mem_mask = ~0); + u16 pivot_r(offs_t offset); + void pivot_w(offs_t offset, u16 data, u16 mem_mask = ~0); + u16 lineram_r(offs_t offset); + void lineram_w(offs_t offset, u16 data, u16 mem_mask = ~0); - TILE_GET_INFO_MEMBER(get_tile_info1); - TILE_GET_INFO_MEMBER(get_tile_info2); - TILE_GET_INFO_MEMBER(get_tile_info3); - TILE_GET_INFO_MEMBER(get_tile_info4); - TILE_GET_INFO_MEMBER(get_tile_info5); - TILE_GET_INFO_MEMBER(get_tile_info6); - TILE_GET_INFO_MEMBER(get_tile_info7); - TILE_GET_INFO_MEMBER(get_tile_info8); - TILE_GET_INFO_MEMBER(get_tile_info_vram); + template TILE_GET_INFO_MEMBER(get_tile_info); + TILE_GET_INFO_MEMBER(get_tile_info_text); TILE_GET_INFO_MEMBER(get_tile_info_pixel); - uint32_t screen_update_f3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - DECLARE_WRITE_LINE_MEMBER(screen_vblank_f3); - INTERRUPT_GEN_MEMBER(f3_interrupt2); + u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + DECLARE_WRITE_LINE_MEMBER(screen_vblank); void bubsympb_map(address_map &map); void f3_map(address_map &map); - virtual void machine_start() override; - virtual void machine_reset() override; - virtual void video_start() override; + void tile_decode(); - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - virtual void device_post_load(void) override; - - inline void get_tile_info(tile_data &tileinfo, int tile_index, uint16_t *gfx_base); - inline void f3_drawgfx(bitmap_rgb32 &dest_bmp,const rectangle &clip,gfx_element *gfx,int code,int color,int flipx,int flipy,int sx,int sy,uint8_t pri_dst); - inline void f3_drawgfxzoom(bitmap_rgb32 &dest_bmp,const rectangle &clip,gfx_element *gfx,int code,int color,int flipx,int flipy,int sx,int sy,int scalex,int scaley,uint8_t pri_dst); + inline void f3_drawgfx(bitmap_rgb32 &dest_bmp, const rectangle &clip, gfx_element *gfx, int code, int color, int flipx, int flipy, int sx, int sy, u8 pri_dst); + inline void f3_drawgfxzoom(bitmap_rgb32 &dest_bmp, const rectangle &clip, gfx_element *gfx, int code, int color, int flipx, int flipy, int sx, int sy, int scalex, int scaley, u8 pri_dst); void draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect); - void get_sprite_info(const uint16_t *spriteram16_ptr); + void get_sprite_info(const u16 *spriteram16_ptr); void print_debug_info(bitmap_rgb32 &bitmap); - inline void f3_alpha_set_level(); - inline void f3_alpha_blend32_s(int alphas, uint32_t s); - inline void f3_alpha_blend32_d(int alphas, uint32_t s); - inline void f3_alpha_blend_1_1(uint32_t s); - inline void f3_alpha_blend_1_2(uint32_t s); - inline void f3_alpha_blend_1_4(uint32_t s); - inline void f3_alpha_blend_1_5(uint32_t s); - inline void f3_alpha_blend_1_6(uint32_t s); - inline void f3_alpha_blend_1_8(uint32_t s); - inline void f3_alpha_blend_1_9(uint32_t s); - inline void f3_alpha_blend_1_a(uint32_t s); - inline void f3_alpha_blend_2a_0(uint32_t s); - inline void f3_alpha_blend_2a_4(uint32_t s); - inline void f3_alpha_blend_2a_8(uint32_t s); - inline void f3_alpha_blend_2b_0(uint32_t s); - inline void f3_alpha_blend_2b_4(uint32_t s); - inline void f3_alpha_blend_2b_8(uint32_t s); - inline void f3_alpha_blend_3a_0(uint32_t s); - inline void f3_alpha_blend_3a_1(uint32_t s); - inline void f3_alpha_blend_3a_2(uint32_t s); - inline void f3_alpha_blend_3b_0(uint32_t s); - inline void f3_alpha_blend_3b_1(uint32_t s); - inline void f3_alpha_blend_3b_2(uint32_t s); - int dpix_1_noalpha(uint32_t s_pix); - int dpix_ret1(uint32_t s_pix); - int dpix_ret0(uint32_t s_pix); - int dpix_1_1(uint32_t s_pix); - int dpix_1_2(uint32_t s_pix); - int dpix_1_4(uint32_t s_pix); - int dpix_1_5(uint32_t s_pix); - int dpix_1_6(uint32_t s_pix); - int dpix_1_8(uint32_t s_pix); - int dpix_1_9(uint32_t s_pix); - int dpix_1_a(uint32_t s_pix); - int dpix_2a_0(uint32_t s_pix); - int dpix_2a_4(uint32_t s_pix); - int dpix_2a_8(uint32_t s_pix); - int dpix_3a_0(uint32_t s_pix); - int dpix_3a_1(uint32_t s_pix); - int dpix_3a_2(uint32_t s_pix); - int dpix_2b_0(uint32_t s_pix); - int dpix_2b_4(uint32_t s_pix); - int dpix_2b_8(uint32_t s_pix); - int dpix_3b_0(uint32_t s_pix); - int dpix_3b_1(uint32_t s_pix); - int dpix_3b_2(uint32_t s_pix); - int dpix_2_0(uint32_t s_pix); - int dpix_2_4(uint32_t s_pix); - int dpix_2_8(uint32_t s_pix); - int dpix_3_0(uint32_t s_pix); - int dpix_3_1(uint32_t s_pix); - int dpix_3_2(uint32_t s_pix); - inline void dpix_1_sprite(uint32_t s_pix); - inline void dpix_bg(uint32_t bgcolor); + inline void alpha_set_level(); + inline void alpha_blend32_s(int alphas, u32 s); + inline void alpha_blend32_d(int alphas, u32 s); + inline void alpha_blend_1_1(u32 s); + inline void alpha_blend_1_2(u32 s); + inline void alpha_blend_1_4(u32 s); + inline void alpha_blend_1_5(u32 s); + inline void alpha_blend_1_6(u32 s); + inline void alpha_blend_1_8(u32 s); + inline void alpha_blend_1_9(u32 s); + inline void alpha_blend_1_a(u32 s); + inline void alpha_blend_2a_0(u32 s); + inline void alpha_blend_2a_4(u32 s); + inline void alpha_blend_2a_8(u32 s); + inline void alpha_blend_2b_0(u32 s); + inline void alpha_blend_2b_4(u32 s); + inline void alpha_blend_2b_8(u32 s); + inline void alpha_blend_3a_0(u32 s); + inline void alpha_blend_3a_1(u32 s); + inline void alpha_blend_3a_2(u32 s); + inline void alpha_blend_3b_0(u32 s); + inline void alpha_blend_3b_1(u32 s); + inline void alpha_blend_3b_2(u32 s); + int dpix_1_noalpha(u32 s_pix); + int dpix_ret1(u32 s_pix); + int dpix_ret0(u32 s_pix); + int dpix_1_1(u32 s_pix); + int dpix_1_2(u32 s_pix); + int dpix_1_4(u32 s_pix); + int dpix_1_5(u32 s_pix); + int dpix_1_6(u32 s_pix); + int dpix_1_8(u32 s_pix); + int dpix_1_9(u32 s_pix); + int dpix_1_a(u32 s_pix); + int dpix_2a_0(u32 s_pix); + int dpix_2a_4(u32 s_pix); + int dpix_2a_8(u32 s_pix); + int dpix_3a_0(u32 s_pix); + int dpix_3a_1(u32 s_pix); + int dpix_3a_2(u32 s_pix); + int dpix_2b_0(u32 s_pix); + int dpix_2b_4(u32 s_pix); + int dpix_2b_8(u32 s_pix); + int dpix_3b_0(u32 s_pix); + int dpix_3b_1(u32 s_pix); + int dpix_3b_2(u32 s_pix); + int dpix_2_0(u32 s_pix); + int dpix_2_4(u32 s_pix); + int dpix_2_8(u32 s_pix); + int dpix_3_0(u32 s_pix); + int dpix_3_1(u32 s_pix); + int dpix_3_2(u32 s_pix); + inline void dpix_1_sprite(u32 s_pix); + inline void dpix_bg(u32 bgcolor); void init_alpha_blend_func(); - inline void draw_scanlines(bitmap_rgb32 &bitmap, int xsize, int16_t *draw_line_num, const struct f3_playfield_line_inf **line_t, const int *sprite, uint32_t orient, int skip_layer_num); - void visible_tile_check(struct f3_playfield_line_inf *line_t, int line, uint32_t x_index_fx,uint32_t y_index, uint16_t *f3_pf_data_n); - void calculate_clip(int y, uint16_t pri, uint32_t* clip0, uint32_t* clip1, int* line_enable); + inline void draw_scanlines(bitmap_rgb32 &bitmap, int xsize, s16 *draw_line_num, const struct f3_playfield_line_inf **line_t, const int *sprite, u32 orient, int skip_layer_num); + void visible_tile_check(struct f3_playfield_line_inf *line_t, int line, u32 x_index_fx, u32 y_index, u16 *pf_data_n); + void calculate_clip(int y, u16 pri, u32* clip0, u32* clip1, int *line_enable); void get_spritealphaclip_info(); - void get_line_ram_info(tilemap_t *tmap, int sx, int sy, int pos, uint16_t *f3_pf_data_n); + void get_line_ram_info(tilemap_t *tmap, int sx, int sy, int pos, u16 *pf_data_n); void get_vram_info(tilemap_t *vram_tilemap, tilemap_t *pixel_tilemap, int sx, int sy); void scanline_draw(bitmap_rgb32 &bitmap, const rectangle &cliprect); + +private: + optional_device m_audiocpu; + optional_device m_taito_en; + optional_device m_oki; + + optional_shared_ptr m_paletteram32; + optional_memory_bank m_okibank; + + void bubsympb_oki_w(u8 data); + u32 f3_control_r(offs_t offset); + void f3_control_w(offs_t offset, u32 data, u32 mem_mask = ~0); + void f3_unk_w(offs_t offset, u16 data); + void sound_reset_0_w(u32 data); + void sound_reset_1_w(u32 data); + void sound_bankswitch_w(offs_t offset, u32 data, u32 mem_mask = ~0); + void palette_24bit_w(offs_t offset, u32 data, u32 mem_mask = ~0); + + INTERRUPT_GEN_MEMBER(interrupt2); + + void bubsympb_oki_map(address_map &map); }; #endif // MAME_INCLUDES_TAITO_F3_H diff --git a/src/mame/includes/taito_z.h b/src/mame/includes/taito_z.h index 56439a4b5bc..8787fe44e62 100644 --- a/src/mame/includes/taito_z.h +++ b/src/mame/includes/taito_z.h @@ -68,6 +68,8 @@ public: protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual void device_post_load() override; + virtual void machine_start() override; + virtual void machine_reset() override; private: enum @@ -89,7 +91,7 @@ private: u16 m_cpua_ctrl; s32 m_sci_int6; s32 m_ioc220_port; - u8 m_eep_latch; + u8 m_eep_latch; /* devices */ required_device m_maincpu; @@ -129,8 +131,6 @@ private: u16 sci_spriteframe_r(); void sci_spriteframe_w(u16 data); void contcirc_out_w(u8 data); - DECLARE_MACHINE_START(taitoz); - DECLARE_MACHINE_RESET(taitoz); DECLARE_VIDEO_START(taitoz); DECLARE_MACHINE_START(chasehq); u32 screen_update_contcirc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); diff --git a/src/mame/includes/warriorb.h b/src/mame/includes/warriorb.h index 0bdf456485e..70e555d55ad 100644 --- a/src/mame/includes/warriorb.h +++ b/src/mame/includes/warriorb.h @@ -17,8 +17,8 @@ class warriorb_state : public driver_device { public: - warriorb_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), + warriorb_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), m_tc0140syt(*this, "tc0140syt"), m_tc0100scn(*this, "tc0100scn_%u", 1), @@ -29,7 +29,8 @@ public: m_2610_r(*this, "2610.%u.r", 1), m_gfxdecode(*this, "gfxdecode_%u", 1), m_spriteram(*this, "spriteram"), - m_z80bank(*this, "z80bank") { } + m_z80bank(*this, "z80bank") + { } void warriorb(machine_config &config); void darius2d(machine_config &config); @@ -47,7 +48,7 @@ private: required_device_array m_gfxdecode; /* memory pointers */ - required_shared_ptr m_spriteram; + required_shared_ptr m_spriteram; /* memory regions */ required_memory_bank m_z80bank; @@ -58,15 +59,15 @@ private: void coin_control_w(u8 data); void sound_bankswitch_w(u8 data); void pancontrol_w(offs_t offset, u8 data); - DECLARE_WRITE16_MEMBER(tc0100scn_dual_screen_w); + void tc0100scn_dual_screen_w(offs_t offset, u16 data, u16 mem_mask = ~0); virtual void machine_start() override; virtual void machine_reset() override; - uint32_t screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - uint32_t screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + u32 screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + u32 screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int x_offs, int y_offs, int chip); - uint32_t update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffs, int chip); + u32 update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffs, int chip); void darius2d_map(address_map &map); void warriorb_map(address_map &map); diff --git a/src/mame/includes/xbox.h b/src/mame/includes/xbox.h index 9b48eb72455..666f26c1a47 100644 --- a/src/mame/includes/xbox.h +++ b/src/mame/includes/xbox.h @@ -71,6 +71,40 @@ private: DECLARE_DEVICE_TYPE(XBOX_EEPROM, xbox_eeprom_device) +/* + * Super-io connected to lpc bus used as a rs232 debug port + */ + +class xbox_superio_device : public device_t, public lpcbus_device_interface +{ +public: + xbox_superio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + virtual void map_extra(address_space *memory_space, address_space *io_space) override; + virtual void set_host(int index, lpcbus_host_interface *host) override; + + DECLARE_READ8_MEMBER(read); + DECLARE_WRITE8_MEMBER(write); + DECLARE_READ8_MEMBER(read_rs232); + DECLARE_WRITE8_MEMBER(write_rs232); + +protected: + virtual void device_start() override; + +private: + void internal_io_map(address_map &map); + + lpcbus_host_interface *lpchost; + int lpcindex; + address_space *memspace; + address_space *iospace; + bool configuration_mode; + int index; + int selected; + uint8_t registers[16][256]; // 256 registers for up to 16 devices, registers 0-0x2f common to all +}; + +DECLARE_DEVICE_TYPE(XBOX_SUPERIO, xbox_superio_device) + /* * Base */ @@ -85,20 +119,12 @@ public: debug_irq_number(0), m_maincpu(*this, "maincpu"), mcpxlpc(*this, ":pci:01.0"), - ide(*this, ":pci:09.0:ide"), + ide(*this, ":pci:09.0:ide1"), debugc_bios(nullptr) { } void xbox_base(machine_config &config); protected: - DECLARE_READ8_MEMBER(superio_read); - DECLARE_WRITE8_MEMBER(superio_write); - DECLARE_READ8_MEMBER(superiors232_read); - DECLARE_WRITE8_MEMBER(superiors232_write); - - int smbus_pic16lc(int command, int rw, int data); - int smbus_cx25871(int command, int rw, int data); - int smbus_eeprom(int command, int rw, int data); void debug_generate_irq(int irq, bool active); virtual void hack_eeprom() {}; virtual void hack_usb() {}; @@ -114,13 +140,6 @@ protected: DECLARE_WRITE_LINE_MEMBER(nv2a_interrupt_changed); IRQ_CALLBACK_MEMBER(irq_callback); - struct superio_state - { - bool configuration_mode; - int index; - int selected; - uint8_t registers[16][256]; // 256 registers for up to 16 devices, registers 0-0x2f common to all - } superiost; nv2a_renderer *nvidia_nv2a; bool debug_irq_active; int debug_irq_number; @@ -134,9 +153,6 @@ protected: } debugp[]; const debugger_constants *debugc_bios; - void xbox_base_map(address_map &map); - void xbox_base_map_io(address_map &map); - private: void dump_string_command(int ref, const std::vector ¶ms); void dump_process_command(int ref, const std::vector ¶ms); diff --git a/src/mame/includes/xbox_nv2a.h b/src/mame/includes/xbox_nv2a.h index 51b4944a9b1..0e6cadb0670 100644 --- a/src/mame/includes/xbox_nv2a.h +++ b/src/mame/includes/xbox_nv2a.h @@ -503,6 +503,7 @@ public: void debug_grab_texture(int type, const char *filename); void debug_grab_vertex_program_slot(int slot, uint32_t *instruction); void start(address_space *cpu_space); + void set_ram_base(void *base); void savestate_items(); void compute_supersample_factors(float &horizontal, float &vertical); void compute_limits_rendertarget(uint32_t chanel, uint32_t subchannel); diff --git a/src/mame/includes/xbox_pci.h b/src/mame/includes/xbox_pci.h index bea51152fad..11dec9693e9 100644 --- a/src/mame/includes/xbox_pci.h +++ b/src/mame/includes/xbox_pci.h @@ -43,13 +43,27 @@ DECLARE_DEVICE_TYPE(NV2A_HOST, nv2a_host_device) class nv2a_ram_device : public pci_device { public: + nv2a_ram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, int memory_size) + : nv2a_ram_device(mconfig, tag, owner, clock) + { + ram_size = memory_size; + } nv2a_ram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void config_map(address_map &map) override; + virtual void map_extra(uint64_t memory_window_start, uint64_t memory_window_end, uint64_t memory_offset, address_space *memory_space, + uint64_t io_window_start, uint64_t io_window_end, uint64_t io_offset, address_space *io_space) override; + protected: + virtual void device_start() override; + DECLARE_READ32_MEMBER(config_register_r); DECLARE_WRITE32_MEMBER(config_register_w); + +private: + int ram_size; + std::vector ram; }; DECLARE_DEVICE_TYPE(NV2A_RAM, nv2a_ram_device) @@ -117,6 +131,12 @@ private: required_device pic8259_2; required_device pit8254; + uint16_t m_pm1_status; + uint16_t m_pm1_enable; + uint16_t m_pm1_control; + uint16_t m_pm1_timer; + uint16_t m_gpe0_status; + uint16_t m_gpe0_enable; uint16_t m_global_smi_control; uint8_t m_smi_command_port; lpcbus_device_interface *lpcdevices[16]; @@ -332,17 +352,30 @@ class mcpx_ide_device : public pci_device { public: mcpx_ide_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - auto interrupt_handler() { return m_interrupt_handler.bind(); } + auto pri_interrupt_handler() { return m_pri_interrupt_handler.bind(); } + auto sec_interrupt_handler() { return m_sec_interrupt_handler.bind(); } + + virtual void config_map(address_map &map) override; + + DECLARE_WRITE32_MEMBER(class_rev_w); protected: virtual void device_start() override; virtual void device_reset() override; virtual void device_add_mconfig(machine_config &config) override; + virtual void map_extra(uint64_t memory_window_start, uint64_t memory_window_end, uint64_t memory_offset, address_space *memory_space, + uint64_t io_window_start, uint64_t io_window_end, uint64_t io_offset, address_space *io_space) override; private: - devcb_write_line m_interrupt_handler; - void mcpx_ide_io(address_map &map); - DECLARE_WRITE_LINE_MEMBER(ide_interrupt); + devcb_write_line m_pri_interrupt_handler; + devcb_write_line m_sec_interrupt_handler; + void ide_pri_command(address_map &map); + void ide_pri_control(address_map &map); + void ide_sec_command(address_map &map); + void ide_sec_control(address_map &map); + void ide_io(address_map &map); + DECLARE_WRITE_LINE_MEMBER(ide_pri_interrupt); + DECLARE_WRITE_LINE_MEMBER(ide_sec_interrupt); }; DECLARE_DEVICE_TYPE(MCPX_IDE, mcpx_ide_device) diff --git a/src/mame/layout/by35.lay b/src/mame/layout/by35.lay index 9d6b30a7bc8..eeb77c790d8 100644 --- a/src/mame/layout/by35.lay +++ b/src/mame/layout/by35.lay @@ -725,6 +725,7 @@ + @@ -1012,18 +1013,6 @@ - - - - - - - - - - - - @@ -1184,20 +1173,32 @@ - + - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + diff --git a/src/mame/machine/rad_eu3a05gpio.cpp b/src/mame/machine/elan_eu3a05gpio.cpp similarity index 96% rename from src/mame/machine/rad_eu3a05gpio.cpp rename to src/mame/machine/elan_eu3a05gpio.cpp index c98109766b7..559db6f83a5 100644 --- a/src/mame/machine/rad_eu3a05gpio.cpp +++ b/src/mame/machine/elan_eu3a05gpio.cpp @@ -2,9 +2,9 @@ // copyright-holders:David Haywood #include "emu.h" -#include "rad_eu3a05gpio.h" +#include "elan_eu3a05gpio.h" -DEFINE_DEVICE_TYPE(RADICA6502_GPIO, radica6502_gpio_device, "radica6502gpio", "Radica 6502 GPIO") +DEFINE_DEVICE_TYPE(RADICA6502_GPIO, radica6502_gpio_device, "radica6502gpio", "Elan EU3A05 GPIO") radica6502_gpio_device::radica6502_gpio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, RADICA6502_GPIO, tag, owner, clock) diff --git a/src/mame/machine/rad_eu3a05gpio.h b/src/mame/machine/elan_eu3a05gpio.h similarity index 100% rename from src/mame/machine/rad_eu3a05gpio.h rename to src/mame/machine/elan_eu3a05gpio.h diff --git a/src/mame/machine/xbox.cpp b/src/mame/machine/xbox.cpp index 01dcb4631a5..8deb4ecd352 100644 --- a/src/mame/machine/xbox.cpp +++ b/src/mame/machine/xbox.cpp @@ -573,77 +573,6 @@ WRITE_LINE_MEMBER(xbox_base_state::ide_interrupt_changed) mcpxlpc->irq14(state); } -/* - * SuperIO - */ - -READ8_MEMBER(xbox_base_state::superio_read) -{ - if (superiost.configuration_mode == false) - return 0; - if (offset == 0) // index port 0x2e - return superiost.index; - if (offset == 1) - { - // data port 0x2f - if (superiost.index < 0x30) - return superiost.registers[0][superiost.index]; - return superiost.registers[superiost.selected][superiost.index]; - } - return 0; -} - -WRITE8_MEMBER(xbox_base_state::superio_write) -{ - if (superiost.configuration_mode == false) - { - // config port 0x2e - if ((offset == 0) && (data == 0x55)) - superiost.configuration_mode = true; - return; - } - if ((offset == 0) && (data == 0xaa)) - { - // config port 0x2e - superiost.configuration_mode = false; - return; - } - if (offset == 0) - { - // index port 0x2e - superiost.index = data; - } - if (offset == 1) - { - // data port 0x2f - if (superiost.index < 0x30) - { - superiost.registers[0][superiost.index] = data; - superiost.selected = superiost.registers[0][7]; - } else - { - superiost.registers[superiost.selected][superiost.index] = data; - //if ((superiost.selected == 4) && (superiost.index == 0x30) && (data != 0)) - // ; // add handlers 0x3f8- +7 - } - } -} - -READ8_MEMBER(xbox_base_state::superiors232_read) -{ - if (offset == 5) - return 0x20; - return 0; -} - -WRITE8_MEMBER(xbox_base_state::superiors232_write) -{ - if (offset == 0) - { - printf("%c", data); - } -} - /* * SMbus devices */ @@ -778,6 +707,114 @@ void xbox_eeprom_device::device_reset() { } +/* + * Super-io connected to lpc bus + */ + +DEFINE_DEVICE_TYPE(XBOX_SUPERIO, xbox_superio_device, "superio_device", "XBOX debug SuperIO") + +xbox_superio_device::xbox_superio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, XBOX_SUPERIO, tag, owner, clock) + , configuration_mode(false) + , index(0) + , selected(0) +{ + +} + +void xbox_superio_device::internal_io_map(address_map &map) +{ + map(0x002e, 0x002f).rw(FUNC(xbox_superio_device::read), FUNC(xbox_superio_device::write)); + map(0x03f8, 0x03ff).rw(FUNC(xbox_superio_device::read_rs232), FUNC(xbox_superio_device::write_rs232)); +} + +void xbox_superio_device::map_extra(address_space *memory_space, address_space *io_space) +{ + memspace = memory_space; + iospace = io_space; + io_space->install_device(0, 0xffff, *this, &xbox_superio_device::internal_io_map); +} + +void xbox_superio_device::set_host(int index, lpcbus_host_interface *host) +{ + lpchost = host; + lpcindex = index; +} + +void xbox_superio_device::device_start() +{ + memset(registers, 0, sizeof(registers)); + registers[0][0x26] = 0x2e; // Configuration port address byte 0 +} + +READ8_MEMBER(xbox_superio_device::read) +{ + if (configuration_mode == false) + return 0; + if (offset == 0) // index port 0x2e + return index; + if (offset == 1) + { + // data port 0x2f + if (index < 0x30) + return registers[0][index]; + return registers[selected][index]; + } + return 0; +} + +WRITE8_MEMBER(xbox_superio_device::write) +{ + if (configuration_mode == false) + { + // config port 0x2e + if ((offset == 0) && (data == 0x55)) + configuration_mode = true; + return; + } + if ((offset == 0) && (data == 0xaa)) + { + // config port 0x2e + configuration_mode = false; + return; + } + if (offset == 0) + { + // index port 0x2e + index = data; + } + if (offset == 1) + { + // data port 0x2f + if (index < 0x30) + { + registers[0][index] = data; + selected = registers[0][7]; + } + else + { + registers[selected][index] = data; + //if ((superiost.selected == 4) && (superiost.index == 0x30) && (data != 0)) + // ; // add handlers 0x3f8- +7 + } + } +} + +READ8_MEMBER(xbox_superio_device::read_rs232) +{ + if (offset == 5) + return 0x20; + return 0; +} + +WRITE8_MEMBER(xbox_superio_device::write_rs232) +{ + if (offset == 0) + { + printf("%c", data); + } +} + void xbox_base_state::machine_start() { find_debug_params(); @@ -798,19 +835,15 @@ void xbox_base_state::machine_start() hack_usb(); } ); - // super-io - memset(&superiost, 0, sizeof(superiost)); - superiost.configuration_mode = false; - superiost.registers[0][0x26] = 0x2e; // Configuration port address byte 0 // savestates save_item(NAME(debug_irq_active)); save_item(NAME(debug_irq_number)); } +#if 0 void xbox_base_state::xbox_base_map(address_map &map) { map(0x00000000, 0x07ffffff).ram(); // 128 megabytes -#if 0 map(0xf0000000, 0xf7ffffff).ram().share("nv2a_share"); // 3d accelerator wants this map(0xfd000000, 0xfdffffff).ram().rw(FUNC(xbox_base_state::geforce_r), FUNC(xbox_base_state::geforce_w)); map(0xfed00000, 0xfed003ff).rw(FUNC(xbox_base_state::ohci_usb_r), FUNC(xbox_base_state::ohci_usb_w)); @@ -818,15 +851,13 @@ void xbox_base_state::xbox_base_map(address_map &map) map(0xfe800000, 0xfe87ffff).rw(FUNC(xbox_base_state::audio_apu_r), FUNC(xbox_base_state::audio_apu_w)); map(0xfec00000, 0xfec00fff).rw(FUNC(xbox_base_state::audio_ac93_r), FUNC(xbox_base_state::audio_ac93_w)); map(0xfef00000, 0xfef003ff).rw(FUNC(xbox_base_state::network_r), FUNC(xbox_base_state::network_w)); -#endif } void xbox_base_state::xbox_base_map_io(address_map &map) { + map(0x01f0, 0x01f7).rw(":pci:09.0:ide1", FUNC(bus_master_ide_controller_device::cs0_r), FUNC(bus_master_ide_controller_device::cs0_w)); map(0x002e, 0x002f).rw(FUNC(xbox_base_state::superio_read), FUNC(xbox_base_state::superio_write)); - map(0x01f0, 0x01f7).rw(":pci:09.0:ide", FUNC(bus_master_ide_controller_device::cs0_r), FUNC(bus_master_ide_controller_device::cs0_w)); map(0x03f8, 0x03ff).rw(FUNC(xbox_base_state::superiors232_read), FUNC(xbox_base_state::superiors232_write)); -#if 0 map(0x0cf8, 0x0cff).rw("pcibus", FUNC(pci_bus_legacy_device::read), FUNC(pci_bus_legacy_device::write)); map(0x8000, 0x80ff).rw(FUNC(xbox_base_state::dummy_r), FUNC(xbox_base_state::dummy_w)); // lpc bridge map(0xc000, 0xc00f).rw(FUNC(xbox_base_state::smbus_r), FUNC(xbox_base_state::smbus_w)); @@ -835,23 +866,22 @@ void xbox_base_state::xbox_base_map_io(address_map &map) map(0xd200, 0xd27f).noprw(); // ac97 map(0xe000, 0xe007).rw(FUNC(xbox_base_state::networkio_r), FUNC(xbox_base_state::networkio_w)); map(0xff60, 0xff6f).rw("ide", FUNC(bus_master_ide_controller_device::bmdma_r), FUNC(bus_master_ide_controller_device::bmdma_w)); -#endif } +#endif void xbox_base_state::xbox_base(machine_config &config) { /* basic machine hardware */ PENTIUM3(config, m_maincpu, 733333333); /* Wrong! family 6 model 8 stepping 10 */ - m_maincpu->set_addrmap(AS_PROGRAM, &xbox_base_state::xbox_base_map); - m_maincpu->set_addrmap(AS_IO, &xbox_base_state::xbox_base_map_io); m_maincpu->set_irq_acknowledge_callback(FUNC(xbox_base_state::irq_callback)); config.m_minimum_quantum = attotime::from_hz(6000); PCI_ROOT(config, ":pci", 0); NV2A_HOST(config, ":pci:00.0", 0, m_maincpu); - NV2A_RAM(config, ":pci:00.3", 0); + NV2A_RAM(config, ":pci:00.3", 0, 128); // 128 megabytes MCPX_ISALPC(config, ":pci:01.0", 0, 0).interrupt_output().set(FUNC(xbox_base_state::maincpu_interrupt)); + XBOX_SUPERIO(config, ":pci:01.0:0", 0); MCPX_SMBUS(config, ":pci:01.1", 0).interrupt_handler().set(FUNC(xbox_base_state::smbus_interrupt_changed)); XBOX_PIC16LC(config, ":pci:01.1:110", 0); // these 3 are on smbus number 1 XBOX_CX25871(config, ":pci:01.1:145", 0); @@ -863,7 +893,7 @@ void xbox_base_state::xbox_base(machine_config &config) MCPX_AC97_AUDIO(config, ":pci:06.0", 0); MCPX_AC97_MODEM(config, ":pci:06.1", 0); PCI_BRIDGE(config, ":pci:08.0", 0, 0x10de01b8, 0); - MCPX_IDE(config, ":pci:09.0", 0).interrupt_handler().set(FUNC(xbox_base_state::ide_interrupt_changed)); + MCPX_IDE(config, ":pci:09.0", 0).pri_interrupt_handler().set(FUNC(xbox_base_state::ide_interrupt_changed)); NV2A_AGP(config, ":pci:1e.0", 0, 0x10de01b7, 0); NV2A_GPU(config, ":pci:1e.0:00.0", 0, m_maincpu).interrupt_handler().set(FUNC(xbox_base_state::nv2a_interrupt_changed)); diff --git a/src/mame/machine/xbox_pci.cpp b/src/mame/machine/xbox_pci.cpp index 88a4ea9a546..f4de710656c 100644 --- a/src/mame/machine/xbox_pci.cpp +++ b/src/mame/machine/xbox_pci.cpp @@ -69,6 +69,12 @@ nv2a_ram_device::nv2a_ram_device(const machine_config &mconfig, const char *tag, set_ids(0x10de02a6, 0, 0, 0); } +void nv2a_ram_device::device_start() +{ + pci_device::device_start(); + ram.resize(ram_size * 1024 * 1024 / 4); +} + READ32_MEMBER(nv2a_ram_device::config_register_r) { return 0x08800044; @@ -78,6 +84,12 @@ WRITE32_MEMBER(nv2a_ram_device::config_register_w) { } +void nv2a_ram_device::map_extra(uint64_t memory_window_start, uint64_t memory_window_end, uint64_t memory_offset, address_space *memory_space, + uint64_t io_window_start, uint64_t io_window_end, uint64_t io_offset, address_space *io_space) +{ + memory_space->install_ram(0x00000000, ram_size * 1024 * 1024 - 1, &ram[0]); +} + /* * LPC Bus */ @@ -121,6 +133,12 @@ mcpx_isalpc_device::mcpx_isalpc_device(const machine_config &mconfig, const char pic8259_1(*this, "pic8259_1"), pic8259_2(*this, "pic8259_2"), pit8254(*this, "pit8254"), + m_pm1_status(0), + m_pm1_enable(0), + m_pm1_control(0), + m_pm1_timer(0), + m_gpe0_status(0), + m_gpe0_enable(0), m_global_smi_control(0), m_smi_command_port(0) { @@ -129,11 +147,15 @@ mcpx_isalpc_device::mcpx_isalpc_device(const machine_config &mconfig, const char void mcpx_isalpc_device::device_start() { pci_device::device_start(); + set_multifunction_device(true); m_smi_callback.resolve_safe(); m_interrupt_output.resolve_safe(); m_boot_state_hook.resolve_safe(); add_map(0x00000100, M_IO, FUNC(mcpx_isalpc_device::lpc_io)); bank_infos[0].adr = 0x8000; + status = 0x00b0; + command = 0x0081; + command_mask = 0x01be; for (int a = 0; a < 16; a++) lpcdevices[a] = nullptr; for (device_t &d : subdevices()) @@ -203,7 +225,7 @@ void mcpx_isalpc_device::update_smi_line() READ32_MEMBER(mcpx_isalpc_device::acpi_r) { - logerror("Acpi read from %04X mask %08X\n", bank_infos[0].adr + offset * 4, mem_mask); + logerror("Acpi read from %04X mask %08X\n", (bank_infos[0].adr & 0xfffffffe) + offset * 4, mem_mask); if ((offset == 0xa) && ACCESSING_BITS_0_15) return m_global_smi_control; if ((offset == 0xb) && ACCESSING_BITS_16_23) @@ -213,15 +235,35 @@ READ32_MEMBER(mcpx_isalpc_device::acpi_r) WRITE32_MEMBER(mcpx_isalpc_device::acpi_w) { - // Seen using word registers at the following offsets + logerror("Acpi write %08X to %04X mask %08X\n", data, (bank_infos[0].adr & 0xfffffffe) + offset * 4, mem_mask); + // Seen using word registers at offsets // 0x00 0x02 0x04 0x08 0x20 0x22 0x28 0xa0 0xa2 0xc0-0xd8 - if ((offset == 0xa) && ACCESSING_BITS_0_15) + // Byte access at 0x2e + if ((offset == 0) && ACCESSING_BITS_0_15) + // pm1 status register + m_pm1_status = data & 0xffff; + else if ((offset == 0) && ACCESSING_BITS_16_31) + // pm1 enable register + m_pm1_enable = data >> 16; + else if ((offset == 1) && ACCESSING_BITS_0_15) + // pm1 control register + m_pm1_control = data & 0xffff; + else if ((offset == 2) && ACCESSING_BITS_0_15) + // pm1 timer register + m_pm1_timer = data & 0xffff; + else if ((offset == 8) && ACCESSING_BITS_0_15) + // gpe0 status register + m_gpe0_status = data & 0xffff; + else if ((offset == 8) && ACCESSING_BITS_16_31) + // gpe0 enable register + m_gpe0_enable = data >> 16; + else if ((offset == 0xa) && ACCESSING_BITS_0_15) { // Global SMI Control m_global_smi_control = m_global_smi_control & (~data & 0xffff); update_smi_line(); } - if ((offset == 0xb) && ACCESSING_BITS_16_23) + else if ((offset == 0xb) && ACCESSING_BITS_16_23) { // SMI Command Port // write to byte 0x2e must generate a SMI interrupt @@ -230,7 +272,8 @@ WRITE32_MEMBER(mcpx_isalpc_device::acpi_w) update_smi_line(); logerror("Generate software SMI with value %02X\n", m_smi_command_port); } - logerror("Acpi write %08X to %04X mask %08X\n", data, bank_infos[0].adr + offset * 4, mem_mask); + else + logerror("Acpi write not recognized\n"); } WRITE8_MEMBER(mcpx_isalpc_device::boot_state_w) @@ -384,6 +427,7 @@ mcpx_smbus_device::mcpx_smbus_device(const machine_config &mconfig, const char * void mcpx_smbus_device::device_start() { pci_device::device_start(); + set_multifunction_device(true); m_interrupt_handler.resolve_safe(); add_map(0x00000010, M_IO, FUNC(mcpx_smbus_device::smbus_io0)); bank_infos[0].adr = 0x1000; @@ -391,6 +435,7 @@ void mcpx_smbus_device::device_start() bank_infos[1].adr = 0xc000; add_map(0x00000020, M_IO, FUNC(mcpx_smbus_device::smbus_io2)); bank_infos[2].adr = 0xc200; + status = 0x00b0; memset(&smbusst, 0, sizeof(smbusst)); for (int b = 0; b < 2; b++) for (int a = 0; a < 128; a++) @@ -547,6 +592,7 @@ void mcpx_ohci_device::device_start() m_interrupt_handler.resolve_safe(); add_map(0x00001000, M_MEM, FUNC(mcpx_ohci_device::ohci_mmio)); bank_infos[0].adr = 0xfed00000; + status = 0x00b0; ohci_usb = new ohci_usb_controller(); ohci_usb->set_cpu(maincpu.target()); ohci_usb->set_irq_callbaclk( @@ -689,6 +735,7 @@ void mcpx_apu_device::device_start() pci_device::device_start(); add_map(0x00080000, M_MEM, FUNC(mcpx_apu_device::apu_mmio)); bank_infos[0].adr = 0xfe800000; + status = 0x00b0; memset(apust.memory, 0, sizeof(apust.memory)); memset(apust.voices_heap_blockaddr, 0, sizeof(apust.voices_heap_blockaddr)); memset(apust.voices_active, 0, sizeof(apust.voices_active)); @@ -884,12 +931,14 @@ mcpx_ac97_audio_device::mcpx_ac97_audio_device(const machine_config &mconfig, co void mcpx_ac97_audio_device::device_start() { pci_device::device_start(); + set_multifunction_device(true); add_map(0x00000100, M_IO, FUNC(mcpx_ac97_audio_device::ac97_io0)); bank_infos[0].adr = 0xd000; add_map(0x00000080, M_IO, FUNC(mcpx_ac97_audio_device::ac97_io1)); bank_infos[1].adr = 0xd200; add_map(0x00001000, M_MEM, FUNC(mcpx_ac97_audio_device::ac97_mmio)); bank_infos[2].adr = 0xfec00000; + status = 0x00b0; memset(&ac97st, 0, sizeof(ac97st)); } @@ -981,24 +1030,56 @@ mcpx_ac97_modem_device::mcpx_ac97_modem_device(const machine_config &mconfig, co DEFINE_DEVICE_TYPE(MCPX_IDE, mcpx_ide_device, "mcpx_ide", "MCPX IDE Controller") -void mcpx_ide_device::mcpx_ide_io(address_map &map) +void mcpx_ide_device::config_map(address_map &map) { - map(0x0000, 0x000f).rw("ide", FUNC(bus_master_ide_controller_device::bmdma_r), FUNC(bus_master_ide_controller_device::bmdma_w)); + pci_device::config_map(map); + map(0x08, 0x0b).rw(FUNC(pci_device::class_rev_r), FUNC(mcpx_ide_device::class_rev_w)); +} + +void mcpx_ide_device::ide_pri_command(address_map &map) +{ + map(0, 7).rw("ide1", FUNC(bus_master_ide_controller_device::cs0_r), FUNC(bus_master_ide_controller_device::cs0_w)); +} + +void mcpx_ide_device::ide_pri_control(address_map &map) +{ +} + +void mcpx_ide_device::ide_sec_command(address_map &map) +{ + map(0, 7).rw("ide2", FUNC(bus_master_ide_controller_device::cs0_r), FUNC(bus_master_ide_controller_device::cs0_w)); +} + +void mcpx_ide_device::ide_sec_control(address_map &map) +{ +} + +void mcpx_ide_device::ide_io(address_map &map) +{ + map(0x0000, 0x0007).rw("ide1", FUNC(bus_master_ide_controller_device::bmdma_r), FUNC(bus_master_ide_controller_device::bmdma_w)); + map(0x0008, 0x000f).rw("ide2", FUNC(bus_master_ide_controller_device::bmdma_r), FUNC(bus_master_ide_controller_device::bmdma_w)); } mcpx_ide_device::mcpx_ide_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : pci_device(mconfig, MCPX_IDE, tag, owner, clock), - m_interrupt_handler(*this) + m_pri_interrupt_handler(*this), + m_sec_interrupt_handler(*this) { - set_ids(0x10de01bc, 0, 0, 0); + set_ids(0x10de01bc, 0, 0x01018a, 0); } void mcpx_ide_device::device_start() { pci_device::device_start(); - add_map(0x00000010, M_IO, FUNC(mcpx_ide_device::mcpx_ide_io)); - bank_infos[0].adr = 0xff60; - m_interrupt_handler.resolve_safe(); + add_map(0x00000008, M_IO | M_DISABLED, FUNC(mcpx_ide_device::ide_pri_command)); // primary command block + add_map(0x00000004, M_IO | M_DISABLED, FUNC(mcpx_ide_device::ide_pri_control)); // primary control block + add_map(0x00000008, M_IO | M_DISABLED, FUNC(mcpx_ide_device::ide_sec_command)); // secondary command block + add_map(0x00000004, M_IO | M_DISABLED, FUNC(mcpx_ide_device::ide_sec_control)); // secondary control block + add_map(0x00000010, M_IO, FUNC(mcpx_ide_device::ide_io)); + bank_infos[4].adr = 0xff60; + status = 0x00b0; + m_pri_interrupt_handler.resolve_safe(); + m_sec_interrupt_handler.resolve_safe(); } void mcpx_ide_device::device_reset() @@ -1008,14 +1089,42 @@ void mcpx_ide_device::device_reset() void mcpx_ide_device::device_add_mconfig(machine_config &config) { - bus_master_ide_controller_device &ide(BUS_MASTER_IDE_CONTROLLER(config, "ide", 0)); - ide.irq_handler().set(FUNC(mcpx_ide_device::ide_interrupt)); - ide.set_bus_master_space(":maincpu", AS_PROGRAM); + bus_master_ide_controller_device &ide1(BUS_MASTER_IDE_CONTROLLER(config, "ide1", 0)); + ide1.irq_handler().set(FUNC(mcpx_ide_device::ide_pri_interrupt)); + ide1.set_bus_master_space(":maincpu", AS_PROGRAM); + + bus_master_ide_controller_device &ide2(BUS_MASTER_IDE_CONTROLLER(config, "ide2", 0)); + ide2.irq_handler().set(FUNC(mcpx_ide_device::ide_sec_interrupt)); + ide2.set_bus_master_space(":maincpu", AS_PROGRAM); } -WRITE_LINE_MEMBER(mcpx_ide_device::ide_interrupt) +void mcpx_ide_device::map_extra(uint64_t memory_window_start, uint64_t memory_window_end, uint64_t memory_offset, address_space *memory_space, + uint64_t io_window_start, uint64_t io_window_end, uint64_t io_offset, address_space *io_space) { - m_interrupt_handler(state); + if (~pclass & 1) + io_space->install_device(0x1f0, 0x1f7, *this, &mcpx_ide_device::ide_pri_command); + /*if (~pclass & 4) + io_space->install_device(0x3f0, 0x3f7, *this, &mcpx_ide_device::ide_sec_command);*/ +} + +WRITE32_MEMBER(mcpx_ide_device::class_rev_w) +{ + if (ACCESSING_BITS_8_15) + { + // bit 0 specifies if the primary channel is in compatibility or native-pci mode + // bit 2 specifies if the secondary channel is in compatibility or native-pci mode + pclass = (pclass & 0xfffffffa) | ((data >> 8) & 5); + } +} + +WRITE_LINE_MEMBER(mcpx_ide_device::ide_pri_interrupt) +{ + m_pri_interrupt_handler(state); +} + +WRITE_LINE_MEMBER(mcpx_ide_device::ide_sec_interrupt) +{ + m_sec_interrupt_handler(state); } /* @@ -1088,6 +1197,7 @@ void nv2a_gpu_device::device_start() void nv2a_gpu_device::device_reset() { pci_device::device_reset(); + nvidia_nv2a->set_ram_base(m_program->get_read_ptr(0)); } READ32_MEMBER(nv2a_gpu_device::geforce_r) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 1e0cb3344db..276067cff9f 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -12482,6 +12482,22 @@ egghunt // (c) 1995 Invi Image einst256 // einstein // +@source:elan_eu3a14.cpp +rad_gtg +rad_rsg +rad_rsgp +rad_foot +rad_bb3 +rad_bb3p +rad_hnt3 +rad_hnt3p +rad_bask +rad_baskp + +@source:elan_eu3a05.cpp +rad_sinv +rad_tetr + @source:electra.cpp avenger // (c) 1975 Electra @@ -21757,6 +21773,9 @@ milton // 1980 Milton Bradley @source:milwaukee.cpp mc1200 // +@source:mindset.cpp +mindset // (c) 1984 + @source:mini2440.cpp mini2440 // @@ -33373,22 +33392,6 @@ r9751 // ROLM 9751 phone system rabbit // (c) 1997 Electronic Arts rabbitjt // (c) 1996 Electronic Arts -@source:rad_eu3a14.cpp -rad_gtg -rad_rsg -rad_rsgp -rad_foot -rad_bb3 -rad_bb3p -rad_hnt3 -rad_hnt3p -rad_bask -rad_baskp - -@source:rad_eu3a05.cpp -rad_sinv -rad_tetr - @source:radio86.cpp impuls03 // kr03 // diff --git a/src/mame/mess.flt b/src/mame/mess.flt index 81419f643b9..4a98dfdc50f 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -212,6 +212,8 @@ ec184x.cpp ec65.cpp ec7915.cpp einstein.cpp +elan_eu3a05.cpp +elan_eu3a14.cpp electron.cpp elekscmp.cpp elektronmono.cpp @@ -468,6 +470,7 @@ mikrosha.cpp mightyframe.cpp milton6805.cpp milwaukee.cpp +mindset.cpp mini2440.cpp minicom.cpp miniforce.cpp diff --git a/src/mame/video/ashnojoe.cpp b/src/mame/video/ashnojoe.cpp index 043f1acb5bb..c515d078aa8 100644 --- a/src/mame/video/ashnojoe.cpp +++ b/src/mame/video/ashnojoe.cpp @@ -11,9 +11,9 @@ #include "includes/ashnojoe.h" -TILE_GET_INFO_MEMBER(ashnojoe_state::get_joe_tile_info) +TILE_GET_INFO_MEMBER(ashnojoe_state::get_tile_info_highest) { - int code = m_tileram[tile_index]; + int code = m_tileram[0][tile_index]; SET_TILE_INFO_MEMBER(2, code & 0xfff, @@ -21,10 +21,10 @@ TILE_GET_INFO_MEMBER(ashnojoe_state::get_joe_tile_info) 0); } -TILE_GET_INFO_MEMBER(ashnojoe_state::get_joe_tile_info_2) +TILE_GET_INFO_MEMBER(ashnojoe_state::get_tile_info_midlow) { - int code = m_tileram_2[tile_index * 2]; - int attr = m_tileram_2[tile_index * 2 + 1]; + int code = m_tileram[1][tile_index * 2]; + int attr = m_tileram[1][tile_index * 2 + 1]; SET_TILE_INFO_MEMBER(4, (code & 0x7fff), @@ -32,9 +32,9 @@ TILE_GET_INFO_MEMBER(ashnojoe_state::get_joe_tile_info_2) 0); } -TILE_GET_INFO_MEMBER(ashnojoe_state::get_joe_tile_info_3) +TILE_GET_INFO_MEMBER(ashnojoe_state::get_tile_info_high) { - int code = m_tileram_3[tile_index]; + int code = m_tileram[2][tile_index]; SET_TILE_INFO_MEMBER(0, code & 0xfff, @@ -42,9 +42,9 @@ TILE_GET_INFO_MEMBER(ashnojoe_state::get_joe_tile_info_3) 0); } -TILE_GET_INFO_MEMBER(ashnojoe_state::get_joe_tile_info_4) +TILE_GET_INFO_MEMBER(ashnojoe_state::get_tile_info_low) { - int code = m_tileram_4[tile_index]; + int code = m_tileram[3][tile_index]; SET_TILE_INFO_MEMBER(1, code & 0xfff, @@ -52,10 +52,10 @@ TILE_GET_INFO_MEMBER(ashnojoe_state::get_joe_tile_info_4) 0); } -TILE_GET_INFO_MEMBER(ashnojoe_state::get_joe_tile_info_5) +TILE_GET_INFO_MEMBER(ashnojoe_state::get_tile_info_midhigh) { - int code = m_tileram_5[tile_index * 2]; - int attr = m_tileram_5[tile_index * 2 + 1]; + int code = m_tileram[4][tile_index * 2]; + int attr = m_tileram[4][tile_index * 2 + 1]; SET_TILE_INFO_MEMBER(4, (code & 0x7fff), @@ -63,10 +63,11 @@ TILE_GET_INFO_MEMBER(ashnojoe_state::get_joe_tile_info_5) 0); } -TILE_GET_INFO_MEMBER(ashnojoe_state::get_joe_tile_info_6) +TILE_GET_INFO_MEMBER(ashnojoe_state::get_tile_info_lowest) { - int code = m_tileram_6[tile_index * 2]; - int attr = m_tileram_6[tile_index * 2 + 1]; + const int buffer = (m_tilemap_reg[0] & 0x02) >> 1; + int code = m_tileram[5 + buffer][tile_index * 2]; + int attr = m_tileram[5 + buffer][tile_index * 2 + 1]; SET_TILE_INFO_MEMBER(3, (code & 0x1fff), @@ -75,139 +76,92 @@ TILE_GET_INFO_MEMBER(ashnojoe_state::get_joe_tile_info_6) } -TILE_GET_INFO_MEMBER(ashnojoe_state::get_joe_tile_info_7) +void ashnojoe_state::tilemaps_xscroll_w(offs_t offset, u16 data) { - int code = m_tileram_7[tile_index * 2]; - int attr = m_tileram_7[tile_index * 2 + 1]; - - SET_TILE_INFO_MEMBER(3, - (code & 0x1fff), - ((attr >> 8) & 0x1f) + 0x70, - 0); -} - -WRITE16_MEMBER(ashnojoe_state::ashnojoe_tileram_w) -{ - m_tileram[offset] = data; - m_joetilemap->mark_tile_dirty(offset); -} - - -WRITE16_MEMBER(ashnojoe_state::ashnojoe_tileram2_w) -{ - m_tileram_2[offset] = data; - m_joetilemap2->mark_tile_dirty(offset / 2); -} - -WRITE16_MEMBER(ashnojoe_state::ashnojoe_tileram3_w) -{ - m_tileram_3[offset] = data; - m_joetilemap3->mark_tile_dirty(offset); -} - -WRITE16_MEMBER(ashnojoe_state::ashnojoe_tileram4_w) -{ - m_tileram_4[offset] = data; - m_joetilemap4->mark_tile_dirty(offset); -} - -WRITE16_MEMBER(ashnojoe_state::ashnojoe_tileram5_w) -{ - m_tileram_5[offset] = data; - m_joetilemap5->mark_tile_dirty(offset / 2); -} - -WRITE16_MEMBER(ashnojoe_state::ashnojoe_tileram6_w) -{ - m_tileram_6[offset] = data; - m_joetilemap6->mark_tile_dirty(offset / 2); -} - -WRITE16_MEMBER(ashnojoe_state::ashnojoe_tileram7_w) -{ - m_tileram_7[offset] = data; - m_joetilemap7->mark_tile_dirty(offset / 2); -} - -WRITE16_MEMBER(ashnojoe_state::joe_tilemaps_xscroll_w) -{ - switch( offset ) + switch (offset) { case 0: - m_joetilemap3->set_scrollx(0, data); + m_tilemap[2]->set_scrollx(0, data); break; case 1: - m_joetilemap5->set_scrollx(0, data); + m_tilemap[4]->set_scrollx(0, data); break; case 2: - m_joetilemap2->set_scrollx(0, data); + m_tilemap[1]->set_scrollx(0, data); break; case 3: - m_joetilemap4->set_scrollx(0, data); + m_tilemap[3]->set_scrollx(0, data); break; case 4: - m_joetilemap6->set_scrollx(0, data); - m_joetilemap7->set_scrollx(0, data); + m_tilemap[5]->set_scrollx(0, data); break; } } -WRITE16_MEMBER(ashnojoe_state::joe_tilemaps_yscroll_w) +void ashnojoe_state::tilemaps_yscroll_w(offs_t offset, u16 data) { - switch( offset ) + switch (offset) { case 0: - m_joetilemap3->set_scrolly(0, data); + m_tilemap[2]->set_scrolly(0, data); break; case 1: - m_joetilemap5->set_scrolly(0, data); + m_tilemap[4]->set_scrolly(0, data); break; case 2: - m_joetilemap2->set_scrolly(0, data); + m_tilemap[1]->set_scrolly(0, data); break; case 3: - m_joetilemap4->set_scrolly(0, data); + m_tilemap[3]->set_scrolly(0, data); break; case 4: - m_joetilemap6->set_scrolly(0, data); - m_joetilemap7->set_scrolly(0, data); + m_tilemap[5]->set_scrolly(0, data); break; } } +void ashnojoe_state::tilemap_regs_w(offs_t offset, u16 data, u16 mem_mask) +{ + const u16 old = m_tilemap_reg[offset]; + data = COMBINE_DATA(&m_tilemap_reg[offset]); + if (old != data) + { + if (offset == 0) + { + if ((old ^ data) & 0x02) + m_tilemap[5]->mark_all_dirty(); + } + } +} + void ashnojoe_state::video_start() { - m_joetilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_joe_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); - m_joetilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_joe_tile_info_2),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - m_joetilemap3 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_joe_tile_info_3),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - m_joetilemap4 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_joe_tile_info_4),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - m_joetilemap5 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_joe_tile_info_5),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - m_joetilemap6 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_joe_tile_info_6),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - m_joetilemap7 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_joe_tile_info_7),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_tile_info_highest),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_tile_info_midlow),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_tile_info_high),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_tile_info_low),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + m_tilemap[4] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_tile_info_midhigh),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + m_tilemap[5] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_tile_info_lowest),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - m_joetilemap->set_transparent_pen(15); - m_joetilemap2->set_transparent_pen(15); - m_joetilemap3->set_transparent_pen(15); - m_joetilemap4->set_transparent_pen(15); - m_joetilemap5->set_transparent_pen(15); + m_tilemap[0]->set_transparent_pen(15); + m_tilemap[1]->set_transparent_pen(15); + m_tilemap[2]->set_transparent_pen(15); + m_tilemap[3]->set_transparent_pen(15); + m_tilemap[4]->set_transparent_pen(15); } -uint32_t ashnojoe_state::screen_update_ashnojoe(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +u32 ashnojoe_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { //m_tilemap_reg[0] & 0x10 // ?? on coin insertion flip_screen_set(m_tilemap_reg[0] & 1); - if(m_tilemap_reg[0] & 0x02) - m_joetilemap7->draw(screen, bitmap, cliprect, 0, 0); - else - m_joetilemap6->draw(screen, bitmap, cliprect, 0, 0); - - m_joetilemap4->draw(screen, bitmap, cliprect, 0, 0); - m_joetilemap2->draw(screen, bitmap, cliprect, 0, 0); - m_joetilemap5->draw(screen, bitmap, cliprect, 0, 0); - m_joetilemap3->draw(screen, bitmap, cliprect, 0, 0); - m_joetilemap->draw(screen, bitmap, cliprect, 0, 0); + m_tilemap[5]->draw(screen, bitmap, cliprect, 0, 0); + m_tilemap[3]->draw(screen, bitmap, cliprect, 0, 0); + m_tilemap[1]->draw(screen, bitmap, cliprect, 0, 0); + m_tilemap[4]->draw(screen, bitmap, cliprect, 0, 0); + m_tilemap[2]->draw(screen, bitmap, cliprect, 0, 0); + m_tilemap[0]->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/asuka.cpp b/src/mame/video/asuka.cpp index 21a5586e768..33f98594e31 100644 --- a/src/mame/video/asuka.cpp +++ b/src/mame/video/asuka.cpp @@ -8,7 +8,7 @@ SPRITE READ AND WRITE HANDLERS **************************************************************/ -WRITE16_MEMBER(asuka_state::asuka_spritectrl_w) +void asuka_state::asuka_spritectrl_w(u16 data) { /* Bits 2-5 are color bank; in asuka games bit 0 is global priority */ m_pc090oj->set_sprite_ctrl(((data & 0x3c) >> 2) | ((data & 0x1) << 15)); @@ -21,7 +21,7 @@ WRITE16_MEMBER(asuka_state::asuka_spritectrl_w) uint32_t asuka_state::screen_update_asuka(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - uint8_t layer[3]; + u8 layer[3]; m_tc0100scn->tilemap_update(); @@ -46,7 +46,7 @@ uint32_t asuka_state::screen_update_asuka(screen_device &screen, bitmap_ind16 &b uint32_t asuka_state::screen_update_bonzeadv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - uint8_t layer[3]; + u8 layer[3]; m_tc0100scn->tilemap_update(); diff --git a/src/mame/video/decmxc06.cpp b/src/mame/video/decmxc06.cpp index 6d2a1522dfa..ebbfa1ad866 100644 --- a/src/mame/video/decmxc06.cpp +++ b/src/mame/video/decmxc06.cpp @@ -55,11 +55,9 @@ deco_mxc06_device::deco_mxc06_device(const machine_config &mconfig, const char * void deco_mxc06_device::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, gfx_element *gfx, u16* spriteram, int size) { const bool priority = !m_colpri_cb.isnull(); - int start, end, inc; - if (priority) { start = size - 4; end = -4; inc = -4; } - else { start = 0; end = size; inc = +4; } + struct sprite_t *sprite_ptr = m_spritelist.get(); - for (int offs = start; offs != end;) + for (int offs = 0; offs < size;) { u32 pri_mask = 0; int flipy, incy, mult, parentFlipY; @@ -75,7 +73,7 @@ void deco_mxc06_device::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap int flipx = data0 & 0x2000; parentFlipY = flipy = data0 & 0x4000; const int h = (1 << ((data0 & 0x1800) >> 11)); /* 1x, 2x, 4x, 8x height */ - int w = (1 << ((data0 & 0x0600) >> 9)); /* 1x, 2x, 4x, 8x width */ + const int w = (1 << ((data0 & 0x0600) >> 9)); /* 1x, 2x, 4x, 8x width */ int sx = data2 & 0x01ff; int sy = data0 & 0x01ff; @@ -98,17 +96,16 @@ void deco_mxc06_device::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap // thedeep strongly suggests that this check goes here, otherwise the radar breaks if (!(spriteram[offs] & 0x8000)) { - offs += inc; + offs += 4; continue; } - int chainoffs = priority ? offs - ((w - 1) * 4) : offs; // or bandit breaks for (int x = 0; x < w; x++) { - if ((chainoffs < size) && (chainoffs >= 0)) + if (offs < size) { // maybe, birdie try appears to specify the base code for each part.. - u16 code = spriteram[chainoffs + 1] & 0x1fff; + u16 code = spriteram[offs + 1] & 0x1fff; code &= ~(h - 1); @@ -121,37 +118,57 @@ void deco_mxc06_device::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap incy = 1; } - for (int y = 0; y < h; y++) + if (!flash || (screen.frame_number() & 1)) { - if (!flash || (screen.frame_number() & 1)) + sprite_ptr->height = h; + sprite_ptr->colour = colour; + sprite_ptr->flipx = flipx; + sprite_ptr->flipy = flipy; + if (priority) { - if (priority) + sprite_ptr->pri_mask = pri_mask; + for (int y = 0; y < h; y++) { - gfx->prio_transpen(bitmap, cliprect, - code - y * incy, - colour, - flipx, flipy, - sx + (mult * x), sy + (mult * y), screen.priority(), pri_mask, 0); + sprite_ptr->code[y] = code - y * incy; + sprite_ptr->x[y] = sx + (mult * x); + sprite_ptr->y[y] = sy + (mult * y); } - else + sprite_ptr++; + } + else + { + for (int y = 0; y < h; y++) { + sprite_ptr->code[y] = code - y * incy; + sprite_ptr->x[y] = sx + (mult * x); + sprite_ptr->y[y] = sy + (mult * y); gfx->transpen(bitmap, cliprect, - code - y * incy, - colour, - flipx, flipy, - sx + (mult * x), sy + (mult * y), 0); + sprite_ptr->code[y], + sprite_ptr->colour, + sprite_ptr->flipx, sprite_ptr->flipy, + sprite_ptr->x[y], sprite_ptr->y[y], 0); } } } } - chainoffs += 4; + offs += 4; } - while (w) + } + + if (priority) + { + while (sprite_ptr != m_spritelist.get()) { - w--; - offs += inc; - if (offs == end) - return; + sprite_ptr--; + + for (int y = 0; y < sprite_ptr->height; y++) + { + gfx->prio_transpen(bitmap, cliprect, + sprite_ptr->code[y], + sprite_ptr->colour, + sprite_ptr->flipx, sprite_ptr->flipy, + sprite_ptr->x[y], sprite_ptr->y[y], screen.priority(), sprite_ptr->pri_mask, 0); + }; } } } @@ -161,11 +178,9 @@ void deco_mxc06_device::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap void deco_mxc06_device::draw_sprites_bootleg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, gfx_element *gfx, u16* spriteram, int size) { const bool priority = !m_colpri_cb.isnull(); - int start, end, inc; - if (priority) { start = size - 4; end = -4; inc = -4; } - else { start = 0; end = size; inc = +4; } + struct sprite_t *sprite_ptr = m_spritelist.get(); - for (int offs = start; offs != end; offs += inc) + for (int offs = 0; offs < size; offs += 4) { u32 pri_mask = 0; u32 code = spriteram[offs]; @@ -184,21 +199,38 @@ void deco_mxc06_device::draw_sprites_bootleg(screen_device &screen, bitmap_ind16 sx -= 0x100; + sprite_ptr->colour = colour; + sprite_ptr->flipx = flipx; + sprite_ptr->flipy = flipy; + sprite_ptr->code[0] = code; + sprite_ptr->x[0] = sx; + sprite_ptr->y[0] = sy; if (priority) { - gfx->prio_transpen(bitmap,cliprect, - code, - colour, - flipx,flipy, - sx,sy,screen.priority(),pri_mask,0); + sprite_ptr->pri_mask = pri_mask; + sprite_ptr++; } else { gfx->transpen(bitmap,cliprect, - code, - colour, - flipx,flipy, - sx,sy,0); + sprite_ptr->code[0], + sprite_ptr->colour, + sprite_ptr->flipx,sprite_ptr->flipy, + sprite_ptr->x[0],sprite_ptr->y[0],0); + } + } + + if (priority) + { + while (sprite_ptr != m_spritelist.get()) + { + sprite_ptr--; + + gfx->prio_transpen(bitmap, cliprect, + sprite_ptr->code[0], + sprite_ptr->colour, + sprite_ptr->flipx, sprite_ptr->flipy, + sprite_ptr->x[0], sprite_ptr->y[0], screen.priority(), sprite_ptr->pri_mask, 0); } } } @@ -207,6 +239,7 @@ void deco_mxc06_device::device_start() { m_colpri_cb.bind_relative_to(*owner()); m_flip_screen = false; + m_spritelist = make_unique_clear(0x400); save_item(NAME(m_flip_screen)); } diff --git a/src/mame/video/decmxc06.h b/src/mame/video/decmxc06.h index 5df8e00720b..52bbd7bf61d 100644 --- a/src/mame/video/decmxc06.h +++ b/src/mame/video/decmxc06.h @@ -26,8 +26,17 @@ protected: virtual void device_reset() override; private: + struct sprite_t + { + int height; + u32 code[8], colour; + int x[8], y[8]; + bool flipx, flipy; + u32 pri_mask; + }; decmxc06_colpri_cb_delegate m_colpri_cb; bool m_flip_screen; + std::unique_ptr m_spritelist; }; DECLARE_DEVICE_TYPE(DECO_MXC06, deco_mxc06_device) diff --git a/src/mame/video/ninjaw.cpp b/src/mame/video/ninjaw.cpp index 2c96c0cfd5f..9aa3ea9e5d1 100644 --- a/src/mame/video/ninjaw.cpp +++ b/src/mame/video/ninjaw.cpp @@ -7,29 +7,31 @@ SPRITE DRAW ROUTINE ************************************************************/ -void ninjaw_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int primask, int x_offs, int y_offs, int chip) +void ninjaw_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int x_offs, int y_offs, int chip) { - int offs, data, tilenum, color, flipx, flipy; - int x, y, priority, curx, cury; - int code; - #ifdef MAME_DEBUG int unknown = 0; #endif - for (offs = (m_spriteram.bytes() / 2) - 4; offs >= 0; offs -= 4) + static const u32 primask[2] = { - data = m_spriteram[offs + 2]; - tilenum = data & 0x7fff; + GFX_PMASK_4, // draw sprites with priority 0 which are over the mid layer + (GFX_PMASK_4 | GFX_PMASK_2) // draw sprites with priority 1 which are under the mid layer + }; + + for (int offs = 0; offs < (m_spriteram.bytes() / 2); offs += 4) + { + int data = m_spriteram[offs + 2]; + const u32 tilenum = data & 0x7fff; if (!tilenum) continue; data = m_spriteram[offs + 0]; - x = (data - 32) & 0x3ff; /* aligns sprites on rock outcrops and sewer hole */ + int x = (data - 32) & 0x3ff; /* aligns sprites on rock outcrops and sewer hole */ data = m_spriteram[offs + 1]; - y = (data - 0) & 0x1ff; + int y = (data - 0) & 0x1ff; /* The purpose of the bit at data&0x8 (below) is unknown, but it is set @@ -45,13 +47,11 @@ void ninjaw_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, but is again unknown, and there is no obvious visual problem. */ data = m_spriteram[offs + 3]; - flipx = (data & 0x1); - flipy = (data & 0x2) >> 1; - priority = (data & 0x4) >> 2; // 1 = low + const bool flipx = (data & 0x1); + const bool flipy = (data & 0x2) >> 1; + const int priority = (data & 0x4) >> 2; // 1 = low /* data&0x8 - unknown */ - if (priority != primask) - continue; - color = (data & 0x7f00) >> 8; + const u32 color = (data & 0x7f00) >> 8; /* data&0x8000 - unknown */ #ifdef MAME_DEBUG @@ -65,14 +65,16 @@ void ninjaw_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, if (x > 0x3c0) x -= 0x400; if (y > 0x180) y -= 0x200; - curx = x; - cury = y; - code = tilenum; + const int curx = x; + const int cury = y; + const u32 code = tilenum; - m_gfxdecode[chip]->gfx(0)->transpen(bitmap,cliprect, + m_gfxdecode[chip]->gfx(0)->prio_transpen(bitmap,cliprect, code, color, flipx, flipy, - curx, cury, 0); + curx, cury, + screen.priority(), primask[priority], + 0); } #ifdef MAME_DEBUG @@ -86,11 +88,11 @@ void ninjaw_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, SCREEN REFRESH **************************************************************/ -uint32_t ninjaw_state::update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffs, int chip) +u32 ninjaw_state::update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffs, int chip) { tc0100scn_device *tc0100scn = m_tc0100scn[chip]; xoffs *= chip; - uint8_t layer[3], nodraw; + u8 layer[3]; tc0100scn->tilemap_update(); @@ -98,27 +100,27 @@ uint32_t ninjaw_state::update_screen(screen_device &screen, bitmap_ind16 &bitmap layer[1] = layer[0] ^ 1; layer[2] = 2; + screen.priority().fill(0, cliprect); /* chip 0 does tilemaps on the left, chip 1 center, chip 2 the right */ // draw bottom layer - nodraw = tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0); /* left */ + u8 nodraw = tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1); /* left */ /* Ensure screen blanked even when bottom layers not drawn due to disable bit */ if (nodraw) bitmap.fill(m_tc0110pcr[chip]->black_pen(), cliprect); - /* Sprites can be under/over the layer below text layer */ - draw_sprites(bitmap, cliprect, 1, xoffs, 8, chip); // draw sprites with priority 1 which are under the mid layer - // draw middle layer - tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 0); - - draw_sprites(bitmap, cliprect, 0, xoffs, 8, chip); // draw sprites with priority 0 which are over the mid layer + tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 2); // draw top(text) layer - tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 0); + tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4); + + /* Sprites can be under/over the layer below text layer */ + draw_sprites(screen, bitmap, cliprect, xoffs, 8, chip); + return 0; } -uint32_t ninjaw_state::screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8, 0); } -uint32_t ninjaw_state::screen_update_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8, 1); } -uint32_t ninjaw_state::screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8, 2); } +u32 ninjaw_state::screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8, 0); } +u32 ninjaw_state::screen_update_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8, 1); } +u32 ninjaw_state::screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8, 2); } diff --git a/src/mame/video/othunder.cpp b/src/mame/video/othunder.cpp index 240ee985b05..eccc701f064 100644 --- a/src/mame/video/othunder.cpp +++ b/src/mame/video/othunder.cpp @@ -64,45 +64,38 @@ spriteram is being tested, take no notice of that.] ********************************************************/ -void othunder_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, const int *primasks, int y_offs) +void othunder_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, const u32 *primasks, int y_offs) { - uint16_t *spritemap = (uint16_t *)memregion("user1")->base(); - uint16_t tile_mask = (m_gfxdecode->gfx(0)->elements()) - 1; - uint16_t *spriteram16 = m_spriteram; - int offs, data, tilenum, color, flipx, flipy; - int x, y, priority, curx, cury; + const u32 tile_mask = (m_gfxdecode->gfx(0)->elements()) - 1; int sprites_flipscreen = 0; - int zoomx, zoomy, zx, zy; - int sprite_chunk, map_offset, code, j, k, px, py; - int bad_chunks; /* pdrawgfx() needs us to draw sprites front to back, so we have to build a list while processing sprite ram and then draw them all at the end */ struct tempsprite *sprite_ptr = m_spritelist.get(); - for (offs = (m_spriteram.bytes() / 2) - 4; offs >= 0; offs -= 4) + for (int offs = (m_spriteram.bytes() / 2) - 4; offs >= 0; offs -= 4) { - data = spriteram16[offs + 0]; - zoomy = (data & 0xfe00) >> 9; - y = data & 0x1ff; + u16 data = m_spriteram[offs + 0]; + int zoomy = (data & 0xfe00) >> 9; + int y = data & 0x1ff; - data = spriteram16[offs + 1]; - flipx = (data & 0x4000) >> 14; - priority = (data & 0x8000) >> 15; - x = data & 0x1ff; + data = m_spriteram[offs + 1]; + int flipx = (data & 0x4000) >> 14; + const int priority = (data & 0x8000) >> 15; + int x = data & 0x1ff; - data = spriteram16[offs + 2]; - color = (data & 0xff00) >> 8; - zoomx = (data & 0x7f); + data = m_spriteram[offs + 2]; + const u32 color = (data & 0xff00) >> 8; + int zoomx = (data & 0x7f); - data = spriteram16[offs + 3]; - tilenum = data & 0x1fff; // $80000 spritemap rom maps up to $2000 64x64 sprites - flipy = (data & 0x8000) >> 15; + data = m_spriteram[offs + 3]; + const u16 tilenum = data & 0x1fff; // $80000 spritemap rom maps up to $2000 64x64 sprites + int flipy = (data & 0x8000) >> 15; if (!tilenum) continue; - map_offset = tilenum << 5; + const int map_offset = tilenum << 5; zoomx += 1; zoomy += 1; @@ -113,19 +106,19 @@ void othunder_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, c if (x > 0x140) x -= 0x200; if (y > 0x140) y -= 0x200; - bad_chunks = 0; + int bad_chunks = 0; - for (sprite_chunk = 0; sprite_chunk < 32; sprite_chunk++) + for (int sprite_chunk = 0; sprite_chunk < 32; sprite_chunk++) { - k = sprite_chunk % 4; /* 4 chunks per row */ - j = sprite_chunk / 4; /* 8 rows */ + const int k = sprite_chunk % 4; /* 4 chunks per row */ + const int j = sprite_chunk / 4; /* 8 rows */ - px = k; - py = j; + int px = k; + int py = j; if (flipx) px = 3 - k; /* pick tiles back to front for x and y flips */ if (flipy) py = 7 - j; - code = spritemap[map_offset + px + (py << 2)] & tile_mask; + const u16 code = m_sprmap_rom[map_offset + px + (py << 2)] & tile_mask; if (code == 0xffff) { @@ -133,11 +126,11 @@ void othunder_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, c continue; } - curx = x + ((k * zoomx) / 4); - cury = y + ((j * zoomy) / 8); + int curx = x + ((k * zoomx) / 4); + int cury = y + ((j * zoomy) / 8); - zx= x + (((k + 1) * zoomx) / 4) - curx; - zy= y + (((j + 1) * zoomy) / 8) - cury; + const int zx = x + (((k + 1) * zoomx) / 4) - curx; + const int zy = y + (((j + 1) * zoomy) / 8) - cury; if (sprites_flipscreen) { @@ -200,7 +193,7 @@ logerror("Sprite number %04x had %02x invalid chunks\n",tilenum,bad_chunks); SCREEN REFRESH **************************************************************/ -uint32_t othunder_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +u32 othunder_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { int layer[3]; @@ -221,7 +214,7 @@ uint32_t othunder_state::screen_update(screen_device &screen, bitmap_ind16 &bitm /* Sprites can be under/over the layer below text layer */ { - static const int primasks[2] = {0xf0, 0xfc}; + static const u32 primasks[2] = {0xf0, 0xfc}; draw_sprites(screen, bitmap, cliprect, primasks, 3); } diff --git a/src/mame/video/taito_f2.cpp b/src/mame/video/taito_f2.cpp index be83c6c2f97..b47500f899d 100644 --- a/src/mame/video/taito_f2.cpp +++ b/src/mame/video/taito_f2.cpp @@ -696,7 +696,7 @@ void taitof2_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, co if (m_sprite_type == 0) { code = m_spriteram_buffered[(offs) / 2] & 0x1fff; - u32 i = (code & 0x1c00) >> 10; + const u32 i = (code & 0x1c00) >> 10; code = m_spritebank[i] + (code & 0x3ff); } @@ -1033,13 +1033,13 @@ u32 taitof2_state::screen_update_pri(screen_device &screen, bitmap_ind16 &bitmap -void taitof2_state::draw_roz_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, u32 priority) +void taitof2_state::draw_roz_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, u8 priority, u8 priority_mask) { if (m_tc0280grd != nullptr) - m_tc0280grd->tc0280grd_zoom_draw(screen, bitmap, cliprect, m_pivot_xdisp, m_pivot_ydisp, priority); + m_tc0280grd->tc0280grd_zoom_draw(screen, bitmap, cliprect, m_pivot_xdisp, m_pivot_ydisp, priority, priority_mask); if (m_tc0430grw != nullptr) - m_tc0430grw->tc0430grw_zoom_draw(screen, bitmap, cliprect, m_pivot_xdisp, m_pivot_ydisp, priority); + m_tc0430grw->tc0430grw_zoom_draw(screen, bitmap, cliprect, m_pivot_xdisp, m_pivot_ydisp, priority, priority_mask); } u32 taitof2_state::screen_update_pri_roz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) @@ -1105,7 +1105,6 @@ u32 taitof2_state::screen_update_pri_roz(screen_device &screen, bitmap_ind16 &bi } - /* Thunderfox */ u32 taitof2_state::screen_update_thundfox(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { @@ -1207,7 +1206,6 @@ u32 taitof2_state::screen_update_thundfox(screen_device &screen, bitmap_ind16 &b } - /********************************************************************* Deadconx and Footchmp use in the PRI chip diff --git a/src/mame/video/taito_f3.cpp b/src/mame/video/taito_f3.cpp index d9ac891fe9a..0dedc16f81f 100644 --- a/src/mame/video/taito_f3.cpp +++ b/src/mame/video/taito_f3.cpp @@ -211,6 +211,8 @@ Playfield tile info: #include "includes/taito_f3.h" #include "render.h" +#include + #define VERBOSE 0 #define DARIUSG_KLUDGE //#define DEBUG_F3 1 @@ -265,42 +267,6 @@ static const struct F3config f3_config_table[] = }; -struct tempsprite -{ - int code,color; - int flipx,flipy; - int x,y; - int zoomx,zoomy; - int pri; -}; - -struct f3_playfield_line_inf -{ - int alpha_mode[256]; - int pri[256]; - - /* use for draw_scanlines */ - uint16_t *src[256],*src_s[256],*src_e[256]; - uint8_t *tsrc[256],*tsrc_s[256]; - int x_count[256]; - uint32_t x_zoom[256]; - uint32_t clip0[256]; - uint32_t clip1[256]; -}; - -struct f3_spritealpha_line_inf -{ - uint16_t alpha_level[256]; - uint16_t spri[256]; - uint16_t sprite_alpha[256]; - uint32_t sprite_clip0[256]; - uint32_t sprite_clip1[256]; - int16_t clip0_l[256]; - int16_t clip0_r[256]; - int16_t clip1_l[256]; - int16_t clip1_r[256]; -}; - /* alpha_mode ---- --xx 0:disable 1:nomal 2:alpha 7000 3:alpha b000 @@ -327,6 +293,7 @@ pri_alp_bitmap void taito_f3_state::device_post_load() { /* force a reread of the dynamic tiles in the pixel layer */ + m_gfxdecode->gfx(0)->mark_all_dirty(); m_gfxdecode->gfx(3)->mark_all_dirty(); } @@ -334,180 +301,140 @@ void taito_f3_state::device_post_load() void taito_f3_state::print_debug_info(bitmap_rgb32 &bitmap) { -/* uint16_t *f3_line_ram = m_f3_line_ram.get(); +/* u16 *line_ram = m_line_ram; int l[16]; char buf[64*16]; char *bufptr = buf; - bufptr += sprintf(bufptr,"%04X %04X %04X %04X\n",m_f3_control_0[0]>>6,m_f3_control_0[1]>>6,m_f3_control_0[2]>>6,m_f3_control_0[3]>>6); - bufptr += sprintf(bufptr,"%04X %04X %04X %04X\n",m_f3_control_0[4]>>7,m_f3_control_0[5]>>7,m_f3_control_0[6]>>7,m_f3_control_0[7]>>7); - bufptr += sprintf(bufptr,"%04X %04X %04X %04X\n",m_f3_control_1[0],m_f3_control_1[1],m_f3_control_1[2],m_f3_control_1[3]); - bufptr += sprintf(bufptr,"%04X %04X %04X %04X\n",m_f3_control_1[4],m_f3_control_1[5],m_f3_control_1[6],m_f3_control_1[7]); + bufptr += sprintf(bufptr,"%04X %04X %04X %04X\n", m_control_0[0] >> 6, m_control_0[1] >> 6, m_control_0[2] >> 6, m_control_0[3] >> 6); + bufptr += sprintf(bufptr,"%04X %04X %04X %04X\n", m_control_0[4] >> 7, m_control_0[5] >> 7, m_control_0[6] >> 7, m_control_0[7] >> 7); + bufptr += sprintf(bufptr,"%04X %04X %04X %04X\n", m_control_1[0], m_control_1[1], m_control_1[2], m_control_1[3]); + bufptr += sprintf(bufptr,"%04X %04X %04X %04X\n", m_control_1[4], m_control_1[5], m_control_1[6], m_control_1[7]); - bufptr += sprintf(bufptr,"%04X %04X %04X %04X %04X %04X %04X %04X\n",m_spriteram16_buffered[0],m_spriteram16_buffered[1],m_spriteram16_buffered[2],m_spriteram16_buffered[3],m_spriteram16_buffered[4],m_spriteram16_buffered[5],m_spriteram16_buffered[6],m_spriteram16_buffered[7]); - bufptr += sprintf(bufptr,"%04X %04X %04X %04X %04X %04X %04X %04X\n",m_spriteram16_buffered[8],m_spriteram16_buffered[9],m_spriteram16_buffered[10],m_spriteram16_buffered[11],m_spriteram16_buffered[12],m_spriteram16_buffered[13],m_spriteram16_buffered[14],m_spriteram16_buffered[15]); - bufptr += sprintf(bufptr,"%04X %04X %04X %04X %04X %04X %04X %04X\n",m_spriteram16_buffered[16],m_spriteram16_buffered[17],m_spriteram16_buffered[18],m_spriteram16_buffered[19],m_spriteram16_buffered[20],m_spriteram16_buffered[21],m_spriteram16_buffered[22],m_spriteram16_buffered[23]); + bufptr += sprintf(bufptr,"%04X %04X %04X %04X %04X %04X %04X %04X\n", m_spriteram16_buffered[0], m_spriteram16_buffered[1], m_spriteram16_buffered[2], m_spriteram16_buffered[3], m_spriteram16_buffered[4], m_spriteram16_buffered[5], m_spriteram16_buffered[6], m_spriteram16_buffered[7]); + bufptr += sprintf(bufptr,"%04X %04X %04X %04X %04X %04X %04X %04X\n", m_spriteram16_buffered[8], m_spriteram16_buffered[9], m_spriteram16_buffered[10], m_spriteram16_buffered[11], m_spriteram16_buffered[12], m_spriteram16_buffered[13], m_spriteram16_buffered[14], m_spriteram16_buffered[15]); + bufptr += sprintf(bufptr,"%04X %04X %04X %04X %04X %04X %04X %04X\n", m_spriteram16_buffered[16], m_spriteram16_buffered[17], m_spriteram16_buffered[18], m_spriteram16_buffered[19], m_spriteram16_buffered[20], m_spriteram16_buffered[21], m_spriteram16_buffered[22], m_spriteram16_buffered[23]); - l[0]=f3_line_ram[0x0040*2]&0xffff; - l[1]=f3_line_ram[0x00c0*2]&0xffff; - l[2]=f3_line_ram[0x0140*2]&0xffff; - l[3]=f3_line_ram[0x01c0*2]&0xffff; - bufptr += sprintf(bufptr,"Ctr1: %04x %04x %04x %04x\n",l[0],l[1],l[2],l[3]); + l[0] = line_ram[0x0040*2] & 0xffff; + l[1] = line_ram[0x00c0*2] & 0xffff; + l[2] = line_ram[0x0140*2] & 0xffff; + l[3] = line_ram[0x01c0*2] & 0xffff; + bufptr += sprintf(bufptr,"Ctr1: %04x %04x %04x %04x\n", l[0], l[1], l[2], l[3]); - l[0]=f3_line_ram[0x0240*2]&0xffff; - l[1]=f3_line_ram[0x02c0*2]&0xffff; - l[2]=f3_line_ram[0x0340*2]&0xffff; - l[3]=f3_line_ram[0x03c0*2]&0xffff; - bufptr += sprintf(bufptr,"Ctr2: %04x %04x %04x %04x\n",l[0],l[1],l[2],l[3]); + l[0] = line_ram[0x0240*2] & 0xffff; + l[1] = line_ram[0x02c0*2] & 0xffff; + l[2] = line_ram[0x0340*2] & 0xffff; + l[3] = line_ram[0x03c0*2] & 0xffff; + bufptr += sprintf(bufptr,"Ctr2: %04x %04x %04x %04x\n", l[0], l[1], l[2], l[3]); - l[0]=f3_line_ram[0x2c60*2]&0xffff; - l[1]=f3_line_ram[0x2ce0*2]&0xffff; - l[2]=f3_line_ram[0x2d60*2]&0xffff; - l[3]=f3_line_ram[0x2de0*2]&0xffff; - bufptr += sprintf(bufptr,"Pri : %04x %04x %04x %04x\n",l[0],l[1],l[2],l[3]); + l[0] = line_ram[0x2c60*2] & 0xffff; + l[1] = line_ram[0x2ce0*2] & 0xffff; + l[2] = line_ram[0x2d60*2] & 0xffff; + l[3] = line_ram[0x2de0*2] & 0xffff; + bufptr += sprintf(bufptr,"Pri : %04x %04x %04x %04x\n", l[0], l[1], l[2], l[3]); - l[0]=f3_line_ram[0x2060*2]&0xffff; - l[1]=f3_line_ram[0x20e0*2]&0xffff; - l[2]=f3_line_ram[0x2160*2]&0xffff; - l[3]=f3_line_ram[0x21e0*2]&0xffff; - bufptr += sprintf(bufptr,"Zoom: %04x %04x %04x %04x\n",l[0],l[1],l[2],l[3]); + l[0] = line_ram[0x2060*2] & 0xffff; + l[1] = line_ram[0x20e0*2] & 0xffff; + l[2] = line_ram[0x2160*2] & 0xffff; + l[3] = line_ram[0x21e0*2] & 0xffff; + bufptr += sprintf(bufptr,"Zoom: %04x %04x %04x %04x\n", l[0], l[1], l[2], l[3]); - l[0]=f3_line_ram[0x2860*2]&0xffff; - l[1]=f3_line_ram[0x28e0*2]&0xffff; - l[2]=f3_line_ram[0x2960*2]&0xffff; - l[3]=f3_line_ram[0x29e0*2]&0xffff; - bufptr += sprintf(bufptr,"Line: %04x %04x %04x %04x\n",l[0],l[1],l[2],l[3]); + l[0] = line_ram[0x2860*2] & 0xffff; + l[1] = line_ram[0x28e0*2] & 0xffff; + l[2] = line_ram[0x2960*2] & 0xffff; + l[3] = line_ram[0x29e0*2] & 0xffff; + bufptr += sprintf(bufptr,"Line: %04x %04x %04x %04x\n", l[0], l[1], l[2], l[3]); - l[0]=f3_line_ram[0x1c60*2]&0xffff; - l[1]=f3_line_ram[0x1ce0*2]&0xffff; - l[2]=f3_line_ram[0x1d60*2]&0xffff; - l[3]=f3_line_ram[0x1de0*2]&0xffff; - bufptr += sprintf(bufptr,"Sprt: %04x %04x %04x %04x\n",l[0],l[1],l[2],l[3]); + l[0] = line_ram[0x1c60*2] & 0xffff; + l[1] = line_ram[0x1ce0*2] & 0xffff; + l[2] = line_ram[0x1d60*2] & 0xffff; + l[3] = line_ram[0x1de0*2] & 0xffff; + bufptr += sprintf(bufptr,"Sprt: %04x %04x %04x %04x\n", l[0], l[1], l[2], l[3]); - l[0]=f3_line_ram[0x1860*2]&0xffff; - l[1]=f3_line_ram[0x18e0*2]&0xffff; - l[2]=f3_line_ram[0x1960*2]&0xffff; - l[3]=f3_line_ram[0x19e0*2]&0xffff; - bufptr += sprintf(bufptr,"Pivt: %04x %04x %04x %04x\n",l[0],l[1],l[2],l[3]); + l[0] = line_ram[0x1860*2] & 0xffff; + l[1] = line_ram[0x18e0*2] & 0xffff; + l[2] = line_ram[0x1960*2] & 0xffff; + l[3] = line_ram[0x19e0*2] & 0xffff; + bufptr += sprintf(bufptr,"Pivt: %04x %04x %04x %04x\n", l[0], l[1], l[2], l[3]); - l[0]=f3_line_ram[0x1060*2]&0xffff; - l[1]=f3_line_ram[0x10e0*2]&0xffff; - l[2]=f3_line_ram[0x1160*2]&0xffff; - l[3]=f3_line_ram[0x11e0*2]&0xffff; - bufptr += sprintf(bufptr,"Colm: %04x %04x %04x %04x\n",l[0],l[1],l[2],l[3]); + l[0] = line_ram[0x1060*2] & 0xffff; + l[1] = line_ram[0x10e0*2] & 0xffff; + l[2] = line_ram[0x1160*2] & 0xffff; + l[3] = line_ram[0x11e0*2] & 0xffff; + bufptr += sprintf(bufptr,"Colm: %04x %04x %04x %04x\n", l[0], l[1], l[2], l[3]); - l[0]=f3_line_ram[0x1460*2]&0xffff; - l[1]=f3_line_ram[0x14e0*2]&0xffff; - l[2]=f3_line_ram[0x1560*2]&0xffff; - l[3]=f3_line_ram[0x15e0*2]&0xffff; - bufptr += sprintf(bufptr,"5000: %04x %04x %04x %04x\n",l[0],l[1],l[2],l[3]); + l[0] = line_ram[0x1460*2] & 0xffff; + l[1] = line_ram[0x14e0*2] & 0xffff; + l[2] = line_ram[0x1560*2] & 0xffff; + l[3] = line_ram[0x15e0*2] & 0xffff; + bufptr += sprintf(bufptr,"5000: %04x %04x %04x %04x\n", l[0], l[1], l[2], l[3]); - machine().ui().draw_text(&machine().render().ui_container(), buf, 60, 40);*/ + machine().ui().draw_text(&machine().render().ui_container(), buf, 60, 40); */ } /******************************************************************************/ -inline void taito_f3_state::get_tile_info(tile_data &tileinfo, int tile_index, uint16_t *gfx_base) +template +TILE_GET_INFO_MEMBER(taito_f3_state::get_tile_info) { - uint32_t tile=(gfx_base[tile_index*2+0]<<16)|(gfx_base[tile_index*2+1]&0xffff); - uint8_t abtype=(tile>>(16+9)) & 1; + const u32 tile = (m_pf_data[Layer][tile_index * 2 + 0] << 16) | (m_pf_data[Layer][tile_index * 2 + 1] & 0xffff); + const u8 abtype = (tile >> (16 + 9)) & 1; // tiles can be configured to use 4, 5, or 6 bpp data. // if tiles use more than 4bpp, the bottom bits of the color code must be masked out. // This fixes (at least) the rain in round 6 of Arabian Magic. - uint8_t extra_planes = ((tile>>(16+10)) & 3); // 0 = 4bpp, 1 = 5bpp, 2 = unused?, 3 = 6bpp + const u8 extra_planes = ((tile >> (16 + 10)) & 3); // 0 = 4bpp, 1 = 5bpp, 2 = unused?, 3 = 6bpp SET_TILE_INFO_MEMBER(1, - tile&0xffff, - (tile>>16) & 0x1ff & (~extra_planes), - TILE_FLIPYX( tile >> 30 )); - tileinfo.category = abtype&1; /* alpha blending type */ + tile & 0xffff, + (tile >> 16) & 0x1ff & (~extra_planes), + TILE_FLIPYX(tile >> 30)); + tileinfo.category = abtype & 1; /* alpha blending type */ tileinfo.pen_mask = (extra_planes << 4) | 0x0f; } -TILE_GET_INFO_MEMBER(taito_f3_state::get_tile_info1) + +TILE_GET_INFO_MEMBER(taito_f3_state::get_tile_info_text) { - get_tile_info(tileinfo,tile_index,m_f3_pf_data_1); -} + int flags = 0; -TILE_GET_INFO_MEMBER(taito_f3_state::get_tile_info2) -{ - get_tile_info(tileinfo,tile_index,m_f3_pf_data_2); -} + const u16 vram_tile = (m_textram[tile_index] & 0xffff); -TILE_GET_INFO_MEMBER(taito_f3_state::get_tile_info3) -{ - get_tile_info(tileinfo,tile_index,m_f3_pf_data_3); -} - -TILE_GET_INFO_MEMBER(taito_f3_state::get_tile_info4) -{ - get_tile_info(tileinfo,tile_index,m_f3_pf_data_4); -} - -TILE_GET_INFO_MEMBER(taito_f3_state::get_tile_info5) -{ - get_tile_info(tileinfo,tile_index,m_f3_pf_data_5); -} - -TILE_GET_INFO_MEMBER(taito_f3_state::get_tile_info6) -{ - get_tile_info(tileinfo,tile_index,m_f3_pf_data_6); -} - -TILE_GET_INFO_MEMBER(taito_f3_state::get_tile_info7) -{ - get_tile_info(tileinfo,tile_index,m_f3_pf_data_7); -} - -TILE_GET_INFO_MEMBER(taito_f3_state::get_tile_info8) -{ - get_tile_info(tileinfo,tile_index,m_f3_pf_data_8); -} - - -TILE_GET_INFO_MEMBER(taito_f3_state::get_tile_info_vram) -{ - int vram_tile; - int flags=0; - - vram_tile = (m_videoram[tile_index]&0xffff); - - if (vram_tile&0x0100) flags|=TILE_FLIPX; - if (vram_tile&0x8000) flags|=TILE_FLIPY; + if (vram_tile & 0x0100) flags |= TILE_FLIPX; + if (vram_tile & 0x8000) flags |= TILE_FLIPY; SET_TILE_INFO_MEMBER(0, - vram_tile&0xff, - (vram_tile>>9)&0x3f, + vram_tile & 0xff, + (vram_tile >> 9) & 0x3f, flags); } TILE_GET_INFO_MEMBER(taito_f3_state::get_tile_info_pixel) { - int vram_tile,col_off; - int flags=0; - int y_offs=(m_f3_control_1[5]&0x1ff); - if (m_flipscreen) y_offs+=0x100; + int col_off; + int flags = 0; + int y_offs = (m_control_1[5] & 0x1ff); + if (m_flipscreen) y_offs += 0x100; /* Colour is shared with VRAM layer */ - if ((((tile_index%32)*8 + y_offs)&0x1ff)>0xff) - col_off=0x800+((tile_index%32)*0x40)+((tile_index&0xfe0)>>5); + if ((((tile_index & 0x1f) * 8 + y_offs) & 0x1ff) > 0xff) + col_off = 0x800 + ((tile_index & 0x1f) << 6) + ((tile_index & 0xfe0) >> 5); else - col_off=((tile_index%32)*0x40)+((tile_index&0xfe0)>>5); + col_off = ((tile_index & 0x1f) << 6) + ((tile_index & 0xfe0) >> 5); - vram_tile = (m_videoram[col_off]&0xffff); + const u16 vram_tile = (m_textram[col_off] & 0xffff); - if (vram_tile&0x0100) flags|=TILE_FLIPX; - if (vram_tile&0x8000) flags|=TILE_FLIPY; + if (vram_tile & 0x0100) flags |= TILE_FLIPX; + if (vram_tile & 0x8000) flags |= TILE_FLIPY; SET_TILE_INFO_MEMBER(3, tile_index, - (vram_tile>>9)&0x3f, + (vram_tile >> 9) & 0x3f, flags); } /******************************************************************************/ -WRITE_LINE_MEMBER(taito_f3_state::screen_vblank_f3) +WRITE_LINE_MEMBER(taito_f3_state::screen_vblank) { // rising edge if (state) @@ -518,13 +445,13 @@ WRITE_LINE_MEMBER(taito_f3_state::screen_vblank_f3) { get_sprite_info(m_spriteram16_buffered.get()); } - memcpy(m_spriteram16_buffered.get(),m_spriteram.get(),0x10000); + memcpy(m_spriteram16_buffered.get(), m_spriteram.target(), 0x10000); } - else if (m_sprite_lag==1) + else if (m_sprite_lag == 1) { if (machine().video().skip_this_frame() == 0) { - get_sprite_info(m_spriteram.get()); + get_sprite_info(m_spriteram.target()); } } } @@ -532,17 +459,16 @@ WRITE_LINE_MEMBER(taito_f3_state::screen_vblank_f3) void taito_f3_state::video_start() { - const struct F3config *pCFG=&f3_config_table[0]; - int i; + const struct F3config *pCFG = &f3_config_table[0]; - m_f3_alpha_level_2as=127; - m_f3_alpha_level_2ad=127; - m_f3_alpha_level_3as=127; - m_f3_alpha_level_3ad=127; - m_f3_alpha_level_2bs=127; - m_f3_alpha_level_2bd=127; - m_f3_alpha_level_3bs=127; - m_f3_alpha_level_3bd=127; + m_alpha_level_2as = 127; + m_alpha_level_2ad = 127; + m_alpha_level_3as = 127; + m_alpha_level_3ad = 127; + m_alpha_level_2bs = 127; + m_alpha_level_2bd = 127; + m_alpha_level_3bs = 127; + m_alpha_level_3bd = 127; m_alpha_level_last = -1; m_pdest_2a = 0x10; @@ -554,95 +480,88 @@ void taito_f3_state::video_start() m_tr_3a = 0; m_tr_3b = 1; - m_spritelist=nullptr; - m_spriteram16_buffered=nullptr; - m_pf_line_inf=nullptr; - m_tile_opaque_sp=nullptr; + m_spritelist = nullptr; + m_spriteram16_buffered = nullptr; + m_pf_line_inf = nullptr; + m_tile_opaque_sp = nullptr; /* Setup individual game */ do { - if (pCFG->name==m_f3_game) + if (pCFG->name == m_game) { break; } pCFG++; - } while(pCFG->name); + } while (pCFG->name); - m_f3_game_config=pCFG; + m_game_config=pCFG; - m_f3_vram = make_unique_clear(0x2000/2); - m_f3_pf_data = make_unique_clear(0xc000/2); - m_videoram = make_unique_clear(0x2000/2); - m_f3_line_ram = make_unique_clear(0x10000/2); - m_f3_pivot_ram = make_unique_clear(0x10000/2); - m_spriteram = make_unique_clear(0x10000/2); + if (m_game_config->extend) + { + m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<0>), this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); + m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<1>), this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); + m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<2>), this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); + m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<3>), this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); - if (m_f3_game_config->extend) { - m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info1),this),TILEMAP_SCAN_ROWS,16,16,64,32); - m_pf2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info2),this),TILEMAP_SCAN_ROWS,16,16,64,32); - m_pf3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info3),this),TILEMAP_SCAN_ROWS,16,16,64,32); - m_pf4_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info4),this),TILEMAP_SCAN_ROWS,16,16,64,32); + m_pf_data[0] = m_pf_ram + (0x0000 / 2); + m_pf_data[1] = m_pf_ram + (0x2000 / 2); + m_pf_data[2] = m_pf_ram + (0x4000 / 2); + m_pf_data[3] = m_pf_ram + (0x6000 / 2); - m_f3_pf_data_1=m_f3_pf_data.get()+(0x0000/2); - m_f3_pf_data_2=m_f3_pf_data.get()+(0x2000/2); - m_f3_pf_data_3=m_f3_pf_data.get()+(0x4000/2); - m_f3_pf_data_4=m_f3_pf_data.get()+(0x6000/2); + m_width_mask = 0x3ff; + m_twidth_mask = 0x7f; + m_twidth_mask_bit = 7; - m_width_mask=0x3ff; - m_twidth_mask=0x7f; - m_twidth_mask_bit=7; + m_tilemap[0]->set_transparent_pen(0); + m_tilemap[1]->set_transparent_pen(0); + m_tilemap[2]->set_transparent_pen(0); + m_tilemap[3]->set_transparent_pen(0); + } + else + { + m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<0>), this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<1>), this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<2>), this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<3>), this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + m_tilemap[4] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<4>), this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + m_tilemap[5] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<5>), this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + m_tilemap[6] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<6>), this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + m_tilemap[7] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<7>), this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - m_pf1_tilemap->set_transparent_pen(0); - m_pf2_tilemap->set_transparent_pen(0); - m_pf3_tilemap->set_transparent_pen(0); - m_pf4_tilemap->set_transparent_pen(0); + m_pf_data[0] = m_pf_ram + (0x0000 / 2); + m_pf_data[1] = m_pf_ram + (0x1000 / 2); + m_pf_data[2] = m_pf_ram + (0x2000 / 2); + m_pf_data[3] = m_pf_ram + (0x3000 / 2); + m_pf_data[4] = m_pf_ram + (0x4000 / 2); + m_pf_data[5] = m_pf_ram + (0x5000 / 2); + m_pf_data[6] = m_pf_ram + (0x6000 / 2); + m_pf_data[7] = m_pf_ram + (0x7000 / 2); + m_width_mask = 0x1ff; + m_twidth_mask = 0x3f; + m_twidth_mask_bit = 6; - } else { - m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info1),this),TILEMAP_SCAN_ROWS,16,16,32,32); - m_pf2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info2),this),TILEMAP_SCAN_ROWS,16,16,32,32); - m_pf3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info3),this),TILEMAP_SCAN_ROWS,16,16,32,32); - m_pf4_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info4),this),TILEMAP_SCAN_ROWS,16,16,32,32); - m_pf5_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info5),this),TILEMAP_SCAN_ROWS,16,16,32,32); - m_pf6_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info6),this),TILEMAP_SCAN_ROWS,16,16,32,32); - m_pf7_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info7),this),TILEMAP_SCAN_ROWS,16,16,32,32); - m_pf8_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info8),this),TILEMAP_SCAN_ROWS,16,16,32,32); - - m_f3_pf_data_1=m_f3_pf_data.get()+(0x0000/2); - m_f3_pf_data_2=m_f3_pf_data.get()+(0x1000/2); - m_f3_pf_data_3=m_f3_pf_data.get()+(0x2000/2); - m_f3_pf_data_4=m_f3_pf_data.get()+(0x3000/2); - m_f3_pf_data_5=m_f3_pf_data.get()+(0x4000/2); - m_f3_pf_data_6=m_f3_pf_data.get()+(0x5000/2); - m_f3_pf_data_7=m_f3_pf_data.get()+(0x6000/2); - m_f3_pf_data_8=m_f3_pf_data.get()+(0x7000/2); - - m_width_mask=0x1ff; - m_twidth_mask=0x3f; - m_twidth_mask_bit=6; - - m_pf1_tilemap->set_transparent_pen(0); - m_pf2_tilemap->set_transparent_pen(0); - m_pf3_tilemap->set_transparent_pen(0); - m_pf4_tilemap->set_transparent_pen(0); - m_pf5_tilemap->set_transparent_pen(0); - m_pf6_tilemap->set_transparent_pen(0); - m_pf7_tilemap->set_transparent_pen(0); - m_pf8_tilemap->set_transparent_pen(0); + m_tilemap[0]->set_transparent_pen(0); + m_tilemap[1]->set_transparent_pen(0); + m_tilemap[2]->set_transparent_pen(0); + m_tilemap[3]->set_transparent_pen(0); + m_tilemap[4]->set_transparent_pen(0); + m_tilemap[5]->set_transparent_pen(0); + m_tilemap[6]->set_transparent_pen(0); + m_tilemap[7]->set_transparent_pen(0); } - m_spriteram16_buffered = std::make_unique(0x10000/2); + m_spriteram16_buffered = std::make_unique(0x10000 / 2); m_spritelist = auto_alloc_array(machine(), struct tempsprite, 0x400); m_sprite_end = m_spritelist; - m_vram_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info_vram),this),TILEMAP_SCAN_ROWS,8,8,64,64); - m_pixel_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info_pixel),this),TILEMAP_SCAN_COLS,8,8,64,32); + m_vram_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info_text), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + m_pixel_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info_pixel), this), TILEMAP_SCAN_COLS, 8, 8, 64, 32); m_pf_line_inf = auto_alloc_array(machine(), struct f3_playfield_line_inf, 5); m_sa_line_inf = auto_alloc_array(machine(), struct f3_spritealpha_line_inf, 1); m_screen->register_screen_bitmap(m_pri_alp_bitmap); - m_tile_opaque_sp = std::make_unique(m_gfxdecode->gfx(2)->elements()); - for (i=0; i<8; i++) - m_tile_opaque_pf[i] = std::make_unique(m_gfxdecode->gfx(1)->elements()); - + m_tile_opaque_sp = std::make_unique(m_gfxdecode->gfx(2)->elements()); + for (int i = 0; i < 8; i++) + m_tile_opaque_pf[i] = std::make_unique(m_gfxdecode->gfx(1)->elements()); m_vram_layer->set_transparent_pen(0); m_pixel_layer->set_transparent_pen(0); @@ -653,77 +572,64 @@ void taito_f3_state::video_start() m_gfxdecode->gfx(2)->set_granularity(16); m_flipscreen = 0; - memset(m_spriteram16_buffered.get(),0,0x10000); - memset(m_spriteram.get(),0,0x10000); + memset(m_spriteram16_buffered.get(), 0, 0x10000); + memset(&m_spriteram[0], 0, 0x10000); - save_pointer(NAME(m_videoram), 0x2000/2); - save_pointer(NAME(m_spriteram), 0x10000/2); - save_pointer(NAME(m_f3_vram), 0x2000/2); - save_pointer(NAME(m_f3_pf_data), 0xc000/2); - save_pointer(NAME(m_f3_line_ram), 0x10000/2); - save_pointer(NAME(m_f3_pivot_ram), 0x10000/2); + save_item(NAME(m_control_0)); + save_item(NAME(m_control_1)); - save_item(NAME(m_f3_control_0)); - save_item(NAME(m_f3_control_1)); + m_gfxdecode->gfx(0)->set_source((u8 *)m_charram.target()); + m_gfxdecode->gfx(3)->set_source((u8 *)m_pivot_ram.target()); - m_gfxdecode->gfx(0)->set_source((uint8_t *)m_f3_vram.get()); - m_gfxdecode->gfx(3)->set_source((uint8_t *)m_f3_pivot_ram.get()); - - m_sprite_lag=m_f3_game_config->sprite_lag; + m_sprite_lag = m_game_config->sprite_lag; init_alpha_blend_func(); { gfx_element *sprite_gfx = m_gfxdecode->gfx(2); - int c; - for (c = 0;c < sprite_gfx->elements();c++) + for (int c = 0; c < sprite_gfx->elements(); c++) { - int x,y; - int chk_trans_or_opa=0; - const uint8_t *dp = sprite_gfx->get_data(c); - for (y = 0;y < sprite_gfx->height();y++) + int chk_trans_or_opa = 0; + const u8 *dp = sprite_gfx->get_data(c); + for (int y = 0; y < sprite_gfx->height(); y++) { - for (x = 0;x < sprite_gfx->width();x++) + for (int x = 0; x < sprite_gfx->width(); x++) { - if(!dp[x]) chk_trans_or_opa|=2; - else chk_trans_or_opa|=1; + if (!dp[x]) chk_trans_or_opa |= 2; + else chk_trans_or_opa |= 1; } dp += sprite_gfx->rowbytes(); } - if(chk_trans_or_opa==1) m_tile_opaque_sp[c]=1; - else m_tile_opaque_sp[c]=0; + if (chk_trans_or_opa == 1) m_tile_opaque_sp[c] = 1; + else m_tile_opaque_sp[c] = 0; } } - { gfx_element *pf_gfx = m_gfxdecode->gfx(1); - int c; - for (c = 0;c < pf_gfx->elements();c++) + for (int c = 0; c < pf_gfx->elements(); c++) { - int x,y; - int extra_planes; /* 0 = 4bpp, 1=5bpp, 2=?, 3=6bpp */ - - for (extra_planes=0; extra_planes<4; extra_planes++) + for (int extra_planes = 0; extra_planes < 4; extra_planes++) { - int chk_trans_or_opa=0; - uint8_t extra_mask = ((extra_planes << 4) | 0x0f); - const uint8_t *dp = pf_gfx->get_data(c); + int chk_trans_or_opa = 0; + /* 0 = 4bpp, 1=5bpp, 2=?, 3=6bpp */ + const u8 extra_mask = ((extra_planes << 4) | 0x0f); + const u8 *dp = pf_gfx->get_data(c); - for (y = 0;y < pf_gfx->height();y++) + for (int y = 0; y < pf_gfx->height(); y++) { - for (x = 0;x < pf_gfx->width();x++) + for (int x = 0; x < pf_gfx->width(); x++) { - if(!(dp[x] & extra_mask)) - chk_trans_or_opa|=2; + if (!(dp[x] & extra_mask)) + chk_trans_or_opa |= 2; else - chk_trans_or_opa|=1; + chk_trans_or_opa |= 1; } dp += pf_gfx->rowbytes(); } - m_tile_opaque_pf[extra_planes][c]=chk_trans_or_opa; + m_tile_opaque_pf[extra_planes][c] = chk_trans_or_opa; } } } @@ -731,103 +637,97 @@ void taito_f3_state::video_start() /******************************************************************************/ -READ16_MEMBER(taito_f3_state::f3_pf_data_r) +u16 taito_f3_state::pf_ram_r(offs_t offset) { - return m_f3_pf_data[offset]; + return m_pf_ram[offset]; } -WRITE16_MEMBER(taito_f3_state::f3_pf_data_w) +void taito_f3_state::pf_ram_w(offs_t offset, u16 data, u16 mem_mask) { - COMBINE_DATA(&m_f3_pf_data[offset]); + COMBINE_DATA(&m_pf_ram[offset]); - if (m_f3_game_config->extend) { - if (offset<0x1000) m_pf1_tilemap->mark_tile_dirty((offset & 0xfff) >> 1); - else if (offset<0x2000) m_pf2_tilemap->mark_tile_dirty((offset & 0xfff) >> 1); - else if (offset<0x3000) m_pf3_tilemap->mark_tile_dirty((offset & 0xfff) >> 1); - else if (offset<0x4000) m_pf4_tilemap->mark_tile_dirty((offset & 0xfff) >> 1); - } else { - if (offset<0x0800) m_pf1_tilemap->mark_tile_dirty((offset & 0x7ff) >> 1); - else if (offset<0x1000) m_pf2_tilemap->mark_tile_dirty((offset & 0x7ff) >> 1); - else if (offset<0x1800) m_pf3_tilemap->mark_tile_dirty((offset & 0x7ff) >> 1); - else if (offset<0x2000) m_pf4_tilemap->mark_tile_dirty((offset & 0x7ff) >> 1); - else if (offset<0x2800) m_pf5_tilemap->mark_tile_dirty((offset & 0x7ff) >> 1); - else if (offset<0x3000) m_pf6_tilemap->mark_tile_dirty((offset & 0x7ff) >> 1); - else if (offset<0x3800) m_pf7_tilemap->mark_tile_dirty((offset & 0x7ff) >> 1); - else if (offset<0x4000) m_pf8_tilemap->mark_tile_dirty((offset & 0x7ff) >> 1); + if (m_game_config->extend) + { + if (offset < 0x4000) + m_tilemap[offset >> 12]->mark_tile_dirty((offset & 0xfff) >> 1); + } + else + { + if (offset < 0x4000) + m_tilemap[offset >> 11]->mark_tile_dirty((offset & 0x7ff) >> 1); } } -WRITE16_MEMBER(taito_f3_state::f3_control_0_w) +void taito_f3_state::control_0_w(offs_t offset, u16 data, u16 mem_mask) { - COMBINE_DATA(&m_f3_control_0[offset]); + COMBINE_DATA(&m_control_0[offset]); } -WRITE16_MEMBER(taito_f3_state::f3_control_1_w) +void taito_f3_state::control_1_w(offs_t offset, u16 data, u16 mem_mask) { - COMBINE_DATA(&m_f3_control_1[offset]); + COMBINE_DATA(&m_control_1[offset]); } -READ16_MEMBER(taito_f3_state::f3_spriteram_r) +u16 taito_f3_state::spriteram_r(offs_t offset) { return m_spriteram[offset]; } -WRITE16_MEMBER(taito_f3_state::f3_spriteram_w) +void taito_f3_state::spriteram_w(offs_t offset, u16 data, u16 mem_mask) { COMBINE_DATA(&m_spriteram[offset]); } -READ16_MEMBER(taito_f3_state::f3_videoram_r) +u16 taito_f3_state::textram_r(offs_t offset) { - return m_videoram[offset]; + return m_textram[offset]; } -WRITE16_MEMBER(taito_f3_state::f3_videoram_w) +void taito_f3_state::textram_w(offs_t offset, u16 data, u16 mem_mask) { - int tile,col_off; - COMBINE_DATA(&m_videoram[offset]); + COMBINE_DATA(&m_textram[offset]); m_vram_layer->mark_tile_dirty(offset); - //m_vram_layer->mark_tile_dirty(offset+1); + //m_vram_layer->mark_tile_dirty(offset + 1); - if (offset>0x7ff) offset-=0x800; + if (offset > 0x7ff) offset -= 0x800; - tile=offset; - col_off=((tile&0x3f)*32)+((tile&0xfc0)>>6); + const int tile = offset; + const int col_off = ((tile & 0x3f) << 5) + ((tile & 0xfc0) >> 6); m_pixel_layer->mark_tile_dirty(col_off); //m_pixel_layer->mark_tile_dirty(col_off+32); } -READ16_MEMBER(taito_f3_state::f3_vram_r) +u16 taito_f3_state::charram_r(offs_t offset) { - return m_f3_vram[offset]; + return m_charram[offset]; } -WRITE16_MEMBER(taito_f3_state::f3_vram_w) +void taito_f3_state::charram_w(offs_t offset, u16 data, u16 mem_mask) { - COMBINE_DATA(&m_f3_vram[offset]); - m_gfxdecode->gfx(0)->mark_dirty(offset/16); + COMBINE_DATA(&m_charram[offset]); + m_gfxdecode->gfx(0)->mark_dirty(offset >> 4); } -READ16_MEMBER(taito_f3_state::f3_pivot_r) +u16 taito_f3_state::pivot_r(offs_t offset) { - return m_f3_pivot_ram[offset]; + return m_pivot_ram[offset]; } -WRITE16_MEMBER(taito_f3_state::f3_pivot_w) +void taito_f3_state::pivot_w(offs_t offset, u16 data, u16 mem_mask) { - COMBINE_DATA(&m_f3_pivot_ram[offset]); - m_gfxdecode->gfx(3)->mark_dirty(offset/16); + COMBINE_DATA(&m_pivot_ram[offset]); + m_gfxdecode->gfx(3)->mark_dirty(offset >> 4); } -READ16_MEMBER(taito_f3_state::f3_lineram_r) +u16 taito_f3_state::lineram_r(offs_t offset) { - return m_f3_line_ram[offset]; + return m_line_ram[offset]; } -WRITE16_MEMBER(taito_f3_state::f3_lineram_w) +void taito_f3_state::lineram_w(offs_t offset, u16 data, u16 mem_mask) { #ifdef UNUSED_FUNCTION /* DariusGX has an interesting bug at the start of Round D - the clearing of lineram @@ -840,111 +740,123 @@ WRITE16_MEMBER(taito_f3_state::f3_lineram_w) * fwiw PC=0x1768a0/0x1768a4 is where the game clears lineram in round D, which is a * move.w Dn, (An,D7.w*2) , a kind of opcode that could've been bugged back then. */ - if (m_f3_game==DARIUSG) { + if (m_game == DARIUSG) + { if (m_f3_skip_this_frame) return; - if (offset==0xb000/2 && data==0x003f) { - m_f3_skip_this_frame=1; + if (offset == 0xb000 / 2 && data == 0x003f) + { + m_f3_skip_this_frame = 1; return; } } #endif - COMBINE_DATA(&m_f3_line_ram[offset]); + COMBINE_DATA(&m_line_ram[offset]); } -WRITE32_MEMBER(taito_f3_state::f3_palette_24bit_w) +void taito_f3_state::palette_24bit_w(offs_t offset, u32 data, u32 mem_mask) { - int r,g,b; + int r, g, b; COMBINE_DATA(&m_paletteram32[offset]); /* 12 bit palette games - there has to be a palette select bit somewhere */ - if (m_f3_game==SPCINVDX || m_f3_game==RIDINGF || m_f3_game==ARABIANM || m_f3_game==RINGRAGE) { + if (m_game == SPCINVDX || m_game == RIDINGF || m_game == ARABIANM || m_game == RINGRAGE) + { b = 15 * ((m_paletteram32[offset] >> 4) & 0xf); g = 15 * ((m_paletteram32[offset] >> 8) & 0xf); r = 15 * ((m_paletteram32[offset] >> 12) & 0xf); } /* This is weird - why are only the sprites and VRAM palettes 21 bit? */ - else if (m_f3_game==CLEOPATR) { - if (offset<0x100 || offset>0x1000) { - r = ((m_paletteram32[offset] >>16) & 0x7f)<<1; - g = ((m_paletteram32[offset] >> 8) & 0x7f)<<1; - b = ((m_paletteram32[offset] >> 0) & 0x7f)<<1; - } else { - r = (m_paletteram32[offset] >>16) & 0xff; + else if (m_game == CLEOPATR) + { + if (offset < 0x100 || offset > 0x1000) + { + r = ((m_paletteram32[offset] >> 16) & 0x7f) << 1; + g = ((m_paletteram32[offset] >> 8) & 0x7f) << 1; + b = ((m_paletteram32[offset] >> 0) & 0x7f) << 1; + } + else + { + r = (m_paletteram32[offset] >> 16) & 0xff; g = (m_paletteram32[offset] >> 8) & 0xff; b = (m_paletteram32[offset] >> 0) & 0xff; } } /* Another weird couple - perhaps this is alpha blending related? */ - else if (m_f3_game==TWINQIX || m_f3_game==RECALH) { - if (offset>0x1c00) { - r = ((m_paletteram32[offset] >>16) & 0x7f)<<1; - g = ((m_paletteram32[offset] >> 8) & 0x7f)<<1; - b = ((m_paletteram32[offset] >> 0) & 0x7f)<<1; - } else { - r = (m_paletteram32[offset] >>16) & 0xff; + else if (m_game == TWINQIX || m_game == RECALH) + { + if (offset > 0x1c00) + { + r = ((m_paletteram32[offset] >> 16) & 0x7f) << 1; + g = ((m_paletteram32[offset] >> 8) & 0x7f) << 1; + b = ((m_paletteram32[offset] >> 0) & 0x7f) << 1; + } + else + { + r = (m_paletteram32[offset] >> 16) & 0xff; g = (m_paletteram32[offset] >> 8) & 0xff; b = (m_paletteram32[offset] >> 0) & 0xff; } } /* All other games - standard 24 bit palette */ - else { - r = (m_paletteram32[offset] >>16) & 0xff; + else + { + r = (m_paletteram32[offset] >> 16) & 0xff; g = (m_paletteram32[offset] >> 8) & 0xff; b = (m_paletteram32[offset] >> 0) & 0xff; } - m_palette->set_pen_color(offset,rgb_t(r,g,b)); + m_palette->set_pen_color(offset, rgb_t(r, g, b)); } /******************************************************************************/ /*============================================================================*/ -#define SET_ALPHA_LEVEL(d,s) \ +#define SET_ALPHA_LEVEL(d, s) \ { \ int level = s; \ - if(level == 0) level = -1; \ - d = level+1; \ + if (level == 0) level = -1; \ + d = level + 1; \ } -inline void taito_f3_state::f3_alpha_set_level() +inline void taito_f3_state::alpha_set_level() { -// SET_ALPHA_LEVEL(m_alpha_s_1_1, m_f3_alpha_level_2ad) - SET_ALPHA_LEVEL(m_alpha_s_1_1, 255-m_f3_alpha_level_2as) -// SET_ALPHA_LEVEL(m_alpha_s_1_2, m_f3_alpha_level_2bd) - SET_ALPHA_LEVEL(m_alpha_s_1_2, 255-m_f3_alpha_level_2bs) - SET_ALPHA_LEVEL(m_alpha_s_1_4, m_f3_alpha_level_3ad) -// SET_ALPHA_LEVEL(m_alpha_s_1_5, m_f3_alpha_level_3ad*m_f3_alpha_level_2ad/255) - SET_ALPHA_LEVEL(m_alpha_s_1_5, m_f3_alpha_level_3ad*(255-m_f3_alpha_level_2as)/255) -// SET_ALPHA_LEVEL(m_alpha_s_1_6, m_f3_alpha_level_3ad*m_f3_alpha_level_2bd/255) - SET_ALPHA_LEVEL(m_alpha_s_1_6, m_f3_alpha_level_3ad*(255-m_f3_alpha_level_2bs)/255) - SET_ALPHA_LEVEL(m_alpha_s_1_8, m_f3_alpha_level_3bd) -// SET_ALPHA_LEVEL(m_alpha_s_1_9, m_f3_alpha_level_3bd*m_f3_alpha_level_2ad/255) - SET_ALPHA_LEVEL(m_alpha_s_1_9, m_f3_alpha_level_3bd*(255-m_f3_alpha_level_2as)/255) -// SET_ALPHA_LEVEL(m_alpha_s_1_a, m_f3_alpha_level_3bd*m_f3_alpha_level_2bd/255) - SET_ALPHA_LEVEL(m_alpha_s_1_a, m_f3_alpha_level_3bd*(255-m_f3_alpha_level_2bs)/255) +// SET_ALPHA_LEVEL(m_alpha_s_1_1, m_alpha_level_2ad) + SET_ALPHA_LEVEL(m_alpha_s_1_1, 255 - m_alpha_level_2as) +// SET_ALPHA_LEVEL(m_alpha_s_1_2, m_alpha_level_2bd) + SET_ALPHA_LEVEL(m_alpha_s_1_2, 255 - m_alpha_level_2bs) + SET_ALPHA_LEVEL(m_alpha_s_1_4, m_alpha_level_3ad) +// SET_ALPHA_LEVEL(m_alpha_s_1_5, m_alpha_level_3ad*m_alpha_level_2ad / 255) + SET_ALPHA_LEVEL(m_alpha_s_1_5, m_alpha_level_3ad * (255 - m_alpha_level_2as) / 255) +// SET_ALPHA_LEVEL(m_alpha_s_1_6, m_alpha_level_3ad*m_alpha_level_2bd / 255) + SET_ALPHA_LEVEL(m_alpha_s_1_6, m_alpha_level_3ad * (255 - m_alpha_level_2bs) / 255) + SET_ALPHA_LEVEL(m_alpha_s_1_8, m_alpha_level_3bd) +// SET_ALPHA_LEVEL(m_alpha_s_1_9, m_alpha_level_3bd*m_alpha_level_2ad / 255) + SET_ALPHA_LEVEL(m_alpha_s_1_9, m_alpha_level_3bd * (255 - m_alpha_level_2as) / 255) +// SET_ALPHA_LEVEL(m_alpha_s_1_a, m_alpha_level_3bd*m_alpha_level_2bd / 255) + SET_ALPHA_LEVEL(m_alpha_s_1_a, m_alpha_level_3bd * (255 - m_alpha_level_2bs) / 255) - SET_ALPHA_LEVEL(m_alpha_s_2a_0, m_f3_alpha_level_2as) - SET_ALPHA_LEVEL(m_alpha_s_2a_4, m_f3_alpha_level_2as*m_f3_alpha_level_3ad/255) - SET_ALPHA_LEVEL(m_alpha_s_2a_8, m_f3_alpha_level_2as*m_f3_alpha_level_3bd/255) + SET_ALPHA_LEVEL(m_alpha_s_2a_0, m_alpha_level_2as) + SET_ALPHA_LEVEL(m_alpha_s_2a_4, m_alpha_level_2as * m_alpha_level_3ad / 255) + SET_ALPHA_LEVEL(m_alpha_s_2a_8, m_alpha_level_2as * m_alpha_level_3bd / 255) - SET_ALPHA_LEVEL(m_alpha_s_2b_0, m_f3_alpha_level_2bs) - SET_ALPHA_LEVEL(m_alpha_s_2b_4, m_f3_alpha_level_2bs*m_f3_alpha_level_3ad/255) - SET_ALPHA_LEVEL(m_alpha_s_2b_8, m_f3_alpha_level_2bs*m_f3_alpha_level_3bd/255) + SET_ALPHA_LEVEL(m_alpha_s_2b_0, m_alpha_level_2bs) + SET_ALPHA_LEVEL(m_alpha_s_2b_4, m_alpha_level_2bs * m_alpha_level_3ad / 255) + SET_ALPHA_LEVEL(m_alpha_s_2b_8, m_alpha_level_2bs * m_alpha_level_3bd / 255) - SET_ALPHA_LEVEL(m_alpha_s_3a_0, m_f3_alpha_level_3as) - SET_ALPHA_LEVEL(m_alpha_s_3a_1, m_f3_alpha_level_3as*m_f3_alpha_level_2ad/255) - SET_ALPHA_LEVEL(m_alpha_s_3a_2, m_f3_alpha_level_3as*m_f3_alpha_level_2bd/255) + SET_ALPHA_LEVEL(m_alpha_s_3a_0, m_alpha_level_3as) + SET_ALPHA_LEVEL(m_alpha_s_3a_1, m_alpha_level_3as * m_alpha_level_2ad / 255) + SET_ALPHA_LEVEL(m_alpha_s_3a_2, m_alpha_level_3as * m_alpha_level_2bd / 255) - SET_ALPHA_LEVEL(m_alpha_s_3b_0, m_f3_alpha_level_3bs) - SET_ALPHA_LEVEL(m_alpha_s_3b_1, m_f3_alpha_level_3bs*m_f3_alpha_level_2ad/255) - SET_ALPHA_LEVEL(m_alpha_s_3b_2, m_f3_alpha_level_3bs*m_f3_alpha_level_2bd/255) + SET_ALPHA_LEVEL(m_alpha_s_3b_0, m_alpha_level_3bs) + SET_ALPHA_LEVEL(m_alpha_s_3b_1, m_alpha_level_3bs * m_alpha_level_2ad / 255) + SET_ALPHA_LEVEL(m_alpha_s_3b_2, m_alpha_level_3bs * m_alpha_level_2bd / 255) } #undef SET_ALPHA_LEVEL @@ -954,21 +866,19 @@ inline void taito_f3_state::f3_alpha_set_level() #define COLOR2 BYTE4_XOR_LE(1) #define COLOR3 BYTE4_XOR_LE(2) - - -inline void taito_f3_state::f3_alpha_blend32_s(int alphas, uint32_t s) +inline void taito_f3_state::alpha_blend32_s(int alphas, u32 s) { - uint8_t *sc = (uint8_t *)&s; - uint8_t *dc = (uint8_t *)&m_dval; + u8 *sc = (u8 *)&s; + u8 *dc = (u8 *)&m_dval; dc[COLOR1] = (alphas * sc[COLOR1]) >> 8; dc[COLOR2] = (alphas * sc[COLOR2]) >> 8; dc[COLOR3] = (alphas * sc[COLOR3]) >> 8; } -inline void taito_f3_state::f3_alpha_blend32_d(int alphas, uint32_t s) +inline void taito_f3_state::alpha_blend32_d(int alphas, u32 s) { - uint8_t *sc = (uint8_t *)&s; - uint8_t *dc = (uint8_t *)&m_dval; + u8 *sc = (u8 *)&s; + u8 *dc = (u8 *)&m_dval; dc[COLOR1] = m_add_sat[dc[COLOR1]][(alphas * sc[COLOR1]) >> 8]; dc[COLOR2] = m_add_sat[dc[COLOR2]][(alphas * sc[COLOR2]) >> 8]; dc[COLOR3] = m_add_sat[dc[COLOR3]][(alphas * sc[COLOR3]) >> 8]; @@ -976,474 +886,466 @@ inline void taito_f3_state::f3_alpha_blend32_d(int alphas, uint32_t s) /*============================================================================*/ -inline void taito_f3_state::f3_alpha_blend_1_1(uint32_t s){f3_alpha_blend32_d(m_alpha_s_1_1,s);} -inline void taito_f3_state::f3_alpha_blend_1_2(uint32_t s){f3_alpha_blend32_d(m_alpha_s_1_2,s);} -inline void taito_f3_state::f3_alpha_blend_1_4(uint32_t s){f3_alpha_blend32_d(m_alpha_s_1_4,s);} -inline void taito_f3_state::f3_alpha_blend_1_5(uint32_t s){f3_alpha_blend32_d(m_alpha_s_1_5,s);} -inline void taito_f3_state::f3_alpha_blend_1_6(uint32_t s){f3_alpha_blend32_d(m_alpha_s_1_6,s);} -inline void taito_f3_state::f3_alpha_blend_1_8(uint32_t s){f3_alpha_blend32_d(m_alpha_s_1_8,s);} -inline void taito_f3_state::f3_alpha_blend_1_9(uint32_t s){f3_alpha_blend32_d(m_alpha_s_1_9,s);} -inline void taito_f3_state::f3_alpha_blend_1_a(uint32_t s){f3_alpha_blend32_d(m_alpha_s_1_a,s);} +inline void taito_f3_state::alpha_blend_1_1(u32 s) { alpha_blend32_d(m_alpha_s_1_1, s); } +inline void taito_f3_state::alpha_blend_1_2(u32 s) { alpha_blend32_d(m_alpha_s_1_2, s); } +inline void taito_f3_state::alpha_blend_1_4(u32 s) { alpha_blend32_d(m_alpha_s_1_4, s); } +inline void taito_f3_state::alpha_blend_1_5(u32 s) { alpha_blend32_d(m_alpha_s_1_5, s); } +inline void taito_f3_state::alpha_blend_1_6(u32 s) { alpha_blend32_d(m_alpha_s_1_6, s); } +inline void taito_f3_state::alpha_blend_1_8(u32 s) { alpha_blend32_d(m_alpha_s_1_8, s); } +inline void taito_f3_state::alpha_blend_1_9(u32 s) { alpha_blend32_d(m_alpha_s_1_9, s); } +inline void taito_f3_state::alpha_blend_1_a(u32 s) { alpha_blend32_d(m_alpha_s_1_a, s); } -inline void taito_f3_state::f3_alpha_blend_2a_0(uint32_t s){f3_alpha_blend32_s(m_alpha_s_2a_0,s);} -inline void taito_f3_state::f3_alpha_blend_2a_4(uint32_t s){f3_alpha_blend32_d(m_alpha_s_2a_4,s);} -inline void taito_f3_state::f3_alpha_blend_2a_8(uint32_t s){f3_alpha_blend32_d(m_alpha_s_2a_8,s);} +inline void taito_f3_state::alpha_blend_2a_0(u32 s) { alpha_blend32_s(m_alpha_s_2a_0, s); } +inline void taito_f3_state::alpha_blend_2a_4(u32 s) { alpha_blend32_d(m_alpha_s_2a_4, s); } +inline void taito_f3_state::alpha_blend_2a_8(u32 s) { alpha_blend32_d(m_alpha_s_2a_8, s); } -inline void taito_f3_state::f3_alpha_blend_2b_0(uint32_t s){f3_alpha_blend32_s(m_alpha_s_2b_0,s);} -inline void taito_f3_state::f3_alpha_blend_2b_4(uint32_t s){f3_alpha_blend32_d(m_alpha_s_2b_4,s);} -inline void taito_f3_state::f3_alpha_blend_2b_8(uint32_t s){f3_alpha_blend32_d(m_alpha_s_2b_8,s);} +inline void taito_f3_state::alpha_blend_2b_0(u32 s) { alpha_blend32_s(m_alpha_s_2b_0, s); } +inline void taito_f3_state::alpha_blend_2b_4(u32 s) { alpha_blend32_d(m_alpha_s_2b_4, s); } +inline void taito_f3_state::alpha_blend_2b_8(u32 s) { alpha_blend32_d(m_alpha_s_2b_8, s); } -inline void taito_f3_state::f3_alpha_blend_3a_0(uint32_t s){f3_alpha_blend32_s(m_alpha_s_3a_0,s);} -inline void taito_f3_state::f3_alpha_blend_3a_1(uint32_t s){f3_alpha_blend32_d(m_alpha_s_3a_1,s);} -inline void taito_f3_state::f3_alpha_blend_3a_2(uint32_t s){f3_alpha_blend32_d(m_alpha_s_3a_2,s);} +inline void taito_f3_state::alpha_blend_3a_0(u32 s) { alpha_blend32_s(m_alpha_s_3a_0, s); } +inline void taito_f3_state::alpha_blend_3a_1(u32 s) { alpha_blend32_d(m_alpha_s_3a_1, s); } +inline void taito_f3_state::alpha_blend_3a_2(u32 s) { alpha_blend32_d(m_alpha_s_3a_2, s); } -inline void taito_f3_state::f3_alpha_blend_3b_0(uint32_t s){f3_alpha_blend32_s(m_alpha_s_3b_0,s);} -inline void taito_f3_state::f3_alpha_blend_3b_1(uint32_t s){f3_alpha_blend32_d(m_alpha_s_3b_1,s);} -inline void taito_f3_state::f3_alpha_blend_3b_2(uint32_t s){f3_alpha_blend32_d(m_alpha_s_3b_2,s);} +inline void taito_f3_state::alpha_blend_3b_0(u32 s) { alpha_blend32_s(m_alpha_s_3b_0, s); } +inline void taito_f3_state::alpha_blend_3b_1(u32 s) { alpha_blend32_d(m_alpha_s_3b_1, s); } +inline void taito_f3_state::alpha_blend_3b_2(u32 s) { alpha_blend32_d(m_alpha_s_3b_2, s); } /*============================================================================*/ -int taito_f3_state::dpix_1_noalpha(uint32_t s_pix) {m_dval = s_pix; return 1;} -int taito_f3_state::dpix_ret1(uint32_t s_pix) {return 1;} -int taito_f3_state::dpix_ret0(uint32_t s_pix) {return 0;} -int taito_f3_state::dpix_1_1(uint32_t s_pix) {if(s_pix) f3_alpha_blend_1_1(s_pix); return 1;} -int taito_f3_state::dpix_1_2(uint32_t s_pix) {if(s_pix) f3_alpha_blend_1_2(s_pix); return 1;} -int taito_f3_state::dpix_1_4(uint32_t s_pix) {if(s_pix) f3_alpha_blend_1_4(s_pix); return 1;} -int taito_f3_state::dpix_1_5(uint32_t s_pix) {if(s_pix) f3_alpha_blend_1_5(s_pix); return 1;} -int taito_f3_state::dpix_1_6(uint32_t s_pix) {if(s_pix) f3_alpha_blend_1_6(s_pix); return 1;} -int taito_f3_state::dpix_1_8(uint32_t s_pix) {if(s_pix) f3_alpha_blend_1_8(s_pix); return 1;} -int taito_f3_state::dpix_1_9(uint32_t s_pix) {if(s_pix) f3_alpha_blend_1_9(s_pix); return 1;} -int taito_f3_state::dpix_1_a(uint32_t s_pix) {if(s_pix) f3_alpha_blend_1_a(s_pix); return 1;} +int taito_f3_state::dpix_1_noalpha(u32 s_pix) { m_dval = s_pix; return 1; } +int taito_f3_state::dpix_ret1(u32 s_pix) { return 1; } +int taito_f3_state::dpix_ret0(u32 s_pix) { return 0; } +int taito_f3_state::dpix_1_1(u32 s_pix) { if (s_pix) alpha_blend_1_1(s_pix); return 1; } +int taito_f3_state::dpix_1_2(u32 s_pix) { if (s_pix) alpha_blend_1_2(s_pix); return 1; } +int taito_f3_state::dpix_1_4(u32 s_pix) { if (s_pix) alpha_blend_1_4(s_pix); return 1; } +int taito_f3_state::dpix_1_5(u32 s_pix) { if (s_pix) alpha_blend_1_5(s_pix); return 1; } +int taito_f3_state::dpix_1_6(u32 s_pix) { if (s_pix) alpha_blend_1_6(s_pix); return 1; } +int taito_f3_state::dpix_1_8(u32 s_pix) { if (s_pix) alpha_blend_1_8(s_pix); return 1; } +int taito_f3_state::dpix_1_9(u32 s_pix) { if (s_pix) alpha_blend_1_9(s_pix); return 1; } +int taito_f3_state::dpix_1_a(u32 s_pix) { if (s_pix) alpha_blend_1_a(s_pix); return 1; } -int taito_f3_state::dpix_2a_0(uint32_t s_pix) +int taito_f3_state::dpix_2a_0(u32 s_pix) { - if(s_pix) f3_alpha_blend_2a_0(s_pix); + if (s_pix) alpha_blend_2a_0(s_pix); else m_dval = 0; - if(m_pdest_2a) {m_pval |= m_pdest_2a;return 0;} + if (m_pdest_2a) { m_pval |= m_pdest_2a; return 0; } return 1; } -int taito_f3_state::dpix_2a_4(uint32_t s_pix) +int taito_f3_state::dpix_2a_4(u32 s_pix) { - if(s_pix) f3_alpha_blend_2a_4(s_pix); - if(m_pdest_2a) {m_pval |= m_pdest_2a;return 0;} + if (s_pix) alpha_blend_2a_4(s_pix); + if (m_pdest_2a) { m_pval |= m_pdest_2a; return 0; } return 1; } -int taito_f3_state::dpix_2a_8(uint32_t s_pix) +int taito_f3_state::dpix_2a_8(u32 s_pix) { - if(s_pix) f3_alpha_blend_2a_8(s_pix); - if(m_pdest_2a) {m_pval |= m_pdest_2a;return 0;} + if (s_pix) alpha_blend_2a_8(s_pix); + if (m_pdest_2a) { m_pval |= m_pdest_2a; return 0; } return 1; } -int taito_f3_state::dpix_3a_0(uint32_t s_pix) +int taito_f3_state::dpix_3a_0(u32 s_pix) { - if(s_pix) f3_alpha_blend_3a_0(s_pix); + if (s_pix) alpha_blend_3a_0(s_pix); else m_dval = 0; - if(m_pdest_3a) {m_pval |= m_pdest_3a;return 0;} + if (m_pdest_3a) { m_pval |= m_pdest_3a; return 0; } return 1; } -int taito_f3_state::dpix_3a_1(uint32_t s_pix) +int taito_f3_state::dpix_3a_1(u32 s_pix) { - if(s_pix) f3_alpha_blend_3a_1(s_pix); - if(m_pdest_3a) {m_pval |= m_pdest_3a;return 0;} + if (s_pix) alpha_blend_3a_1(s_pix); + if (m_pdest_3a) { m_pval |= m_pdest_3a; return 0; } return 1; } -int taito_f3_state::dpix_3a_2(uint32_t s_pix) +int taito_f3_state::dpix_3a_2(u32 s_pix) { - if(s_pix) f3_alpha_blend_3a_2(s_pix); - if(m_pdest_3a) {m_pval |= m_pdest_3a;return 0;} + if (s_pix) alpha_blend_3a_2(s_pix); + if (m_pdest_3a) { m_pval |= m_pdest_3a; return 0; } return 1; } -int taito_f3_state::dpix_2b_0(uint32_t s_pix) +int taito_f3_state::dpix_2b_0(u32 s_pix) { - if(s_pix) f3_alpha_blend_2b_0(s_pix); + if (s_pix) alpha_blend_2b_0(s_pix); else m_dval = 0; - if(m_pdest_2b) {m_pval |= m_pdest_2b;return 0;} + if (m_pdest_2b) { m_pval |= m_pdest_2b; return 0; } return 1; } -int taito_f3_state::dpix_2b_4(uint32_t s_pix) +int taito_f3_state::dpix_2b_4(u32 s_pix) { - if(s_pix) f3_alpha_blend_2b_4(s_pix); - if(m_pdest_2b) {m_pval |= m_pdest_2b;return 0;} + if (s_pix) alpha_blend_2b_4(s_pix); + if (m_pdest_2b) { m_pval |= m_pdest_2b; return 0; } return 1; } -int taito_f3_state::dpix_2b_8(uint32_t s_pix) +int taito_f3_state::dpix_2b_8(u32 s_pix) { - if(s_pix) f3_alpha_blend_2b_8(s_pix); - if(m_pdest_2b) {m_pval |= m_pdest_2b;return 0;} + if (s_pix) alpha_blend_2b_8(s_pix); + if (m_pdest_2b) { m_pval |= m_pdest_2b; return 0; } return 1; } -int taito_f3_state::dpix_3b_0(uint32_t s_pix) +int taito_f3_state::dpix_3b_0(u32 s_pix) { - if(s_pix) f3_alpha_blend_3b_0(s_pix); + if (s_pix) alpha_blend_3b_0(s_pix); else m_dval = 0; - if(m_pdest_3b) {m_pval |= m_pdest_3b;return 0;} + if (m_pdest_3b) { m_pval |= m_pdest_3b; return 0; } return 1; } -int taito_f3_state::dpix_3b_1(uint32_t s_pix) +int taito_f3_state::dpix_3b_1(u32 s_pix) { - if(s_pix) f3_alpha_blend_3b_1(s_pix); - if(m_pdest_3b) {m_pval |= m_pdest_3b;return 0;} + if (s_pix) alpha_blend_3b_1(s_pix); + if (m_pdest_3b) { m_pval |= m_pdest_3b; return 0; } return 1; } -int taito_f3_state::dpix_3b_2(uint32_t s_pix) +int taito_f3_state::dpix_3b_2(u32 s_pix) { - if(s_pix) f3_alpha_blend_3b_2(s_pix); - if(m_pdest_3b) {m_pval |= m_pdest_3b;return 0;} + if (s_pix) alpha_blend_3b_2(s_pix); + if (m_pdest_3b) { m_pval |= m_pdest_3b; return 0; } return 1; } -int taito_f3_state::dpix_2_0(uint32_t s_pix) +int taito_f3_state::dpix_2_0(u32 s_pix) { - uint8_t tr2=m_tval&1; - if(s_pix) + const u8 tr2 = m_tval & 1; + if (s_pix) { - if(tr2==m_tr_2b) {f3_alpha_blend_2b_0(s_pix);if(m_pdest_2b) m_pval |= m_pdest_2b;else return 1;} - else if(tr2==m_tr_2a) {f3_alpha_blend_2a_0(s_pix);if(m_pdest_2a) m_pval |= m_pdest_2a;else return 1;} + if (tr2 == m_tr_2b) { alpha_blend_2b_0(s_pix); if (m_pdest_2b) m_pval |= m_pdest_2b; else return 1; } + else if (tr2 == m_tr_2a) { alpha_blend_2a_0(s_pix); if (m_pdest_2a) m_pval |= m_pdest_2a; else return 1; } } else { - if(tr2==m_tr_2b) {m_dval = 0;if(m_pdest_2b) m_pval |= m_pdest_2b;else return 1;} - else if(tr2==m_tr_2a) {m_dval = 0;if(m_pdest_2a) m_pval |= m_pdest_2a;else return 1;} + if (tr2 == m_tr_2b) { m_dval = 0; if (m_pdest_2b) m_pval |= m_pdest_2b; else return 1; } + else if (tr2 == m_tr_2a) { m_dval = 0; if (m_pdest_2a) m_pval |= m_pdest_2a; else return 1; } } return 0; } -int taito_f3_state::dpix_2_4(uint32_t s_pix) +int taito_f3_state::dpix_2_4(u32 s_pix) { - uint8_t tr2=m_tval&1; - if(s_pix) + const u8 tr2 = m_tval & 1; + if (s_pix) { - if(tr2==m_tr_2b) {f3_alpha_blend_2b_4(s_pix);if(m_pdest_2b) m_pval |= m_pdest_2b;else return 1;} - else if(tr2==m_tr_2a) {f3_alpha_blend_2a_4(s_pix);if(m_pdest_2a) m_pval |= m_pdest_2a;else return 1;} + if (tr2 == m_tr_2b) { alpha_blend_2b_4(s_pix); if (m_pdest_2b) m_pval |= m_pdest_2b; else return 1; } + else if (tr2 == m_tr_2a) { alpha_blend_2a_4(s_pix); if (m_pdest_2a) m_pval |= m_pdest_2a; else return 1; } } else { - if(tr2==m_tr_2b) {if(m_pdest_2b) m_pval |= m_pdest_2b;else return 1;} - else if(tr2==m_tr_2a) {if(m_pdest_2a) m_pval |= m_pdest_2a;else return 1;} + if (tr2 == m_tr_2b) { if (m_pdest_2b) m_pval |= m_pdest_2b; else return 1; } + else if (tr2 == m_tr_2a) { if (m_pdest_2a) m_pval |= m_pdest_2a; else return 1; } } return 0; } -int taito_f3_state::dpix_2_8(uint32_t s_pix) +int taito_f3_state::dpix_2_8(u32 s_pix) { - uint8_t tr2=m_tval&1; - if(s_pix) + const u8 tr2 = m_tval & 1; + if (s_pix) { - if(tr2==m_tr_2b) {f3_alpha_blend_2b_8(s_pix);if(m_pdest_2b) m_pval |= m_pdest_2b;else return 1;} - else if(tr2==m_tr_2a) {f3_alpha_blend_2a_8(s_pix);if(m_pdest_2a) m_pval |= m_pdest_2a;else return 1;} + if (tr2 == m_tr_2b) { alpha_blend_2b_8(s_pix); if (m_pdest_2b) m_pval |= m_pdest_2b; else return 1; } + else if (tr2 == m_tr_2a) { alpha_blend_2a_8(s_pix); if (m_pdest_2a) m_pval |= m_pdest_2a; else return 1; } } else { - if(tr2==m_tr_2b) {if(m_pdest_2b) m_pval |= m_pdest_2b;else return 1;} - else if(tr2==m_tr_2a) {if(m_pdest_2a) m_pval |= m_pdest_2a;else return 1;} + if (tr2 == m_tr_2b) { if (m_pdest_2b) m_pval |= m_pdest_2b; else return 1; } + else if (tr2 == m_tr_2a) { if (m_pdest_2a) m_pval |= m_pdest_2a; else return 1; } } return 0; } -int taito_f3_state::dpix_3_0(uint32_t s_pix) +int taito_f3_state::dpix_3_0(u32 s_pix) { - uint8_t tr2=m_tval&1; - if(s_pix) + const u8 tr2 = m_tval & 1; + if (s_pix) { - if(tr2==m_tr_3b) {f3_alpha_blend_3b_0(s_pix);if(m_pdest_3b) m_pval |= m_pdest_3b;else return 1;} - else if(tr2==m_tr_3a) {f3_alpha_blend_3a_0(s_pix);if(m_pdest_3a) m_pval |= m_pdest_3a;else return 1;} + if (tr2 == m_tr_3b) { alpha_blend_3b_0(s_pix); if (m_pdest_3b) m_pval |= m_pdest_3b; else return 1; } + else if (tr2 == m_tr_3a) { alpha_blend_3a_0(s_pix); if (m_pdest_3a) m_pval |= m_pdest_3a; else return 1; } } else { - if(tr2==m_tr_3b) {m_dval = 0;if(m_pdest_3b) m_pval |= m_pdest_3b;else return 1;} - else if(tr2==m_tr_3a) {m_dval = 0;if(m_pdest_3a) m_pval |= m_pdest_3a;else return 1;} + if (tr2 == m_tr_3b) { m_dval = 0; if (m_pdest_3b) m_pval |= m_pdest_3b; else return 1; } + else if (tr2 == m_tr_3a) { m_dval = 0; if (m_pdest_3a) m_pval |= m_pdest_3a; else return 1; } } return 0; } -int taito_f3_state::dpix_3_1(uint32_t s_pix) +int taito_f3_state::dpix_3_1(u32 s_pix) { - uint8_t tr2=m_tval&1; - if(s_pix) + const u8 tr2 = m_tval & 1; + if (s_pix) { - if(tr2==m_tr_3b) {f3_alpha_blend_3b_1(s_pix);if(m_pdest_3b) m_pval |= m_pdest_3b;else return 1;} - else if(tr2==m_tr_3a) {f3_alpha_blend_3a_1(s_pix);if(m_pdest_3a) m_pval |= m_pdest_3a;else return 1;} + if (tr2 == m_tr_3b) { alpha_blend_3b_1(s_pix); if (m_pdest_3b) m_pval |= m_pdest_3b; else return 1; } + else if (tr2 == m_tr_3a) { alpha_blend_3a_1(s_pix); if (m_pdest_3a) m_pval |= m_pdest_3a; else return 1; } } else { - if(tr2==m_tr_3b) {if(m_pdest_3b) m_pval |= m_pdest_3b;else return 1;} - else if(tr2==m_tr_3a) {if(m_pdest_3a) m_pval |= m_pdest_3a;else return 1;} + if (tr2 == m_tr_3b) { if (m_pdest_3b) m_pval |= m_pdest_3b; else return 1; } + else if (tr2 == m_tr_3a) { if (m_pdest_3a) m_pval |= m_pdest_3a; else return 1; } } return 0; } -int taito_f3_state::dpix_3_2(uint32_t s_pix) +int taito_f3_state::dpix_3_2(u32 s_pix) { - uint8_t tr2=m_tval&1; - if(s_pix) + const u8 tr2 = m_tval & 1; + if (s_pix) { - if(tr2==m_tr_3b) {f3_alpha_blend_3b_2(s_pix);if(m_pdest_3b) m_pval |= m_pdest_3b;else return 1;} - else if(tr2==m_tr_3a) {f3_alpha_blend_3a_2(s_pix);if(m_pdest_3a) m_pval |= m_pdest_3a;else return 1;} + if (tr2 == m_tr_3b) { alpha_blend_3b_2(s_pix); if (m_pdest_3b) m_pval |= m_pdest_3b; else return 1; } + else if (tr2 == m_tr_3a) { alpha_blend_3a_2(s_pix); if (m_pdest_3a) m_pval |= m_pdest_3a; else return 1; } } else { - if(tr2==m_tr_3b) {if(m_pdest_3b) m_pval |= m_pdest_3b;else return 1;} - else if(tr2==m_tr_3a) {if(m_pdest_3a) m_pval |= m_pdest_3a;else return 1;} + if (tr2 == m_tr_3b) { if (m_pdest_3b) m_pval |= m_pdest_3b; else return 1; } + else if (tr2 == m_tr_3a) { if (m_pdest_3a) m_pval |= m_pdest_3a; else return 1; } } return 0; } -inline void taito_f3_state::dpix_1_sprite(uint32_t s_pix) +inline void taito_f3_state::dpix_1_sprite(u32 s_pix) { - if(s_pix) + if (s_pix) { - uint8_t p1 = m_pval&0xf0; - if (p1==0x10) f3_alpha_blend_1_1(s_pix); - else if(p1==0x20) f3_alpha_blend_1_2(s_pix); - else if(p1==0x40) f3_alpha_blend_1_4(s_pix); - else if(p1==0x50) f3_alpha_blend_1_5(s_pix); - else if(p1==0x60) f3_alpha_blend_1_6(s_pix); - else if(p1==0x80) f3_alpha_blend_1_8(s_pix); - else if(p1==0x90) f3_alpha_blend_1_9(s_pix); - else if(p1==0xa0) f3_alpha_blend_1_a(s_pix); + const u8 p1 = m_pval & 0xf0; + if (p1 == 0x10) alpha_blend_1_1(s_pix); + else if (p1 == 0x20) alpha_blend_1_2(s_pix); + else if (p1 == 0x40) alpha_blend_1_4(s_pix); + else if (p1 == 0x50) alpha_blend_1_5(s_pix); + else if (p1 == 0x60) alpha_blend_1_6(s_pix); + else if (p1 == 0x80) alpha_blend_1_8(s_pix); + else if (p1 == 0x90) alpha_blend_1_9(s_pix); + else if (p1 == 0xa0) alpha_blend_1_a(s_pix); } } -inline void taito_f3_state::dpix_bg(uint32_t bgcolor) +inline void taito_f3_state::dpix_bg(u32 bgcolor) { - uint8_t p1 = m_pval&0xf0; - if(!p1) m_dval = bgcolor; - else if(p1==0x10) f3_alpha_blend_1_1(bgcolor); - else if(p1==0x20) f3_alpha_blend_1_2(bgcolor); - else if(p1==0x40) f3_alpha_blend_1_4(bgcolor); - else if(p1==0x50) f3_alpha_blend_1_5(bgcolor); - else if(p1==0x60) f3_alpha_blend_1_6(bgcolor); - else if(p1==0x80) f3_alpha_blend_1_8(bgcolor); - else if(p1==0x90) f3_alpha_blend_1_9(bgcolor); - else if(p1==0xa0) f3_alpha_blend_1_a(bgcolor); + const u8 p1 = m_pval & 0xf0; + if (!p1) m_dval = bgcolor; + else if (p1 == 0x10) alpha_blend_1_1(bgcolor); + else if (p1 == 0x20) alpha_blend_1_2(bgcolor); + else if (p1 == 0x40) alpha_blend_1_4(bgcolor); + else if (p1 == 0x50) alpha_blend_1_5(bgcolor); + else if (p1 == 0x60) alpha_blend_1_6(bgcolor); + else if (p1 == 0x80) alpha_blend_1_8(bgcolor); + else if (p1 == 0x90) alpha_blend_1_9(bgcolor); + else if (p1 == 0xa0) alpha_blend_1_a(bgcolor); } /******************************************************************************/ void taito_f3_state::init_alpha_blend_func() { - m_dpix_n[0][0x0]=&taito_f3_state::dpix_1_noalpha; - m_dpix_n[0][0x1]=&taito_f3_state::dpix_1_noalpha; - m_dpix_n[0][0x2]=&taito_f3_state::dpix_1_noalpha; - m_dpix_n[0][0x3]=&taito_f3_state::dpix_1_noalpha; - m_dpix_n[0][0x4]=&taito_f3_state::dpix_1_noalpha; - m_dpix_n[0][0x5]=&taito_f3_state::dpix_1_noalpha; - m_dpix_n[0][0x6]=&taito_f3_state::dpix_1_noalpha; - m_dpix_n[0][0x7]=&taito_f3_state::dpix_1_noalpha; - m_dpix_n[0][0x8]=&taito_f3_state::dpix_1_noalpha; - m_dpix_n[0][0x9]=&taito_f3_state::dpix_1_noalpha; - m_dpix_n[0][0xa]=&taito_f3_state::dpix_1_noalpha; - m_dpix_n[0][0xb]=&taito_f3_state::dpix_1_noalpha; - m_dpix_n[0][0xc]=&taito_f3_state::dpix_1_noalpha; - m_dpix_n[0][0xd]=&taito_f3_state::dpix_1_noalpha; - m_dpix_n[0][0xe]=&taito_f3_state::dpix_1_noalpha; - m_dpix_n[0][0xf]=&taito_f3_state::dpix_1_noalpha; + m_dpix_n[0][0x0] = &taito_f3_state::dpix_1_noalpha; + m_dpix_n[0][0x1] = &taito_f3_state::dpix_1_noalpha; + m_dpix_n[0][0x2] = &taito_f3_state::dpix_1_noalpha; + m_dpix_n[0][0x3] = &taito_f3_state::dpix_1_noalpha; + m_dpix_n[0][0x4] = &taito_f3_state::dpix_1_noalpha; + m_dpix_n[0][0x5] = &taito_f3_state::dpix_1_noalpha; + m_dpix_n[0][0x6] = &taito_f3_state::dpix_1_noalpha; + m_dpix_n[0][0x7] = &taito_f3_state::dpix_1_noalpha; + m_dpix_n[0][0x8] = &taito_f3_state::dpix_1_noalpha; + m_dpix_n[0][0x9] = &taito_f3_state::dpix_1_noalpha; + m_dpix_n[0][0xa] = &taito_f3_state::dpix_1_noalpha; + m_dpix_n[0][0xb] = &taito_f3_state::dpix_1_noalpha; + m_dpix_n[0][0xc] = &taito_f3_state::dpix_1_noalpha; + m_dpix_n[0][0xd] = &taito_f3_state::dpix_1_noalpha; + m_dpix_n[0][0xe] = &taito_f3_state::dpix_1_noalpha; + m_dpix_n[0][0xf] = &taito_f3_state::dpix_1_noalpha; - m_dpix_n[1][0x0]=&taito_f3_state::dpix_1_noalpha; - m_dpix_n[1][0x1]=&taito_f3_state::dpix_1_1; - m_dpix_n[1][0x2]=&taito_f3_state::dpix_1_2; - m_dpix_n[1][0x3]=&taito_f3_state::dpix_ret1; - m_dpix_n[1][0x4]=&taito_f3_state::dpix_1_4; - m_dpix_n[1][0x5]=&taito_f3_state::dpix_1_5; - m_dpix_n[1][0x6]=&taito_f3_state::dpix_1_6; - m_dpix_n[1][0x7]=&taito_f3_state::dpix_ret1; - m_dpix_n[1][0x8]=&taito_f3_state::dpix_1_8; - m_dpix_n[1][0x9]=&taito_f3_state::dpix_1_9; - m_dpix_n[1][0xa]=&taito_f3_state::dpix_1_a; - m_dpix_n[1][0xb]=&taito_f3_state::dpix_ret1; - m_dpix_n[1][0xc]=&taito_f3_state::dpix_ret1; - m_dpix_n[1][0xd]=&taito_f3_state::dpix_ret1; - m_dpix_n[1][0xe]=&taito_f3_state::dpix_ret1; - m_dpix_n[1][0xf]=&taito_f3_state::dpix_ret1; + m_dpix_n[1][0x0] = &taito_f3_state::dpix_1_noalpha; + m_dpix_n[1][0x1] = &taito_f3_state::dpix_1_1; + m_dpix_n[1][0x2] = &taito_f3_state::dpix_1_2; + m_dpix_n[1][0x3] = &taito_f3_state::dpix_ret1; + m_dpix_n[1][0x4] = &taito_f3_state::dpix_1_4; + m_dpix_n[1][0x5] = &taito_f3_state::dpix_1_5; + m_dpix_n[1][0x6] = &taito_f3_state::dpix_1_6; + m_dpix_n[1][0x7] = &taito_f3_state::dpix_ret1; + m_dpix_n[1][0x8] = &taito_f3_state::dpix_1_8; + m_dpix_n[1][0x9] = &taito_f3_state::dpix_1_9; + m_dpix_n[1][0xa] = &taito_f3_state::dpix_1_a; + m_dpix_n[1][0xb] = &taito_f3_state::dpix_ret1; + m_dpix_n[1][0xc] = &taito_f3_state::dpix_ret1; + m_dpix_n[1][0xd] = &taito_f3_state::dpix_ret1; + m_dpix_n[1][0xe] = &taito_f3_state::dpix_ret1; + m_dpix_n[1][0xf] = &taito_f3_state::dpix_ret1; - m_dpix_n[2][0x0]=&taito_f3_state::dpix_2a_0; - m_dpix_n[2][0x1]=&taito_f3_state::dpix_ret0; - m_dpix_n[2][0x2]=&taito_f3_state::dpix_ret0; - m_dpix_n[2][0x3]=&taito_f3_state::dpix_ret0; - m_dpix_n[2][0x4]=&taito_f3_state::dpix_2a_4; - m_dpix_n[2][0x5]=&taito_f3_state::dpix_ret0; - m_dpix_n[2][0x6]=&taito_f3_state::dpix_ret0; - m_dpix_n[2][0x7]=&taito_f3_state::dpix_ret0; - m_dpix_n[2][0x8]=&taito_f3_state::dpix_2a_8; - m_dpix_n[2][0x9]=&taito_f3_state::dpix_ret0; - m_dpix_n[2][0xa]=&taito_f3_state::dpix_ret0; - m_dpix_n[2][0xb]=&taito_f3_state::dpix_ret0; - m_dpix_n[2][0xc]=&taito_f3_state::dpix_ret0; - m_dpix_n[2][0xd]=&taito_f3_state::dpix_ret0; - m_dpix_n[2][0xe]=&taito_f3_state::dpix_ret0; - m_dpix_n[2][0xf]=&taito_f3_state::dpix_ret0; + m_dpix_n[2][0x0] = &taito_f3_state::dpix_2a_0; + m_dpix_n[2][0x1] = &taito_f3_state::dpix_ret0; + m_dpix_n[2][0x2] = &taito_f3_state::dpix_ret0; + m_dpix_n[2][0x3] = &taito_f3_state::dpix_ret0; + m_dpix_n[2][0x4] = &taito_f3_state::dpix_2a_4; + m_dpix_n[2][0x5] = &taito_f3_state::dpix_ret0; + m_dpix_n[2][0x6] = &taito_f3_state::dpix_ret0; + m_dpix_n[2][0x7] = &taito_f3_state::dpix_ret0; + m_dpix_n[2][0x8] = &taito_f3_state::dpix_2a_8; + m_dpix_n[2][0x9] = &taito_f3_state::dpix_ret0; + m_dpix_n[2][0xa] = &taito_f3_state::dpix_ret0; + m_dpix_n[2][0xb] = &taito_f3_state::dpix_ret0; + m_dpix_n[2][0xc] = &taito_f3_state::dpix_ret0; + m_dpix_n[2][0xd] = &taito_f3_state::dpix_ret0; + m_dpix_n[2][0xe] = &taito_f3_state::dpix_ret0; + m_dpix_n[2][0xf] = &taito_f3_state::dpix_ret0; - m_dpix_n[3][0x0]=&taito_f3_state::dpix_3a_0; - m_dpix_n[3][0x1]=&taito_f3_state::dpix_3a_1; - m_dpix_n[3][0x2]=&taito_f3_state::dpix_3a_2; - m_dpix_n[3][0x3]=&taito_f3_state::dpix_ret0; - m_dpix_n[3][0x4]=&taito_f3_state::dpix_ret0; - m_dpix_n[3][0x5]=&taito_f3_state::dpix_ret0; - m_dpix_n[3][0x6]=&taito_f3_state::dpix_ret0; - m_dpix_n[3][0x7]=&taito_f3_state::dpix_ret0; - m_dpix_n[3][0x8]=&taito_f3_state::dpix_ret0; - m_dpix_n[3][0x9]=&taito_f3_state::dpix_ret0; - m_dpix_n[3][0xa]=&taito_f3_state::dpix_ret0; - m_dpix_n[3][0xb]=&taito_f3_state::dpix_ret0; - m_dpix_n[3][0xc]=&taito_f3_state::dpix_ret0; - m_dpix_n[3][0xd]=&taito_f3_state::dpix_ret0; - m_dpix_n[3][0xe]=&taito_f3_state::dpix_ret0; - m_dpix_n[3][0xf]=&taito_f3_state::dpix_ret0; + m_dpix_n[3][0x0] = &taito_f3_state::dpix_3a_0; + m_dpix_n[3][0x1] = &taito_f3_state::dpix_3a_1; + m_dpix_n[3][0x2] = &taito_f3_state::dpix_3a_2; + m_dpix_n[3][0x3] = &taito_f3_state::dpix_ret0; + m_dpix_n[3][0x4] = &taito_f3_state::dpix_ret0; + m_dpix_n[3][0x5] = &taito_f3_state::dpix_ret0; + m_dpix_n[3][0x6] = &taito_f3_state::dpix_ret0; + m_dpix_n[3][0x7] = &taito_f3_state::dpix_ret0; + m_dpix_n[3][0x8] = &taito_f3_state::dpix_ret0; + m_dpix_n[3][0x9] = &taito_f3_state::dpix_ret0; + m_dpix_n[3][0xa] = &taito_f3_state::dpix_ret0; + m_dpix_n[3][0xb] = &taito_f3_state::dpix_ret0; + m_dpix_n[3][0xc] = &taito_f3_state::dpix_ret0; + m_dpix_n[3][0xd] = &taito_f3_state::dpix_ret0; + m_dpix_n[3][0xe] = &taito_f3_state::dpix_ret0; + m_dpix_n[3][0xf] = &taito_f3_state::dpix_ret0; - m_dpix_n[4][0x0]=&taito_f3_state::dpix_2b_0; - m_dpix_n[4][0x1]=&taito_f3_state::dpix_ret0; - m_dpix_n[4][0x2]=&taito_f3_state::dpix_ret0; - m_dpix_n[4][0x3]=&taito_f3_state::dpix_ret0; - m_dpix_n[4][0x4]=&taito_f3_state::dpix_2b_4; - m_dpix_n[4][0x5]=&taito_f3_state::dpix_ret0; - m_dpix_n[4][0x6]=&taito_f3_state::dpix_ret0; - m_dpix_n[4][0x7]=&taito_f3_state::dpix_ret0; - m_dpix_n[4][0x8]=&taito_f3_state::dpix_2b_8; - m_dpix_n[4][0x9]=&taito_f3_state::dpix_ret0; - m_dpix_n[4][0xa]=&taito_f3_state::dpix_ret0; - m_dpix_n[4][0xb]=&taito_f3_state::dpix_ret0; - m_dpix_n[4][0xc]=&taito_f3_state::dpix_ret0; - m_dpix_n[4][0xd]=&taito_f3_state::dpix_ret0; - m_dpix_n[4][0xe]=&taito_f3_state::dpix_ret0; - m_dpix_n[4][0xf]=&taito_f3_state::dpix_ret0; + m_dpix_n[4][0x0] = &taito_f3_state::dpix_2b_0; + m_dpix_n[4][0x1] = &taito_f3_state::dpix_ret0; + m_dpix_n[4][0x2] = &taito_f3_state::dpix_ret0; + m_dpix_n[4][0x3] = &taito_f3_state::dpix_ret0; + m_dpix_n[4][0x4] = &taito_f3_state::dpix_2b_4; + m_dpix_n[4][0x5] = &taito_f3_state::dpix_ret0; + m_dpix_n[4][0x6] = &taito_f3_state::dpix_ret0; + m_dpix_n[4][0x7] = &taito_f3_state::dpix_ret0; + m_dpix_n[4][0x8] = &taito_f3_state::dpix_2b_8; + m_dpix_n[4][0x9] = &taito_f3_state::dpix_ret0; + m_dpix_n[4][0xa] = &taito_f3_state::dpix_ret0; + m_dpix_n[4][0xb] = &taito_f3_state::dpix_ret0; + m_dpix_n[4][0xc] = &taito_f3_state::dpix_ret0; + m_dpix_n[4][0xd] = &taito_f3_state::dpix_ret0; + m_dpix_n[4][0xe] = &taito_f3_state::dpix_ret0; + m_dpix_n[4][0xf] = &taito_f3_state::dpix_ret0; - m_dpix_n[5][0x0]=&taito_f3_state::dpix_3b_0; - m_dpix_n[5][0x1]=&taito_f3_state::dpix_3b_1; - m_dpix_n[5][0x2]=&taito_f3_state::dpix_3b_2; - m_dpix_n[5][0x3]=&taito_f3_state::dpix_ret0; - m_dpix_n[5][0x4]=&taito_f3_state::dpix_ret0; - m_dpix_n[5][0x5]=&taito_f3_state::dpix_ret0; - m_dpix_n[5][0x6]=&taito_f3_state::dpix_ret0; - m_dpix_n[5][0x7]=&taito_f3_state::dpix_ret0; - m_dpix_n[5][0x8]=&taito_f3_state::dpix_ret0; - m_dpix_n[5][0x9]=&taito_f3_state::dpix_ret0; - m_dpix_n[5][0xa]=&taito_f3_state::dpix_ret0; - m_dpix_n[5][0xb]=&taito_f3_state::dpix_ret0; - m_dpix_n[5][0xc]=&taito_f3_state::dpix_ret0; - m_dpix_n[5][0xd]=&taito_f3_state::dpix_ret0; - m_dpix_n[5][0xe]=&taito_f3_state::dpix_ret0; - m_dpix_n[5][0xf]=&taito_f3_state::dpix_ret0; + m_dpix_n[5][0x0] = &taito_f3_state::dpix_3b_0; + m_dpix_n[5][0x1] = &taito_f3_state::dpix_3b_1; + m_dpix_n[5][0x2] = &taito_f3_state::dpix_3b_2; + m_dpix_n[5][0x3] = &taito_f3_state::dpix_ret0; + m_dpix_n[5][0x4] = &taito_f3_state::dpix_ret0; + m_dpix_n[5][0x5] = &taito_f3_state::dpix_ret0; + m_dpix_n[5][0x6] = &taito_f3_state::dpix_ret0; + m_dpix_n[5][0x7] = &taito_f3_state::dpix_ret0; + m_dpix_n[5][0x8] = &taito_f3_state::dpix_ret0; + m_dpix_n[5][0x9] = &taito_f3_state::dpix_ret0; + m_dpix_n[5][0xa] = &taito_f3_state::dpix_ret0; + m_dpix_n[5][0xb] = &taito_f3_state::dpix_ret0; + m_dpix_n[5][0xc] = &taito_f3_state::dpix_ret0; + m_dpix_n[5][0xd] = &taito_f3_state::dpix_ret0; + m_dpix_n[5][0xe] = &taito_f3_state::dpix_ret0; + m_dpix_n[5][0xf] = &taito_f3_state::dpix_ret0; - m_dpix_n[6][0x0]=&taito_f3_state::dpix_2_0; - m_dpix_n[6][0x1]=&taito_f3_state::dpix_ret0; - m_dpix_n[6][0x2]=&taito_f3_state::dpix_ret0; - m_dpix_n[6][0x3]=&taito_f3_state::dpix_ret0; - m_dpix_n[6][0x4]=&taito_f3_state::dpix_2_4; - m_dpix_n[6][0x5]=&taito_f3_state::dpix_ret0; - m_dpix_n[6][0x6]=&taito_f3_state::dpix_ret0; - m_dpix_n[6][0x7]=&taito_f3_state::dpix_ret0; - m_dpix_n[6][0x8]=&taito_f3_state::dpix_2_8; - m_dpix_n[6][0x9]=&taito_f3_state::dpix_ret0; - m_dpix_n[6][0xa]=&taito_f3_state::dpix_ret0; - m_dpix_n[6][0xb]=&taito_f3_state::dpix_ret0; - m_dpix_n[6][0xc]=&taito_f3_state::dpix_ret0; - m_dpix_n[6][0xd]=&taito_f3_state::dpix_ret0; - m_dpix_n[6][0xe]=&taito_f3_state::dpix_ret0; - m_dpix_n[6][0xf]=&taito_f3_state::dpix_ret0; + m_dpix_n[6][0x0] = &taito_f3_state::dpix_2_0; + m_dpix_n[6][0x1] = &taito_f3_state::dpix_ret0; + m_dpix_n[6][0x2] = &taito_f3_state::dpix_ret0; + m_dpix_n[6][0x3] = &taito_f3_state::dpix_ret0; + m_dpix_n[6][0x4] = &taito_f3_state::dpix_2_4; + m_dpix_n[6][0x5] = &taito_f3_state::dpix_ret0; + m_dpix_n[6][0x6] = &taito_f3_state::dpix_ret0; + m_dpix_n[6][0x7] = &taito_f3_state::dpix_ret0; + m_dpix_n[6][0x8] = &taito_f3_state::dpix_2_8; + m_dpix_n[6][0x9] = &taito_f3_state::dpix_ret0; + m_dpix_n[6][0xa] = &taito_f3_state::dpix_ret0; + m_dpix_n[6][0xb] = &taito_f3_state::dpix_ret0; + m_dpix_n[6][0xc] = &taito_f3_state::dpix_ret0; + m_dpix_n[6][0xd] = &taito_f3_state::dpix_ret0; + m_dpix_n[6][0xe] = &taito_f3_state::dpix_ret0; + m_dpix_n[6][0xf] = &taito_f3_state::dpix_ret0; - m_dpix_n[7][0x0]=&taito_f3_state::dpix_3_0; - m_dpix_n[7][0x1]=&taito_f3_state::dpix_3_1; - m_dpix_n[7][0x2]=&taito_f3_state::dpix_3_2; - m_dpix_n[7][0x3]=&taito_f3_state::dpix_ret0; - m_dpix_n[7][0x4]=&taito_f3_state::dpix_ret0; - m_dpix_n[7][0x5]=&taito_f3_state::dpix_ret0; - m_dpix_n[7][0x6]=&taito_f3_state::dpix_ret0; - m_dpix_n[7][0x7]=&taito_f3_state::dpix_ret0; - m_dpix_n[7][0x8]=&taito_f3_state::dpix_ret0; - m_dpix_n[7][0x9]=&taito_f3_state::dpix_ret0; - m_dpix_n[7][0xa]=&taito_f3_state::dpix_ret0; - m_dpix_n[7][0xb]=&taito_f3_state::dpix_ret0; - m_dpix_n[7][0xc]=&taito_f3_state::dpix_ret0; - m_dpix_n[7][0xd]=&taito_f3_state::dpix_ret0; - m_dpix_n[7][0xe]=&taito_f3_state::dpix_ret0; - m_dpix_n[7][0xf]=&taito_f3_state::dpix_ret0; + m_dpix_n[7][0x0] = &taito_f3_state::dpix_3_0; + m_dpix_n[7][0x1] = &taito_f3_state::dpix_3_1; + m_dpix_n[7][0x2] = &taito_f3_state::dpix_3_2; + m_dpix_n[7][0x3] = &taito_f3_state::dpix_ret0; + m_dpix_n[7][0x4] = &taito_f3_state::dpix_ret0; + m_dpix_n[7][0x5] = &taito_f3_state::dpix_ret0; + m_dpix_n[7][0x6] = &taito_f3_state::dpix_ret0; + m_dpix_n[7][0x7] = &taito_f3_state::dpix_ret0; + m_dpix_n[7][0x8] = &taito_f3_state::dpix_ret0; + m_dpix_n[7][0x9] = &taito_f3_state::dpix_ret0; + m_dpix_n[7][0xa] = &taito_f3_state::dpix_ret0; + m_dpix_n[7][0xb] = &taito_f3_state::dpix_ret0; + m_dpix_n[7][0xc] = &taito_f3_state::dpix_ret0; + m_dpix_n[7][0xd] = &taito_f3_state::dpix_ret0; + m_dpix_n[7][0xe] = &taito_f3_state::dpix_ret0; + m_dpix_n[7][0xf] = &taito_f3_state::dpix_ret0; - for(int i = 0; i < 256; i++) - for(int j = 0; j < 256; j++) - m_add_sat[i][j] = (i + j < 256) ? i + j : 255; + for (int i = 0; i < 256; i++) + for (int j = 0; j < 256; j++) + m_add_sat[i][j] = std::min(i + j, 255); } /******************************************************************************/ #define GET_PIXMAP_POINTER(pf_num) \ { \ - const struct f3_playfield_line_inf *line_tmp=line_t[pf_num]; \ - m_src##pf_num=line_tmp->src[y]; \ - m_src_s##pf_num=line_tmp->src_s[y]; \ - m_src_e##pf_num=line_tmp->src_e[y]; \ - m_tsrc##pf_num=line_tmp->tsrc[y]; \ - m_tsrc_s##pf_num=line_tmp->tsrc_s[y]; \ - m_x_count##pf_num=line_tmp->x_count[y]; \ - m_x_zoom##pf_num=line_tmp->x_zoom[y]; \ - m_clip_al##pf_num=line_tmp->clip0[y]&0xffff; \ - m_clip_ar##pf_num=line_tmp->clip0[y]>>16; \ - m_clip_bl##pf_num=line_tmp->clip1[y]&0xffff; \ - m_clip_br##pf_num=line_tmp->clip1[y]>>16; \ + const struct f3_playfield_line_inf *line_tmp = line_t[pf_num]; \ + m_src[pf_num] = line_tmp->src[y]; \ + m_src_s[pf_num] = line_tmp->src_s[y]; \ + m_src_e[pf_num] = line_tmp->src_e[y]; \ + m_tsrc[pf_num] = line_tmp->tsrc[y]; \ + m_tsrc_s[pf_num] = line_tmp->tsrc_s[y]; \ + m_x_count[pf_num] = line_tmp->x_count[y]; \ + m_x_zoom[pf_num] = line_tmp->x_zoom[y]; \ + m_clip_al[pf_num] = line_tmp->clip0[y] & 0xffff; \ + m_clip_ar[pf_num] = line_tmp->clip0[y] >> 16; \ + m_clip_bl[pf_num] = line_tmp->clip1[y] & 0xffff; \ + m_clip_br[pf_num] = line_tmp->clip1[y] >> 16; \ } #define CULC_PIXMAP_POINTER(pf_num) \ { \ - m_x_count##pf_num += m_x_zoom##pf_num; \ - if(m_x_count##pf_num>>16) \ + m_x_count[pf_num] += m_x_zoom[pf_num]; \ + if (m_x_count[pf_num] >> 16) \ { \ - m_x_count##pf_num &= 0xffff; \ - m_src##pf_num++; \ - m_tsrc##pf_num++; \ - if(m_src##pf_num==m_src_e##pf_num) {m_src##pf_num=m_src_s##pf_num; m_tsrc##pf_num=m_tsrc_s##pf_num;} \ + m_x_count[pf_num] &= 0xffff; \ + m_src[pf_num]++; \ + m_tsrc[pf_num]++; \ + if (m_src[pf_num] == m_src_e[pf_num]) { m_src[pf_num] = m_src_s[pf_num]; m_tsrc[pf_num] = m_tsrc_s[pf_num]; } \ } \ } #define UPDATE_PIXMAP_SP(pf_num) \ - if(cx>=clip_als && cx=clip_bls && cx= clip_als && cx < clip_ars && !(cx >= clip_bls && cx < clip_brs)) \ { \ - sprite_pri=sprite[pf_num]&m_pval; \ - if(sprite_pri) \ + sprite_pri = sprite[pf_num] & m_pval; \ + if (sprite_pri) \ { \ - if(sprite[pf_num]&0x100) break; \ - if(!m_dpix_sp[sprite_pri]) \ + if (sprite[pf_num] & 0x100) break; \ + if (!m_dpix_sp[sprite_pri]) \ { \ - if(!(m_pval&0xf0)) break; \ - else {dpix_1_sprite(*dsti);*dsti=m_dval;break;} \ + if (!(m_pval & 0xf0)) break; \ + else { dpix_1_sprite(*dsti); *dsti = m_dval; break; } \ } \ - if((this->*m_dpix_sp[sprite_pri][m_pval>>4])(*dsti)) {*dsti=m_dval;break;} \ + if ((this->*m_dpix_sp[sprite_pri][m_pval >> 4])(*dsti)) { *dsti = m_dval; break; } \ } \ } #define UPDATE_PIXMAP_LP(pf_num) \ - if (cx>=m_clip_al##pf_num && cx=m_clip_bl##pf_num && cx= m_clip_al[pf_num] && cx < m_clip_ar[pf_num] && !(cx >= m_clip_bl[pf_num] && cx < m_clip_br[pf_num])) \ { \ - m_tval=*m_tsrc##pf_num; \ - if(m_tval&0xf0) \ - if((this->*m_dpix_lp[pf_num][m_pval>>4])(clut[*m_src##pf_num])) {*dsti=m_dval;break;} \ + m_tval = *m_tsrc[pf_num]; \ + if (m_tval & 0xf0) \ + if ((this->*m_dpix_lp[pf_num][m_pval >> 4])(clut[*m_src[pf_num]])) { *dsti = m_dval; break; } \ } /*============================================================================*/ inline void taito_f3_state::draw_scanlines( - bitmap_rgb32 &bitmap,int xsize,int16_t *draw_line_num, + bitmap_rgb32 &bitmap, int xsize, s16 *draw_line_num, const struct f3_playfield_line_inf **line_t, const int *sprite, - uint32_t orient, + u32 orient, int skip_layer_num) { const pen_t *clut = &m_palette->pen(0); - uint32_t bgcolor=clut[0]; - int length; + const u32 bgcolor = clut[0]; - const int x=46; + const int x = 46; - - - - - - uint16_t clip_als=0, clip_ars=0, clip_bls=0, clip_brs=0; - - uint8_t *dstp0,*dstp; + u16 clip_als = 0, clip_ars = 0, clip_bls = 0, clip_brs = 0; int yadv = bitmap.rowpixels(); int yadvp = m_pri_alp_bitmap.rowpixels(); - int i=0,y=draw_line_num[0]; + int i = 0, y = draw_line_num[0]; int ty = y; if (orient & ORIENTATION_FLIP_Y) @@ -1453,34 +1355,33 @@ inline void taito_f3_state::draw_scanlines( yadvp = -yadvp; } - dstp0 = &m_pri_alp_bitmap.pix8(ty, x); + u8 *dstp0 = &m_pri_alp_bitmap.pix8(ty, x); - m_pdest_2a = m_f3_alpha_level_2ad ? 0x10 : 0; - m_pdest_2b = m_f3_alpha_level_2bd ? 0x20 : 0; - m_tr_2a =(m_f3_alpha_level_2as==0 && m_f3_alpha_level_2ad==255) ? -1 : 0; - m_tr_2b =(m_f3_alpha_level_2bs==0 && m_f3_alpha_level_2bd==255) ? -1 : 1; - m_pdest_3a = m_f3_alpha_level_3ad ? 0x40 : 0; - m_pdest_3b = m_f3_alpha_level_3bd ? 0x80 : 0; - m_tr_3a =(m_f3_alpha_level_3as==0 && m_f3_alpha_level_3ad==255) ? -1 : 0; - m_tr_3b =(m_f3_alpha_level_3bs==0 && m_f3_alpha_level_3bd==255) ? -1 : 1; + m_pdest_2a = m_alpha_level_2ad ? 0x10 : 0; + m_pdest_2b = m_alpha_level_2bd ? 0x20 : 0; + m_tr_2a =(m_alpha_level_2as == 0 && m_alpha_level_2ad == 255) ? -1 : 0; + m_tr_2b =(m_alpha_level_2bs == 0 && m_alpha_level_2bd == 255) ? -1 : 1; + m_pdest_3a = m_alpha_level_3ad ? 0x40 : 0; + m_pdest_3b = m_alpha_level_3bd ? 0x80 : 0; + m_tr_3a =(m_alpha_level_3as == 0 && m_alpha_level_3ad == 255) ? -1 : 0; + m_tr_3b =(m_alpha_level_3bs == 0 && m_alpha_level_3bd == 255) ? -1 : 1; { - uint32_t *dsti0,*dsti; - dsti0 = &bitmap.pix32(ty, x); - while(1) + u32 *dsti0 = &bitmap.pix32(ty, x); + while (1) { - int cx=0; + int cx = 0; - clip_als=m_sa_line_inf[0].sprite_clip0[y]&0xffff; - clip_ars=m_sa_line_inf[0].sprite_clip0[y]>>16; - clip_bls=m_sa_line_inf[0].sprite_clip1[y]&0xffff; - clip_brs=m_sa_line_inf[0].sprite_clip1[y]>>16; + clip_als = m_sa_line_inf[0].sprite_clip0[y] & 0xffff; + clip_ars = m_sa_line_inf[0].sprite_clip0[y] >> 16; + clip_bls = m_sa_line_inf[0].sprite_clip1[y] & 0xffff; + clip_brs = m_sa_line_inf[0].sprite_clip1[y] >> 16; - length=xsize; - dsti = dsti0; - dstp = dstp0; + int length = xsize; + u32 *dsti = dsti0; + u8 *dstp = dstp0; - switch(skip_layer_num) + switch (skip_layer_num) { case 0: GET_PIXMAP_POINTER(0) case 1: GET_PIXMAP_POINTER(1) @@ -1491,11 +1392,11 @@ inline void taito_f3_state::draw_scanlines( while (1) { - m_pval=*dstp; - if (m_pval!=0xff) + m_pval = *dstp; + if (m_pval != 0xff) { - uint8_t sprite_pri; - switch(skip_layer_num) + u8 sprite_pri; + switch (skip_layer_num) { case 0: UPDATE_PIXMAP_SP(0) UPDATE_PIXMAP_LP(0) case 1: UPDATE_PIXMAP_SP(1) UPDATE_PIXMAP_LP(1) @@ -1503,18 +1404,18 @@ inline void taito_f3_state::draw_scanlines( case 3: UPDATE_PIXMAP_SP(3) UPDATE_PIXMAP_LP(3) case 4: UPDATE_PIXMAP_SP(4) UPDATE_PIXMAP_LP(4) case 5: UPDATE_PIXMAP_SP(5) - if(!bgcolor) {if(!(m_pval&0xf0)) {*dsti=0;break;}} + if (!bgcolor) { if (!(m_pval & 0xf0)) { *dsti = 0; break; } } else dpix_bg(bgcolor); - *dsti=m_dval; + *dsti = m_dval; } } - if(!(--length)) break; + if (!(--length)) break; dsti++; dstp++; cx++; - switch(skip_layer_num) + switch (skip_layer_num) { case 0: CULC_PIXMAP_POINTER(0) case 1: CULC_PIXMAP_POINTER(1) @@ -1525,8 +1426,8 @@ inline void taito_f3_state::draw_scanlines( } i++; - if(draw_line_num[i]<0) break; - if(draw_line_num[i]==y+1) + if (draw_line_num[i] < 0) break; + if (draw_line_num[i] == y + 1) { dsti0 += yadv; dstp0 += yadvp; @@ -1535,9 +1436,9 @@ inline void taito_f3_state::draw_scanlines( } else { - dsti0 += (draw_line_num[i]-y)*yadv; - dstp0 += (draw_line_num[i]-y)*yadvp; - y=draw_line_num[i]; + dsti0 += (draw_line_num[i] - y) * yadv; + dstp0 += (draw_line_num[i] - y) * yadvp; + y = draw_line_num[i]; } } } @@ -1550,175 +1451,170 @@ inline void taito_f3_state::draw_scanlines( void taito_f3_state::visible_tile_check( struct f3_playfield_line_inf *line_t, int line, - uint32_t x_index_fx,uint32_t y_index, - uint16_t *f3_pf_data_n) + u32 x_index_fx,u32 y_index, + u16 *pf_data_n) { - uint16_t *pf_base; - int i,trans_all,tile_index,tile_num; - int alpha_type,alpha_mode; - int opaque_all; - int total_elements; + u16 *pf_base; - alpha_mode=line_t->alpha_mode[line]; - if(!alpha_mode) return; + int alpha_mode = line_t->alpha_mode[line]; + if (!alpha_mode) return; - total_elements=m_gfxdecode->gfx(1)->elements(); + const u32 total_elements = m_gfxdecode->gfx(1)->elements(); - tile_index=x_index_fx>>16; - tile_num=(((line_t->x_zoom[line]*320+(x_index_fx & 0xffff)+0xffff)>>16)+(tile_index%16)+15)/16; - tile_index/=16; + int tile_index = x_index_fx >> 16; + const int tile_num = (((line_t->x_zoom[line] * 320 + (x_index_fx & 0xffff) + 0xffff) >> 16) + (tile_index & 0xf) + 15) >> 4; + tile_index >>= 4; if (m_flipscreen) { - pf_base=f3_pf_data_n+((31-(y_index/16))<> 4)) << m_twidth_mask_bit); + tile_index = (m_twidth_mask - tile_index) - tile_num + 1; } - else pf_base=f3_pf_data_n+((y_index/16)<> 4) << m_twidth_mask_bit); - - trans_all=1; - opaque_all=1; - alpha_type=0; - for(i=0;i>(16+10)) & 3; - if(tile&0xffff) + const u32 tile = (pf_base[(tile_index * 2 + 0) & m_twidth_mask] << 16) | (pf_base[(tile_index * 2 + 1) & m_twidth_mask]); + const u8 extra_planes = (tile >> (16 + 10)) & 3; + if (tile & 0xffff) { - trans_all=0; - if(opaque_all) + trans_all = false; + if (opaque_all) { - if(m_tile_opaque_pf[extra_planes][(tile&0xffff)%total_elements]!=1) opaque_all=0; + if (m_tile_opaque_pf[extra_planes][(tile & 0xffff) % total_elements] != 1) opaque_all = false; } - if(alpha_mode==1) + if (alpha_mode == 1) { - if(!opaque_all) return; + if (!opaque_all) return; } else { - if(alpha_type!=3) + if (alpha_type != 3) { - if((tile>>(16+9))&1) alpha_type|=2; - else alpha_type|=1; + if ((tile >> (16 + 9)) & 1) alpha_type |= 2; + else alpha_type |= 1; } - else if(!opaque_all) break; + else if (!opaque_all) break; } } - else if(opaque_all) opaque_all=0; + else if (opaque_all) opaque_all = false; tile_index++; } - if(trans_all) {line_t->alpha_mode[line]=0;return;} + if (trans_all) { line_t->alpha_mode[line] = 0; return; } - if(alpha_mode>1) + if (alpha_mode > 1) { - line_t->alpha_mode[line]|=alpha_type<<4; + line_t->alpha_mode[line] |= alpha_type << 4; } - if(opaque_all) - line_t->alpha_mode[line]|=0x80; + if (opaque_all) + line_t->alpha_mode[line] |= 0x80; } /******************************************************************************/ -void taito_f3_state::calculate_clip(int y, uint16_t pri, uint32_t* clip0, uint32_t* clip1, int* line_enable) +void taito_f3_state::calculate_clip(int y, u16 pri, u32 *clip0, u32 *clip1, int *line_enable) { - const struct f3_spritealpha_line_inf *sa_line_t=&m_sa_line_inf[0]; + const struct f3_spritealpha_line_inf *sa_line_t = &m_sa_line_inf[0]; switch (pri) { case 0x0100: /* Clip plane 1 enable */ { if (sa_line_t->clip0_l[y] > sa_line_t->clip0_r[y]) - *line_enable=0; + *line_enable = 0; else - *clip0=(sa_line_t->clip0_l[y]) | (sa_line_t->clip0_r[y]<<16); - *clip1=0; + *clip0 = (sa_line_t->clip0_l[y]) | (sa_line_t->clip0_r[y] << 16); + *clip1 = 0; } break; case 0x0110: /* Clip plane 1 enable, inverted */ { - *clip1=(sa_line_t->clip0_l[y]) | (sa_line_t->clip0_r[y]<<16); - *clip0=0x7fff0000; + *clip1 = (sa_line_t->clip0_l[y]) | (sa_line_t->clip0_r[y] << 16); + *clip0 = 0x7fff0000; } break; case 0x0200: /* Clip plane 2 enable */ { if (sa_line_t->clip1_l[y] > sa_line_t->clip1_r[y]) - *line_enable=0; + *line_enable = 0; else - *clip0=(sa_line_t->clip1_l[y]) | (sa_line_t->clip1_r[y]<<16); - *clip1=0; + *clip0 = (sa_line_t->clip1_l[y]) | (sa_line_t->clip1_r[y] << 16); + *clip1 = 0; } break; case 0x0220: /* Clip plane 2 enable, inverted */ { - *clip1=(sa_line_t->clip1_l[y]) | (sa_line_t->clip1_r[y]<<16); - *clip0=0x7fff0000; + *clip1 = (sa_line_t->clip1_l[y]) | (sa_line_t->clip1_r[y] << 16); + *clip0 = 0x7fff0000; } break; case 0x0300: /* Clip plane 1 & 2 enable */ { - int clipl=0,clipr=0; + int clipl = 0, clipr = 0; if (sa_line_t->clip1_l[y] > sa_line_t->clip0_l[y]) - clipl=sa_line_t->clip1_l[y]; + clipl = sa_line_t->clip1_l[y]; else - clipl=sa_line_t->clip0_l[y]; + clipl = sa_line_t->clip0_l[y]; if (sa_line_t->clip1_r[y] < sa_line_t->clip0_r[y]) - clipr=sa_line_t->clip1_r[y]; + clipr = sa_line_t->clip1_r[y]; else - clipr=sa_line_t->clip0_r[y]; + clipr = sa_line_t->clip0_r[y]; if (clipl > clipr) - *line_enable=0; + *line_enable = 0; else - *clip0=(clipl) | (clipr<<16); - *clip1=0; + *clip0 = (clipl) | (clipr << 16); + *clip1 = 0; } break; case 0x0310: /* Clip plane 1 & 2 enable, plane 1 inverted */ { if (sa_line_t->clip1_l[y] > sa_line_t->clip1_r[y]) - line_enable=nullptr; + line_enable = nullptr; else - *clip0=(sa_line_t->clip1_l[y]) | (sa_line_t->clip1_r[y]<<16); + *clip0 = (sa_line_t->clip1_l[y]) | (sa_line_t->clip1_r[y] << 16); - *clip1=(sa_line_t->clip0_l[y]) | (sa_line_t->clip0_r[y]<<16); + *clip1 = (sa_line_t->clip0_l[y]) | (sa_line_t->clip0_r[y] << 16); } break; case 0x0320: /* Clip plane 1 & 2 enable, plane 2 inverted */ { if (sa_line_t->clip0_l[y] > sa_line_t->clip0_r[y]) - line_enable=nullptr; + line_enable = nullptr; else - *clip0=(sa_line_t->clip0_l[y]) | (sa_line_t->clip0_r[y]<<16); + *clip0 = (sa_line_t->clip0_l[y]) | (sa_line_t->clip0_r[y] << 16); - *clip1=(sa_line_t->clip1_l[y]) | (sa_line_t->clip1_r[y]<<16); + *clip1 = (sa_line_t->clip1_l[y]) | (sa_line_t->clip1_r[y] << 16); } break; case 0x0330: /* Clip plane 1 & 2 enable, both inverted */ { - int clipl=0,clipr=0; + int clipl = 0, clipr = 0; if (sa_line_t->clip1_l[y] < sa_line_t->clip0_l[y]) - clipl=sa_line_t->clip1_l[y]; + clipl = sa_line_t->clip1_l[y]; else - clipl=sa_line_t->clip0_l[y]; + clipl = sa_line_t->clip0_l[y]; if (sa_line_t->clip1_r[y] > sa_line_t->clip0_r[y]) - clipr=sa_line_t->clip1_r[y]; + clipr = sa_line_t->clip1_r[y]; else - clipr=sa_line_t->clip0_r[y]; + clipr = sa_line_t->clip0_r[y]; if (clipl > clipr) - *line_enable=0; + *line_enable = 0; else - *clip1=(clipl) | (clipr<<16); - *clip0=0x7fff0000; + *clip1 = (clipl) | (clipr << 16); + *clip0 = 0x7fff0000; } break; default: @@ -1729,241 +1625,245 @@ void taito_f3_state::calculate_clip(int y, uint16_t pri, uint32_t* clip0, uint32 void taito_f3_state::get_spritealphaclip_info() { - struct f3_spritealpha_line_inf *line_t=&m_sa_line_inf[0]; + struct f3_spritealpha_line_inf *line_t = &m_sa_line_inf[0]; - int y,y_end,y_inc; + int y, y_end, y_inc; - int spri_base,clip_base_low,clip_base_high,inc; + int spri_base, clip_base_low, clip_base_high, inc; - uint16_t spri=0; - uint16_t sprite_clip=0; - uint16_t clip0_low=0, clip0_high=0, clip1_low=0; - int alpha_level=0; - uint16_t sprite_alpha=0; + u16 spri = 0; + u16 sprite_clip = 0; + u16 clip0_low = 0, clip0_high = 0, clip1_low = 0; + int alpha_level = 0; + u16 sprite_alpha = 0; if (m_flipscreen) { - spri_base=0x77fe; - clip_base_low=0x51fe; - clip_base_high=0x45fe; - inc=-2; - y=255; - y_end=-1; - y_inc=-1; + spri_base = 0x77fe; + clip_base_low = 0x51fe; + clip_base_high = 0x45fe; + inc = -2; + y = 255; + y_end = -1; + y_inc = -1; } else { - spri_base=0x7600; - clip_base_low=0x5000; - clip_base_high=0x4400; - inc=2; - y=0; - y_end=256; - y_inc=1; + spri_base = 0x7600; + clip_base_low = 0x5000; + clip_base_high = 0x4400; + inc = 2; + y = 0; + y_end = 256; + y_inc = 1; } - while(y!=y_end) + while (y != y_end) { /* The zoom, column and row values can latch according to control ram */ { - if (m_f3_line_ram[0x100+(y)]&1) - clip0_low=(m_f3_line_ram[clip_base_low/2]>> 0)&0xffff; - if (m_f3_line_ram[0x000+(y)]&4) - clip0_high=(m_f3_line_ram[clip_base_high/2]>> 0)&0xffff; - if (m_f3_line_ram[0x100+(y)]&2) - clip1_low=(m_f3_line_ram[(clip_base_low+0x200)/2]>> 0)&0xffff; + if (m_line_ram[0x100 + y] & 1) + clip0_low = (m_line_ram[clip_base_low / 2] >> 0) & 0xffff; + if (m_line_ram[0x000 + y] & 4) + clip0_high = (m_line_ram[clip_base_high / 2] >> 0) & 0xffff; + if (m_line_ram[0x100 + y] & 2) + clip1_low = (m_line_ram[(clip_base_low + 0x200) / 2] >> 0) & 0xffff; - if (m_f3_line_ram[(0x0600/2)+(y)]&0x8) - spri=m_f3_line_ram[spri_base/2]&0xffff; - if (m_f3_line_ram[(0x0600/2)+(y)]&0x4) - sprite_clip=m_f3_line_ram[(spri_base-0x200)/2]&0xffff; - if (m_f3_line_ram[(0x0400/2)+(y)]&0x1) - sprite_alpha=m_f3_line_ram[(spri_base-0x1600)/2]&0xffff; - if (m_f3_line_ram[(0x0400/2)+(y)]&0x2) - alpha_level=m_f3_line_ram[(spri_base-0x1400)/2]&0xffff; + if (m_line_ram[(0x0600 / 2) + y] & 0x8) + spri = m_line_ram[spri_base / 2] & 0xffff; + if (m_line_ram[(0x0600 / 2) + y] & 0x4) + sprite_clip = m_line_ram[(spri_base-0x200) / 2] & 0xffff; + if (m_line_ram[(0x0400 / 2) + y] & 0x1) + sprite_alpha = m_line_ram[(spri_base-0x1600) / 2] & 0xffff; + if (m_line_ram[(0x0400 / 2) + y] & 0x2) + alpha_level = m_line_ram[(spri_base-0x1400) / 2] & 0xffff; } - line_t->alpha_level[y]=alpha_level; - line_t->spri[y]=spri; - line_t->sprite_alpha[y]=sprite_alpha; - line_t->clip0_l[y]=((clip0_low&0xff)|((clip0_high&0x1000)>>4)) - 47; - line_t->clip0_r[y]=(((clip0_low&0xff00)>>8)|((clip0_high&0x2000)>>5)) - 47; - line_t->clip1_l[y]=((clip1_low&0xff)|((clip0_high&0x4000)>>6)) - 47; - line_t->clip1_r[y]=(((clip1_low&0xff00)>>8)|((clip0_high&0x8000)>>7)) - 47; - if (line_t->clip0_l[y]<0) line_t->clip0_l[y]=0; - if (line_t->clip0_r[y]<0) line_t->clip0_r[y]=0; - if (line_t->clip1_l[y]<0) line_t->clip1_l[y]=0; - if (line_t->clip1_r[y]<0) line_t->clip1_r[y]=0; + line_t->alpha_level[y] = alpha_level; + line_t->spri[y] = spri; + line_t->sprite_alpha[y] = sprite_alpha; + line_t->clip0_l[y] = ((clip0_low & 0xff) | ((clip0_high & 0x1000) >> 4)) - 47; + line_t->clip0_r[y] = (((clip0_low & 0xff00) >> 8) | ((clip0_high & 0x2000) >> 5)) - 47; + line_t->clip1_l[y] = ((clip1_low & 0xff) | ((clip0_high & 0x4000) >> 6)) - 47; + line_t->clip1_r[y] = (((clip1_low & 0xff00) >> 8) | ((clip0_high & 0x8000) >> 7)) - 47; + if (line_t->clip0_l[y] < 0) line_t->clip0_l[y] = 0; + if (line_t->clip0_r[y] < 0) line_t->clip0_r[y] = 0; + if (line_t->clip1_l[y] < 0) line_t->clip1_l[y] = 0; + if (line_t->clip1_r[y] < 0) line_t->clip1_r[y] = 0; /* Evaluate sprite clipping */ - if (sprite_clip&0x080) + if (sprite_clip & 0x080) { - line_t->sprite_clip0[y]=0x7fff7fff; - line_t->sprite_clip1[y]=0; + line_t->sprite_clip0[y] = 0x7fff7fff; + line_t->sprite_clip1[y] = 0; } - else if (sprite_clip&0x33) + else if (sprite_clip & 0x33) { - int line_enable=1; - calculate_clip(y, ((sprite_clip&0x33)<<4), &line_t->sprite_clip0[y], &line_t->sprite_clip1[y], &line_enable); - if (line_enable==0) - line_t->sprite_clip0[y]=0x7fff7fff; + int line_enable = 1; + calculate_clip(y, ((sprite_clip & 0x33) << 4), &line_t->sprite_clip0[y], &line_t->sprite_clip1[y], &line_enable); + if (line_enable == 0) + line_t->sprite_clip0[y] = 0x7fff7fff; } else { - line_t->sprite_clip0[y]=0x7fff0000; - line_t->sprite_clip1[y]=0; + line_t->sprite_clip0[y] = 0x7fff0000; + line_t->sprite_clip1[y] = 0; } - spri_base+=inc; - clip_base_low+=inc; - clip_base_high+=inc; - y +=y_inc; + spri_base += inc; + clip_base_low += inc; + clip_base_high += inc; + y += y_inc; } } /* sx and sy are 16.16 fixed point numbers */ -void taito_f3_state::get_line_ram_info(tilemap_t *tmap, int sx, int sy, int pos, uint16_t *f3_pf_data_n) +void taito_f3_state::get_line_ram_info(tilemap_t *tmap, int sx, int sy, int pos, u16 *pf_data_n) { - struct f3_playfield_line_inf *line_t=&m_pf_line_inf[pos]; + struct f3_playfield_line_inf *line_t = &m_pf_line_inf[pos]; - int y,y_start,y_end,y_inc; - int line_base,zoom_base,col_base,pri_base,inc; + int y_start, y_end, y_inc; + int line_base, zoom_base, col_base, pri_base, inc; int line_enable; - int colscroll=0,x_offset=0,line_zoom=0; - uint32_t _y_zoom[256]; - uint16_t pri=0; - int bit_select=1<extend) sx=-sx+(((188-512)&0xffff)<<16); else sx=-sx+(188<<16); /* Adjust for flipped scroll position */ - y_index_fx=-sy-(256<<16); /* Adjust for flipped scroll position */ + /* Adjust for flipped scroll position */ + if (m_game_config->extend) + sx = -sx + (((188 - 512) & 0xffff) << 16); + else + sx = -sx + (188 << 16); + + y_index_fx = -sy - (256 << 16); /* Adjust for flipped scroll position */ } else { - line_base=0xa000 + (pos*0x200); - zoom_base=0x8000;// + (pos*0x200); - col_base =0x4000 + (pos*0x200); - pri_base =0xb000 + (pos*0x200); - inc=2; - y_start=0; - y_end=256; - y_inc=1; + line_base = 0xa000 + (pos << 9); + zoom_base = 0x8000;// + (pos << 9); + col_base = 0x4000 + (pos << 9); + pri_base = 0xb000 + (pos << 9); + inc = 2; + y_start = 0; + y_end = 256; + y_inc = 1; - y_index_fx=sy; + y_index_fx = sy; } - y=y_start; + int y = y_start; - while(y!=y_end) + while (y != y_end) { /* The zoom, column and row values can latch according to control ram */ { - if (m_f3_line_ram[0x600+(y)]&bit_select) - x_offset=(m_f3_line_ram[line_base/2]&0xffff)<<10; - if (m_f3_line_ram[0x700+(y)]&bit_select) - pri=m_f3_line_ram[pri_base/2]&0xffff; + if (m_line_ram[0x600 + y] & bit_select) + x_offset = (m_line_ram[line_base / 2] & 0xffff) << 10; + if (m_line_ram[0x700 + y] & bit_select) + pri = m_line_ram[pri_base / 2] & 0xffff; // Zoom for playfields 1 & 3 is interleaved, as is the latch select switch (pos) { case 0: - if (m_f3_line_ram[0x400+(y)]&bit_select) - line_zoom=m_f3_line_ram[(zoom_base+0x000)/2]&0xffff; + if (m_line_ram[0x400 + y] & bit_select) + line_zoom = m_line_ram[(zoom_base + 0x000) / 2] & 0xffff; break; case 1: - if (m_f3_line_ram[0x400+(y)]&0x2) - line_zoom=((m_f3_line_ram[(zoom_base+0x200)/2]&0xffff)&0xff00) | (line_zoom&0x00ff); - if (m_f3_line_ram[0x400+(y)]&0x8) - line_zoom=((m_f3_line_ram[(zoom_base+0x600)/2]&0xffff)&0x00ff) | (line_zoom&0xff00); + if (m_line_ram[0x400 + y] & 0x2) + line_zoom = ((m_line_ram[(zoom_base + 0x200) / 2] & 0xffff) & 0xff00) | (line_zoom & 0x00ff); + if (m_line_ram[0x400 + y] & 0x8) + line_zoom = ((m_line_ram[(zoom_base + 0x600) / 2] & 0xffff) & 0x00ff) | (line_zoom & 0xff00); break; case 2: - if (m_f3_line_ram[0x400+(y)]&bit_select) - line_zoom=m_f3_line_ram[(zoom_base+0x400)/2]&0xffff; + if (m_line_ram[0x400 + y] & bit_select) + line_zoom = m_line_ram[(zoom_base + 0x400) / 2] & 0xffff; break; case 3: - if (m_f3_line_ram[0x400+(y)]&0x8) - line_zoom=((m_f3_line_ram[(zoom_base+0x600)/2]&0xffff)&0xff00) | (line_zoom&0x00ff); - if (m_f3_line_ram[0x400+(y)]&0x2) - line_zoom=((m_f3_line_ram[(zoom_base+0x200)/2]&0xffff)&0x00ff) | (line_zoom&0xff00); + if (m_line_ram[0x400 + y] & 0x8) + line_zoom = ((m_line_ram[(zoom_base + 0x600) / 2] & 0xffff) & 0xff00) | (line_zoom & 0x00ff); + if (m_line_ram[0x400 + y] & 0x2) + line_zoom = ((m_line_ram[(zoom_base + 0x200) / 2] & 0xffff) & 0x00ff) | (line_zoom & 0xff00); break; default: break; } // Column scroll only affects playfields 2 & 3 - if (pos>=2 && m_f3_line_ram[0x000+(y)]&bit_select) - colscroll=(m_f3_line_ram[col_base/2]>> 0)&0x3ff; + if (pos >= 2 && m_line_ram[0x000 + y] & bit_select) + colscroll = (m_line_ram[col_base / 2] >> 0) & 0x3ff; } - if (!pri || (!m_flipscreen && y<24) || (m_flipscreen && y>231) || - (pri&0xc000)==0xc000 || !(pri&0x2000)/**/) - line_enable=0; - else if(pri&0x4000) //alpha1 - line_enable=2; - else if(pri&0x8000) //alpha2 - line_enable=3; + if (!pri || (!m_flipscreen && y < 24) || (m_flipscreen && y > 231) || + (pri & 0xc000) == 0xc000 || !(pri & 0x2000)/**/) + line_enable = 0; + else if (pri & 0x4000) //alpha1 + line_enable = 2; + else if (pri & 0x8000) //alpha2 + line_enable = 3; else - line_enable=1; + line_enable = 1; - _colscroll[y]=colscroll; - _x_offset[y]=(x_offset&0xffff0000) - (x_offset&0x0000ffff); - _y_zoom[y] = (line_zoom&0xff) << 9; + _colscroll[y] = colscroll; + _x_offset[y] = (x_offset & 0xffff0000) - (x_offset & 0x0000ffff); + _y_zoom[y] = (line_zoom & 0xff) << 9; /* Evaluate clipping */ - if (pri&0x0800) - line_enable=0; - else if (pri&0x0330) + if (pri & 0x0800) + line_enable = 0; + else if (pri & 0x0330) { //fast path todo - remove line enable - calculate_clip(y, pri&0x0330, &line_t->clip0[y], &line_t->clip1[y], &line_enable); + calculate_clip(y, pri & 0x0330, &line_t->clip0[y], &line_t->clip1[y], &line_enable); } else { /* No clipping */ - line_t->clip0[y]=0x7fff0000; - line_t->clip1[y]=0; + line_t->clip0[y] = 0x7fff0000; + line_t->clip1[y] = 0; } - line_t->x_zoom[y]=0x10000 - (line_zoom&0xff00); - line_t->alpha_mode[y]=line_enable; - line_t->pri[y]=pri; + line_t->x_zoom[y] = 0x10000 - (line_zoom & 0xff00); + line_t->alpha_mode[y] = line_enable; + line_t->pri[y] = pri; - zoom_base+=inc; - line_base+=inc; - col_base +=inc; - pri_base +=inc; - y +=y_inc; + zoom_base += inc; + line_base += inc; + col_base += inc; + pri_base += inc; + y += y_inc; } - tilemap_t* tm = tmap; - y=y_start; - while(y!=y_end) + y = y_start; + while (y != y_end) { - uint32_t x_index_fx; - uint32_t y_index; + u32 x_index_fx; + u32 y_index; - /* The football games use values in the range 0x200-0x3ff where the crowd should be drawn - !? + /* The football games use values in the range 0x200 - 0x3ff where the crowd should be drawn - !? This appears to cause it to reference outside of the normal tilemap RAM area into the unused area on the 32x32 tilemap configuration.. but exactly how isn't understood @@ -1974,14 +1874,14 @@ void taito_f3_state::get_line_ram_info(tilemap_t *tmap, int sx, int sy, int pos, the crowd area still seems to 'lag' behind the pitch area however.. but these are the values in ram?? */ - int cs = _colscroll[y]; + const int cs = _colscroll[y]; - if (cs&0x200) + if (cs & 0x200) { - if (m_pf5_tilemap && m_pf6_tilemap) + if (m_tilemap[4] && m_tilemap[5]) { - if (tmap == m_pf3_tilemap) tmap = m_pf5_tilemap; // pitch -> crowd - if (tmap == m_pf4_tilemap) tmap = m_pf6_tilemap; // corruption on goals -> blank (hthero94) + if (tmap == m_tilemap[2]) tmap = m_tilemap[4]; // pitch -> crowd + if (tmap == m_tilemap[3]) tmap = m_tilemap[5]; // corruption on goals -> blank (hthero94) } } else @@ -1993,115 +1893,114 @@ void taito_f3_state::get_line_ram_info(tilemap_t *tmap, int sx, int sy, int pos, bitmap_ind16 &srcbitmap = tmap->pixmap(); bitmap_ind8 &flagsbitmap = tmap->flagsmap(); - if(line_t->alpha_mode[y]!=0) + if (line_t->alpha_mode[y] != 0) { - uint16_t *src_s; - uint8_t *tsrc_s; + u16 *src_s; + u8 *tsrc_s; - x_index_fx = (sx+_x_offset[y]-(10*0x10000)+(10*line_t->x_zoom[y]))&((m_width_mask<<16)|0xffff); - y_index = ((y_index_fx>>16)+_colscroll[y])&0x1ff; + x_index_fx = (sx+_x_offset[y]-(10*0x10000) + (10*line_t->x_zoom[y]))&((m_width_mask << 16)|0xffff); + y_index = ((y_index_fx >> 16)+_colscroll[y]) & 0x1ff; /* check tile status */ - visible_tile_check(line_t,y,x_index_fx,y_index,f3_pf_data_n); + visible_tile_check(line_t, y, x_index_fx, y_index, pf_data_n); /* If clipping enabled for this line have to disable 'all opaque' optimisation */ - if (line_t->clip0[y]!=0x7fff0000 || line_t->clip1[y]!=0) - line_t->alpha_mode[y]&=~0x80; + if (line_t->clip0[y] != 0x7fff0000 || line_t->clip1[y] != 0) + line_t->alpha_mode[y] &= ~0x80; /* set pixmap index */ line_t->x_count[y]=x_index_fx & 0xffff; // Fractional part - line_t->src_s[y]=src_s=&srcbitmap.pix16(y_index); - line_t->src_e[y]=&src_s[m_width_mask+1]; - line_t->src[y]=&src_s[x_index_fx>>16]; + line_t->src_s[y] = src_s = &srcbitmap.pix16(y_index); + line_t->src_e[y] = &src_s[m_width_mask + 1]; + line_t->src[y] = &src_s[x_index_fx >> 16]; - line_t->tsrc_s[y]=tsrc_s=&flagsbitmap.pix8(y_index); - line_t->tsrc[y]=&tsrc_s[x_index_fx>>16]; + line_t->tsrc_s[y]=tsrc_s = &flagsbitmap.pix8(y_index); + line_t->tsrc[y] = &tsrc_s[x_index_fx >> 16]; } y_index_fx += _y_zoom[y]; - y +=y_inc; + y += y_inc; } } void taito_f3_state::get_vram_info(tilemap_t *vram_tilemap, tilemap_t *pixel_tilemap, int sx, int sy) { - const struct f3_spritealpha_line_inf *sprite_alpha_line_t=&m_sa_line_inf[0]; - struct f3_playfield_line_inf *line_t=&m_pf_line_inf[4]; + const struct f3_spritealpha_line_inf *sprite_alpha_line_t = &m_sa_line_inf[0]; + struct f3_playfield_line_inf *line_t = &m_pf_line_inf[4]; - int y,y_start,y_end,y_inc; - int pri_base,inc; + int y_start, y_end, y_inc; + int pri_base, inc; int line_enable; - uint16_t pri=0; + u16 pri = 0; - const int vram_width_mask=0x3ff; + const int vram_width_mask = 0x3ff; if (m_flipscreen) { - pri_base =0x73fe; - inc=-2; - y_start=255; - y_end=-1; - y_inc=-1; + pri_base = 0x73fe; + inc = -2; + y_start = 255; + y_end = -1; + y_inc = -1; } else { - pri_base =0x7200; - inc=2; - y_start=0; - y_end=256; - y_inc=1; + pri_base = 0x7200; + inc = 2; + y_start = 0; + y_end = 256; + y_inc = 1; } - y=y_start; - while(y!=y_end) + int y = y_start; + while (y != y_end) { /* The zoom, column and row values can latch according to control ram */ { - if (m_f3_line_ram[(0x0600/2)+(y)]&0x2) - pri=(m_f3_line_ram[pri_base/2]&0xffff); + if (m_line_ram[(0x0600 / 2) + y] & 0x2) + pri = (m_line_ram[pri_base / 2] & 0xffff); } - - if (!pri || (!m_flipscreen && y<24) || (m_flipscreen && y>231) || - (pri&0xc000)==0xc000 || !(pri&0x2000)/**/) - line_enable=0; - else if(pri&0x4000) //alpha1 - line_enable=2; - else if(pri&0x8000) //alpha2 - line_enable=3; + if (!pri || (!m_flipscreen && y < 24) || (m_flipscreen && y > 231) || + (pri & 0xc000) == 0xc000 || !(pri & 0x2000)/**/) + line_enable = 0; + else if (pri & 0x4000) //alpha1 + line_enable = 2; + else if (pri & 0x8000) //alpha2 + line_enable = 3; else - line_enable=1; + line_enable = 1; - line_t->pri[y]=pri; + line_t->pri[y] = pri; /* Evaluate clipping */ - if (pri&0x0800) - line_enable=0; - else if (pri&0x0330) + if (pri & 0x0800) + line_enable = 0; + else if (pri & 0x0330) { //fast path todo - remove line enable - calculate_clip(y, pri&0x0330, &line_t->clip0[y], &line_t->clip1[y], &line_enable); + calculate_clip(y, pri & 0x0330, &line_t->clip0[y], &line_t->clip1[y], &line_enable); } else { /* No clipping */ - line_t->clip0[y]=0x7fff0000; - line_t->clip1[y]=0; + line_t->clip0[y] = 0x7fff0000; + line_t->clip1[y] = 0; } - line_t->x_zoom[y]=0x10000; - line_t->alpha_mode[y]=line_enable; - if (line_t->alpha_mode[y]>1) - line_t->alpha_mode[y]|=0x10; + line_t->x_zoom[y] = 0x10000; + line_t->alpha_mode[y] = line_enable; + if (line_t->alpha_mode[y] > 1) + line_t->alpha_mode[y] |= 0x10; - pri_base +=inc; - y +=y_inc; + pri_base += inc; + y += y_inc; } - sx&=0x1ff; + sx &= 0x1ff; /* set pixmap pointer */ bitmap_ind16 &srcbitmap_pixel = pixel_tilemap->pixmap(); @@ -2109,32 +2008,32 @@ void taito_f3_state::get_vram_info(tilemap_t *vram_tilemap, tilemap_t *pixel_til bitmap_ind16 &srcbitmap_vram = vram_tilemap->pixmap(); bitmap_ind8 &flagsbitmap_vram = vram_tilemap->flagsmap(); - y=y_start; - while(y!=y_end) + y = y_start; + while (y != y_end) { - if(line_t->alpha_mode[y]!=0) + if (line_t->alpha_mode[y] != 0) { - uint16_t *src_s; - uint8_t *tsrc_s; + u16 *src_s; + u8 *tsrc_s; // These bits in control ram indicate whether the line is taken from // the VRAM tilemap layer or pixel layer. - const int usePixelLayer=((sprite_alpha_line_t->sprite_alpha[y]&0xa000)==0xa000); + const bool usePixelLayer = ((sprite_alpha_line_t->sprite_alpha[y] & 0xa000) == 0xa000); /* set pixmap index */ - line_t->x_count[y]=0xffff; + line_t->x_count[y] = 0xffff; if (usePixelLayer) - line_t->src_s[y]=src_s=&srcbitmap_pixel.pix16(sy&0xff); + line_t->src_s[y] = src_s = &srcbitmap_pixel.pix16(sy & 0xff); else - line_t->src_s[y]=src_s=&srcbitmap_vram.pix16(sy&0x1ff); - line_t->src_e[y]=&src_s[vram_width_mask+1]; - line_t->src[y]=&src_s[sx]; + line_t->src_s[y] = src_s = &srcbitmap_vram.pix16(sy & 0x1ff); + line_t->src_e[y] = &src_s[vram_width_mask + 1]; + line_t->src[y] = &src_s[sx]; if (usePixelLayer) - line_t->tsrc_s[y]=tsrc_s=&flagsbitmap_pixel.pix8(sy&0xff); + line_t->tsrc_s[y]=tsrc_s = &flagsbitmap_pixel.pix8(sy & 0xff); else - line_t->tsrc_s[y]=tsrc_s=&flagsbitmap_vram.pix8(sy&0x1ff); - line_t->tsrc[y]=&tsrc_s[sx]; + line_t->tsrc_s[y]=tsrc_s = &flagsbitmap_vram.pix8(sy & 0x1ff); + line_t->tsrc[y] = &tsrc_s[sx]; } sy++; @@ -2146,353 +2045,338 @@ void taito_f3_state::get_vram_info(tilemap_t *vram_tilemap, tilemap_t *pixel_til void taito_f3_state::scanline_draw(bitmap_rgb32 &bitmap, const rectangle &cliprect) { - int i,j,y,ys,ye; - int y_start,y_end,y_start_next,y_end_next; - uint8_t draw_line[256]; - int16_t draw_line_num[256]; + int i, ys, ye; + int y_start, y_end, y_start_next, y_end_next; + u8 draw_line[256]; + s16 draw_line_num[256]; - uint32_t rot=0; + u32 rot = 0; if (m_flipscreen) { - rot=ORIENTATION_FLIP_Y; - ys=0; - ye=232; + rot = ORIENTATION_FLIP_Y; + ys = 0; + ye = 232; } else { - ys=24; - ye=256; + ys = 24; + ye = 256; } - y_start=ys; - y_end=ye; - memset(draw_line,0,256); + y_start = ys; + y_end = ye; + std::fill(std::begin(draw_line), std::end(draw_line), 0); - while(1) + while (1) { int pos; - int pri[5],alpha_mode[5],alpha_mode_flag[5],alpha_level; - uint16_t sprite_alpha; - uint8_t sprite_alpha_check; - uint8_t sprite_alpha_all_2a; - int spri; - int alpha; + int pri[5],alpha_mode[5],alpha_mode_flag[5]; + u8 sprite_alpha_check; + u8 sprite_alpha_all_2a; int layer_tmp[5]; struct f3_playfield_line_inf *pf_line_inf = m_pf_line_inf; struct f3_spritealpha_line_inf *sa_line_inf = m_sa_line_inf; - int count_skip_layer=0; - int sprite[6]={0,0,0,0,0,0}; + int count_skip_layer = 0; + int sprite[6] = {0, 0, 0, 0, 0, 0}; const struct f3_playfield_line_inf *line_t[5]; - /* find same status of scanlines */ - pri[0]=pf_line_inf[0].pri[y_start]; - pri[1]=pf_line_inf[1].pri[y_start]; - pri[2]=pf_line_inf[2].pri[y_start]; - pri[3]=pf_line_inf[3].pri[y_start]; - pri[4]=pf_line_inf[4].pri[y_start]; - alpha_mode[0]=pf_line_inf[0].alpha_mode[y_start]; - alpha_mode[1]=pf_line_inf[1].alpha_mode[y_start]; - alpha_mode[2]=pf_line_inf[2].alpha_mode[y_start]; - alpha_mode[3]=pf_line_inf[3].alpha_mode[y_start]; - alpha_mode[4]=pf_line_inf[4].alpha_mode[y_start]; - alpha_level=sa_line_inf[0].alpha_level[y_start]; - spri=sa_line_inf[0].spri[y_start]; - sprite_alpha=sa_line_inf[0].sprite_alpha[y_start]; + pri[0] = pf_line_inf[0].pri[y_start]; + pri[1] = pf_line_inf[1].pri[y_start]; + pri[2] = pf_line_inf[2].pri[y_start]; + pri[3] = pf_line_inf[3].pri[y_start]; + pri[4] = pf_line_inf[4].pri[y_start]; + alpha_mode[0] = pf_line_inf[0].alpha_mode[y_start]; + alpha_mode[1] = pf_line_inf[1].alpha_mode[y_start]; + alpha_mode[2] = pf_line_inf[2].alpha_mode[y_start]; + alpha_mode[3] = pf_line_inf[3].alpha_mode[y_start]; + alpha_mode[4] = pf_line_inf[4].alpha_mode[y_start]; + const int alpha_level = sa_line_inf[0].alpha_level[y_start]; + const int spri = sa_line_inf[0].spri[y_start]; + const u16 sprite_alpha = sa_line_inf[0].sprite_alpha[y_start]; - draw_line[y_start]=1; - draw_line_num[i=0]=y_start; - y_start_next=-1; - y_end_next=-1; - for(y=y_start+1;y1 || - alpha_mode[1]>1 || - alpha_mode[2]>1 || - alpha_mode[3]>1 || - alpha_mode[4]>1 || - (sprite_alpha&0xff) != 0xff ) + alpha_mode_flag[0] = alpha_mode[0] & ~3; + alpha_mode_flag[1] = alpha_mode[1] & ~3; + alpha_mode_flag[2] = alpha_mode[2] & ~3; + alpha_mode_flag[3] = alpha_mode[3] & ~3; + alpha_mode_flag[4] = alpha_mode[4] & ~3; + alpha_mode[0] &= 3; + alpha_mode[1] &= 3; + alpha_mode[2] &= 3; + alpha_mode[3] &= 3; + alpha_mode[4] &= 3; + if (alpha_mode[0] > 1 || + alpha_mode[1] > 1 || + alpha_mode[2] > 1 || + alpha_mode[3] > 1 || + alpha_mode[4] > 1 || + (sprite_alpha & 0xff) != 0xff) { /* set alpha level */ - if(alpha_level!=m_alpha_level_last) + if (alpha_level != m_alpha_level_last) { - int al_s,al_d; - int a=alpha_level; - int b=(a>>8)&0xf; - int c=(a>>4)&0xf; - int d=(a>>0)&0xf; - a>>=12; + int a = alpha_level; + const int b = (a >> 8) & 0xf; + const int c = (a >> 4) & 0xf; + const int d = (a >> 0) & 0xf; + a >>= 12; /* b000 7000 */ - al_s = ( (15-d)*256) / 8; - al_d = ( (15-b)*256) / 8; - if(al_s>255) al_s = 255; - if(al_d>255) al_d = 255; - m_f3_alpha_level_3as = al_s; - m_f3_alpha_level_3ad = al_d; - m_f3_alpha_level_2as = al_d; - m_f3_alpha_level_2ad = al_s; + int al_s = std::min(255, ((15 - d) * 256) / 8); + int al_d = std::min(255, ((15 - b) * 256) / 8); + m_alpha_level_3as = al_s; + m_alpha_level_3ad = al_d; + m_alpha_level_2as = al_d; + m_alpha_level_2ad = al_s; - al_s = ( (15-c)*256) / 8; - al_d = ( (15-a)*256) / 8; - if(al_s>255) al_s = 255; - if(al_d>255) al_d = 255; - m_f3_alpha_level_3bs = al_s; - m_f3_alpha_level_3bd = al_d; - m_f3_alpha_level_2bs = al_d; - m_f3_alpha_level_2bd = al_s; + al_s = std::min(255, ((15 - c) * 256) / 8); + al_d = std::min(255, ((15 - a) * 256) / 8); + m_alpha_level_3bs = al_s; + m_alpha_level_3bd = al_d; + m_alpha_level_2bs = al_d; + m_alpha_level_2bd = al_s; - f3_alpha_set_level(); - m_alpha_level_last=alpha_level; + alpha_set_level(); + m_alpha_level_last = alpha_level; } /* set sprite alpha mode */ - sprite_alpha_check=0; + sprite_alpha_check = 0; sprite_alpha_all_2a=1; - m_dpix_sp[1]=nullptr; - m_dpix_sp[2]=nullptr; - m_dpix_sp[4]=nullptr; - m_dpix_sp[8]=nullptr; - for(i=0;i<4;i++) /* i = sprite priority offset */ + m_dpix_sp[1] = nullptr; + m_dpix_sp[2] = nullptr; + m_dpix_sp[4] = nullptr; + m_dpix_sp[8] = nullptr; + for (i = 0; i < 4; i++) /* i = sprite priority offset */ { - uint8_t sprite_alpha_mode=(sprite_alpha>>(i*2))&3; - uint8_t sftbit=1<> (i * 2)) & 3; + const u8 sftbit = 1 << i; + if (m_sprite_pri_usage & sftbit) { - if(sprite_alpha_mode==1) + if (sprite_alpha_mode == 1) { - if(m_f3_alpha_level_2as==0 && m_f3_alpha_level_2ad==255) - m_sprite_pri_usage&=~sftbit; // Disable sprite priority block + if (m_alpha_level_2as == 0 && m_alpha_level_2ad == 255) + m_sprite_pri_usage &= ~sftbit; // Disable sprite priority block else { - m_dpix_sp[sftbit]=m_dpix_n[2]; - sprite_alpha_check|=sftbit; + m_dpix_sp[sftbit] = m_dpix_n[2]; + sprite_alpha_check |= sftbit; } } - else if(sprite_alpha_mode==2) + else if (sprite_alpha_mode == 2) { - if(sprite_alpha&0xff00) + if (sprite_alpha & 0xff00) { - if(m_f3_alpha_level_3as==0 && m_f3_alpha_level_3ad==255) m_sprite_pri_usage&=~sftbit; + if (m_alpha_level_3as == 0 && m_alpha_level_3ad == 255) m_sprite_pri_usage &= ~sftbit; else { - m_dpix_sp[sftbit]=m_dpix_n[3]; - sprite_alpha_check|=sftbit; - sprite_alpha_all_2a=0; + m_dpix_sp[sftbit] = m_dpix_n[3]; + sprite_alpha_check |= sftbit; + sprite_alpha_all_2a = 0; } } else { - if(m_f3_alpha_level_3bs==0 && m_f3_alpha_level_3bd==255) m_sprite_pri_usage&=~sftbit; + if (m_alpha_level_3bs == 0 && m_alpha_level_3bd == 255) m_sprite_pri_usage &= ~sftbit; else { - m_dpix_sp[sftbit]=m_dpix_n[5]; - sprite_alpha_check|=sftbit; - sprite_alpha_all_2a=0; + m_dpix_sp[sftbit] = m_dpix_n[5]; + sprite_alpha_check |= sftbit; + sprite_alpha_all_2a = 0; } } } } } - /* check alpha level */ - for(i=0;i<5;i++) /* i = playfield num (pos) */ + for (i = 0; i < 5; i++) /* i = playfield num (pos) */ { - int alpha_type = (alpha_mode_flag[i]>>4)&3; + const int alpha_type = (alpha_mode_flag[i] >> 4) & 3; - if(alpha_mode[i]==2) + if (alpha_mode[i] == 2) { - if(alpha_type==1) + if (alpha_type == 1) { - /* if (m_f3_alpha_level_2as==0 && m_f3_alpha_level_2ad==255) - * alpha_mode[i]=3; alpha_mode_flag[i] |= 0x80;} + /* if (m_alpha_level_2as == 0 && m_alpha_level_2ad == 255) + * alpha_mode[i]=3; alpha_mode_flag[i] |= 0x80; } * will display continue screen in gseeker (mt 00026) */ - if (m_f3_alpha_level_2as==0 && m_f3_alpha_level_2ad==255) alpha_mode[i]=0; - else if(m_f3_alpha_level_2as==255 && m_f3_alpha_level_2ad==0 ) alpha_mode[i]=1; + if (m_alpha_level_2as == 0 && m_alpha_level_2ad == 255) alpha_mode[i] = 0; + else if (m_alpha_level_2as == 255 && m_alpha_level_2ad == 0) alpha_mode[i] = 1; } - else if(alpha_type==2) + else if (alpha_type == 2) { - if (m_f3_alpha_level_2bs==0 && m_f3_alpha_level_2bd==255) alpha_mode[i]=0; - else if(m_f3_alpha_level_2as==255 && m_f3_alpha_level_2ad==0 && - m_f3_alpha_level_2bs==255 && m_f3_alpha_level_2bd==0 ) alpha_mode[i]=1; + if (m_alpha_level_2bs == 0 && m_alpha_level_2bd == 255) alpha_mode[i] = 0; + else if (m_alpha_level_2as == 255 && m_alpha_level_2ad == 0 && + m_alpha_level_2bs == 255 && m_alpha_level_2bd == 0) alpha_mode[i] = 1; } - else if(alpha_type==3) + else if (alpha_type == 3) { - if (m_f3_alpha_level_2as==0 && m_f3_alpha_level_2ad==255 && - m_f3_alpha_level_2bs==0 && m_f3_alpha_level_2bd==255) alpha_mode[i]=0; - else if(m_f3_alpha_level_2as==255 && m_f3_alpha_level_2ad==0 && - m_f3_alpha_level_2bs==255 && m_f3_alpha_level_2bd==0 ) alpha_mode[i]=1; + if (m_alpha_level_2as == 0 && m_alpha_level_2ad == 255 && + m_alpha_level_2bs == 0 && m_alpha_level_2bd == 255) alpha_mode[i] = 0; + else if (m_alpha_level_2as == 255 && m_alpha_level_2ad == 0 && + m_alpha_level_2bs == 255 && m_alpha_level_2bd == 0) alpha_mode[i] = 1; } } - else if(alpha_mode[i]==3) + else if (alpha_mode[i] == 3) { - if(alpha_type==1) + if (alpha_type == 1) { - if (m_f3_alpha_level_3as==0 && m_f3_alpha_level_3ad==255) alpha_mode[i]=0; - else if(m_f3_alpha_level_3as==255 && m_f3_alpha_level_3ad==0 ) alpha_mode[i]=1; + if (m_alpha_level_3as == 0 && m_alpha_level_3ad == 255) alpha_mode[i] = 0; + else if (m_alpha_level_3as == 255 && m_alpha_level_3ad == 0) alpha_mode[i] = 1; } - else if(alpha_type==2) + else if (alpha_type == 2) { - if (m_f3_alpha_level_3bs==0 && m_f3_alpha_level_3bd==255) alpha_mode[i]=0; - else if(m_f3_alpha_level_3as==255 && m_f3_alpha_level_3ad==0 && - m_f3_alpha_level_3bs==255 && m_f3_alpha_level_3bd==0 ) alpha_mode[i]=1; + if (m_alpha_level_3bs == 0 && m_alpha_level_3bd == 255) alpha_mode[i] = 0; + else if (m_alpha_level_3as == 255 && m_alpha_level_3ad == 0 && + m_alpha_level_3bs == 255 && m_alpha_level_3bd == 0) alpha_mode[i] = 1; } - else if(alpha_type==3) + else if (alpha_type == 3) { - if (m_f3_alpha_level_3as==0 && m_f3_alpha_level_3ad==255 && - m_f3_alpha_level_3bs==0 && m_f3_alpha_level_3bd==255) alpha_mode[i]=0; - else if(m_f3_alpha_level_3as==255 && m_f3_alpha_level_3ad==0 && - m_f3_alpha_level_3bs==255 && m_f3_alpha_level_3bd==0 ) alpha_mode[i]=1; + if (m_alpha_level_3as == 0 && m_alpha_level_3ad == 255 && + m_alpha_level_3bs == 0 && m_alpha_level_3bd == 255) alpha_mode[i] = 0; + else if (m_alpha_level_3as == 255 && m_alpha_level_3ad == 0 && + m_alpha_level_3bs == 255 && m_alpha_level_3bd == 0) alpha_mode[i] = 1; } } } - if ( (alpha_mode[0]==1 || alpha_mode[0]==2 || !alpha_mode[0]) && - (alpha_mode[1]==1 || alpha_mode[1]==2 || !alpha_mode[1]) && - (alpha_mode[2]==1 || alpha_mode[2]==2 || !alpha_mode[2]) && - (alpha_mode[3]==1 || alpha_mode[3]==2 || !alpha_mode[3]) && - (alpha_mode[4]==1 || alpha_mode[4]==2 || !alpha_mode[4]) && - sprite_alpha_all_2a ) + if ((alpha_mode[0] == 1 || alpha_mode[0] == 2 || !alpha_mode[0]) && + (alpha_mode[1] == 1 || alpha_mode[1] == 2 || !alpha_mode[1]) && + (alpha_mode[2] == 1 || alpha_mode[2] == 2 || !alpha_mode[2]) && + (alpha_mode[3] == 1 || alpha_mode[3] == 2 || !alpha_mode[3]) && + (alpha_mode[4] == 1 || alpha_mode[4] == 2 || !alpha_mode[4]) && + sprite_alpha_all_2a) { - int alpha_type = (alpha_mode_flag[0] | alpha_mode_flag[1] | alpha_mode_flag[2] | alpha_mode_flag[3])&0x30; - if( (alpha_type==0x10 && m_f3_alpha_level_2as==255) || - (alpha_type==0x20 && m_f3_alpha_level_2as==255 && m_f3_alpha_level_2bs==255) || - (alpha_type==0x30 && m_f3_alpha_level_2as==255 && m_f3_alpha_level_2bs==255) ) + int alpha_type = (alpha_mode_flag[0] | alpha_mode_flag[1] | alpha_mode_flag[2] | alpha_mode_flag[3]) & 0x30; + if ((alpha_type == 0x10 && m_alpha_level_2as == 255) || + (alpha_type == 0x20 && m_alpha_level_2as == 255 && m_alpha_level_2bs == 255) || + (alpha_type == 0x30 && m_alpha_level_2as == 255 && m_alpha_level_2bs == 255)) { - if(alpha_mode[0]>1) alpha_mode[0]=1; - if(alpha_mode[1]>1) alpha_mode[1]=1; - if(alpha_mode[2]>1) alpha_mode[2]=1; - if(alpha_mode[3]>1) alpha_mode[3]=1; - if(alpha_mode[4]>1) alpha_mode[4]=1; - sprite_alpha_check=0; - m_dpix_sp[1]=nullptr; - m_dpix_sp[2]=nullptr; - m_dpix_sp[4]=nullptr; - m_dpix_sp[8]=nullptr; + if (alpha_mode[0] > 1) alpha_mode[0] = 1; + if (alpha_mode[1] > 1) alpha_mode[1] = 1; + if (alpha_mode[2] > 1) alpha_mode[2] = 1; + if (alpha_mode[3] > 1) alpha_mode[3] = 1; + if (alpha_mode[4] > 1) alpha_mode[4] = 1; + sprite_alpha_check = 0; + m_dpix_sp[1] = nullptr; + m_dpix_sp[2] = nullptr; + m_dpix_sp[4] = nullptr; + m_dpix_sp[8] = nullptr; } } } else { - sprite_alpha_check=0; - m_dpix_sp[1]=nullptr; - m_dpix_sp[2]=nullptr; - m_dpix_sp[4]=nullptr; - m_dpix_sp[8]=nullptr; + sprite_alpha_check = 0; + m_dpix_sp[1] = nullptr; + m_dpix_sp[2] = nullptr; + m_dpix_sp[4] = nullptr; + m_dpix_sp[8] = nullptr; } - - /* set scanline priority */ { - int pri_max_opa=-1; - for(i=0;i<5;i++) /* i = playfield num (pos) */ + int pri_max_opa = -1; + for (i = 0; i < 5; i++) /* i = playfield num (pos) */ { - int p0=pri[i]; - int pri_sl1=p0&0x0f; + const int p0 = pri[i]; + const int pri_sl1 = p0 & 0x0f; - layer_tmp[i]=i + (pri_sl1<<3); + layer_tmp[i] = i + (pri_sl1 << 3); - if(!alpha_mode[i]) + if (!alpha_mode[i]) { - layer_tmp[i]|=0x80; + layer_tmp[i] |= 0x80; count_skip_layer++; } - else if(alpha_mode[i]==1 && (alpha_mode_flag[i]&0x80)) + else if (alpha_mode[i] == 1 && (alpha_mode_flag[i] & 0x80)) { - if(layer_tmp[i]>pri_max_opa) pri_max_opa=layer_tmp[i]; + if (layer_tmp[i] > pri_max_opa) pri_max_opa = layer_tmp[i]; } } - if(pri_max_opa!=-1) + if (pri_max_opa != -1) { - if(pri_max_opa>layer_tmp[0]) {layer_tmp[0]|=0x80;count_skip_layer++;} - if(pri_max_opa>layer_tmp[1]) {layer_tmp[1]|=0x80;count_skip_layer++;} - if(pri_max_opa>layer_tmp[2]) {layer_tmp[2]|=0x80;count_skip_layer++;} - if(pri_max_opa>layer_tmp[3]) {layer_tmp[3]|=0x80;count_skip_layer++;} - if(pri_max_opa>layer_tmp[4]) {layer_tmp[4]|=0x80;count_skip_layer++;} + if (pri_max_opa > layer_tmp[0]) { layer_tmp[0] |= 0x80; count_skip_layer++; } + if (pri_max_opa > layer_tmp[1]) { layer_tmp[1] |= 0x80; count_skip_layer++; } + if (pri_max_opa > layer_tmp[2]) { layer_tmp[2] |= 0x80; count_skip_layer++; } + if (pri_max_opa > layer_tmp[3]) { layer_tmp[3] |= 0x80; count_skip_layer++; } + if (pri_max_opa > layer_tmp[4]) { layer_tmp[4] |= 0x80; count_skip_layer++; } } } - /* sort layer_tmp */ - for(i=0;i<4;i++) + for (i = 0; i < 4; i++) { - for(j=i+1;j<5;j++) + for (int j = i + 1; j < 5; j++) { - if(layer_tmp[i]>3; - l1=layer_tmp[1]>>3; - l2=layer_tmp[2]>>3; - l3=layer_tmp[3]>>3; - l4=layer_tmp[4]>>3; + const int l0 = layer_tmp[0] >> 3; + const int l1 = layer_tmp[1] >> 3; + const int l2 = layer_tmp[2] >> 3; + const int l3 = layer_tmp[3] >> 3; + const int l4 = layer_tmp[4] >> 3; - pri_sp[0]=spri&0xf; - pri_sp[1]=(spri>>4)&0xf; - pri_sp[2]=(spri>>8)&0xf; - pri_sp[3]=spri>>12; + pri_sp[0] = spri & 0xf; + pri_sp[1] = (spri >> 4) & 0xf; + pri_sp[2] = (spri >> 8) & 0xf; + pri_sp[3] = spri >> 12; - for(i=0;i<4;i++) /* i = sprite priority offset */ + for (i = 0; i < 4; i++) /* i = sprite priority offset */ { - int sp,sflg=1< playfield */ - if (m_f3_game == BUBSYMPH ) sp++; //BUBSYMPH (title) - if (m_f3_game == GSEEKER ) sp++; //GSEEKER (plane leaving hangar) + if (m_game == BUBSYMPH) sp++; //BUBSYMPH (title) + if (m_game == GSEEKER) sp++; //GSEEKER (plane leaving hangar) - if( sp>l0) sprite[0]|=sflg; - else if(sp<=l0 && sp>l1) sprite[1]|=sflg; - else if(sp<=l1 && sp>l2) sprite[2]|=sflg; - else if(sp<=l2 && sp>l3) sprite[3]|=sflg; - else if(sp<=l3 && sp>l4) sprite[4]|=sflg; - else if(sp<=l4 ) sprite[5]|=sflg; + if ( sp > l0) sprite[0] |= sflg; + else if (sp <= l0 && sp > l1) sprite[1] |= sflg; + else if (sp <= l1 && sp > l2) sprite[2] |= sflg; + else if (sp <= l2 && sp > l3) sprite[3] |= sflg; + else if (sp <= l3 && sp > l4) sprite[4] |= sflg; + else if (sp <= l4 ) sprite[5] |= sflg; } } /* draw scanlines */ - alpha=0; - for(i=count_skip_layer;i<5;i++) + bool alpha = false; + for (i = count_skip_layer; i < 5; i++) { - pos=layer_tmp[i]&7; - line_t[i]=&pf_line_inf[pos]; + pos = layer_tmp[i] & 7; + line_t[i] = &pf_line_inf[pos]; - if(sprite[i]&sprite_alpha_check) alpha=1; - else if(!alpha) sprite[i]|=0x100; + if (sprite[i] & sprite_alpha_check) alpha = true; + else if (!alpha) sprite[i] |= 0x100; - if(alpha_mode[pos]>1) + if (alpha_mode[pos] > 1) { - int alpha_type=(((alpha_mode_flag[pos]>>4)&3)-1)*2; - m_dpix_lp[i]=m_dpix_n[alpha_mode[pos]+alpha_type]; - alpha=1; + int alpha_type = (((alpha_mode_flag[pos] >> 4) & 3) - 1) * 2; + m_dpix_lp[i] = m_dpix_n[alpha_mode[pos]+alpha_type]; + alpha = true; } else { - if(alpha) m_dpix_lp[i]=m_dpix_n[1]; - else m_dpix_lp[i]=m_dpix_n[0]; + if (alpha) m_dpix_lp[i] = m_dpix_n[1]; + else m_dpix_lp[i] = m_dpix_n[0]; } } - if(sprite[5]&sprite_alpha_check) alpha=1; - else if(!alpha) sprite[5]|=0x100; + if (sprite[5] & sprite_alpha_check) alpha = true; + else if (!alpha) sprite[5] |= 0x100; - draw_scanlines(bitmap,320,draw_line_num,line_t,sprite,rot,count_skip_layer); - if(y_start<0) break; + draw_scanlines(bitmap, 320, draw_line_num, line_t, sprite, rot, count_skip_layer); + if (y_start < 0) break; } } @@ -2548,10 +2432,10 @@ void taito_f3_state::scanline_draw(bitmap_rgb32 &bitmap, const rectangle &clipre #define PSET_T \ c = *source & m_sprite_pen_mask; \ - if(c) \ + if (c) \ { \ - p=*pri; \ - if(!p || p==0xff) \ + p = *pri; \ + if (!p || p == 0xff) \ { \ *dest = pal[c]; \ *pri = pri_dst; \ @@ -2559,8 +2443,8 @@ void taito_f3_state::scanline_draw(bitmap_rgb32 &bitmap, const rectangle &clipre } #define PSET_O \ - p=*pri; \ - if(!p || p==0xff) \ + p = *pri; \ + if (!p || p == 0xff) \ { \ *dest = pal[*source & m_sprite_pen_mask]; \ *pri = pri_dst; \ @@ -2571,40 +2455,39 @@ void taito_f3_state::scanline_draw(bitmap_rgb32 &bitmap, const rectangle &clipre dest++; \ pri++; -inline void taito_f3_state::f3_drawgfx(bitmap_rgb32 &dest_bmp,const rectangle &clip, +inline void taito_f3_state::f3_drawgfx(bitmap_rgb32 &dest_bmp, const rectangle &clip, gfx_element *gfx, int code, int color, - int flipx,int flipy, - int sx,int sy, - uint8_t pri_dst) + int flipx, int flipy, + int sx, int sy, + u8 pri_dst) { rectangle myclip; - pri_dst=1<pen(gfx->colorbase() + gfx->granularity() * (color % gfx->colors())); - const uint8_t *code_base = gfx->get_data(code % gfx->elements()); + const u8 *code_base = gfx->get_data(code % gfx->elements()); { /* compute sprite increment per screen pixel */ int dx = 1; int dy = 1; - int ex = sx+16; - int ey = sy+16; + int ex = sx + 16; + int ey = sy + 16; int x_index_base; int y_index; - if( flipx ) + if (flipx) { x_index_base = 15; dx = -1; @@ -2614,7 +2497,7 @@ inline void taito_f3_state::f3_drawgfx(bitmap_rgb32 &dest_bmp,const rectangle &c x_index_base = 0; } - if( flipy ) + if (flipy) { y_index = 15; dy = -1; @@ -2624,52 +2507,52 @@ inline void taito_f3_state::f3_drawgfx(bitmap_rgb32 &dest_bmp,const rectangle &c y_index = 0; } - if( sx < myclip.min_x) + if (sx < myclip.min_x) { /* clip left */ - int pixels = myclip.min_x-sx; + int pixels = myclip.min_x - sx; sx += pixels; - x_index_base += pixels*dx; + x_index_base += pixels * dx; } - if( sy < myclip.min_y ) + if (sy < myclip.min_y) { /* clip top */ - int pixels = myclip.min_y-sy; + int pixels = myclip.min_y - sy; sy += pixels; - y_index += pixels*dy; + y_index += pixels * dy; } /* NS 980211 - fixed incorrect clipping */ - if( ex > myclip.max_x+1 ) + if (ex > myclip.max_x + 1) { /* clip right */ - int pixels = ex-myclip.max_x-1; + int pixels = ex - myclip.max_x - 1; ex -= pixels; } - if( ey > myclip.max_y+1 ) + if (ey > myclip.max_y + 1) { /* clip bottom */ - int pixels = ey-myclip.max_y-1; + int pixels = ey - myclip.max_y - 1; ey -= pixels; } - if( ex>sx && ey>sy) + if (ex > sx && ey > sy) { /* skip if inner loop doesn't draw anything */ // if (dest_bmp.bpp == 32) { - int y=ey-sy; - int x=(ex-sx-1)|(m_tile_opaque_sp[code % gfx->elements()]<<4); - const uint8_t *source0 = code_base + y_index * 16 + x_index_base; - uint32_t *dest0 = &dest_bmp.pix32(sy, sx); - uint8_t *pri0 = &m_pri_alp_bitmap.pix8(sy, sx); - int yadv = dest_bmp.rowpixels(); - int yadvp = m_pri_alp_bitmap.rowpixels(); - dy=dy*16; - while(1) + int y = ey - sy; + const int x = (ex - sx - 1) | (m_tile_opaque_sp[code % gfx->elements()] << 4); + const u8 *source0 = code_base + y_index * 16 + x_index_base; + u32 *dest0 = &dest_bmp.pix32(sy, sx); + u8 *pri0 = &m_pri_alp_bitmap.pix8(sy, sx); + const int yadv = dest_bmp.rowpixels(); + const int yadvp = m_pri_alp_bitmap.rowpixels(); + dy = dy * 16; + while (1) { - const uint8_t *source = source0; - uint32_t *dest = dest0; - uint8_t *pri = pri0; + const u8 *source = source0; + u32 *dest = dest0; + u8 *pri = pri0; - switch(x) + switch (x) { int c; - uint8_t p; + u8 p; case 31: PSET_O NEXT_P case 30: PSET_O NEXT_P case 29: PSET_O NEXT_P @@ -2705,10 +2588,10 @@ inline void taito_f3_state::f3_drawgfx(bitmap_rgb32 &dest_bmp,const rectangle &c case 0: PSET_T } - if(!(--y)) break; + if (!(--y)) break; source0 += dy; - dest0+=yadv; - pri0+=yadvp; + dest0 += yadv; + pri0 += yadvp; } } } @@ -2720,43 +2603,42 @@ inline void taito_f3_state::f3_drawgfx(bitmap_rgb32 &dest_bmp,const rectangle &c #undef NEXT_P -inline void taito_f3_state::f3_drawgfxzoom(bitmap_rgb32 &dest_bmp,const rectangle &clip, +inline void taito_f3_state::f3_drawgfxzoom(bitmap_rgb32 &dest_bmp, const rectangle &clip, gfx_element *gfx, int code, int color, - int flipx,int flipy, - int sx,int sy, + int flipx, int flipy, + int sx, int sy, int scalex, int scaley, - uint8_t pri_dst) + u8 pri_dst) { rectangle myclip; - pri_dst=1<pen(gfx->colorbase() + gfx->granularity() * (color % gfx->colors())); - const uint8_t *code_base = gfx->get_data(code % gfx->elements()); + const u8 *code_base = gfx->get_data(code % gfx->elements()); { /* compute sprite increment per screen pixel */ - int dx = (16<<16)/scalex; - int dy = (16<<16)/scaley; + int dx = (16 << 16) / scalex; + int dy = (16 << 16) / scaley; - int ex = sx+scalex; - int ey = sy+scaley; + int ex = sx + scalex; + int ey = sy + scaley; int x_index_base; int y_index; - if( flipx ) + if (flipx) { - x_index_base = (scalex-1)*dx; + x_index_base = (scalex - 1) * dx; dx = -dx; } else @@ -2764,9 +2646,9 @@ inline void taito_f3_state::f3_drawgfxzoom(bitmap_rgb32 &dest_bmp,const rectangl x_index_base = 0; } - if( flipy ) + if (flipy) { - y_index = (scaley-1)*dy; + y_index = (scaley - 1) * dy; dy = -dy; } else @@ -2774,48 +2656,47 @@ inline void taito_f3_state::f3_drawgfxzoom(bitmap_rgb32 &dest_bmp,const rectangl y_index = 0; } - if( sx < myclip.min_x) + if (sx < myclip.min_x) { /* clip left */ - int pixels = myclip.min_x-sx; + int pixels = myclip.min_x - sx; sx += pixels; - x_index_base += pixels*dx; + x_index_base += pixels * dx; } - if( sy < myclip.min_y ) + if (sy < myclip.min_y) { /* clip top */ - int pixels = myclip.min_y-sy; + int pixels = myclip.min_y - sy; sy += pixels; - y_index += pixels*dy; + y_index += pixels * dy; } /* NS 980211 - fixed incorrect clipping */ - if( ex > myclip.max_x+1 ) + if (ex > myclip.max_x + 1) { /* clip right */ - int pixels = ex-myclip.max_x-1; + int pixels = ex - myclip.max_x - 1; ex -= pixels; } - if( ey > myclip.max_y+1 ) + if (ey > myclip.max_y + 1) { /* clip bottom */ - int pixels = ey-myclip.max_y-1; + int pixels = ey - myclip.max_y - 1; ey -= pixels; } - if( ex>sx ) + if (ex > sx) { /* skip if inner loop doesn't draw anything */ // if (dest_bmp.bpp == 32) { - int y; - for( y=sy; y>16) * 16; - uint32_t *dest = &dest_bmp.pix32(y); - uint8_t *pri = &m_pri_alp_bitmap.pix8(y); + const u8 *source = code_base + (y_index >> 16) * 16; + u32 *dest = &dest_bmp.pix32(y); + u8 *pri = &m_pri_alp_bitmap.pix8(y); - int x, x_index = x_index_base; - for( x=sx; x>16] & m_sprite_pen_mask; - if(c) + int c = source[x_index >> 16] & m_sprite_pen_mask; + if (c) { - uint8_t p=pri[x]; + const u8 p = pri[x]; if (p == 0 || p == 0xff) { dest[x] = pal[c]; @@ -2837,222 +2718,240 @@ inline void taito_f3_state::f3_drawgfxzoom(bitmap_rgb32 &dest_bmp,const rectangl p##_addition = 0x100 - block_zoom_##p + p##_addition_left; \ p##_addition_left = p##_addition & 0xf; \ p##_addition = p##_addition >> 4; \ - /*zoom##p = p##_addition << 12;*/ \ + /*zoom##p = p##_addition << 12; */ \ } -void taito_f3_state::get_sprite_info(const uint16_t *spriteram16_ptr) +void taito_f3_state::get_sprite_info(const u16 *spriteram16_ptr) { const rectangle &visarea = m_screen->visible_area(); - const int min_x=visarea.min_x,max_x=visarea.max_x; - const int min_y=visarea.min_y,max_y=visarea.max_y; - int offs,spritecont,flipx,flipy,/*old_x,*/color,x,y; - int sprite,global_x=0,global_y=0,subglobal_x=0,subglobal_y=0; - int block_x=0, block_y=0; - int last_color=0,last_x=0,last_y=0,block_zoom_x=0,block_zoom_y=0; - int this_x,this_y; - int y_addition=16, x_addition=16; - int multi=0; - int sprite_top; + const int min_x = visarea.min_x, max_x = visarea.max_x; + const int min_y = visarea.min_y, max_y = visarea.max_y; + int global_x = 0,global_y = 0, subglobal_x = 0, subglobal_y = 0; + int block_x = 0, block_y = 0; + int last_color = 0, last_x = 0, last_y = 0,block_zoom_x = 0,block_zoom_y = 0; + int this_x, this_y; + int y_addition = 16, x_addition = 16; + int multi = 0; int x_addition_left = 8, y_addition_left = 8; struct tempsprite *sprite_ptr = m_spritelist; - int total_sprites=0; + int total_sprites = 0; - color=0; - flipx=flipy=0; - //old_x=0; - y=x=0; + int color = 0; + int flipx = 0, flipy = 0; + //int old_x = 0; + int y = 0, x = 0; - sprite_top=0x2000; - for (offs = 0; offs < sprite_top && (total_sprites < 0x400); offs += 8) + int sprite_top = 0x2000; + for (int offs = 0; offs < sprite_top && (total_sprites < 0x400); offs += 8) { - const int current_offs=offs; /* Offs can change during loop, current_offs cannot */ + const int current_offs = offs; /* Offs can change during loop, current_offs cannot */ /* Check if the sprite list jump command bit is set */ - if ((spriteram16_ptr[current_offs+6+0]) & 0x8000) { - uint32_t jump = (spriteram16_ptr[current_offs+6+0])&0x3ff; + if ((spriteram16_ptr[current_offs + 6 + 0]) & 0x8000) + { + const u32 jump = (spriteram16_ptr[current_offs + 6 + 0]) & 0x3ff; - uint32_t new_offs=((offs&0x4000)|((jump<<4)/2)); - if (new_offs==offs) + const u32 new_offs = ((offs & 0x4000) | ((jump << 4) / 2)); + if (new_offs == offs) break; - offs=new_offs - 8; + offs = new_offs - 8; } /* Check if special command bit is set */ - if (spriteram16_ptr[current_offs+2+1] & 0x8000) { - uint32_t cntrl=(spriteram16_ptr[current_offs+4+1])&0xffff; - m_flipscreen=cntrl&0x2000; + if (spriteram16_ptr[current_offs + 2 + 1] & 0x8000) + { + const u32 cntrl = (spriteram16_ptr[current_offs + 4 + 1]) & 0xffff; + m_flipscreen = cntrl & 0x2000; - /* cntrl&0x1000 = disabled? (From F2 driver, doesn't seem used anywhere) - cntrl&0x0010 = ??? - cntrl&0x0020 = ??? + /* cntrl & 0x1000 = disabled? (From F2 driver, doesn't seem used anywhere) + cntrl & 0x0010 = ??? + cntrl & 0x0020 = ??? */ m_sprite_extra_planes = (cntrl & 0x0300) >> 8; // 0 = 4bpp, 1 = 5bpp, 2 = unused?, 3 = 6bpp m_sprite_pen_mask = (m_sprite_extra_planes << 4) | 0x0f; /* Sprite bank select */ - if (cntrl&1) { - offs=offs|0x4000; - sprite_top=sprite_top|0x4000; + if (cntrl & 1) + { + offs = offs | 0x4000; + sprite_top = sprite_top | 0x4000; } } /* Set global sprite scroll */ - if (((spriteram16_ptr[current_offs+2+0]) & 0xf000) == 0xa000) { - global_x = (spriteram16_ptr[current_offs+2+0]) & 0xfff; + if (((spriteram16_ptr[current_offs + 2 + 0]) & 0xf000) == 0xa000) + { + global_x = (spriteram16_ptr[current_offs + 2 + 0]) & 0xfff; if (global_x >= 0x800) global_x -= 0x1000; - global_y = spriteram16_ptr[current_offs+2+1] & 0xfff; + global_y = spriteram16_ptr[current_offs + 2 + 1] & 0xfff; if (global_y >= 0x800) global_y -= 0x1000; } /* And sub-global sprite scroll */ - if (((spriteram16_ptr[current_offs+2+0]) & 0xf000) == 0x5000) { - subglobal_x = (spriteram16_ptr[current_offs+2+0]) & 0xfff; + if (((spriteram16_ptr[current_offs + 2 + 0]) & 0xf000) == 0x5000) + { + subglobal_x = (spriteram16_ptr[current_offs + 2 + 0]) & 0xfff; if (subglobal_x >= 0x800) subglobal_x -= 0x1000; - subglobal_y = spriteram16_ptr[current_offs+2+1] & 0xfff; + subglobal_y = spriteram16_ptr[current_offs + 2 + 1] & 0xfff; if (subglobal_y >= 0x800) subglobal_y -= 0x1000; } - if (((spriteram16_ptr[current_offs+2+0]) & 0xf000) == 0xb000) { - subglobal_x = (spriteram16_ptr[current_offs+2+0]) & 0xfff; + if (((spriteram16_ptr[current_offs + 2 + 0]) & 0xf000) == 0xb000) + { + subglobal_x = (spriteram16_ptr[current_offs + 2 + 0]) & 0xfff; if (subglobal_x >= 0x800) subglobal_x -= 0x1000; - subglobal_y = spriteram16_ptr[current_offs+2+1] & 0xfff; + subglobal_y = spriteram16_ptr[current_offs + 2 + 1] & 0xfff; if (subglobal_y >= 0x800) subglobal_y -= 0x1000; - global_y=subglobal_y; - global_x=subglobal_x; + global_y = subglobal_y; + global_x = subglobal_x; } /* A real sprite to process! */ - sprite = (spriteram16_ptr[current_offs+0+0]) | ((spriteram16_ptr[current_offs+4+1]&1)<<16); - spritecont = spriteram16_ptr[current_offs+4+0]>>8; + const int sprite = (spriteram16_ptr[current_offs + 0 + 0]) | ((spriteram16_ptr[current_offs + 4 + 1] & 1) << 16); + const int spritecont = spriteram16_ptr[current_offs + 4 + 0] >> 8; /* These games either don't set the XY control bits properly (68020 bug?), or have some different mode from the others */ #ifdef DARIUSG_KLUDGE - if (m_f3_game==DARIUSG || m_f3_game==GEKIRIDO || m_f3_game==CLEOPATR || m_f3_game==RECALH) - multi=spritecont&0xf0; + if (m_game == DARIUSG || m_game == GEKIRIDO || m_game == CLEOPATR || m_game == RECALH) + multi = spritecont & 0xf0; #endif /* Check if this sprite is part of a continued block */ - if (multi) { + if (multi) + { /* Bit 0x4 is 'use previous colour' for this block part */ - if (spritecont&0x4) color=last_color; - else color=(spriteram16_ptr[current_offs+4+0])&0xff; + if (spritecont & 0x4) color=last_color; + else color = (spriteram16_ptr[current_offs + 4 + 0]) & 0xff; #ifdef DARIUSG_KLUDGE - if (m_f3_game==DARIUSG || m_f3_game==GEKIRIDO || m_f3_game==CLEOPATR || m_f3_game==RECALH) { + if (m_game == DARIUSG || m_game == GEKIRIDO || m_game == CLEOPATR || m_game == RECALH) + { /* Adjust X Position */ - if ((spritecont & 0x40) == 0) { - if (spritecont & 0x4) { + if ((spritecont & 0x40) == 0) + { + if (spritecont & 0x4) x = block_x; - } else { - this_x = spriteram16_ptr[current_offs+2+0]; - if (this_x&0x800) this_x= 0 - (0x800 - (this_x&0x7ff)); else this_x&=0x7ff; + else + { + this_x = spriteram16_ptr[current_offs + 2 + 0]; + if (this_x & 0x800) this_x = 0 - (0x800 - (this_x & 0x7ff)); else this_x &= 0x7ff; - if ((spriteram16_ptr[current_offs+2+0])&0x8000) { - this_x+=0; - } else if ((spriteram16_ptr[current_offs+2+0])&0x4000) { - /* Ignore subglobal (but apply global) */ - this_x+=global_x; - } else { /* Apply both scroll offsets */ - this_x+=global_x+subglobal_x; - } + if ((spriteram16_ptr[current_offs + 2 + 0]) & 0x8000) + this_x += 0; + else if ((spriteram16_ptr[current_offs + 2 + 0]) & 0x4000) /* Ignore subglobal (but apply global) */ + this_x += global_x; + else /* Apply both scroll offsets */ + this_x += global_x + subglobal_x; x = block_x = this_x; } x_addition_left = 8; CALC_ZOOM(x) } - else if ((spritecont & 0x80) != 0) { - x = last_x+x_addition; + else if ((spritecont & 0x80) != 0) + { + x = last_x + x_addition; CALC_ZOOM(x) } /* Adjust Y Position */ - if ((spritecont & 0x10) == 0) { - if (spritecont & 0x4) { + if ((spritecont & 0x10) == 0) + { + if (spritecont & 0x4) y = block_y; - } else { - this_y = spriteram16_ptr[current_offs+2+1]&0xffff; - if (this_y&0x800) this_y= 0 - (0x800 - (this_y&0x7ff)); else this_y&=0x7ff; + else + { + this_y = spriteram16_ptr[current_offs + 2 + 1] & 0xffff; + if (this_y & 0x800) this_y = 0 - (0x800 - (this_y & 0x7ff)); else this_y &= 0x7ff; - if ((spriteram16_ptr[current_offs+2+0])&0x8000) { - this_y+=0; - } else if ((spriteram16_ptr[current_offs+2+0])&0x4000) { - /* Ignore subglobal (but apply global) */ - this_y+=global_y; - } else { /* Apply both scroll offsets */ - this_y+=global_y+subglobal_y; - } + if ((spriteram16_ptr[current_offs + 2 + 0]) & 0x8000) + this_y += 0; + else if ((spriteram16_ptr[current_offs + 2 + 0]) & 0x4000) /* Ignore subglobal (but apply global) */ + this_y += global_y; + else /* Apply both scroll offsets */ + this_y += global_y + subglobal_y; y = block_y = this_y; } y_addition_left = 8; CALC_ZOOM(y) } - else if ((spritecont & 0x20) != 0) { - y = last_y+y_addition; + else if ((spritecont & 0x20) != 0) + { + y = last_y + y_addition; CALC_ZOOM(y) } - } else + } + else #endif { /* Adjust X Position */ - if ((spritecont & 0x40) == 0) { + if ((spritecont & 0x40) == 0) + { x = block_x; x_addition_left = 8; CALC_ZOOM(x) } - else if ((spritecont & 0x80) != 0) { - x = last_x+x_addition; + else if ((spritecont & 0x80) != 0) + { + x = last_x + x_addition; CALC_ZOOM(x) } /* Adjust Y Position */ - if ((spritecont & 0x10) == 0) { + if ((spritecont & 0x10) == 0) + { y = block_y; y_addition_left = 8; CALC_ZOOM(y) } - else if ((spritecont & 0x20) != 0) { - y = last_y+y_addition; + else if ((spritecont & 0x20) != 0) + { + y = last_y + y_addition; CALC_ZOOM(y) } /* Both zero = reread block latch? */ } } /* Else this sprite is the possible start of a block */ - else { - color = (spriteram16_ptr[current_offs+4+0])&0xff; - last_color=color; + else + { + color = (spriteram16_ptr[current_offs + 4 + 0]) & 0xff; + last_color = color; /* Sprite positioning */ - this_y = spriteram16_ptr[current_offs+2+1]&0xffff; - this_x = spriteram16_ptr[current_offs+2+0]&0xffff; - if (this_y&0x800) this_y= 0 - (0x800 - (this_y&0x7ff)); else this_y&=0x7ff; - if (this_x&0x800) this_x= 0 - (0x800 - (this_x&0x7ff)); else this_x&=0x7ff; + this_y = spriteram16_ptr[current_offs + 2 + 1] & 0xffff; + this_x = spriteram16_ptr[current_offs + 2 + 0] & 0xffff; + if (this_y & 0x800) this_y = 0 - (0x800 - (this_y & 0x7ff)); else this_y &= 0x7ff; + if (this_x & 0x800) this_x = 0 - (0x800 - (this_x & 0x7ff)); else this_x &= 0x7ff; /* Ignore both scroll offsets for this block */ - if ((spriteram16_ptr[current_offs+2+0])&0x8000) { - this_x+=0; - this_y+=0; - } else if ((spriteram16_ptr[current_offs+2+0])&0x4000) { - /* Ignore subglobal (but apply global) */ - this_x+=global_x; - this_y+=global_y; - } else { /* Apply both scroll offsets */ - this_x+=global_x+subglobal_x; - this_y+=global_y+subglobal_y; + if ((spriteram16_ptr[current_offs + 2 + 0]) & 0x8000) + { + this_x += 0; + this_y += 0; + } + else if ((spriteram16_ptr[current_offs + 2 + 0]) & 0x4000) /* Ignore subglobal (but apply global) */ + { + this_x += global_x; + this_y += global_y; + } + else /* Apply both scroll offsets */ + { + this_x += global_x + subglobal_x; + this_y += global_y + subglobal_y; } block_y = y = this_y; block_x = x = this_x; - block_zoom_x=spriteram16_ptr[current_offs+0+1]; - block_zoom_y=(block_zoom_x>>8)&0xff; - block_zoom_x&=0xff; + block_zoom_x = spriteram16_ptr[current_offs + 0 + 1]; + block_zoom_y = (block_zoom_x >> 8) & 0xff; + block_zoom_x &= 0xff; x_addition_left = 8; CALC_ZOOM(x) @@ -3062,23 +2961,21 @@ void taito_f3_state::get_sprite_info(const uint16_t *spriteram16_ptr) } /* These features are common to sprite and block parts */ - flipx = spritecont&0x1; - flipy = spritecont&0x2; - multi = spritecont&0x8; + flipx = spritecont & 0x1; + flipy = spritecont & 0x2; + multi = spritecont & 0x8; last_x=x; - last_y=y; + last_y = y; if (!sprite) continue; if (!x_addition || !y_addition) continue; if (m_flipscreen) { - int tx,ty; + const int tx = 512 - x_addition - x; + const int ty = 256 - y_addition - y; - tx = 512-x_addition-x; - ty = 256-y_addition-y; - - if (tx+x_addition<=min_x || tx>max_x || ty+y_addition<=min_y || ty>max_y) continue; + if (tx + x_addition <= min_x || tx > max_x || ty + y_addition <= min_y || ty > max_y) continue; sprite_ptr->x = tx; sprite_ptr->y = ty; sprite_ptr->flipx = !flipx; @@ -3086,14 +2983,13 @@ void taito_f3_state::get_sprite_info(const uint16_t *spriteram16_ptr) } else { - if (x+x_addition<=min_x || x>max_x || y+y_addition<=min_y || y>max_y) continue; + if (x + x_addition <= min_x || x > max_x || y + y_addition <= min_y || y > max_y) continue; sprite_ptr->x = x; sprite_ptr->y = y; sprite_ptr->flipx = flipx; sprite_ptr->flipy = flipy; } - sprite_ptr->code = sprite; sprite_ptr->color = color; sprite_ptr->zoomx = x_addition; @@ -3113,99 +3009,98 @@ void taito_f3_state::draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprec gfx_element *sprite_gfx = m_gfxdecode->gfx(2); sprite_ptr = m_sprite_end; - m_sprite_pri_usage=0; + m_sprite_pri_usage = 0; // if sprites use more than 4bpp, the bottom bits of the color code must be masked out. // This fixes (at least) stage 1 battle ships and attract mode explosions in Ray Force. while (sprite_ptr != m_spritelist) { - int pri; sprite_ptr--; - pri=sprite_ptr->pri; - m_sprite_pri_usage|=1<pri; + m_sprite_pri_usage |= 1 << pri; - if(sprite_ptr->zoomx==16 && sprite_ptr->zoomy==16) + if (sprite_ptr->zoomx == 16 && sprite_ptr->zoomy == 16) f3_drawgfx( - bitmap,cliprect,sprite_gfx, + bitmap, cliprect, sprite_gfx, sprite_ptr->code, sprite_ptr->color & (~m_sprite_extra_planes), - sprite_ptr->flipx,sprite_ptr->flipy, - sprite_ptr->x,sprite_ptr->y, + sprite_ptr->flipx, sprite_ptr->flipy, + sprite_ptr->x, sprite_ptr->y, pri); else f3_drawgfxzoom( - bitmap,cliprect,sprite_gfx, + bitmap, cliprect, sprite_gfx, sprite_ptr->code, sprite_ptr->color & (~m_sprite_extra_planes), - sprite_ptr->flipx,sprite_ptr->flipy, - sprite_ptr->x,sprite_ptr->y, - sprite_ptr->zoomx,sprite_ptr->zoomy, + sprite_ptr->flipx, sprite_ptr->flipy, + sprite_ptr->x, sprite_ptr->y, + sprite_ptr->zoomx, sprite_ptr->zoomy, pri); } } /******************************************************************************/ -uint32_t taito_f3_state::screen_update_f3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +u32 taito_f3_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - uint32_t sy_fix[5],sx_fix[5]; + u32 sy_fix[5], sx_fix[5]; machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0); /* Setup scroll */ - sy_fix[0]=((m_f3_control_0[4]&0xffff)<< 9) + (1<<16); - sy_fix[1]=((m_f3_control_0[5]&0xffff)<< 9) + (1<<16); - sy_fix[2]=((m_f3_control_0[6]&0xffff)<< 9) + (1<<16); - sy_fix[3]=((m_f3_control_0[7]&0xffff)<< 9) + (1<<16); - sx_fix[0]=((m_f3_control_0[0]&0xffc0)<<10) - (6<<16); - sx_fix[1]=((m_f3_control_0[1]&0xffc0)<<10) - (10<<16); - sx_fix[2]=((m_f3_control_0[2]&0xffc0)<<10) - (14<<16); - sx_fix[3]=((m_f3_control_0[3]&0xffc0)<<10) - (18<<16); - sx_fix[4]=-(m_f3_control_1[4])+41; - sy_fix[4]=-(m_f3_control_1[5]&0x1ff); + sy_fix[0] = ((m_control_0[4] & 0xffff) << 9) + (1 << 16); + sy_fix[1] = ((m_control_0[5] & 0xffff) << 9) + (1 << 16); + sy_fix[2] = ((m_control_0[6] & 0xffff) << 9) + (1 << 16); + sy_fix[3] = ((m_control_0[7] & 0xffff) << 9) + (1 << 16); + sx_fix[0] = ((m_control_0[0] & 0xffc0) << 10) - (6 << 16); + sx_fix[1] = ((m_control_0[1] & 0xffc0) << 10) - (10 << 16); + sx_fix[2] = ((m_control_0[2] & 0xffc0) << 10) - (14 << 16); + sx_fix[3] = ((m_control_0[3] & 0xffc0) << 10) - (18 << 16); + sx_fix[4] = -(m_control_1[4]) + 41; + sy_fix[4] = -(m_control_1[5] & 0x1ff); - sx_fix[0]-=((m_f3_control_0[0]&0x003f)<<10)+0x0400-0x10000; - sx_fix[1]-=((m_f3_control_0[1]&0x003f)<<10)+0x0400-0x10000; - sx_fix[2]-=((m_f3_control_0[2]&0x003f)<<10)+0x0400-0x10000; - sx_fix[3]-=((m_f3_control_0[3]&0x003f)<<10)+0x0400-0x10000; + sx_fix[0]-=((m_control_0[0] & 0x003f) << 10) + 0x0400 - 0x10000; + sx_fix[1]-=((m_control_0[1] & 0x003f) << 10) + 0x0400 - 0x10000; + sx_fix[2]-=((m_control_0[2] & 0x003f) << 10) + 0x0400 - 0x10000; + sx_fix[3]-=((m_control_0[3] & 0x003f) << 10) + 0x0400 - 0x10000; if (m_flipscreen) { - sy_fix[0]= 0x3000000-sy_fix[0]; - sy_fix[1]= 0x3000000-sy_fix[1]; - sy_fix[2]= 0x3000000-sy_fix[2]; - sy_fix[3]= 0x3000000-sy_fix[3]; - sx_fix[0]=-0x1a00000-sx_fix[0]; - sx_fix[1]=-0x1a00000-sx_fix[1]; - sx_fix[2]=-0x1a00000-sx_fix[2]; - sx_fix[3]=-0x1a00000-sx_fix[3]; - sx_fix[4]=-sx_fix[4] + 75; - sy_fix[4]=-sy_fix[4]; + sy_fix[0] = 0x3000000 - sy_fix[0]; + sy_fix[1] = 0x3000000 - sy_fix[1]; + sy_fix[2] = 0x3000000 - sy_fix[2]; + sy_fix[3] = 0x3000000 - sy_fix[3]; + sx_fix[0] = -0x1a00000 - sx_fix[0]; + sx_fix[1] = -0x1a00000 - sx_fix[1]; + sx_fix[2] = -0x1a00000 - sx_fix[2]; + sx_fix[3] = -0x1a00000 - sx_fix[3]; + sx_fix[4] = -sx_fix[4] + 75; + sy_fix[4] = -sy_fix[4]; } m_pri_alp_bitmap.fill(0, cliprect); /* sprites */ - if (m_sprite_lag==0) - get_sprite_info(m_spriteram.get()); + if (m_sprite_lag == 0) + get_sprite_info(m_spriteram.target()); /* Update sprite buffer */ - draw_sprites(bitmap,cliprect); + draw_sprites(bitmap, cliprect); /* Parse sprite, alpha & clipping parts of lineram */ get_spritealphaclip_info(); /* Parse playfield effects */ - get_line_ram_info(m_pf1_tilemap,sx_fix[0],sy_fix[0],0,m_f3_pf_data_1); - get_line_ram_info(m_pf2_tilemap,sx_fix[1],sy_fix[1],1,m_f3_pf_data_2); - get_line_ram_info(m_pf3_tilemap,sx_fix[2],sy_fix[2],2,m_f3_pf_data_3); - get_line_ram_info(m_pf4_tilemap,sx_fix[3],sy_fix[3],3,m_f3_pf_data_4); - get_vram_info(m_vram_layer,m_pixel_layer,sx_fix[4],sy_fix[4]); + get_line_ram_info(m_tilemap[0], sx_fix[0], sy_fix[0], 0, m_pf_data[0]); + get_line_ram_info(m_tilemap[1], sx_fix[1], sy_fix[1], 1, m_pf_data[1]); + get_line_ram_info(m_tilemap[2], sx_fix[2], sy_fix[2], 2, m_pf_data[2]); + get_line_ram_info(m_tilemap[3], sx_fix[3], sy_fix[3], 3, m_pf_data[3]); + get_vram_info(m_vram_layer, m_pixel_layer, sx_fix[4], sy_fix[4]); /* Draw final framebuffer */ - scanline_draw(bitmap,cliprect); + scanline_draw(bitmap, cliprect); if (VERBOSE) print_debug_info(bitmap); diff --git a/src/mame/video/taito_z.cpp b/src/mame/video/taito_z.cpp index be394d25860..bc68aa27369 100644 --- a/src/mame/video/taito_z.cpp +++ b/src/mame/video/taito_z.cpp @@ -222,7 +222,8 @@ void taitoz_state::contcirc_draw_sprites_16x8(screen_device &screen, bitmap_ind1 color, flipx,flipy, curx,cury, - zx<<12,zy<<13,screen.priority(),primasks[priority],0); + zx << 12,zy << 13, + screen.priority(),primasks[priority],0); } if (bad_chunks) @@ -312,7 +313,7 @@ void taitoz_state::chasehq_draw_sprites_16x16(screen_device &screen, bitmap_ind1 color, flipx,flipy, curx,cury, - zx<<12,zy<<12, + zx << 12,zy << 12, screen.priority(),primasks[priority],0); } } @@ -355,7 +356,7 @@ void taitoz_state::chasehq_draw_sprites_16x16(screen_device &screen, bitmap_ind1 color, flipx,flipy, curx,cury, - zx<<12,zy<<12, + zx << 12,zy << 12, screen.priority(),primasks[priority],0); } } @@ -398,7 +399,7 @@ void taitoz_state::chasehq_draw_sprites_16x16(screen_device &screen, bitmap_ind1 color, flipx,flipy, curx,cury, - zx<<12,zy<<12, + zx << 12,zy << 12, screen.priority(),primasks[priority],0); } } @@ -487,7 +488,7 @@ void taitoz_state::bshark_draw_sprites_16x8(screen_device &screen, bitmap_ind16 color, flipx,flipy, curx,cury, - zx<<12,zy<<13, + zx << 12,zy << 13, screen.priority(),primasks[priority],0); } @@ -584,7 +585,7 @@ void taitoz_state::sci_draw_sprites_16x8(screen_device &screen, bitmap_ind16 &bi color, flipx,flipy, curx,cury, - zx<<12,zy<<13, + zx << 12,zy << 13, screen.priority(),primasks[priority],0); } @@ -671,7 +672,7 @@ void taitoz_state::aquajack_draw_sprites_16x8(screen_device &screen, bitmap_ind1 color, flipx,flipy, curx,cury, - zx<<12,zy<<13, + zx << 12,zy << 13, screen.priority(),primasks[priority],0); } @@ -758,7 +759,7 @@ void taitoz_state::spacegun_draw_sprites_16x8(screen_device &screen, bitmap_ind1 color, flipx,flipy, curx,cury, - zx<<12,zy<<13, + zx << 12,zy << 13, screen.priority(),primasks[priority],0); } diff --git a/src/mame/video/tc0100scn.h b/src/mame/video/tc0100scn.h index 51e2846ab33..3a8c2f521e1 100644 --- a/src/mame/video/tc0100scn.h +++ b/src/mame/video/tc0100scn.h @@ -36,6 +36,11 @@ public: m_flip_text_xoffs = x_offset; m_flip_text_yoffs = y_offset; } + void update_granularity() + { + if (gfx(0)) gfx(0)->set_granularity(m_gfxdecode->gfx(m_gfxnum)->granularity()); + if (gfx(1)) gfx(1)->set_granularity(m_gfxdecode->gfx(m_gfxnum)->granularity()); + } static constexpr unsigned SINGLE_VDU = 1024; // for set_multiscr_xoffs diff --git a/src/mame/video/tc0280grd.cpp b/src/mame/video/tc0280grd.cpp index e8a28fa35fc..90c154a389b 100644 --- a/src/mame/video/tc0280grd.cpp +++ b/src/mame/video/tc0280grd.cpp @@ -31,23 +31,35 @@ DEFINE_DEVICE_TYPE(TC0280GRD, tc0280grd_device, "tc0280grd", "Taito TC0280GRD / tc0280grd_device::tc0280grd_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : device_t(mconfig, TC0280GRD, tag, owner, clock) + , device_gfx_interface(mconfig, *this) , m_ram(nullptr) , m_base_color(0) - , m_gfxdecode(*this, finder_base::DUMMY_TAG) + , m_colorbase(0) { std::fill(std::begin(m_ctrl), std::end(m_ctrl), 0); } +/************************************* + * + * Graphics definitions + * + *************************************/ + +GFXDECODE_MEMBER(tc0280grd_device::gfxinfo) + GFXDECODE_DEVICE(DEVICE_SELF, 0, gfx_8x8x4_packed_msb, 0, 256) +GFXDECODE_END + //------------------------------------------------- // device_start - device-specific startup //------------------------------------------------- void tc0280grd_device::device_start() { - if(!m_gfxdecode->started()) - throw device_missing_dependencies(); + // decode our graphics + decode_gfx(gfxinfo); + gfx(0)->set_colorbase(m_colorbase); - m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tc0280grd_device::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + m_tilemap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0280grd_device::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); m_tilemap->set_transparent_pen(0); m_ram = make_unique_clear(TC0280GRD_RAM_SIZE / 2); @@ -62,8 +74,7 @@ void tc0280grd_device::device_start() void tc0280grd_device::device_reset() { - for (int i = 0; i < 8; i++) - m_ctrl[i] = 0; + std::fill(std::begin(m_ctrl), std::end(m_ctrl), 0); } /***************************************************************************** @@ -73,7 +84,7 @@ void tc0280grd_device::device_reset() TILE_GET_INFO_MEMBER(tc0280grd_device::get_tile_info) { int attr = m_ram[tile_index]; - SET_TILE_INFO_MEMBER(m_gfxnum, + SET_TILE_INFO_MEMBER(0, attr & 0x3fff, ((attr & 0xc000) >> 14) + m_base_color, 0); @@ -124,7 +135,7 @@ void tc0280grd_device::tc0430grw_tilemap_update(int base_color) tc0280grd_tilemap_update(base_color); } -void tc0280grd_device::zoom_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, u32 priority, int xmultiply) +void tc0280grd_device::zoom_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, u8 priority, int xmultiply, u8 priority_mask) { /* 24-bit signed */ u32 startx = ((m_ctrl[0] & 0xff) << 16) + m_ctrl[1]; @@ -152,15 +163,15 @@ void tc0280grd_device::zoom_draw(screen_device &screen, bitmap_ind16 &bitmap, co m_tilemap->draw_roz(screen, bitmap, cliprect, startx << 4, starty << 4, incxx << 4, incxy << 4, incyx << 4, incyy << 4, 1, /* copy with wraparound */ - 0, priority); + 0, priority, priority_mask); } -void tc0280grd_device::tc0280grd_zoom_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, u32 priority) +void tc0280grd_device::tc0280grd_zoom_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, u8 priority, u8 priority_mask) { - zoom_draw(screen, bitmap, cliprect, xoffset, yoffset, priority, 2); + zoom_draw(screen, bitmap, cliprect, xoffset, yoffset, priority, 2, priority_mask); } -void tc0280grd_device::tc0430grw_zoom_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, u32 priority) +void tc0280grd_device::tc0430grw_zoom_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, u8 priority, u8 priority_mask) { - zoom_draw(screen, bitmap, cliprect, xoffset, yoffset, priority, 1); + zoom_draw(screen, bitmap, cliprect, xoffset, yoffset, priority, 1, priority_mask); } diff --git a/src/mame/video/tc0280grd.h b/src/mame/video/tc0280grd.h index 688451bf066..62be80e1ff2 100644 --- a/src/mame/video/tc0280grd.h +++ b/src/mame/video/tc0280grd.h @@ -5,26 +5,25 @@ #pragma once -class tc0280grd_device : public device_t +class tc0280grd_device : public device_t, public device_gfx_interface { public: tc0280grd_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); // configuration - template void set_gfxdecode_tag(T &&tag) { m_gfxdecode.set_tag(std::forward(tag)); } - void set_gfx_region(int gfxregion) { m_gfxnum = gfxregion; } + void set_color_base(u16 base) { m_colorbase = base; } u16 tc0280grd_word_r(offs_t offset); void tc0280grd_word_w(offs_t offset, u16 data, u16 mem_mask = ~0); void tc0280grd_ctrl_word_w(offs_t offset, u16 data, u16 mem_mask = ~0); void tc0280grd_tilemap_update(int base_color); - void tc0280grd_zoom_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, u32 priority); + void tc0280grd_zoom_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, u8 priority, u8 priority_mask = 0xff); u16 tc0430grw_word_r(offs_t offset); void tc0430grw_word_w(offs_t offset, u16 data, u16 mem_mask = ~0); void tc0430grw_ctrl_word_w(offs_t offset, u16 data, u16 mem_mask = ~0); void tc0430grw_tilemap_update(int base_color); - void tc0430grw_zoom_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, u32 priority); + void tc0430grw_zoom_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, u8 priority, u8 priority_mask = 0xff); protected: // device-level overrides @@ -39,11 +38,13 @@ private: u16 m_ctrl[8]; int m_base_color; - int m_gfxnum; - required_device m_gfxdecode; + + // decoding info + DECLARE_GFXDECODE_MEMBER(gfxinfo); + u16 m_colorbase; TILE_GET_INFO_MEMBER(get_tile_info); - void zoom_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, u32 priority, int xmultiply); + void zoom_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, u8 priority, int xmultiply, u8 priority_mask = 0xff); }; DECLARE_DEVICE_TYPE(TC0280GRD, tc0280grd_device) diff --git a/src/mame/video/warriorb.cpp b/src/mame/video/warriorb.cpp index ec51b5e18a9..c3f89c580bc 100644 --- a/src/mame/video/warriorb.cpp +++ b/src/mame/video/warriorb.cpp @@ -10,38 +10,36 @@ void warriorb_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int x_offs, int y_offs, int chip) { - int offs, data, data2, tilenum, color, flipx, flipy; - int x, y, priority, pri_mask; + u32 pri_mask; #ifdef MAME_DEBUG int unknown = 0; #endif /* pdrawgfx() needs us to draw sprites front to back */ - for (offs = 0; offs < m_spriteram.bytes() / 2; offs += 4) + for (int offs = 0; offs < m_spriteram.bytes() / 2; offs += 4) { - data = m_spriteram[offs + 1]; - tilenum = data & 0x7fff; + int data = m_spriteram[offs + 1]; + const u32 tilenum = data & 0x7fff; data = m_spriteram[offs + 0]; - y = (-(data & 0x1ff) - 24) & 0x1ff; /* (inverted y adjusted for vis area) */ - flipy = (data & 0x200) >> 9; + int y = (-(data & 0x1ff) - 24) & 0x1ff; /* (inverted y adjusted for vis area) */ + const bool flipy = (data & 0x200) >> 9; - data2 = m_spriteram[offs + 2]; + const u16 data2 = m_spriteram[offs + 2]; /* 8,4 also seen in msbyte */ - priority = (data2 & 0x0100) >> 8; // 1 = low + const int priority = (data2 & 0x0100) >> 8; // 1 = low if(priority) pri_mask = 0xfffe; else pri_mask = 0; - color = (data2 & 0x7f); + const u32 color = (data2 & 0x7f); data = m_spriteram[offs + 3]; - x = (data & 0x3ff); - flipx = (data & 0x400) >> 10; - + int x = (data & 0x3ff); + const bool flipx = (data & 0x400) >> 10; #ifdef MAME_DEBUG if (data2 & 0xf280) unknown |= (data2 &0xf280); @@ -73,10 +71,10 @@ void warriorb_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, c SCREEN REFRESH **************************************************************/ -uint32_t warriorb_state::update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffs, int chip) +u32 warriorb_state::update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffs, int chip) { tc0100scn_device *tc0100scn = m_tc0100scn[chip]; - uint8_t layer[3], nodraw; + u8 layer[3]; tc0100scn->tilemap_update(); @@ -89,7 +87,7 @@ uint32_t warriorb_state::update_screen(screen_device &screen, bitmap_ind16 &bitm /* chip 0 does tilemaps on the left, chip 1 does the ones on the right */ // draw bottom layer - nodraw = tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0); /* left */ + const u8 nodraw = tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0); /* left */ /* Ensure screen blanked even when bottom layers not drawn due to disable bit */ if (nodraw) @@ -106,5 +104,5 @@ uint32_t warriorb_state::update_screen(screen_device &screen, bitmap_ind16 &bitm return 0; } -uint32_t warriorb_state::screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 40 * 8, 0); } -uint32_t warriorb_state::screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 40 * 8, 1); } +u32 warriorb_state::screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 40 * 8, 0); } +u32 warriorb_state::screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 40 * 8, 1); } diff --git a/src/mame/video/xbox_nv2a.cpp b/src/mame/video/xbox_nv2a.cpp index 0623e4e3759..31f9411c743 100644 --- a/src/mame/video/xbox_nv2a.cpp +++ b/src/mame/video/xbox_nv2a.cpp @@ -4852,10 +4852,14 @@ void nv2a_renderer::savestate_items() { } +void nv2a_renderer::set_ram_base(void *base) +{ + basemempointer = (uint8_t*)base; + topmempointer = basemempointer + 512 * 1024 * 1024 - 1; +} + void nv2a_renderer::start(address_space *cpu_space) { - basemempointer = (uint8_t *)cpu_space->get_read_ptr(0); - topmempointer = basemempointer + 512 * 1024 * 1024 - 1; puller_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(nv2a_renderer::puller_timer_work), this), (void *)"NV2A Puller Timer"); puller_timer->enable(false); }