diff options
author | Ivan Vangelista <mesgnet@yahoo.it> | 2021-02-19 18:20:13 +0100 |
---|---|---|
committer | Ivan Vangelista <mesgnet@yahoo.it> | 2021-02-19 18:20:13 +0100 |
commit | 78753e4a35ae638979f286e5a141389a2fd42834 (patch) | |
tree | fceab04cb7182b64f4821af008f1c86ac4c15f47 | |
parent | 249d4f599f20b5abf05d6bf9bf07466b620f5396 (diff) |
- esqkt.cpp, istrebiteli.cpp, ti99_2.cpp, ti99_4p.cpp: used object finders
- megatech.cpp, mrgame.cpp, nes.cpp, stuntair.cpp, vegas.cpp: removed unneeded machine().root_device() calls
-rw-r--r-- | src/mame/drivers/esqkt.cpp | 35 | ||||
-rw-r--r-- | src/mame/drivers/istrebiteli.cpp | 41 | ||||
-rw-r--r-- | src/mame/drivers/megatech.cpp | 4 | ||||
-rw-r--r-- | src/mame/drivers/mrgame.cpp | 2 | ||||
-rw-r--r-- | src/mame/drivers/nes.cpp | 2 | ||||
-rw-r--r-- | src/mame/drivers/stuntair.cpp | 2 | ||||
-rw-r--r-- | src/mame/drivers/ti99_2.cpp | 13 | ||||
-rw-r--r-- | src/mame/drivers/ti99_4p.cpp | 14 | ||||
-rw-r--r-- | src/mame/drivers/vegas.cpp | 2 |
9 files changed, 72 insertions, 43 deletions
diff --git a/src/mame/drivers/esqkt.cpp b/src/mame/drivers/esqkt.cpp index d0e37084725..96f22da90fb 100644 --- a/src/mame/drivers/esqkt.cpp +++ b/src/mame/drivers/esqkt.cpp @@ -102,6 +102,9 @@ #include "speaker.h" + +namespace { + class esqkt_state : public driver_device { public: @@ -113,12 +116,16 @@ public: , m_duart(*this, "duart") , m_sq1panel(*this, "sq1panel") , m_mdout(*this, "mdout") + , m_rom(*this, "osrom") + , m_ram(*this, "osram") { } void kt(machine_config &config); void ts(machine_config &config); - void init_kt(); +protected: + virtual void machine_start() override; + virtual void machine_reset() override; private: required_device<m68000_base_device> m_maincpu; @@ -127,9 +134,8 @@ private: required_device<scn2681_device> m_duart; required_device<esqpanel_device> m_sq1panel; required_device<midi_port_device> m_mdout; - - virtual void machine_start() override; - virtual void machine_reset() override; + required_region_ptr<uint16_t> m_rom; + required_shared_ptr<uint16_t> m_ram; DECLARE_WRITE_LINE_MEMBER(duart_irq_handler); DECLARE_WRITE_LINE_MEMBER(duart_tx_a); @@ -137,21 +143,20 @@ private: void duart_output(u8 data); u8 m_duart_io; - bool m_bCalibSecondByte; + bool m_bCalibSecondByte; // only set to false on machine_reset()? DECLARE_WRITE_LINE_MEMBER(esq5506_otto_irq); u16 esq5506_read_adc(); void es5506_clock_changed(u32 data); void kt_map(address_map &map); void ts_map(address_map &map); - - u16 *m_rom, *m_ram; }; void esqkt_state::machine_start() { - m_rom = (u16 *)(void *)memregion("osrom")->base(); - m_ram = (u16 *)(void *)memshare("osram")->ptr(); + m_duart_io = 0; + + save_item(NAME(m_duart_io)); } void esqkt_state::machine_reset() @@ -408,11 +413,9 @@ ROM_START( ts12 ) ROM_REGION(0x400000, "waverom4", ROMREGION_ERASE00) ROM_END -void esqkt_state::init_kt() -{ - m_duart_io = 0; -} +} // Anonymous namespace + -CONS( 1993, ts10, 0, 0, ts, kt, esqkt_state, init_kt, "Ensoniq", "TS-10", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) -CONS( 1993, ts12, 0, 0, ts, kt, esqkt_state, init_kt, "Ensoniq", "TS-12", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) -CONS( 1996, kt76, 0, 0, kt, kt, esqkt_state, init_kt, "Ensoniq", "KT-76", MACHINE_IMPERFECT_SOUND ) +CONS( 1993, ts10, 0, 0, ts, kt, esqkt_state, empty_init, "Ensoniq", "TS-10", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) +CONS( 1993, ts12, 0, 0, ts, kt, esqkt_state, empty_init, "Ensoniq", "TS-12", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) +CONS( 1996, kt76, 0, 0, kt, kt, esqkt_state, empty_init, "Ensoniq", "KT-76", MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/istrebiteli.cpp b/src/mame/drivers/istrebiteli.cpp index 065c5329159..06872e1ad7a 100644 --- a/src/mame/drivers/istrebiteli.cpp +++ b/src/mame/drivers/istrebiteli.cpp @@ -5,7 +5,7 @@ Istrebiteli driver by MetalliC TODO: - hardware-like noice sound generation + hardware-like noise sound generation accurate sprite collision how to play: @@ -16,8 +16,8 @@ insert 12 or more coins then press 2 player start notes: - dumped PCB is early game version, have several bugs, possible test/prototype. - later version was seen in St.Petersburg arcade museum, CPU board have single 8Kx8 ROM. + dumped PCB is early game version, has several bugs, possible test/prototype. + later version was seen in St.Petersburg arcade museum, CPU board has single 8Kx8 ROM. **************************************************************************/ @@ -36,6 +36,12 @@ class istrebiteli_sound_device : public device_t, public device_sound_interface { public: + template <typename T> istrebiteli_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, T &®ion_tag) + : istrebiteli_sound_device(mconfig, tag, owner, clock) + { + m_rom.set_tag(std::forward<T>(region_tag)); + } + istrebiteli_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); void sound_w(uint8_t data); @@ -50,10 +56,10 @@ protected: private: // internal state sound_stream *m_channel; - uint8_t *m_rom; - int m_rom_cnt; - int m_rom_incr; - int m_sample_num; + required_region_ptr<uint8_t> m_rom; + uint16_t m_rom_cnt; + uint8_t m_rom_incr; + uint8_t m_sample_num; bool m_cnt_reset; bool m_rom_out_en; uint8_t m_prev_data; @@ -69,7 +75,7 @@ istrebiteli_sound_device::istrebiteli_sound_device(const machine_config &mconfig : device_t(mconfig, ISTREBITELI_SOUND, tag, owner, clock), device_sound_interface(mconfig, *this), m_channel(nullptr), - m_rom(nullptr), + m_rom(*this, finder_base::DUMMY_TAG), m_rom_cnt(0), m_rom_incr(0), m_sample_num(0), @@ -82,7 +88,13 @@ istrebiteli_sound_device::istrebiteli_sound_device(const machine_config &mconfig void istrebiteli_sound_device::device_start() { m_channel = stream_alloc(0, 1, clock() / 2); - m_rom = machine().root_device().memregion("soundrom")->base(); + + save_item(NAME(m_rom_cnt)); + save_item(NAME(m_rom_incr)); + save_item(NAME(m_sample_num)); + save_item(NAME(m_cnt_reset)); + save_item(NAME(m_rom_out_en)); + save_item(NAME(m_prev_data)); } void istrebiteli_sound_device::sound_stream_update(sound_stream &stream, std::vector<read_stream_view> const &inputs, std::vector<write_stream_view> &outputs) @@ -96,7 +108,7 @@ void istrebiteli_sound_device::sound_stream_update(sound_stream &stream, std::ve smpl = (m_rom[m_rom_cnt] >> m_sample_num) & 1; // below is huge guess - if ((m_prev_data & 0x40) == 0) // b6 noice enable ? + if ((m_prev_data & 0x40) == 0) // b6 noise enable ? smpl &= machine().rand() & 1; smpl *= (m_prev_data & 0x80) ? 1000 : 4000; // b7 volume ? @@ -125,6 +137,8 @@ void istrebiteli_sound_device::sound_w(uint8_t data) ////////////////////////////////////////////////////////////// +namespace { + class istrebiteli_state : public driver_device { public: @@ -613,7 +627,7 @@ void istrebiteli_state::istreb(machine_config &config) /* sound hardware */ SPEAKER(config, "mono").front_center(); - ISTREBITELI_SOUND(config, m_sound_dev, XTAL(8'000'000) / 2 / 256).add_route(ALL_OUTPUTS, "mono", 1.00); + ISTREBITELI_SOUND(config, m_sound_dev, XTAL(8'000'000) / 2 / 256, "soundrom").add_route(ALL_OUTPUTS, "mono", 1.00); } void istrebiteli_state::motogonki(machine_config &config) @@ -644,7 +658,7 @@ void istrebiteli_state::motogonki(machine_config &config) /* sound hardware */ SPEAKER(config, "mono").front_center(); - ISTREBITELI_SOUND(config, m_sound_dev, XTAL(8'000'000) / 2 / 256).add_route(ALL_OUTPUTS, "mono", 1.00); + ISTREBITELI_SOUND(config, m_sound_dev, XTAL(8'000'000) / 2 / 256, "soundrom").add_route(ALL_OUTPUTS, "mono", 1.00); } ROM_START( istreb ) @@ -691,5 +705,8 @@ ROM_START( motogonki ) ROM_LOAD( "006_04.w13", 0x200, 0x100, CRC(e43a500c) SHA1(c9a90b54587d0dc9d7d66c419790627088f2546e) ) // ports 30-37 address decoder prom ROM_END +} // Anonymous namespace + + GAME( 198?, istreb, 0, istreb, istreb, istrebiteli_state, init_istreb, ROT0, "Terminal", "Istrebiteli", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE) GAME( 198?, motogonki, 0, motogonki, moto, istrebiteli_state, init_moto, ROT0, "Terminal", "Motogonki", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) diff --git a/src/mame/drivers/megatech.cpp b/src/mame/drivers/megatech.cpp index ee10e870316..8d178724f7e 100644 --- a/src/mame/drivers/megatech.cpp +++ b/src/mame/drivers/megatech.cpp @@ -333,14 +333,14 @@ uint8_t mtech_state::sms_ioport_dc_r() { /* 2009-05 FP: would it be worth to give separate inputs to SMS? SMS has only 2 keys A,B (which are B,C on megadrive) */ /* bit 4: TL-A; bit 5: TR-A */ - return (machine().root_device().ioport("PAD1")->read() & 0x3f) | ((machine().root_device().ioport("PAD2")->read() & 0x03) << 6); + return (ioport("PAD1")->read() & 0x3f) | ((ioport("PAD2")->read() & 0x03) << 6); } uint8_t mtech_state::sms_ioport_dd_r() { /* 2009-05 FP: would it be worth to give separate inputs to SMS? SMS has only 2 keys A,B (which are B,C on megadrive) */ /* bit 2: TL-B; bit 3: TR-B; bit 4: RESET; bit 5: unused; bit 6: TH-A; bit 7: TH-B*/ - return ((machine().root_device().ioport("PAD2")->read() & 0x3c) >> 2) | 0x10; + return ((ioport("PAD2")->read() & 0x3c) >> 2) | 0x10; } diff --git a/src/mame/drivers/mrgame.cpp b/src/mame/drivers/mrgame.cpp index 540415439a1..77446a96c15 100644 --- a/src/mame/drivers/mrgame.cpp +++ b/src/mame/drivers/mrgame.cpp @@ -449,7 +449,7 @@ GFXDECODE_END void mrgame_state::mrgame_palette(palette_device &palette) const { static constexpr int resistances[3] = { 1000, 470, 220 }; - uint8_t const *const color_prom = machine().root_device().memregion("proms")->base(); + uint8_t const *const color_prom = memregion("proms")->base(); // compute the color output resistor weights double rweights[3], gweights[3], bweights[2]; diff --git a/src/mame/drivers/nes.cpp b/src/mame/drivers/nes.cpp index a652492622a..ee86ce570c3 100644 --- a/src/mame/drivers/nes.cpp +++ b/src/mame/drivers/nes.cpp @@ -244,7 +244,7 @@ MACHINE_START_MEMBER( nes_state, famitwin ) setup_disk(m_disk); // replace the famicom disk ROM with the famicom twin one (until we modernize the floppy drive) - m_maincpu->space(AS_PROGRAM).install_rom(0xe000, 0xffff, machine().root_device().memregion("maincpu")->base() + 0xe000); + m_maincpu->space(AS_PROGRAM).install_rom(0xe000, 0xffff, memregion("maincpu")->base() + 0xe000); } } diff --git a/src/mame/drivers/stuntair.cpp b/src/mame/drivers/stuntair.cpp index 2bf1fab0223..70e9e015541 100644 --- a/src/mame/drivers/stuntair.cpp +++ b/src/mame/drivers/stuntair.cpp @@ -166,7 +166,7 @@ private: void stuntair_state::stuntair_palette(palette_device &palette) const { // need resistor weights etc - uint8_t const *const color_prom = machine().root_device().memregion("proms")->base(); + uint8_t const *const color_prom = memregion("proms")->base(); for (int i = 0; i < 0x100; i++) { diff --git a/src/mame/drivers/ti99_2.cpp b/src/mame/drivers/ti99_2.cpp index 4bd2a136bf4..302f0b0824b 100644 --- a/src/mame/drivers/ti99_2.cpp +++ b/src/mame/drivers/ti99_2.cpp @@ -183,6 +183,9 @@ #include "logmacro.h" + +namespace { + class ti99_2_state : public driver_device { public: @@ -195,7 +198,7 @@ public: m_ram(*this, TI992_RAM_TAG), m_expport(*this, TI992_EXPPORT_TAG), m_otherbank(false), - m_rom(nullptr), + m_rom(*this, TI992_ROM), m_ram_start(0xf000), m_first_ram_page(0) { } @@ -235,14 +238,13 @@ private: bool m_otherbank; - uint8_t* m_rom; + required_region_ptr<uint8_t> m_rom; int m_ram_start; int m_first_ram_page; }; void ti99_2_state::driver_start() { - m_rom = memregion(TI992_ROM)->base(); m_ram_start = 0xf000 - m_ram->default_size(); m_first_ram_page = m_ram_start >> 12; } @@ -501,6 +503,9 @@ ROM_START(ti99_232) ROM_LOAD("rom4000b.u2b", 0x10000, 0x2000, CRC(34dd52ed) SHA1(e01892b1b110d7d592a7e7f1f39f9f46ea0818db)) ROM_END +} // Anonymous namespace + + // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS COMP( 1983, ti99_224, 0, 0, ti99_224, 0, ti99_2_state, empty_init, "Texas Instruments", "TI-99/2 BASIC Computer (24 KiB ROM)" , MACHINE_NO_SOUND_HW ) -COMP( 1983, ti99_232, 0, 0, ti99_232, 0, ti99_2_state, empty_init, "Texas Instruments", "TI-99/2 BASIC Computer (32 KiB ROM)" , MACHINE_NO_SOUND_HW ) +COMP( 1983, ti99_232, 0, 0, ti99_232, 0, ti99_2_state, empty_init, "Texas Instruments", "TI-99/2 BASIC Computer (32 KiB ROM)" , MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/ti99_4p.cpp b/src/mame/drivers/ti99_4p.cpp index e44e9c54b1c..55e800c5ead 100644 --- a/src/mame/drivers/ti99_4p.cpp +++ b/src/mame/drivers/ti99_4p.cpp @@ -141,6 +141,9 @@ #include "logmacro.h" + +namespace { + class ti99_4p_state : public driver_device { public: @@ -154,7 +157,8 @@ public: m_scratchpad(*this, SGCPU_PADRAM_TAG), m_amsram(*this, SGCPU_AMSRAM_TAG), m_keyboard(*this, "COL%u", 0U), - m_alpha(*this, "ALPHA") + m_alpha(*this, "ALPHA"), + m_rom(*this, "maincpu") { } void ti99_4p_60hz(machine_config &config); @@ -218,7 +222,7 @@ private: void set_keyboard_column(int number, int data); // Pointer to EPROM - uint16_t *m_rom; + required_region_ptr<uint16_t> m_rom; // First joystick. 6 for TI-99/4A static constexpr int FIRSTJOY=6; @@ -981,8 +985,6 @@ void ti99_4p_state::driver_start() m_sysready = ASSERT_LINE; m_muxready = true; - m_rom = (uint16_t*)(memregion("maincpu")->base()); - save_item(NAME(m_int1)); save_item(NAME(m_int2)); save_item(NAME(m_keyboard_column)); @@ -1080,7 +1082,6 @@ void ti99_4p_state::ti99_4p_60hz(machine_config& config) TI99_JOYPORT(config, m_joyport, 0, ti99_joyport_options_plain, "twinjoy"); } - ROM_START(ti99_4p) /*CPU memory space*/ ROM_REGION16_BE(0x10000, "maincpu", 0) @@ -1088,5 +1089,8 @@ ROM_START(ti99_4p) ROM_LOAD16_BYTE("sgcpu_lb.bin", 0x0001, 0x8000, CRC(2a5dc818) SHA1(dec141fe2eea0b930859cbe1ebd715ac29fa8ecb) ) /* system ROMs */ ROM_END +} // Anonymous namespace + + // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS COMP( 1996, ti99_4p, 0, 0, ti99_4p_60hz, ti99_4p, ti99_4p_state, empty_init, "System-99 User Group", "SGCPU (aka TI-99/4P)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/vegas.cpp b/src/mame/drivers/vegas.cpp index efbc06bf8fd..e900aaa0e81 100644 --- a/src/mame/drivers/vegas.cpp +++ b/src/mame/drivers/vegas.cpp @@ -2592,7 +2592,7 @@ void vegas_state::init_nbanfl() // The first three bytes of the blitz00_nov30_1999.u27 ROM are FF's which breaks the reset vector. // These bytes are from blitz00_sep22_1999.u27 which allows the other ROM to start. // The last byte which is part of the checksum is also FF. By changing it to 0x01 the 4 byte checksum matches with the other 3 changes. - uint8_t *romPtr = machine().root_device().memregion(PCI_ID_NILE":rom")->base(); + uint8_t *romPtr = memregion(PCI_ID_NILE":rom")->base(); romPtr[0x0] = 0xe2; romPtr[0x1] = 0x00; romPtr[0x2] = 0xf0; |