diff options
25 files changed, 401 insertions, 130 deletions
diff --git a/src/devices/bus/s100/polyfdc.cpp b/src/devices/bus/s100/polyfdc.cpp index 8f6d885302b..962424324e0 100644 --- a/src/devices/bus/s100/polyfdc.cpp +++ b/src/devices/bus/s100/polyfdc.cpp @@ -121,4 +121,5 @@ void poly_fdc_device::device_add_mconfig(machine_config &config) m_pio->out_pa_callback().set(FUNC(poly_fdc_device::pa_w)); m_pio->in_pb_callback().set(FUNC(poly_fdc_device::pb_r)); m_pio->out_pc_callback().set(FUNC(poly_fdc_device::pc_w)); + m_pio->tri_pc_callback().set_constant(0xfe); } diff --git a/src/devices/cpu/i386/cpuidmsrs.hxx b/src/devices/cpu/i386/cpuidmsrs.hxx index dcbc8faff37..63c233f6776 100644 --- a/src/devices/cpu/i386/cpuidmsrs.hxx +++ b/src/devices/cpu/i386/cpuidmsrs.hxx @@ -158,23 +158,13 @@ void pentium_pro_device::opcode_wrmsr(uint64_t data, bool &valid_msr) uint64_t pentium4_device::opcode_rdmsr(bool &valid_msr) { - switch (REG32(ECX)) - { - default: - logerror("RDMSR: unimplemented register called %08x at %08x\n", REG32(ECX), m_pc - 2); - valid_msr = true; - return 0; - } - return -1; + logerror("RDMSR: unimplemented register called %08x at %08x\n", REG32(ECX), m_pc - 2); + valid_msr = true; + return 0; } void pentium4_device::opcode_wrmsr(uint64_t data, bool &valid_msr) { - switch (REG32(ECX)) - { - default: - logerror("WRMSR: unimplemented register called %08x (%08x%08x) at %08x\n", REG32(ECX), (uint32_t)(data >> 32), (uint32_t)data, m_pc - 2); - valid_msr = true; - break; - } + logerror("WRMSR: unimplemented register called %08x (%08x%08x) at %08x\n", REG32(ECX), (uint32_t)(data >> 32), (uint32_t)data, m_pc - 2); + valid_msr = true; } diff --git a/src/devices/machine/i8255.cpp b/src/devices/machine/i8255.cpp index ffb8f503ce9..212eeda644f 100644 --- a/src/devices/machine/i8255.cpp +++ b/src/devices/machine/i8255.cpp @@ -249,9 +249,9 @@ void i8255_device::device_resolve_objects() m_out_pa_cb.resolve_safe(); m_out_pb_cb.resolve_safe(); m_out_pc_cb.resolve_safe(); - m_tri_pa_cb.resolve_safe(0); - m_tri_pb_cb.resolve_safe(0); - m_tri_pc_cb.resolve_safe(0); + m_tri_pa_cb.resolve_safe(0xff); + m_tri_pb_cb.resolve_safe(0xff); + m_tri_pc_cb.resolve_safe(0xff); } //------------------------------------------------- diff --git a/src/emu/emuopts.cpp b/src/emu/emuopts.cpp index 1c664875e8d..aac1704347a 100644 --- a/src/emu/emuopts.cpp +++ b/src/emu/emuopts.cpp @@ -1056,7 +1056,7 @@ void emu_options::command_argument_processed() { // some command line arguments require that the system name be set, so we can get slot options if (command_arguments().size() == 1 && !core_iswildstr(command_arguments()[0].c_str()) && - (command() == "listdevices" || (command() == "listslots") || (command() == "listmedia"))) + (command() == "listdevices" || (command() == "listslots") || (command() == "listmedia") || (command() == "listsoftware"))) { set_system_name(command_arguments()[0]); } diff --git a/src/frontend/mame/clifront.cpp b/src/frontend/mame/clifront.cpp index de31ae0d94c..3316240ea9b 100644 --- a/src/frontend/mame/clifront.cpp +++ b/src/frontend/mame/clifront.cpp @@ -66,7 +66,7 @@ #define CLICOMMAND_ROMIDENT "romident" #define CLICOMMAND_LISTDEVICES "listdevices" #define CLICOMMAND_LISTSLOTS "listslots" -#define CLICOMMAND_LISTMEDIA "listmedia" // needed by MESS +#define CLICOMMAND_LISTMEDIA "listmedia" #define CLICOMMAND_LISTSOFTWARE "listsoftware" #define CLICOMMAND_VERIFYSOFTWARE "verifysoftware" #define CLICOMMAND_GETSOFTLIST "getsoftlist" @@ -1203,8 +1203,6 @@ void cli_frontend::output_single_softlist(FILE *out, software_list_device &swlis software supported by a given game or set of games TODO: Add all information read from the source files - Possible improvement: use a sorted list for - identifying duplicate lists. -------------------------------------------------*/ void cli_frontend::listsoftware(const std::vector<std::string> &args) diff --git a/src/frontend/mame/infoxml.cpp b/src/frontend/mame/infoxml.cpp index b8273fa7125..ea85bf3b172 100644 --- a/src/frontend/mame/infoxml.cpp +++ b/src/frontend/mame/infoxml.cpp @@ -74,7 +74,7 @@ namespace void output_features(std::ostream &out, device_type type, device_t::feature_type unemulated, device_t::feature_type imperfect); void output_images(std::ostream &out, device_t &device, const char *root_tag); void output_slots(std::ostream &out, machine_config &config, device_t &device, const char *root_tag, device_type_set *devtypes); - void output_software_list(std::ostream &out, device_t &root); + void output_software_lists(std::ostream &out, device_t &root, const char *root_tag); void output_ramoptions(std::ostream &out, device_t &root); void output_one_device(std::ostream &out, machine_config &config, device_t &device, const char *devtag); @@ -245,6 +245,7 @@ static const char s_dtd_string[] = "\t\t\t\t<!ATTLIST slotoption default (yes|no) \"no\">\n" "\t\t<!ELEMENT softwarelist EMPTY>\n" "\t\t\t<!ATTLIST softwarelist name CDATA #REQUIRED>\n" +"\t\t\t<!ATTLIST softwarelist tag CDATA #REQUIRED>\n" "\t\t\t<!ATTLIST softwarelist status (original|compatible) #REQUIRED>\n" "\t\t\t<!ATTLIST softwarelist filter CDATA #IMPLIED>\n" "\t\t<!ELEMENT ramoption (#PCDATA)>\n" @@ -624,7 +625,7 @@ void output_one(std::ostream &out, driver_enumerator &drivlist, const game_drive output_features(out, driver.type, overall_unemulated, overall_imperfect); output_images(out, config.root_device(), ""); output_slots(out, config, config.root_device(), "", devtypes); - output_software_list(out, config.root_device()); + output_software_lists(out, config.root_device(), ""); output_ramoptions(out, config.root_device()); // close the topmost tag @@ -693,6 +694,7 @@ void output_one_device(std::ostream &out, machine_config &config, device_t &devi output_features(out, device.type(), overall_unemulated, overall_imperfect); output_images(out, device, devtag); output_slots(out, config, device, devtag, nullptr); + output_software_lists(out, device, devtag); out << util::string_format("\t</%s>\n", XML_TOP); } @@ -1937,15 +1939,24 @@ void output_slots(std::ostream &out, machine_config &config, device_t &device, c //------------------------------------------------- -// output_software_list - print the information +// output_software_lists - print the information // for all known software lists for this system //------------------------------------------------- -void output_software_list(std::ostream &out, device_t &root) +void output_software_lists(std::ostream &out, device_t &root, const char *root_tag) { for (const software_list_device &swlist : software_list_device_iterator(root)) { - out << util::string_format("\t\t<softwarelist name=\"%s\" status=\"%s\"", normalize_string(swlist.list_name().c_str()), swlist.is_original() ? "original" : "compatible"); + if (&static_cast<const device_t &>(swlist) == &root) + { + assert(swlist.list_name().empty()); + continue; + } + + std::string newtag(swlist.tag()), oldtag(":"); + newtag = newtag.substr(newtag.find(oldtag.append(root_tag)) + oldtag.length()); + + out << util::string_format("\t\t<softwarelist tag=\"%s\" name=\"%s\" status=\"%s\"", normalize_string(newtag.c_str()), normalize_string(swlist.list_name().c_str()), swlist.is_original() ? "original" : "compatible"); if (swlist.filter()) out << util::string_format(" filter=\"%s\"", normalize_string(swlist.filter())); out << "/>\n"; diff --git a/src/frontend/mame/media_ident.cpp b/src/frontend/mame/media_ident.cpp index dc88fae4365..9881e992a51 100644 --- a/src/frontend/mame/media_ident.cpp +++ b/src/frontend/mame/media_ident.cpp @@ -332,73 +332,61 @@ void media_identifier::digest_data(std::vector<file_info> &info, char const *nam void media_identifier::match_hashes(std::vector<file_info> &info) { - std::unordered_set<std::string> listnames; - - // iterate over drivers - m_drivlist.reset(); - while (m_drivlist.next()) - { - // iterate over regions and files within the region - device_t &device = m_drivlist.config()->root_device(); - for (romload::region const ®ion : romload::entries(device.rom_region()).get_regions()) - { - for (romload::file const &rom : region.get_files()) + auto match_device = + [&info, listnames = std::unordered_set<std::string>()] (device_t &device) mutable { - util::hash_collection const romhashes(rom.get_hashdata()); - if (!romhashes.flag(util::hash_collection::FLAG_NO_DUMP)) + // iterate over regions and files within the region + for (romload::region const ®ion : romload::entries(device.rom_region()).get_regions()) { - for (file_info &file : info) - file.match(device, rom, romhashes); + for (romload::file const &rom : region.get_files()) + { + util::hash_collection const romhashes(rom.get_hashdata()); + if (!romhashes.flag(util::hash_collection::FLAG_NO_DUMP)) + { + for (file_info &file : info) + file.match(device, rom, romhashes); + } + } } - } - } - // next iterate over softlists - for (software_list_device &swlistdev : software_list_device_iterator(device)) - { - if (listnames.insert(swlistdev.list_name()).second) - { - for (software_info const &swinfo : swlistdev.get_info()) + // next iterate over softlists + for (software_list_device &swlistdev : software_list_device_iterator(device)) { - for (software_part const &part : swinfo.parts()) + if (!listnames.insert(swlistdev.list_name()).second) + continue; + + for (software_info const &swinfo : swlistdev.get_info()) { - for (rom_entry const *region = part.romdata().data(); region; region = rom_next_region(region)) + for (software_part const &part : swinfo.parts()) { - for (rom_entry const *rom = rom_first_file(region); rom; rom = rom_next_file(rom)) + for (rom_entry const *region = part.romdata().data(); region; region = rom_next_region(region)) { - util::hash_collection romhashes(ROM_GETHASHDATA(rom)); - if (!romhashes.flag(util::hash_collection::FLAG_NO_DUMP)) + for (rom_entry const *rom = rom_first_file(region); rom; rom = rom_next_file(rom)) { - for (file_info &file : info) - file.match(swlistdev.list_name(), swinfo, *rom, romhashes); + util::hash_collection romhashes(ROM_GETHASHDATA(rom)); + if (!romhashes.flag(util::hash_collection::FLAG_NO_DUMP)) + { + for (file_info &file : info) + file.match(swlistdev.list_name(), swinfo, *rom, romhashes); + } } } } } } - } - } - } + }; + + // iterate over drivers + m_drivlist.reset(); + while (m_drivlist.next()) + match_device(m_drivlist.config()->root_device()); - // iterator over devices + // iterator over registered device types machine_config config(GAME_NAME(___empty), m_drivlist.options()); machine_config::token const tok(config.begin_configuration(config.root_device())); for (device_type type : registered_device_types) { - // iterate over regions and files within the region - device_t *const device = config.device_add("_tmp", type, 0); - for (romload::region const ®ion : romload::entries(device->rom_region()).get_regions()) - { - for (romload::file const &rom : region.get_files()) - { - util::hash_collection const romhashes(rom.get_hashdata()); - if (!romhashes.flag(util::hash_collection::FLAG_NO_DUMP)) - { - for (file_info &file : info) - file.match(*device, rom, romhashes); - } - } - } + match_device(*config.device_add("_tmp", type, 0)); config.device_remove("_tmp"); } } diff --git a/src/mame/drivers/cabaret.cpp b/src/mame/drivers/cabaret.cpp index 7ec5eacd779..126c9a7856c 100644 --- a/src/mame/drivers/cabaret.cpp +++ b/src/mame/drivers/cabaret.cpp @@ -386,6 +386,7 @@ void cabaret_state::cabaret(machine_config &config) i8255_device &ppi3(I8255(config, "ppi3")); ppi3.out_pa_callback().set(FUNC(cabaret_state::nmi_and_coins_w)); + ppi3.tri_pa_callback().set_constant(0xf0); ppi3.in_pb_callback().set_ioport("DSW1"); ppi3.in_pc_callback().set_ioport("DSW2"); diff --git a/src/mame/drivers/cgang.cpp b/src/mame/drivers/cgang.cpp index a1f3dc96bec..2a5ac175cd7 100644 --- a/src/mame/drivers/cgang.cpp +++ b/src/mame/drivers/cgang.cpp @@ -8,11 +8,14 @@ Data East, they titled it "Cosmo Gang". It is an electromechanical arcade lightgun game. There is no screen, feedback is with motorized elements, lamps and 7segs, and of course sounds and music. +To shoot the targets in MAME, either enable -mouse and click on one of the +cosmogang lanes(left mouse button doubles as gun trigger by default). +Or, configure the gun aim inputs and share them with the trigger. For example +use Z,X,C,V,B for the gun aims, and "Z or X or C or V or B" for the trigger. + TODO: -- internal artwork -- game can't really be played within MAME's constraints (mechanical stuff, +- game can't be played properly within MAME's constraints (mechanical stuff, and the lightguns linked to it) -- ppi2_b_r cabinet center sensors, doesn't seem to affect the game at all ------------------------------------------------------------------------------- @@ -63,6 +66,9 @@ Overall, the hardware has similarities with Wacky Gator, see wacky_gator.cpp. #include "speaker.h" +// internal artwork +#include "cgang.lh" // clickable + namespace { @@ -70,8 +76,9 @@ namespace { static constexpr int DOOR_MOTOR_LIMIT = 2000; // length of each cosmogang lane, in motor steps -// at game start, one cosmo going forward takes around 6-7 seconds (compared to video recording) -static constexpr int CG_MOTOR_LIMIT = 850; +// At game start, one cosmo going forward takes around 7 seconds, and if the player does nothing +// at the 1st round, game is lost with around 10 seconds remaining (compared to video recording). +static constexpr int CG_MOTOR_LIMIT = 1000; class cgang_state : public driver_device @@ -181,7 +188,7 @@ private: int m_cg_motor_clk[5]; int m_cg_motor_pos[5]; - int m_en_motor_pos[5]; + int m_en_pos[5]; emu_timer *m_sol_filter[5]; TIMER_CALLBACK_MEMBER(output_sol) { m_en_sol[param >> 1] = param & 1; } @@ -214,7 +221,7 @@ void cgang_state::machine_start() save_item(NAME(m_cg_motor_dir)); save_item(NAME(m_cg_motor_clk)); save_item(NAME(m_cg_motor_pos)); - save_item(NAME(m_en_motor_pos)); + save_item(NAME(m_en_pos)); } void cgang_state::machine_reset() @@ -227,7 +234,7 @@ void cgang_state::machine_reset() { m_cg_motor_clk[i] = 0; m_cg_motor_pos[i] = 0; - m_en_motor_pos[i] = CG_MOTOR_LIMIT; + m_en_pos[i] = CG_MOTOR_LIMIT; m_en_sol[i] = 0; } @@ -287,33 +294,33 @@ WRITE_LINE_MEMBER(cgang_state::motor_clock_w) void cgang_state::cg_motor_tick(int i) { // note: the cosmogangs are stuck on the drive belts(5), - // and the energy crates can lock(or loosen) themselves from the belt + // and the energy crates can lock themselves into position if (BIT(m_cg_motor_dir, i)) { if (m_cg_motor_pos[i] > 0) { - m_cg_motor_pos[i]--; + // pull energy crate + if (m_en_sol[i] && m_cg_motor_pos[i] == m_en_pos[i]) + m_en_pos[i]--; - // 'pull' energy crate - if (m_en_sol[i]) - m_en_motor_pos[i]--; + m_cg_motor_pos[i]--; } } else { - // 'push' energy crate - if (m_en_sol[i]) + if (m_cg_motor_pos[i] < CG_MOTOR_LIMIT) { - if (m_en_motor_pos[i] < CG_MOTOR_LIMIT) + if (m_cg_motor_pos[i] < m_en_pos[i]) + m_cg_motor_pos[i]++; + + // push energy crate + else if (m_en_sol[i]) { - m_en_motor_pos[i]++; m_cg_motor_pos[i]++; + m_en_pos[i]++; } } - - else if (m_cg_motor_pos[i] < m_en_motor_pos[i]) - m_cg_motor_pos[i]++; } refresh_motor_output(); @@ -335,7 +342,7 @@ void cgang_state::refresh_motor_output() for (int i = 0; i < 5; i++) { m_cg_count[i] = int((m_cg_motor_pos[i] / float(CG_MOTOR_LIMIT)) * 100.0 + 0.5); - m_en_count[i] = int((m_en_motor_pos[i] / float(CG_MOTOR_LIMIT)) * 100.0 + 0.5); + m_en_count[i] = int((m_en_pos[i] / float(CG_MOTOR_LIMIT)) * 100.0 + 0.5); } m_door_count = int((m_door_motor_pos / float(DOOR_MOTOR_LIMIT)) * 100.0 + 0.5); @@ -350,7 +357,7 @@ READ8_MEMBER(cgang_state::ppi1_b_r) // PB0-PB4: cabinet front limit (CR1INI-CR5INI) for (int i = 0; i < 5; i++) - if (m_en_motor_pos[i] == CG_MOTOR_LIMIT) + if (m_en_pos[i] == CG_MOTOR_LIMIT) data ^= 1 << i; // PB5-PB7: cabinet back limit (HST1-HST3) @@ -372,7 +379,7 @@ READ8_MEMBER(cgang_state::ppi1_c_r) // PC2-PC6: cosmogang-energy crate collision (CR1-CR5) for (int i = 0; i < 5; i++) - if (m_cg_motor_pos[i] == m_en_motor_pos[i]) + if (m_cg_motor_pos[i] == m_en_pos[i]) data ^= 1 << (i + 2); // PC7: audiocpu mailbox status @@ -414,7 +421,9 @@ READ8_MEMBER(cgang_state::ppi2_b_r) u8 data = 0x1f; // PB0-PB4: cabinet center (G1POG-G5POG) - // how this is sensed? + for (int i = 0; i < 5; i++) + if (m_cg_motor_pos[i] < (CG_MOTOR_LIMIT / 8)) + data ^= 1 << i; return data; } @@ -765,6 +774,7 @@ void cgang_state::cgang(machine_config &config) m_ppi[1]->in_pb_callback().set(FUNC(cgang_state::ppi2_b_r)); m_ppi[1]->in_pc_callback().set_ioport("SW4").lshift(4); m_ppi[1]->out_pc_callback().set(FUNC(cgang_state::ppi2_c_w)); + m_ppi[1]->tri_pc_callback().set_constant(0); I8255(config, m_ppi[2]); // 0x80: all = output m_ppi[2]->out_pa_callback().set(FUNC(cgang_state::ppi3_a_w)); @@ -792,7 +802,7 @@ void cgang_state::cgang(machine_config &config) PWM_DISPLAY(config, m_digits).set_size(10, 7); m_digits->set_segmask(0x3ff, 0x7f); - //config.set_default_layout(layout_cgang); + config.set_default_layout(layout_cgang); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -835,4 +845,4 @@ ROM_END ******************************************************************************/ /* YEAR NAME PARENT MACHINE INPUT CLASS INIT MONITOR COMPANY, FULLNAME, FLAGS */ -GAME( 1990, cgang, 0, cgang, cgang, cgang_state, empty_init, ROT0, "Namco (Data East license)", "Cosmo Gang (US)", MACHINE_SUPPORTS_SAVE | MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1990, cgang, 0, cgang, cgang, cgang_state, empty_init, ROT0, "Namco (Data East license)", "Cosmo Gang (US)", MACHINE_SUPPORTS_SAVE | MACHINE_MECHANICAL | MACHINE_CLICKABLE_ARTWORK | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/fidel_cc1.cpp b/src/mame/drivers/fidel_cc1.cpp index 66eec8aeab2..3d9cfec2334 100644 --- a/src/mame/drivers/fidel_cc1.cpp +++ b/src/mame/drivers/fidel_cc1.cpp @@ -229,7 +229,9 @@ void cc1_state::cc1(machine_config &config) I8255(config, m_ppi8255); m_ppi8255->in_pa_callback().set(FUNC(cc1_state::ppi_porta_r)); m_ppi8255->out_pb_callback().set(FUNC(cc1_state::ppi_portb_w)); + m_ppi8255->tri_pb_callback().set_constant(0); m_ppi8255->out_pc_callback().set(FUNC(cc1_state::ppi_portc_w)); + m_ppi8255->tri_pc_callback().set_constant(0); TIMER(config, "delay").configure_generic(nullptr); diff --git a/src/mame/drivers/fidel_cc10.cpp b/src/mame/drivers/fidel_cc10.cpp index 0e2fc2ec4c2..a7bb7e43860 100644 --- a/src/mame/drivers/fidel_cc10.cpp +++ b/src/mame/drivers/fidel_cc10.cpp @@ -298,8 +298,10 @@ void ccx_state::acr(machine_config &config) I8255(config, m_ppi8255); m_ppi8255->out_pa_callback().set(FUNC(ccx_state::ppi_porta_w)); + m_ppi8255->tri_pa_callback().set_constant(0); m_ppi8255->in_pb_callback().set_constant(0); m_ppi8255->out_pb_callback().set(FUNC(ccx_state::ppi_portb_w)); + m_ppi8255->tri_pb_callback().set_constant(0); m_ppi8255->in_pc_callback().set(FUNC(ccx_state::ppi_portc_r)); m_ppi8255->out_pc_callback().set(FUNC(ccx_state::ppi_portc_w)); diff --git a/src/mame/drivers/fidel_elite.cpp b/src/mame/drivers/fidel_elite.cpp index beb2a6b6b3b..46ead41491d 100644 --- a/src/mame/drivers/fidel_elite.cpp +++ b/src/mame/drivers/fidel_elite.cpp @@ -469,8 +469,10 @@ void elite_state::eas(machine_config &config) I8255(config, m_ppi8255); // port B: input, port A & C: output m_ppi8255->out_pa_callback().set(FUNC(elite_state::ppi_porta_w)); + m_ppi8255->tri_pa_callback().set_constant(0); m_ppi8255->in_pb_callback().set(FUNC(elite_state::ppi_portb_r)); m_ppi8255->out_pc_callback().set(FUNC(elite_state::ppi_portc_w)); + m_ppi8255->tri_pc_callback().set_constant(0); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); diff --git a/src/mame/drivers/fidel_vcc.cpp b/src/mame/drivers/fidel_vcc.cpp index 430b58b8ee4..ddf9b772864 100644 --- a/src/mame/drivers/fidel_vcc.cpp +++ b/src/mame/drivers/fidel_vcc.cpp @@ -333,8 +333,10 @@ void vcc_state::vcc(machine_config &config) I8255(config, m_ppi8255); m_ppi8255->out_pa_callback().set(FUNC(vcc_state::ppi_porta_w)); + m_ppi8255->tri_pa_callback().set_constant(0); m_ppi8255->in_pb_callback().set(FUNC(vcc_state::ppi_portb_r)); m_ppi8255->out_pb_callback().set(FUNC(vcc_state::ppi_portb_w)); + m_ppi8255->tri_pb_callback().set_constant(0); m_ppi8255->in_pc_callback().set(FUNC(vcc_state::ppi_portc_r)); m_ppi8255->out_pc_callback().set(FUNC(vcc_state::ppi_portc_w)); diff --git a/src/mame/drivers/hh_cop400.cpp b/src/mame/drivers/hh_cop400.cpp index 51567e4d1ed..5380f7a25da 100644 --- a/src/mame/drivers/hh_cop400.cpp +++ b/src/mame/drivers/hh_cop400.cpp @@ -44,9 +44,6 @@ //#include "hh_cop400_test.lh" // common test-layout - use external artwork -// workaround to disable default LMB on IPT_BUTTON1 when running MAME with -mouse, conflict with clickable artwork -#define PORT_BUTTON1_NOMOUSE PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(JOYCODE_BUTTON1_INDEXED(0)) - class hh_cop400_state : public driver_device { @@ -206,7 +203,7 @@ static INPUT_PORTS_START( ctstein ) PORT_BIT( 0x0c, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("IN.2") // G2 port L - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_BUTTON1_NOMOUSE PORT_NAME("Red Button") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Red Button") PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Yellow Button") PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Green Button") PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Blue Button") @@ -901,7 +898,7 @@ static INPUT_PORTS_START( funjacks ) PORT_START("IN.2") // D2 port G PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON6 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_BUTTON1_NOMOUSE // positioned at 1 o'clock on panel, increment clockwise + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) // positioned at 1 o'clock on panel, increment clockwise PORT_START("IN.3") // port G PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) @@ -1352,7 +1349,7 @@ READ8_MEMBER(lightfgt_state::read_g) static INPUT_PORTS_START( lightfgt ) PORT_START("IN.0") // SO port G PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON6 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_BUTTON1_NOMOUSE // note: button 1 is on the left side from player perspective + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) // note: button 1 is on the left side from player perspective PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_COCKTAIL PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON10 ) PORT_COCKTAIL diff --git a/src/mame/drivers/hh_pic16.cpp b/src/mame/drivers/hh_pic16.cpp index 4bbe3234e08..9a566101ef4 100644 --- a/src/mame/drivers/hh_pic16.cpp +++ b/src/mame/drivers/hh_pic16.cpp @@ -68,9 +68,6 @@ #include "hh_pic16_test.lh" // common test-layout - use external artwork -// workaround to disable default LMB on IPT_BUTTON1 when running MAME with -mouse, conflict with clickable artwork -#define PORT_BUTTON1_NOMOUSE PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(JOYCODE_BUTTON1_INDEXED(0)) - class hh_pic16_state : public driver_device { @@ -263,7 +260,7 @@ static INPUT_PORTS_START( touchme ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("Skill") PORT_START("IN.1") // B1 port A - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_BUTTON1_NOMOUSE PORT_NAME("Blue Button") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Blue Button") PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Yellow Button") PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Red Button") PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Green Button") @@ -605,7 +602,7 @@ WRITE8_MEMBER(maniac_state::write_c) static INPUT_PORTS_START( maniac ) PORT_START("IN.0") // port A - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_BUTTON1_NOMOUSE PORT_PLAYER(1) // top button, increment clockwise + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) // top button, increment clockwise PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) @@ -729,7 +726,7 @@ WRITE8_MEMBER(matchme_state::write_c) static INPUT_PORTS_START( matchme ) PORT_START("IN.0") // C4 port C - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_BUTTON1_NOMOUSE // purple + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) // purple PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) // pink PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) // yellow PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) // blue diff --git a/src/mame/drivers/hh_tms1k.cpp b/src/mame/drivers/hh_tms1k.cpp index 47b1bfcba59..0463f4ac7cb 100644 --- a/src/mame/drivers/hh_tms1k.cpp +++ b/src/mame/drivers/hh_tms1k.cpp @@ -249,9 +249,6 @@ //#include "hh_tms1k_test.lh" // common test-layout - use external artwork -// workaround to disable default LMB on IPT_BUTTON1 when running MAME with -mouse, conflict with clickable artwork -#define PORT_BUTTON1_NOMOUSE PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(JOYCODE_BUTTON1_INDEXED(0)) - // machine_start/reset @@ -6973,7 +6970,7 @@ static INPUT_PORTS_START( simon ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("IN.1") // R1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_BUTTON1_NOMOUSE PORT_NAME("Green Button") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Green Button") PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Red Button") PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Yellow Button") PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Blue Button") @@ -7136,7 +7133,7 @@ static INPUT_PORTS_START( ssimon ) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("P1 Yellow Button") PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("P1 Green Button") PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("P1 Blue Button") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_BUTTON1_NOMOUSE PORT_NAME("P1 Red Button") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("P1 Red Button") PORT_START("IN.4") // R9 PORT_CONFNAME( 0x0f, 0x02, DEF_STR( Difficulty ) ) @@ -11274,7 +11271,7 @@ static INPUT_PORTS_START( copycat ) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Green Button") PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Red Button") PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Orange Button") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_BUTTON1_NOMOUSE PORT_NAME("Yellow Button") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Yellow Button") PORT_START("IN.1") // R5 PORT_CONFNAME( 0x0f, 0x01, DEF_STR( Difficulty ) ) @@ -11383,7 +11380,7 @@ static INPUT_PORTS_START( copycatm2 ) PORT_START("IN.0") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Orange Button") PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Red Button") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_BUTTON1_NOMOUSE PORT_NAME("Yellow Button") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Yellow Button") PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Green Button") INPUT_PORTS_END @@ -11466,7 +11463,7 @@ WRITE16_MEMBER(ditto_state::write_o) static INPUT_PORTS_START( ditto ) PORT_START("IN.0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_BUTTON1_NOMOUSE PORT_NAME("Yellow Button") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Yellow Button") PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Blue Button") PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Orange Button") PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Red Button") diff --git a/src/mame/drivers/intellect02.cpp b/src/mame/drivers/intellect02.cpp index 7b83669c247..3a2b9f731f0 100644 --- a/src/mame/drivers/intellect02.cpp +++ b/src/mame/drivers/intellect02.cpp @@ -239,6 +239,7 @@ void intel02_state::intel02(machine_config &config) I8255(config, m_ppi8255); m_ppi8255->in_pa_callback().set(FUNC(intel02_state::input_r)); m_ppi8255->out_pb_callback().set(FUNC(intel02_state::digit_w)); + m_ppi8255->tri_pb_callback().set_constant(0); m_ppi8255->out_pc_callback().set(FUNC(intel02_state::control_w)); m_ppi8255->tri_pc_callback().set_constant(0x80); diff --git a/src/mame/drivers/kingdrby.cpp b/src/mame/drivers/kingdrby.cpp index 053027b9e25..e6039a808e6 100644 --- a/src/mame/drivers/kingdrby.cpp +++ b/src/mame/drivers/kingdrby.cpp @@ -995,6 +995,7 @@ void kingdrby_state::kingdrby(machine_config &config) // 6000-6003 PPI group modes 0/0 - B & C (lower) as input, A & C (upper) as output. I8255A(config, m_ppi[1]); m_ppi[1]->out_pa_callback().set(FUNC(kingdrby_state::sound_cmd_w)); + m_ppi[1]->tri_pa_callback().set_constant(0x7f); m_ppi[1]->in_pb_callback().set(FUNC(kingdrby_state::key_matrix_r)); m_ppi[1]->in_pc_callback().set(FUNC(kingdrby_state::input_mux_r)); m_ppi[1]->out_pc_callback().set(FUNC(kingdrby_state::outport2_w)); @@ -1031,6 +1032,7 @@ void kingdrby_state::kingdrbb(machine_config &config) /* C as input, (all) as output */ m_ppi[0]->out_pa_callback().set(FUNC(kingdrby_state::sound_cmd_w)); m_ppi[0]->in_pa_callback().set_constant(0); + m_ppi[0]->tri_pa_callback().set_constant(0x7f); m_ppi[0]->in_pb_callback().set_ioport("IN0"); m_ppi[0]->out_pb_callback().set(FUNC(kingdrby_state::outportb_w)); m_ppi[0]->in_pc_callback().set_ioport("IN1"); diff --git a/src/mame/drivers/rotaryf.cpp b/src/mame/drivers/rotaryf.cpp index df9bec07129..362f81b2388 100644 --- a/src/mame/drivers/rotaryf.cpp +++ b/src/mame/drivers/rotaryf.cpp @@ -123,6 +123,9 @@ WRITE8_MEMBER(rotaryf_state::porta_w) WRITE8_MEMBER(rotaryf_state::portc_w) { + if (data == 0xff) + return; + machine().bookkeeping().coin_counter_w(0, BIT(data, 1)); // bit 5 set when game starts, but isn't coin lockout? @@ -272,6 +275,7 @@ void rotaryf_state::rotaryf(machine_config &config) ppi.out_pa_callback().set(FUNC(rotaryf_state::porta_w)); ppi.in_pb_callback().set(FUNC(rotaryf_state::portb_r)); ppi.out_pc_callback().set(FUNC(rotaryf_state::portc_w)); + //ppi.tri_pc_callback().set_constant(0); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); diff --git a/src/mame/drivers/rulechan.cpp b/src/mame/drivers/rulechan.cpp index 9dc2868130b..bcb87ddfc3c 100644 --- a/src/mame/drivers/rulechan.cpp +++ b/src/mame/drivers/rulechan.cpp @@ -727,6 +727,7 @@ void rulechan_state::rulechan(machine_config &config) ppi1.in_pa_callback().set(FUNC(rulechan_state::port30_r)); ppi1.out_pb_callback().set(FUNC(rulechan_state::port31_w)); // Must read back as 0x00 at power-up. ppi1.out_pc_callback().set(FUNC(rulechan_state::port32_w)); + ppi1.tri_pc_callback().set_constant(0xf0); // Motor off at startup /* video hardware */ v9938_device &v9938(V9938(config, "v9938", VID_CLOCK)); diff --git a/src/mame/drivers/segae.cpp b/src/mame/drivers/segae.cpp index 76a20aa5918..1ab6b3be2f9 100644 --- a/src/mame/drivers/segae.cpp +++ b/src/mame/drivers/segae.cpp @@ -887,6 +887,7 @@ void systeme_state::systeme(machine_config &config) I8255(config, m_ppi); m_ppi->out_pb_callback().set(FUNC(systeme_state::coin_counters_write)); + m_ppi->tri_pb_callback().set_constant(0); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_raw(XTAL(10'738'635)/2, diff --git a/src/mame/drivers/subsino.cpp b/src/mame/drivers/subsino.cpp index 629849a48e6..331eb20bde6 100644 --- a/src/mame/drivers/subsino.cpp +++ b/src/mame/drivers/subsino.cpp @@ -2696,7 +2696,9 @@ void subsino_state::victor21(machine_config &config) i8255_device &ppi(I8255A(config, "ppi")); ppi.out_pa_callback().set(FUNC(subsino_state::out_a_w)); + ppi.tri_pa_callback().set_constant(0); ppi.out_pb_callback().set(FUNC(subsino_state::out_b_w)); + ppi.tri_pb_callback().set_constant(0); ppi.in_pc_callback().set_ioport("INC"); TICKET_DISPENSER(config, m_hopper, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW); diff --git a/src/mame/drivers/suprloco.cpp b/src/mame/drivers/suprloco.cpp index 21dadda23b5..0125c1bab1b 100644 --- a/src/mame/drivers/suprloco.cpp +++ b/src/mame/drivers/suprloco.cpp @@ -178,6 +178,7 @@ void suprloco_state::suprloco(machine_config &config) i8255_device &ppi(I8255A(config, "ppi")); ppi.out_pb_callback().set(FUNC(suprloco_state::control_w)); + ppi.tri_pb_callback().set_constant(0); ppi.out_pc_callback().set_output("lamp0").bit(0).invert(); // set by 8255 bit mode when no credits inserted ppi.out_pc_callback().append_inputline(m_audiocpu, INPUT_LINE_NMI).bit(7).invert(); diff --git a/src/mame/layout/cgang.lay b/src/mame/layout/cgang.lay new file mode 100644 index 00000000000..ea414dcfb82 --- /dev/null +++ b/src/mame/layout/cgang.lay @@ -0,0 +1,259 @@ +<?xml version="1.0"?> +<mamelayout version="2"> + + <element name="nothing" defstate="0"> + <text string=" "/> + </element> + + <element name="ani_white" defstate="0"> + <text string=" "><bounds x="0" y="0" width="1" height="100" /></text> + <rect state="1"><bounds x="0" y="0" width="1" height="1" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="2"><bounds x="0" y="0" width="1" height="2" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="3"><bounds x="0" y="0" width="1" height="3" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="4"><bounds x="0" y="0" width="1" height="4" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="5"><bounds x="0" y="0" width="1" height="5" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="6"><bounds x="0" y="0" width="1" height="6" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="7"><bounds x="0" y="0" width="1" height="7" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="8"><bounds x="0" y="0" width="1" height="8" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="9"><bounds x="0" y="0" width="1" height="9" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="10"><bounds x="0" y="0" width="1" height="10" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="11"><bounds x="0" y="0" width="1" height="11" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="12"><bounds x="0" y="0" width="1" height="12" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="13"><bounds x="0" y="0" width="1" height="13" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="14"><bounds x="0" y="0" width="1" height="14" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="15"><bounds x="0" y="0" width="1" height="15" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="16"><bounds x="0" y="0" width="1" height="16" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="17"><bounds x="0" y="0" width="1" height="17" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="18"><bounds x="0" y="0" width="1" height="18" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="19"><bounds x="0" y="0" width="1" height="19" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="20"><bounds x="0" y="0" width="1" height="20" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="21"><bounds x="0" y="0" width="1" height="21" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="22"><bounds x="0" y="0" width="1" height="22" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="23"><bounds x="0" y="0" width="1" height="23" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="24"><bounds x="0" y="0" width="1" height="24" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="25"><bounds x="0" y="0" width="1" height="25" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="26"><bounds x="0" y="0" width="1" height="26" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="27"><bounds x="0" y="0" width="1" height="27" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="28"><bounds x="0" y="0" width="1" height="28" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="29"><bounds x="0" y="0" width="1" height="29" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="30"><bounds x="0" y="0" width="1" height="30" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="31"><bounds x="0" y="0" width="1" height="31" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="32"><bounds x="0" y="0" width="1" height="32" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="33"><bounds x="0" y="0" width="1" height="33" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="34"><bounds x="0" y="0" width="1" height="34" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="35"><bounds x="0" y="0" width="1" height="35" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="36"><bounds x="0" y="0" width="1" height="36" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="37"><bounds x="0" y="0" width="1" height="37" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="38"><bounds x="0" y="0" width="1" height="38" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="39"><bounds x="0" y="0" width="1" height="39" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="40"><bounds x="0" y="0" width="1" height="40" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="41"><bounds x="0" y="0" width="1" height="41" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="42"><bounds x="0" y="0" width="1" height="42" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="43"><bounds x="0" y="0" width="1" height="43" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="44"><bounds x="0" y="0" width="1" height="44" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="45"><bounds x="0" y="0" width="1" height="45" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="46"><bounds x="0" y="0" width="1" height="46" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="47"><bounds x="0" y="0" width="1" height="47" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="48"><bounds x="0" y="0" width="1" height="48" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="49"><bounds x="0" y="0" width="1" height="49" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="50"><bounds x="0" y="0" width="1" height="50" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="51"><bounds x="0" y="0" width="1" height="51" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="52"><bounds x="0" y="0" width="1" height="52" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="53"><bounds x="0" y="0" width="1" height="53" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="54"><bounds x="0" y="0" width="1" height="54" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="55"><bounds x="0" y="0" width="1" height="55" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="56"><bounds x="0" y="0" width="1" height="56" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="57"><bounds x="0" y="0" width="1" height="57" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="58"><bounds x="0" y="0" width="1" height="58" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="59"><bounds x="0" y="0" width="1" height="59" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="60"><bounds x="0" y="0" width="1" height="60" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="61"><bounds x="0" y="0" width="1" height="61" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="62"><bounds x="0" y="0" width="1" height="62" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="63"><bounds x="0" y="0" width="1" height="63" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="64"><bounds x="0" y="0" width="1" height="64" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="65"><bounds x="0" y="0" width="1" height="65" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="66"><bounds x="0" y="0" width="1" height="66" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="67"><bounds x="0" y="0" width="1" height="67" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="68"><bounds x="0" y="0" width="1" height="68" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="69"><bounds x="0" y="0" width="1" height="69" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="70"><bounds x="0" y="0" width="1" height="70" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="71"><bounds x="0" y="0" width="1" height="71" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="72"><bounds x="0" y="0" width="1" height="72" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="73"><bounds x="0" y="0" width="1" height="73" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="74"><bounds x="0" y="0" width="1" height="74" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="75"><bounds x="0" y="0" width="1" height="75" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="76"><bounds x="0" y="0" width="1" height="76" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="77"><bounds x="0" y="0" width="1" height="77" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="78"><bounds x="0" y="0" width="1" height="78" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="79"><bounds x="0" y="0" width="1" height="79" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="80"><bounds x="0" y="0" width="1" height="80" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="81"><bounds x="0" y="0" width="1" height="81" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="82"><bounds x="0" y="0" width="1" height="82" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="83"><bounds x="0" y="0" width="1" height="83" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="84"><bounds x="0" y="0" width="1" height="84" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="85"><bounds x="0" y="0" width="1" height="85" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="86"><bounds x="0" y="0" width="1" height="86" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="87"><bounds x="0" y="0" width="1" height="87" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="88"><bounds x="0" y="0" width="1" height="88" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="89"><bounds x="0" y="0" width="1" height="89" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="90"><bounds x="0" y="0" width="1" height="90" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="91"><bounds x="0" y="0" width="1" height="91" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="92"><bounds x="0" y="0" width="1" height="92" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="93"><bounds x="0" y="0" width="1" height="93" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="94"><bounds x="0" y="0" width="1" height="94" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="95"><bounds x="0" y="0" width="1" height="95" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="96"><bounds x="0" y="0" width="1" height="96" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="97"><bounds x="0" y="0" width="1" height="97" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="98"><bounds x="0" y="0" width="1" height="98" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="99"><bounds x="0" y="0" width="1" height="99" /><color red="1.0" green="1.0" blue="1.0" /></rect> + <rect state="100"><bounds x="0" y="0" width="1" height="100" /><color red="1.0" green="1.0" blue="1.0" /></rect> + </element> + + <element name="ani_crate" defstate="0"> + <text string=" "><bounds x="0" y="0" width="1" height="102" /></text> + <rect state="0"><bounds x="0" y="0" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="1"><bounds x="0" y="1" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="2"><bounds x="0" y="2" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="3"><bounds x="0" y="3" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="4"><bounds x="0" y="4" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="5"><bounds x="0" y="5" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="6"><bounds x="0" y="6" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="7"><bounds x="0" y="7" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="8"><bounds x="0" y="8" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="9"><bounds x="0" y="9" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="10"><bounds x="0" y="10" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="11"><bounds x="0" y="11" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="12"><bounds x="0" y="12" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="13"><bounds x="0" y="13" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="14"><bounds x="0" y="14" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="15"><bounds x="0" y="15" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="16"><bounds x="0" y="16" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="17"><bounds x="0" y="17" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="18"><bounds x="0" y="18" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="19"><bounds x="0" y="19" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="20"><bounds x="0" y="20" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="21"><bounds x="0" y="21" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="22"><bounds x="0" y="22" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="23"><bounds x="0" y="23" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="24"><bounds x="0" y="24" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="25"><bounds x="0" y="25" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="26"><bounds x="0" y="26" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="27"><bounds x="0" y="27" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="28"><bounds x="0" y="28" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="29"><bounds x="0" y="29" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="30"><bounds x="0" y="30" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="31"><bounds x="0" y="31" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="32"><bounds x="0" y="32" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="33"><bounds x="0" y="33" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="34"><bounds x="0" y="34" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="35"><bounds x="0" y="35" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="36"><bounds x="0" y="36" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="37"><bounds x="0" y="37" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="38"><bounds x="0" y="38" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="39"><bounds x="0" y="39" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="40"><bounds x="0" y="40" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="41"><bounds x="0" y="41" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="42"><bounds x="0" y="42" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="43"><bounds x="0" y="43" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="44"><bounds x="0" y="44" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="45"><bounds x="0" y="45" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="46"><bounds x="0" y="46" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="47"><bounds x="0" y="47" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="48"><bounds x="0" y="48" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="49"><bounds x="0" y="49" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="50"><bounds x="0" y="50" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="51"><bounds x="0" y="51" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="52"><bounds x="0" y="52" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="53"><bounds x="0" y="53" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="54"><bounds x="0" y="54" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="55"><bounds x="0" y="55" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="56"><bounds x="0" y="56" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="57"><bounds x="0" y="57" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="58"><bounds x="0" y="58" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="59"><bounds x="0" y="59" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="60"><bounds x="0" y="60" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="61"><bounds x="0" y="61" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="62"><bounds x="0" y="62" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="63"><bounds x="0" y="63" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="64"><bounds x="0" y="64" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="65"><bounds x="0" y="65" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="66"><bounds x="0" y="66" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="67"><bounds x="0" y="67" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="68"><bounds x="0" y="68" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="69"><bounds x="0" y="69" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="70"><bounds x="0" y="70" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="71"><bounds x="0" y="71" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="72"><bounds x="0" y="72" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="73"><bounds x="0" y="73" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="74"><bounds x="0" y="74" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="75"><bounds x="0" y="75" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="76"><bounds x="0" y="76" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="77"><bounds x="0" y="77" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="78"><bounds x="0" y="78" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="79"><bounds x="0" y="79" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="80"><bounds x="0" y="80" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="81"><bounds x="0" y="81" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="82"><bounds x="0" y="82" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="83"><bounds x="0" y="83" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="84"><bounds x="0" y="84" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="85"><bounds x="0" y="85" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="86"><bounds x="0" y="86" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="87"><bounds x="0" y="87" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="88"><bounds x="0" y="88" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="89"><bounds x="0" y="89" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="90"><bounds x="0" y="90" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="91"><bounds x="0" y="91" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="92"><bounds x="0" y="92" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="93"><bounds x="0" y="93" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="94"><bounds x="0" y="94" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="95"><bounds x="0" y="95" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="96"><bounds x="0" y="96" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="97"><bounds x="0" y="97" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="98"><bounds x="0" y="98" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="99"><bounds x="0" y="99" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + <rect state="100"><bounds x="0" y="100" width="1" height="2" /><color red="1.0" green="0.0" blue="0.0" /></rect> + </element> + + <element name="digit" defstate="0"> + <led7seg><color red="1.0" green="0.15" blue="0.08" /></led7seg> + </element> + + <view name="Internal Layout"> + <bounds left="0" right="50" top="0" bottom="35" /> + + <element name="digit9" ref="digit"><bounds x="0" y="0" width="4" height="6" /></element> + <element name="digit8" ref="digit"><bounds x="4" y="0" width="4" height="6" /></element> + + <element name="digit7" ref="digit"><bounds x="10" y="0" width="4" height="6" /></element> + <element name="digit6" ref="digit"><bounds x="14" y="0" width="4" height="6" /></element> + <element name="digit5" ref="digit"><bounds x="18" y="0" width="4" height="6" /></element> + + <element name="digit4" ref="digit"><bounds x="25" y="0" width="4" height="6" /></element> + <element name="digit3" ref="digit"><bounds x="29" y="0" width="4" height="6" /></element> + + <element name="digit2" ref="digit"><bounds x="35" y="0" width="4" height="6" /></element> + <element name="digit1" ref="digit"><bounds x="39" y="0" width="4" height="6" /></element> + <element name="digit0" ref="digit"><bounds x="43" y="0" width="4" height="6" /></element> + + <element ref="nothing" inputtag="FAKE1" inputmask="0x01"><bounds x="10" y="15" width="1" height="15" /></element> + <element ref="nothing" inputtag="FAKE1" inputmask="0x02"><bounds x="12" y="15" width="1" height="15" /></element> + <element ref="nothing" inputtag="FAKE1" inputmask="0x04"><bounds x="14" y="15" width="1" height="15" /></element> + <element ref="nothing" inputtag="FAKE1" inputmask="0x08"><bounds x="16" y="15" width="1" height="15" /></element> + <element ref="nothing" inputtag="FAKE1" inputmask="0x10"><bounds x="18" y="15" width="1" height="15" /></element> + + <element name="door_count" ref="ani_white"><bounds x="10" y="13" width="9" height="2" /></element> + + <element name="cg_count0" ref="ani_white"><bounds x="10" y="15" width="1" height="15" /></element> + <element name="cg_count1" ref="ani_white"><bounds x="12" y="15" width="1" height="15" /></element> + <element name="cg_count2" ref="ani_white"><bounds x="14" y="15" width="1" height="15" /></element> + <element name="cg_count3" ref="ani_white"><bounds x="16" y="15" width="1" height="15" /></element> + <element name="cg_count4" ref="ani_white"><bounds x="18" y="15" width="1" height="15" /></element> + + <element name="en_count0" ref="ani_crate"><bounds x="10" y="15" width="1" height="15" /></element> + <element name="en_count1" ref="ani_crate"><bounds x="12" y="15" width="1" height="15" /></element> + <element name="en_count2" ref="ani_crate"><bounds x="14" y="15" width="1" height="15" /></element> + <element name="en_count3" ref="ani_crate"><bounds x="16" y="15" width="1" height="15" /></element> + <element name="en_count4" ref="ani_crate"><bounds x="18" y="15" width="1" height="15" /></element> + + </view> +</mamelayout> diff --git a/src/mame/video/xbox_nv2a.cpp b/src/mame/video/xbox_nv2a.cpp index 31f9411c743..6bff22f9493 100644 --- a/src/mame/video/xbox_nv2a.cpp +++ b/src/mame/video/xbox_nv2a.cpp @@ -1331,11 +1331,13 @@ void nv2a_renderer::write_pixel(int x, int y, uint32_t color, int depth) uint32_t deptsten; int32_t c[4], fb[4], s[4], d[4], cc[4]; uint32_t dep, sten, stenc, stenv; + uint32_t udepth; bool stencil_passed; bool depth_passed; if ((depth > 0xffffff) || (depth < 0) || (x < 0)) return; + udepth = (uint32_t)depth; fb[3] = fb[2] = fb[1] = fb[0] = 0; addr = nullptr; if (color_mask != 0) @@ -1508,27 +1510,27 @@ void nv2a_renderer::write_pixel(int x, int y, uint32_t color, int depth) depth_passed = false; break; case NV2A_COMPARISON_OP::LESS: - if (depth >= dep) + if (udepth >= dep) depth_passed = false; break; case NV2A_COMPARISON_OP::EQUAL: - if (depth != dep) + if (udepth != dep) depth_passed = false; break; case NV2A_COMPARISON_OP::LEQUAL: - if (depth > dep) + if (udepth > dep) depth_passed = false; break; case NV2A_COMPARISON_OP::GREATER: - if (depth <= dep) + if (udepth <= dep) depth_passed = false; break; case NV2A_COMPARISON_OP::NOTEQUAL: - if (depth == dep) + if (udepth == dep) depth_passed = false; break; case NV2A_COMPARISON_OP::GEQUAL: - if (depth < dep) + if (udepth < dep) depth_passed = false; break; case NV2A_COMPARISON_OP::ALWAYS: @@ -1925,7 +1927,7 @@ void nv2a_renderer::write_pixel(int x, int y, uint32_t color, int depth) } } if (depth_write_enabled) - dep = depth; + dep = udepth; if (depthformat_rendertarget == NV2A_RT_DEPTH_FORMAT::Z24S8) { deptsten = (dep << 8) | sten; *daddr32 = deptsten; @@ -4491,11 +4493,11 @@ WRITE_LINE_MEMBER(nv2a_renderer::vblank_callback) #ifdef LOG_NV2A printf("vblank_callback\n\r"); #endif - if ((state == true) && (puller_waiting == 1)) { + if ((state != 0) && (puller_waiting == 1)) { puller_waiting = 0; puller_timer_work(nullptr, 0); } - if (state == true) { + if (state != 0) { pcrtc[0x100 / 4] |= 1; pcrtc[0x808 / 4] |= 0x10000; } |