From 9e463d2b89c9bb1d715f540e13a70817060f5b77 Mon Sep 17 00:00:00 2001 From: Vas Crabb Date: Tue, 31 Dec 2024 04:13:40 +1100 Subject: Clean up some mess: * moog/source.cpp: A synth without sound output is not working by definition. * casio/pickytlk.cpp: Don't use overly generic short names for Plet's systems. * casio/pickytlk.cpp: Don't use overly convolutes code for setting internal layout. --- src/frontend/mame/luaengine.cpp | 5 +- src/mame/casio/pickytlk.cpp | 103 ++++++++++++++-------------------------- src/mame/mame.lst | 4 +- src/mame/misc/homedata.cpp | 2 +- src/mame/moog/source.cpp | 43 +++++++++-------- 5 files changed, 63 insertions(+), 94 deletions(-) diff --git a/src/frontend/mame/luaengine.cpp b/src/frontend/mame/luaengine.cpp index 8d97c93237b..d84dbd358b9 100644 --- a/src/frontend/mame/luaengine.cpp +++ b/src/frontend/mame/luaengine.cpp @@ -1463,7 +1463,7 @@ void lua_engine::initialize() machine_type["images"] = sol::property([] (running_machine &m) { return devenum(m.root_device()); }); machine_type["slots"] = sol::property([](running_machine &m) { return devenum(m.root_device()); }); machine_type["phase"] = sol::property( - [](running_machine& m) + [] (running_machine const &m) -> char const * { switch (m.phase()) { @@ -1472,10 +1472,11 @@ void lua_engine::initialize() case machine_phase::RESET: return "reset"; case machine_phase::RUNNING: return "running"; case machine_phase::EXIT: return "exit"; - default: return ""; } + return nullptr; }); + auto game_driver_type = sol().registry().new_usertype("game_driver", sol::no_constructor); game_driver_type["name"] = sol::property([] (game_driver const &driver) { return &driver.name[0]; }); game_driver_type["description"] = sol::property([] (game_driver const &driver) { return &driver.type.fullname()[0]; }); diff --git a/src/mame/casio/pickytlk.cpp b/src/mame/casio/pickytlk.cpp index bced0df7fb0..508b82cc636 100644 --- a/src/mame/casio/pickytlk.cpp +++ b/src/mame/casio/pickytlk.cpp @@ -65,21 +65,6 @@ namespace { class pickytlk_base_state : public driver_device { public: - pickytlk_base_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) - , m_display_ram(*this, "display_ram") - , m_maincpu(*this, "maincpu") - , m_io_buttons(*this, "BUTTONS") - , m_io_pen_x(*this, "PEN_X") - , m_io_pen_y(*this, "PEN_Y") - , m_io_pen_y_rescale(*this, "PEN_Y_RESCALE") - , m_ko(0) - , m_port(0) - , m_opt(0) - { } - - void pickytlk(machine_config &config); - DECLARE_CROSSHAIR_MAPPER_MEMBER(pen_y_mapper); ioport_value pen_y_rescale_r(); ioport_value pen_target_r(); @@ -98,9 +83,24 @@ protected: PEN_HOLD = 2, }; + pickytlk_base_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_display_ram(*this, "display_ram") + , m_maincpu(*this, "maincpu") + , m_io_buttons(*this, "BUTTONS") + , m_io_pen_x(*this, "PEN_X") + , m_io_pen_y(*this, "PEN_Y") + , m_io_pen_y_rescale(*this, "PEN_Y_RESCALE") + , m_ko(0) + , m_port(0) + , m_opt(0) + { } + virtual void machine_start() override ATTR_COLD; virtual void machine_reset() override ATTR_COLD; + void pickytlk(machine_config &config) ATTR_COLD; + void kol_w(u8 data); void koh_w(u8 data); void port_w(u8 data); @@ -112,10 +112,9 @@ protected: TIMER_CALLBACK_MEMBER(io_timer_tick); u8 io_pen_x_read(); u8 io_pen_y_read(); - virtual u8 tablet_read(offs_t offset); + virtual u8 tablet_read(offs_t offset) = 0; void tablet_write(offs_t offset, u8 data); - virtual void pickytlk_layout(machine_config &config); void update_crosshair(screen_device &screen); u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); @@ -231,12 +230,6 @@ u8 pickytlk_base_state::io_pen_y_read() : rescale(io_pen_y_pos, io_pen_y_min, io_pen_y_max, 0xa0, 0xf0); } -u8 pickytlk_base_state::tablet_read(offs_t offset) -{ - // Default (overriden by each system) - return 0; -} - void pickytlk_base_state::tablet_write(offs_t offset, u8 data) { LOGMASKED(LOG_TABLET, "%s: tablet_write [%02x] = %02x\n", machine().describe_context(), offset, data); @@ -286,7 +279,7 @@ u8 pickytlk_base_state::ki_r() m_io_timer->reset(attotime::never); } - return m_pen_state == PEN_PRESS ? 0x80 : 0; + return (m_pen_state == PEN_PRESS) ? 0x80 : 0; } u8 pickytlk_base_state::in0_r() @@ -303,12 +296,7 @@ u8 pickytlk_base_state::in0_r() u8 pickytlk_base_state::input_flag_read() { - return m_pen_state == PEN_PRESS || m_pen_state == PEN_HOLD ? 0 : 1; -} - -void pickytlk_base_state::pickytlk_layout(machine_config &config) -{ - // Nothing (overriden by each system) + return (m_pen_state == PEN_PRESS || m_pen_state == PEN_HOLD) ? 0 : 1; } void pickytlk_base_state::update_crosshair(screen_device &screen) @@ -384,8 +372,6 @@ void pickytlk_base_state::pickytlk(machine_config &config) screen.set_visarea(0, 126, 0, 63); screen.set_screen_update(FUNC(pickytlk_base_state::screen_update)); screen.set_palette("palette"); - - pickytlk_layout(config); } @@ -396,20 +382,14 @@ public: : pickytlk_base_state(mconfig, type, tag) { } - void pickytlk_monocolor(machine_config &config); + void pickytlk_monocolor(machine_config &config) ATTR_COLD; private: virtual u8 tablet_read(offs_t offset) override; - virtual void pickytlk_layout(machine_config &config) override; - void pickytlk_mem(address_map &map); - void pickytlk_palette(palette_device &palette) const; + void pickytlk_mem(address_map &map) ATTR_COLD; + void pickytlk_palette(palette_device &palette) const ATTR_COLD; }; -void pickytlk_monocolor_state::pickytlk_layout(machine_config &config) -{ - config.set_default_layout(layout_pickytlk); -} - u8 pickytlk_monocolor_state::tablet_read(offs_t offset) { LOGMASKED(LOG_TABLET, "%s: tablet_read [%02x] = %02x\n", machine().describe_context(), offset, m_io_tablet_regs[offset]); @@ -460,6 +440,8 @@ void pickytlk_monocolor_state::pickytlk_monocolor(machine_config &config) // TODO: Verify palette. Colors can be changed by changing the contrast. PALETTE(config, "palette", FUNC(pickytlk_monocolor_state::pickytlk_palette), 4); + + config.set_default_layout(layout_pickytlk); } @@ -470,20 +452,15 @@ public: : pickytlk_base_state(mconfig, type, tag) { } - void pickytlk_multicolor(machine_config &config); + void plets(machine_config &config) ATTR_COLD; + void pickytlk_multicolor(machine_config &config) ATTR_COLD; private: virtual u8 tablet_read(offs_t offset) override; - virtual void pickytlk_layout(machine_config &config) override; - void pickytlk_mem(address_map &map); - void pickytlk_palette(palette_device &palette) const; + void pickytlk_mem(address_map &map) ATTR_COLD; + void pickytlk_palette(palette_device &palette) const ATTR_COLD; }; -void pickytlk_multicolor_state::pickytlk_layout(machine_config &config) -{ - config.set_default_layout(layout_pickytlk); -} - u8 pickytlk_multicolor_state::tablet_read(offs_t offset) { /* @@ -545,7 +522,7 @@ void pickytlk_multicolor_state::pickytlk_palette(palette_device &palette) const palette.set_pen_color(3, 0xee, 0x77, 0x33); } -void pickytlk_multicolor_state::pickytlk_multicolor(machine_config &config) +void pickytlk_multicolor_state::plets(machine_config &config) { pickytlk_base_state::pickytlk(config); @@ -555,21 +532,11 @@ void pickytlk_multicolor_state::pickytlk_multicolor(machine_config &config) PALETTE(config, "palette", FUNC(pickytlk_multicolor_state::pickytlk_palette), 4); } - -class plets_state : public pickytlk_multicolor_state +void pickytlk_multicolor_state::pickytlk_multicolor(machine_config &config) { -public: - plets_state(const machine_config &mconfig, device_type type, const char *tag) - : pickytlk_multicolor_state(mconfig, type, tag) - { } + plets(config); -private: - virtual void pickytlk_layout(machine_config &config) override; -}; - -void plets_state::pickytlk_layout(machine_config &config) -{ - // Nothing + config.set_default_layout(layout_pickytlk); } @@ -617,14 +584,14 @@ ROM_START(pickytlk) ROM_LOAD("d23c8000xgx-c64.lsi5", 0x00000, 0x100000, CRC(6ed6feae) SHA1(f9a63db3d048da0954cab052690deb01ec384b22)) ROM_END -ROM_START(mk300) +ROM_START(plets300) CPU_ROM_MULTICOLOR ROM_REGION(0x100000, "mask_rom", 0) ROM_LOAD("d23c8000xgx-c77.lsi5", 0x00000, 0x100000, CRC(50ecb853) SHA1(5f2564ccb6ff7e0e5a21064ca32626f35dc81506)) ROM_END -ROM_START(mk350) +ROM_START(plets350) CPU_ROM_MULTICOLOR ROM_REGION(0x100000, "mask_rom", 0) @@ -650,7 +617,7 @@ COMP(1997?, jd368, 0, 0, pickytlk_multicolor, pickytlk, pickytlk_multicolor_stat COMP(1998, pickytlk, 0, 0, pickytlk_multicolor, pickytlk, pickytlk_multicolor_state, empty_init, "Casio", "Super Picky Talk - Forest of Gurutan", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) // Release date 1999-09 from "Casio Game Perfect Catalogue" -COMP(1999, mk300, 0, 0, pickytlk_multicolor, pickytlk, plets_state, empty_init, "Casio", "Plet's (MK-300)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) +COMP(1999, plets300, 0, 0, plets, pickytlk, pickytlk_multicolor_state, empty_init, "Casio", "Plet's (MK-300)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) // ROM date 0019K7001 -COMP(2000?, mk350, 0, 0, pickytlk_multicolor, pickytlk, plets_state, empty_init, "Casio", "Plet's (MK-350)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) +COMP(2000?, plets350, 0, 0, plets, pickytlk, pickytlk_multicolor_state, empty_init, "Casio", "Plet's (MK-350)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 9f1323035b5..92d1bcd35dd 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -16189,10 +16189,10 @@ pb2000c // Casio PB-2000C jd363 // Casio Picky Talk - Super Denshi Techou jd364 // Casio Color Picky Talk - Super Denshi Techou jd368 // Casio Super Picky Talk - Access Pet -mk300 // Casio Plet's (MK-300) -mk350 // Casio Plet's (MK-350) pickydis // Tsukuda Original Disney Characters - Tegaki Electronic Note pickytlk // Casio Super Picky Talk - Forest of Gurutan +plets300 // Casio Plet's (MK-300) +plets350 // Casio Plet's (MK-350) @source:casio/pv1000.cpp pv1000 // Casio PV-1000 diff --git a/src/mame/misc/homedata.cpp b/src/mame/misc/homedata.cpp index e1a9f5139d5..bf9fbfe5691 100644 --- a/src/mame/misc/homedata.cpp +++ b/src/mame/misc/homedata.cpp @@ -264,7 +264,7 @@ uint8_t mrokumei_state::mrokumei_keyboard_r(offs_t offset) { uint8_t res = 0x3f; - // offset 0 is player 1, offset 1 player 2 (not supported) + // offset 0 is player 1, offset 1 player 2 for (int i = 0; i < 5; i++) { if (BIT(m_keyb, i)) diff --git a/src/mame/moog/source.cpp b/src/mame/moog/source.cpp index 53ddbee8f5b..2365998cb35 100644 --- a/src/mame/moog/source.cpp +++ b/src/mame/moog/source.cpp @@ -47,17 +47,18 @@ TODO: #include "moog_source.lh" -#define LOG_CV (1U << 1) -#define LOG_BUTTONS (1U << 2) -#define LOG_ENCODER (1U << 3) -#define LOG_KEYBOARD (1U << 4) -#define LOG_CV_KEYBOARD_APPROX (1U << 5) +#define LOG_CV (1U << 1) +#define LOG_BUTTONS (1U << 2) +#define LOG_ENCODER (1U << 3) +#define LOG_KEYBOARD (1U << 4) +#define LOG_CV_KEYBOARD_APPROX (1U << 5) + #define VERBOSE (LOG_GENERAL|LOG_CV) -#define LOG_OUTPUT_FUNC osd_printf_info +//#define LOG_OUTPUT_FUNC osd_printf_info + #include "logmacro.h" -namespace -{ +namespace { constexpr const char MAINCPU_TAG[] = "z80"; constexpr const char NVRAM_TAG[] = "nvram"; @@ -65,8 +66,7 @@ constexpr const char NVRAM_TAG[] = "nvram"; class source_state : public driver_device { public: - source_state(const machine_config& mconfig, device_type type, - const char* tag) ATTR_COLD + source_state(const machine_config &mconfig, device_type type, const char* tag) ATTR_COLD : driver_device(mconfig, type, tag) , m_maincpu(*this, MAINCPU_TAG) , m_octave_io(*this, "octave_buttons") @@ -90,14 +90,15 @@ public: , m_cv(static_cast(CV::SIZE), -1) {} - void source(machine_config& config) ATTR_COLD; - - void machine_start() override ATTR_COLD; - void machine_reset() override ATTR_COLD; + void source(machine_config &config) ATTR_COLD; DECLARE_INPUT_CHANGED_MEMBER(octave_button_pressed); DECLARE_INPUT_CHANGED_MEMBER(encoder_moved); +protected: + void machine_start() override ATTR_COLD; + void machine_reset() override ATTR_COLD; + private: void update_octave_leds(); @@ -144,6 +145,8 @@ private: u8 m_button_row_latch = 0xff; bool m_encoder_incr = false; + std::vector m_cv; + // All MUXes are CD4051B. // Component designations refer to board 2 (synthesizer board). // The enum names match the CV labels in the schematic, but some @@ -182,7 +185,6 @@ private: SIZE }; - std::vector m_cv; static constexpr const float MAX_CV = 10; // In Volts. static constexpr const u8 PATTERNS_7447[16] = @@ -365,9 +367,9 @@ void source_state::cv_w(offs_t offset, u8 data) return; const float cv = MAX_CV * data / 255.0f; - if (cv == m_cv.at(offset)) + if (cv == m_cv[offset]) return; - m_cv.at(offset) = cv; + m_cv[offset] = cv; if (offset == static_cast(CV::KEYBOARD_APPROX)) LOGMASKED(LOG_CV_KEYBOARD_APPROX, @@ -445,7 +447,7 @@ u8 source_state::keyboard_r() // TODO: Compute keyboard voltage in an input callback. static constexpr const int KB_APPROX_INDEX = static_cast(CV::KEYBOARD_APPROX); - const u8 d0 = (get_keyboard_v() >= m_cv.at(KB_APPROX_INDEX)) ? 1 : 0; + const u8 d0 = (get_keyboard_v() >= m_cv[KB_APPROX_INDEX]) ? 1 : 0; // D1, D2: Loudness and Filter contour peaks. // D1 <- U32, FILT CNTR <- S22-11: 0 when envolope reaches almost 10V @@ -833,7 +835,6 @@ ROM_START(moogsource) ROMX_LOAD("3p3.u23", 0x000000, 0x001000, CRC(4211331f) SHA1(8767ef6b1cbb032a89a78bdb77bb7dbc1c187974), ROM_BIOS(0)) ROM_END -} // Anonymous namespace. - -SYST(1981, moogsource, 0, 0, source, source, source_state, empty_init, "Moog Music", "Moog Source", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND) +} // anonymous namespace. +SYST(1981, moogsource, 0, 0, source, source, source_state, empty_init, "Moog Music", "Moog Source", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND) -- cgit v1.2.3