From e4b6211b45c98209abce6f2fb002109e9b9d86b2 Mon Sep 17 00:00:00 2001 From: hap Date: Wed, 21 Jun 2023 11:55:38 +0200 Subject: [PATCH] harddriv, racedrivc: swap coin inputs, galastrm: fix coin counter 2 --- src/mame/atari/harddriv.cpp | 269 +++++++++++++-------------- src/mame/atari/harddriv.h | 9 +- src/mame/atari/harddriv_m.cpp | 46 ++--- src/mame/fidelity/csc.cpp | 8 +- src/mame/handheld/hh_ucom4.cpp | 8 +- src/mame/hegenerglaser/amsterdam.cpp | 2 +- src/mame/hegenerglaser/berlin.cpp | 2 +- src/mame/hegenerglaser/glasgow.cpp | 2 +- src/mame/saitek/renaissance.cpp | 2 +- src/mame/saitek/stratos.cpp | 2 +- src/mame/saitek/stratos.h | 2 +- src/mame/taito/galastrm.cpp | 88 ++++----- 12 files changed, 223 insertions(+), 217 deletions(-) diff --git a/src/mame/atari/harddriv.cpp b/src/mame/atari/harddriv.cpp index 77be2f6e305d0..73ad1832830b4 100644 --- a/src/mame/atari/harddriv.cpp +++ b/src/mame/atari/harddriv.cpp @@ -339,132 +339,131 @@ A046901 * *************************************/ -harddriv_state::harddriv_state(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, type, tag, owner, clock), -/* device_video_interface(mconfig, *this, false), */ - m_maincpu(*this, "maincpu"), - m_gsp(*this, "gsp"), - m_msp(*this, "msp"), - m_adsp(*this, "adsp"), - m_jsacpu(*this, "jsacpu"), - m_dsp32(*this, "dsp32"), - m_ds3sdsp(*this, "ds3sdsp"), - m_ds3xdsp(*this, "ds3xdsp"), - m_ds3sdsp_region(*this, "ds3sdsp"), - m_ds3xdsp_region(*this, "ds3xdsp"), - m_ldac(*this, "ldac"), - m_rdac(*this, "rdac"), - m_harddriv_sound(*this, "harddriv_sound"), - m_jsa(*this, "jsa"), - m_screen(*this, "screen"), - m_duartn68681(*this, "duartn68681"), - m_adc8(*this, "adc8"), - m_lamps(*this, "lamp%u", 1U), - m_sel(*this, "SEL%u", 1U), - m_wheel(*this, "wheel"), - m_hd34010_host_access(0), - m_msp_ram(*this, "msp_ram"), - m_dsk_ram(nullptr), - m_dsk_rom(nullptr), - m_dsk_10c(*this, "dsk_10c"), - m_dsk_30c(*this, "dsk_30c"), - m_dsk_pio_access(0), - m_m68k_sloop_base(nullptr), - m_m68k_sloop_alt_base(nullptr), - m_200e(*this, "200e"), - m_210e(*this, "210e"), - m_adsp_data_memory(*this, "adsp_data"), - m_adsp_pgm_memory(*this, "adsp_pgm_memory"), - m_ds3sdsp_data_memory(*this, "ds3sdsp_data"), - m_ds3sdsp_pgm_memory(*this, "ds3sdsp_pgm"), - m_ds3xdsp_pgm_memory(*this, "ds3xdsp_pgm"), - m_dsp32_ram(*this, "dsp32_ram"), - m_gsp_protection(nullptr), - m_gsp_speedup_pc(0), - m_msp_speedup_addr(nullptr), - m_msp_speedup_pc(0), - m_ds3_speedup_addr(nullptr), - m_ds3_speedup_pc(0), - m_ds3_transfer_pc(0), - m_gsp_multisync(0), - m_gsp_vram(*this, "gsp_vram"), - m_gsp_control_lo(*this, "gsp_control_lo"), - m_gsp_control_hi(*this, "gsp_control_hi"), - m_gsp_paletteram_lo(*this, "gsp_palram_lo", 1024*2, ENDIANNESS_LITTLE), - m_gsp_paletteram_hi(*this, "gsp_palram_hi", 1024*2, ENDIANNESS_LITTLE), - m_in0(*this, "IN0"), - m_sw1(*this, "SW1"), - m_a80000(*this, "a80000"), - m_12badc(*this, "12BADC.%u", 0), - m_irq_state(0), - m_gsp_irq_state(0), - m_msp_irq_state(0), - m_adsp_irq_state(0), - m_ds3sdsp_irq_state(0), - m_duart_irq_state(0), - m_last_gsp_shiftreg(0), - m_m68k_zp1(0), - m_m68k_zp2(0), - m_m68k_adsp_buffer_bank(0), - m_adsp_halt(0), - m_adsp_br(0), - m_adsp_xflag(0), - m_adsp_sim_address(0), - m_adsp_som_address(0), - m_adsp_eprom_base(0), - m_sim_memory(*this, "user1"), - m_adsp_pgm_memory_word(nullptr), - m_ds3_sdata_memory(nullptr), - m_ds3_sdata_memory_size(0), - m_ds3_gcmd(0), - m_ds3_gflag(0), - m_ds3_g68irqs(0), - m_ds3_gfirqs(0), - m_ds3_g68flag(0), - m_ds3_send(0), - m_ds3_reset(0), - m_ds3_gdata(0), - m_ds3_g68data(0), - m_ds3_sim_address(0), - m_ds3_scmd(0), - m_ds3_sflag(0), - m_ds3_s68irqs(0), - m_ds3_sfirqs(0), - m_ds3_s68flag(0), - m_ds3_sreset(0), - m_ds3_sdata(0), - m_ds3_s68data(0), - m_ds3_sdata_address(0), - m_ds3sdsp_timer_en(0), - m_ds3sdsp_sdata(0), - m_ds3sdsp_internal_timer(*this, "ds3sdsp_timer"), - m_ds3xdsp_timer_en(0), - m_ds3xdsp_sdata(0), - m_ds3xdsp_internal_timer(*this, "ds3xdsp_timer"), - m_adc_control(0), - m_adc12_select(0), - m_adc12_byte(0), - m_adc12_data(0), - m_hdc68k_last_wheel(0), - m_hdc68k_last_port1(0), - m_hdc68k_wheel_edge(0), - m_hdc68k_shifter_state(0), - m_st68k_sloop_bank(0), - m_st68k_last_alt_sloop_offset(0), - m_next_msp_sync(0), - m_vram_mask(0), - m_shiftreg_enable(0), - m_gsp_shiftreg_source(nullptr), - m_gfx_finescroll(0), - m_gfx_palettebank(0), - m_duart(*this, "duartn68681"), - m_asic65(*this, "asic65"), - m_sound_int_state(0), - m_video_int_state(0), - m_palette(*this, "palette"), - m_slapstic(*this, "slapstic"), - m_slapstic_bank(*this, "slapstic_bank"), - m_rs232(*this, "rs232") +harddriv_state::harddriv_state(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + m_maincpu(*this, "maincpu"), + m_gsp(*this, "gsp"), + m_msp(*this, "msp"), + m_adsp(*this, "adsp"), + m_jsacpu(*this, "jsacpu"), + m_dsp32(*this, "dsp32"), + m_ds3sdsp(*this, "ds3sdsp"), + m_ds3xdsp(*this, "ds3xdsp"), + m_ds3sdsp_region(*this, "ds3sdsp"), + m_ds3xdsp_region(*this, "ds3xdsp"), + m_ldac(*this, "ldac"), + m_rdac(*this, "rdac"), + m_harddriv_sound(*this, "harddriv_sound"), + m_jsa(*this, "jsa"), + m_screen(*this, "screen"), + m_duartn68681(*this, "duartn68681"), + m_adc8(*this, "adc8"), + m_lamps(*this, "lamp%u", 1U), + m_sel(*this, "SEL%u", 1U), + m_wheel(*this, "wheel"), + m_hd34010_host_access(0), + m_msp_ram(*this, "msp_ram"), + m_dsk_ram(nullptr), + m_dsk_rom(nullptr), + m_dsk_10c(*this, "dsk_10c"), + m_dsk_30c(*this, "dsk_30c"), + m_dsk_pio_access(0), + m_m68k_sloop_base(nullptr), + m_m68k_sloop_alt_base(nullptr), + m_200e(*this, "200e"), + m_210e(*this, "210e"), + m_adsp_data_memory(*this, "adsp_data"), + m_adsp_pgm_memory(*this, "adsp_pgm_memory"), + m_ds3sdsp_data_memory(*this, "ds3sdsp_data"), + m_ds3sdsp_pgm_memory(*this, "ds3sdsp_pgm"), + m_ds3xdsp_pgm_memory(*this, "ds3xdsp_pgm"), + m_dsp32_ram(*this, "dsp32_ram"), + m_gsp_protection(nullptr), + m_gsp_speedup_pc(0), + m_msp_speedup_addr(nullptr), + m_msp_speedup_pc(0), + m_ds3_speedup_addr(nullptr), + m_ds3_speedup_pc(0), + m_ds3_transfer_pc(0), + m_gsp_multisync(0), + m_gsp_vram(*this, "gsp_vram"), + m_gsp_control_lo(*this, "gsp_control_lo"), + m_gsp_control_hi(*this, "gsp_control_hi"), + m_gsp_paletteram_lo(*this, "gsp_palram_lo", 1024*2, ENDIANNESS_LITTLE), + m_gsp_paletteram_hi(*this, "gsp_palram_hi", 1024*2, ENDIANNESS_LITTLE), + m_in0(*this, "IN0"), + m_sw1(*this, "SW1"), + m_a80000(*this, "a80000"), + m_12badc(*this, "12BADC.%u", 0), + m_irq_state(0), + m_gsp_irq_state(0), + m_msp_irq_state(0), + m_adsp_irq_state(0), + m_ds3sdsp_irq_state(0), + m_duart_irq_state(0), + m_last_gsp_shiftreg(0), + m_m68k_zp1(0), + m_m68k_zp2(0), + m_m68k_adsp_buffer_bank(0), + m_adsp_halt(0), + m_adsp_br(0), + m_adsp_xflag(0), + m_adsp_sim_address(0), + m_adsp_som_address(0), + m_adsp_eprom_base(0), + m_sim_memory(*this, "user1"), + m_adsp_pgm_memory_word(nullptr), + m_ds3_sdata_memory(nullptr), + m_ds3_sdata_memory_size(0), + m_ds3_gcmd(0), + m_ds3_gflag(0), + m_ds3_g68irqs(0), + m_ds3_gfirqs(0), + m_ds3_g68flag(0), + m_ds3_send(0), + m_ds3_reset(0), + m_ds3_gdata(0), + m_ds3_g68data(0), + m_ds3_sim_address(0), + m_ds3_scmd(0), + m_ds3_sflag(0), + m_ds3_s68irqs(0), + m_ds3_sfirqs(0), + m_ds3_s68flag(0), + m_ds3_sreset(0), + m_ds3_sdata(0), + m_ds3_s68data(0), + m_ds3_sdata_address(0), + m_ds3sdsp_timer_en(0), + m_ds3sdsp_sdata(0), + m_ds3sdsp_internal_timer(*this, "ds3sdsp_timer"), + m_ds3xdsp_timer_en(0), + m_ds3xdsp_sdata(0), + m_ds3xdsp_internal_timer(*this, "ds3xdsp_timer"), + m_adc_control(0), + m_adc12_select(0), + m_adc12_byte(0), + m_adc12_data(0), + m_hdc68k_last_wheel(0), + m_hdc68k_last_port1(0), + m_hdc68k_wheel_edge(0), + m_hdc68k_shifter_state(0), + m_st68k_sloop_bank(0), + m_st68k_last_alt_sloop_offset(0), + m_next_msp_sync(0), + m_vram_mask(0), + m_shiftreg_enable(0), + m_gsp_shiftreg_source(nullptr), + m_gfx_finescroll(0), + m_gfx_palettebank(0), + m_duart(*this, "duartn68681"), + m_asic65(*this, "asic65"), + m_sound_int_state(0), + m_video_int_state(0), + m_palette(*this, "palette"), + m_slapstic(*this, "slapstic"), + m_slapstic_bank(*this, "slapstic_bank"), + m_rs232(*this, "rs232") { int i; @@ -508,11 +507,11 @@ harddriv_state::harddriv_state(const machine_config &mconfig, device_type type, class harddriv_new_state : public driver_device { public: - harddriv_new_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) - , m_mainpcb(*this, "mainpcb") - , m_leftpcb(*this, "leftpcb") - , m_rightpcb(*this, "rightpcb") + harddriv_new_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device(mconfig, type, tag), + m_mainpcb(*this, "mainpcb"), + m_leftpcb(*this, "leftpcb"), + m_rightpcb(*this, "rightpcb") { } void steeltal1_machine(machine_config &config); @@ -790,8 +789,8 @@ static INPUT_PORTS_START( harddriv ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) /* 12-bit EOC */ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("mainpcb:adc8", adc0808_device, eoc_r) PORT_SERVICE( 0x20, IP_ACTIVE_LOW ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_START("mainpcb:SW1") /* 600002 */ PORT_DIPNAME( 0x01, 0x01, "SW1:8" ) @@ -996,8 +995,8 @@ static INPUT_PORTS_START( racedrivc ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) /* 12-bit EOC */ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("mainpcb:adc8", adc0808_device, eoc_r) PORT_SERVICE( 0x20, IP_ACTIVE_LOW ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_START("mainpcb:SW1") /* 60c002 */ PORT_DIPNAME( 0x01, 0x01, "SW1:8" ) diff --git a/src/mame/atari/harddriv.h b/src/mame/atari/harddriv.h index f07b1a5be0890..cbc8455d6638d 100644 --- a/src/mame/atari/harddriv.h +++ b/src/mame/atari/harddriv.h @@ -99,7 +99,6 @@ class harddriv_state : public device_t void sound_int_write_line(int state); protected: - void init_video(); INTERRUPT_GEN_MEMBER(hd68k_irq_gen); TIMER_CALLBACK_MEMBER(deferred_adsp_bank_switch); @@ -268,7 +267,6 @@ class harddriv_state : public device_t void hdds3xdsp_serial_tx_callback(uint32_t data); uint32_t hdds3xdsp_serial_rx_callback(); - void adsp_data_map(address_map &map); void adsp_program_map(address_map &map); void driver_68k_map(address_map &map); @@ -579,6 +577,7 @@ class harddriv_sound_board_device : public device_t int hdsnddsp_get_bio(); }; + /* Hard Drivin' */ class harddriv_board_device_state : public harddriv_state @@ -592,6 +591,7 @@ class harddriv_board_device_state : public harddriv_state // virtual void device_reset(); }; + /* Hard Drivin' Compact */ class harddrivc_board_device_state : public harddriv_state @@ -605,6 +605,7 @@ class harddrivc_board_device_state : public harddriv_state // virtual void device_reset(); }; + /* Race Drivin' */ class racedriv_board_device_state : public harddriv_state @@ -629,6 +630,7 @@ class racedrivb1_board_device_state : public racedriv_board_device_state virtual void device_start() override; }; + /* Race Drivin' Compact */ class racedrivc_board_device_state : public harddriv_state @@ -677,6 +679,7 @@ class stunrun_board_device_state : public harddriv_state // virtual void device_reset(); }; + /* Steel Talons */ class steeltal_board_device_state : public harddriv_state @@ -711,7 +714,6 @@ class steeltalp_board_device_state : public steeltal_board_device_state }; - /* Street Drivin' */ class strtdriv_board_device_state : public harddriv_state @@ -725,6 +727,7 @@ class strtdriv_board_device_state : public harddriv_state // virtual void device_reset(); }; + /* Hard Drivin' Airbourne */ class hdrivair_board_device_state : public harddriv_state diff --git a/src/mame/atari/harddriv_m.cpp b/src/mame/atari/harddriv_m.cpp index 11a9c6d73f730..856783e2fb604 100644 --- a/src/mame/atari/harddriv_m.cpp +++ b/src/mame/atari/harddriv_m.cpp @@ -359,45 +359,47 @@ void harddriv_state::hd68k_wr0_write(offs_t offset, uint16_t data) void harddriv_state::hd68k_wr1_write(offs_t offset, uint16_t data) { - if (offset == 0) { + if (offset == 0) + { // logerror("Shifter Interface Latch = %02X\n", data); data = data >> 8; switch (m_sel_select) { - case 1: /* SEL1 */ - m_sel1_data = data; - m_sel[0] = m_sel1_data; - break; + case 1: /* SEL1 */ + m_sel1_data = data; + m_sel[0] = m_sel1_data; + break; - case 2: /* SEL2 */ - m_sel2_data = data; - m_sel[1] = m_sel2_data; - break; + case 2: /* SEL2 */ + m_sel2_data = data; + m_sel[1] = m_sel2_data; + break; - case 3: /* SEL3 */ - m_sel3_data = data; - m_sel[2] = m_sel3_data; - break; + case 3: /* SEL3 */ + m_sel3_data = data; + m_sel[2] = m_sel3_data; + break; - case 4: /* SEL4 */ - m_sel4_data = data; - m_sel[3] = m_sel4_data; - break; + case 4: /* SEL4 */ + m_sel4_data = data; + m_sel[3] = m_sel4_data; + break; } - } else { - logerror("/WR1(%04X)=%02X\n", offset, data); } + else + logerror("/WR1(%04X)=%02X\n", offset, data); } void harddriv_state::hd68k_wr2_write(offs_t offset, uint16_t data) { - if (offset == 0) { + if (offset == 0) + { // logerror("Steering Wheel Latch = %02X\n", data); m_wheel = data >> 8; - } else { - logerror("/WR2(%04X)=%02X\n", offset, data); } + else + logerror("/WR2(%04X)=%02X\n", offset, data); } diff --git a/src/mame/fidelity/csc.cpp b/src/mame/fidelity/csc.cpp index 4c24b5db8e1d7..f53368d6859b4 100644 --- a/src/mame/fidelity/csc.cpp +++ b/src/mame/fidelity/csc.cpp @@ -42,6 +42,7 @@ on the CSC. Also seen with 101-1025A04 label, same ROM contents. 101-1025A03 might be optional, one (untampered) Spanish PCB was seen with a socket instead of this ROM. Most of the opening book is in here. +PCB label: 510-1326B01 CPU is a 6502 running at 1.95MHz (3.9MHz resonator, divided by 2) NMI is not used. @@ -162,6 +163,7 @@ Elite Champion Challenger (ELITE) This is a limited-release chess computer based on the CSC. They removed the PIAs and did the I/O with TTL instead (PIAs will still work from software point of view). --------------------------------- +PCB label: 510-1041B01 MPS 6502C CPU @ 4MHz 20KB total ROM size, 4KB RAM(8*HM6147P) @@ -190,11 +192,11 @@ The 1st version came out in 1980, a program revision was released in 1981. Another distinction is the board color and layout, the 1981 version is green. Not sure if the 1st version was even released, or just a prototype. --------------------------------- -8*(8+1) buttons, 8*8+1 LEDs -1KB RAM(2*2114), 4KB ROM +PCB label: 510-1035A01 MOS MPS 6502B CPU, frequency unknown MOS MPS 6520 PIA, I/O is nearly same as CSC's PIA 0 -PCB label 510-1035A01 +1KB RAM(2*2114), 4KB ROM +8*(8+1) buttons, 8*8+1 LEDs To play it on MAME with the sensorboard device, it is recommended to set up keyboard shortcuts for the spawn inputs. Then hold the spawn input down while diff --git a/src/mame/handheld/hh_ucom4.cpp b/src/mame/handheld/hh_ucom4.cpp index 6a6823f8bdffa..aca5c412fa425 100644 --- a/src/mame/handheld/hh_ucom4.cpp +++ b/src/mame/handheld/hh_ucom4.cpp @@ -10,7 +10,7 @@ known chips: serial device etc. ---------------------------------------------------------------- - 055 uPD546C 1978, Fidelity Checker Challenger (CR) -> fidel_checkc2.cpp + 055 uPD546C 1978, Fidelity Checker Challenger (CR) -> fidelity/checkc2.cpp @017 uPD552C 1979, Bambino UFO Master-Blaster Station (ET-02) @042 uPD552C 1980, Tomy Cosmic Combat (TN-??) @@ -45,10 +45,10 @@ known chips: @513 uPD557LC 1980, Castle Toy Name That Tune @060 uPD650C 1979, Mattel Computer Gin - 085 uPD650C 1980, Roland TR-808 -> roland_tr808.cpp + 085 uPD650C 1980, Roland TR-808 -> roland/roland_tr808.cpp *127 uPD650C 198?, Sony OA-S1100 Typecorder (subcpu, have dump) - 128 uPD650C 1981, Roland TR-606 -> roland_tr606.cpp - 133 uPD650C 1982, Roland TB-303 -> roland_tb303.cpp + 128 uPD650C 1981, Roland TR-606 -> roland/roland_tr606.cpp + 133 uPD650C 1982, Roland TB-303 -> roland/roland_tb303.cpp (* means undumped unless noted, @ denotes it's in this driver) diff --git a/src/mame/hegenerglaser/amsterdam.cpp b/src/mame/hegenerglaser/amsterdam.cpp index b7401aa383e61..6b6612e5dc64a 100644 --- a/src/mame/hegenerglaser/amsterdam.cpp +++ b/src/mame/hegenerglaser/amsterdam.cpp @@ -8,7 +8,7 @@ The base hardware components are the same as Glasgow, but the 32-bit versions have more RAM and a faster CPU. TODO: -- waitstates, same as mephisto_glasgow.cpp +- waitstates, same as glasgow.cpp *******************************************************************************/ diff --git a/src/mame/hegenerglaser/berlin.cpp b/src/mame/hegenerglaser/berlin.cpp index f8d0a95afb814..2263dc3cece3a 100644 --- a/src/mame/hegenerglaser/berlin.cpp +++ b/src/mame/hegenerglaser/berlin.cpp @@ -10,7 +10,7 @@ Undocumented buttons: - holding CLEAR on boot clears battery backed RAM TODO: -- does it have ROM waitstates like mephisto_modular? +- does it have ROM waitstates like modular.cpp? *******************************************************************************/ diff --git a/src/mame/hegenerglaser/glasgow.cpp b/src/mame/hegenerglaser/glasgow.cpp index e8a16445a41fa..c1cfd6d1c0762 100644 --- a/src/mame/hegenerglaser/glasgow.cpp +++ b/src/mame/hegenerglaser/glasgow.cpp @@ -243,7 +243,7 @@ ROM_END // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS SYST( 1984, glasgow, 0, 0, glasgow, glasgow, glasgow_state, empty_init, "Hegener + Glaser", "Mephisto III-S Glasgow", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -// newer chesscomputers on 4-ROM hardware (see mephisto_amsterdam.cpp for parent sets) +// newer chesscomputers on 4-ROM hardware (see amsterdam.cpp for parent sets) SYST( 1985, amsterda, amsterd, 0, glasgow, glasgow, glasgow_state, empty_init, "Hegener + Glaser", "Mephisto Amsterdam (Glasgow hardware)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) SYST( 1986, dallas16a, dallas32, 0, glasgow, glasgow, glasgow_state, empty_init, "Hegener + Glaser", "Mephisto Dallas 68000 (Glasgow hardware)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) SYST( 1987, roma16a, roma32, 0, glasgow, glasgow, glasgow_state, empty_init, "Hegener + Glaser", "Mephisto Roma 68000 (Glasgow hardware)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) diff --git a/src/mame/saitek/renaissance.cpp b/src/mame/saitek/renaissance.cpp index c787ce81d3068..41dffc0eb1191 100644 --- a/src/mame/saitek/renaissance.cpp +++ b/src/mame/saitek/renaissance.cpp @@ -26,7 +26,7 @@ pushed in to hide the chessboard display. - fart noise at boot if maestroa module is inserted - weird beep at boot if sparc module is inserted (related to above?) - make it a subdriver of leonardo.cpp? or too many differences -- same TODO list as saitek_leonardo.cpp +- same TODO list as leonardo.cpp *******************************************************************************/ diff --git a/src/mame/saitek/stratos.cpp b/src/mame/saitek/stratos.cpp index d5e706343d878..37d45700da7b4 100644 --- a/src/mame/saitek/stratos.cpp +++ b/src/mame/saitek/stratos.cpp @@ -8,7 +8,7 @@ SciSys/Saitek Stratos chesscomputer family (1987-1990) - Stratos - Turbo King -- Corona --> saitek_corona.cpp +- Corona --> corona.cpp IMPORTANT: The user is expected to press the STOP button to turn off the computer. When not using -autosave, press that button before exiting MAME, or NVRAM can get corrupt. diff --git a/src/mame/saitek/stratos.h b/src/mame/saitek/stratos.h index ba646ef16a80d..1db399e05984a 100644 --- a/src/mame/saitek/stratos.h +++ b/src/mame/saitek/stratos.h @@ -3,7 +3,7 @@ /* Saitek Stratos family chess computers shared class - Used in: saitek_stratos.cpp (main driver), saitek_corona.cpp + Used in: stratos.cpp (main driver), corona.cpp */ diff --git a/src/mame/taito/galastrm.cpp b/src/mame/taito/galastrm.cpp index 38a8ef467e445..98234a3f24354 100644 --- a/src/mame/taito/galastrm.cpp +++ b/src/mame/taito/galastrm.cpp @@ -41,6 +41,7 @@ tips TODO: - device-ify TC0610? (no other known users) - full screen rotation is incorrect in taito logo, end of stage, etc... (see https://youtu.be/lzPnO8Kej20) + */ @@ -75,44 +76,25 @@ tips namespace { -class galastrm_state; - -struct gs_poly_data -{ - bitmap_ind16* texbase = nullptr; -}; - -class galastrm_renderer : public poly_manager -{ -public: - galastrm_renderer(galastrm_state &state); - - void tc0610_draw_scanline(s32 scanline, const extent_t& extent, const gs_poly_data& object, int threadid); - void tc0610_rotate_draw(bitmap_ind16 &srcbitmap, const rectangle &clip); - - bitmap_ind16 &screenbits() { return m_screenbits; } - -private: - galastrm_state& m_state; - bitmap_ind16 m_screenbits; -}; +class galastrm_renderer; class galastrm_state : public driver_device { friend class galastrm_renderer; + public: galastrm_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_spriteram(*this,"spriteram"), - m_spritemap_rom(*this, "sprmaprom"), m_maincpu(*this, "maincpu"), m_eeprom(*this, "eeprom"), m_tc0100scn(*this, "tc0100scn"), m_tc0110pcr(*this, "tc0110pcr"), m_tc0480scp(*this, "tc0480scp"), m_gfxdecode(*this, "gfxdecode"), - m_screen(*this, "screen") + m_screen(*this, "screen"), + m_spriteram(*this,"spriteram"), + m_spritemap_rom(*this, "sprmaprom") { } void galastrm(machine_config &config); @@ -122,10 +104,6 @@ class galastrm_state : public driver_device virtual void video_start() override; private: - required_shared_ptr m_spriteram; - - required_region_ptr m_spritemap_rom; - required_device m_maincpu; required_device m_eeprom; required_device m_tc0100scn; @@ -133,24 +111,30 @@ class galastrm_state : public driver_device required_device m_tc0480scp; required_device m_gfxdecode; required_device m_screen; + required_shared_ptr m_spriteram; + required_region_ptr m_spritemap_rom; struct gs_tempsprite { u8 gfx = 0U; - u32 code = 0U, color = 0U; - bool flipx = false, flipy = false; - int x = 0, y = 0; - int zoomx = 0, zoomy = 0; + u32 code = 0U; + u32 color = 0U; + bool flipx = false; + bool flipy = false; + int x = 0; + int y = 0; + int zoomx = 0; + int zoomy = 0; u32 primask = 0U; }; u16 m_frame_counter = 0U; u16 m_tc0610_addr[2]{}; s16 m_tc0610_ctrl_reg[2][8]{}; - std::unique_ptr m_spritelist{}; - struct gs_tempsprite *m_sprite_ptr_pre{}; - bitmap_ind16 m_tmpbitmaps{}; - std::unique_ptr m_poly{}; + std::unique_ptr m_spritelist; + struct gs_tempsprite *m_sprite_ptr_pre; + bitmap_ind16 m_tmpbitmaps; + std::unique_ptr m_poly; s16 m_rsxb = 0; s16 m_rsyb = 0; @@ -171,7 +155,25 @@ class galastrm_state : public driver_device }; -// video +struct gs_poly_data +{ + bitmap_ind16* texbase = nullptr; +}; + +class galastrm_renderer : public poly_manager +{ +public: + galastrm_renderer(galastrm_state &state); + + void tc0610_draw_scanline(s32 scanline, const extent_t& extent, const gs_poly_data& object, int threadid); + void tc0610_rotate_draw(bitmap_ind16 &srcbitmap, const rectangle &clip); + + bitmap_ind16 &screenbits() { return m_screenbits; } + +private: + galastrm_state& m_state; + bitmap_ind16 m_screenbits; +}; galastrm_renderer::galastrm_renderer(galastrm_state& state) : poly_manager(state.machine()) @@ -369,6 +371,7 @@ void galastrm_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, c } } + /************************************************************** POLYGON RENDERER **************************************************************/ @@ -576,6 +579,7 @@ void galastrm_renderer::tc0610_rotate_draw(bitmap_ind16 &srcbitmap, const rectan wait(); } + /************************************************************** SCREEN REFRESH **************************************************************/ @@ -652,8 +656,6 @@ u32 galastrm_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, c if (!machine().input().code_pressed(KEYCODE_B)) m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[4], 0, 0); if (!machine().input().code_pressed(KEYCODE_M)) m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, pivlayer[2], 0, 0); - - #else if (layer[0] == 0 && layer[1] == 3 && layer[2] == 2 && layer[3] == 1) { @@ -701,8 +703,6 @@ u32 galastrm_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, c } -// machine - /*********************************************************************/ INTERRUPT_GEN_MEMBER(galastrm_state::interrupt) @@ -731,7 +731,7 @@ void galastrm_state::coin_word_w(u8 data) machine().bookkeeping().coin_lockout_w(0, ~data & 0x01); machine().bookkeeping().coin_lockout_w(1, ~data & 0x02); machine().bookkeeping().coin_counter_w(0, data & 0x04); - machine().bookkeeping().coin_counter_w(1, data & 0x04); + machine().bookkeeping().coin_counter_w(1, data & 0x08); } @@ -757,6 +757,7 @@ void galastrm_state::main_map(address_map &map) map(0xd20000, 0xd2000f).rw(m_tc0100scn, FUNC(tc0100scn_device::ctrl_r), FUNC(tc0100scn_device::ctrl_w)); } + /*********************************************************** INPUT PORTS (dips in eprom) ***********************************************************/ @@ -824,8 +825,6 @@ GFXDECODE_END MACHINE DRIVERS ***********************************************************/ -/***************************************************************************/ - void galastrm_state::galastrm(machine_config &config) { // basic machine hardware @@ -879,6 +878,7 @@ void galastrm_state::galastrm(machine_config &config) taito_en.add_route(1, "rspeaker", 1.0); } + /***************************************************************************/ ROM_START( galastrm )