summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
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
commit78753e4a35ae638979f286e5a141389a2fd42834 (patch)
treefceab04cb7182b64f4821af008f1c86ac4c15f47
parent249d4f599f20b5abf05d6bf9bf07466b620f5396 (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.cpp35
-rw-r--r--src/mame/drivers/istrebiteli.cpp41
-rw-r--r--src/mame/drivers/megatech.cpp4
-rw-r--r--src/mame/drivers/mrgame.cpp2
-rw-r--r--src/mame/drivers/nes.cpp2
-rw-r--r--src/mame/drivers/stuntair.cpp2
-rw-r--r--src/mame/drivers/ti99_2.cpp13
-rw-r--r--src/mame/drivers/ti99_4p.cpp14
-rw-r--r--src/mame/drivers/vegas.cpp2
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 &&region_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;