diff options
| author | 2025-07-24 00:41:31 +0200 | |
|---|---|---|
| committer | 2025-07-24 00:41:38 +0200 | |
| commit | 6c9d79df2e720da91a7e1b254d82ed0d441c8146 (patch) | |
| tree | e5dc27a8994a56d2a8cef314716cac74ff727b5a /src | |
| parent | 8f0be6bda568ab984e42782990ab8c1e58daf353 (diff) | |
bus/megadrive/eeprom.cpp: fix i2c types for nbajamte and nflqb, rename md_eeprom_nflqb_device -> md_eeprom_nflqb96_device
Diffstat (limited to 'src')
| -rw-r--r-- | src/devices/bus/megadrive/eeprom.cpp | 30 | ||||
| -rw-r--r-- | src/devices/bus/megadrive/eeprom.h | 8 | ||||
| -rw-r--r-- | src/devices/bus/megadrive/md_carts.cpp | 4 | ||||
| -rw-r--r-- | src/devices/bus/megadrive/md_slot.cpp | 2 |
4 files changed, 26 insertions, 18 deletions
diff --git a/src/devices/bus/megadrive/eeprom.cpp b/src/devices/bus/megadrive/eeprom.cpp index 533d5d540fa..23005b89998 100644 --- a/src/devices/bus/megadrive/eeprom.cpp +++ b/src/devices/bus/megadrive/eeprom.cpp @@ -55,7 +55,7 @@ DEFINE_DEVICE_TYPE(MD_STD_EEPROM, md_std_eeprom_device, "md_std_eeprom", "MD Standard cart + EEPROM") DEFINE_DEVICE_TYPE(MD_EEPROM_NBAJAM, md_eeprom_nbajam_device, "md_eeprom_nbajam", "MD NBA Jam") DEFINE_DEVICE_TYPE(MD_EEPROM_NBAJAMTE, md_eeprom_nbajamte_device, "md_eeprom_nbajamte", "MD NBA Jam TE") // and a few more -DEFINE_DEVICE_TYPE(MD_EEPROM_NFLQB, md_eeprom_nflqb_device, "md_eeprom_nflqb", "MD NFL Quarterback 96") +DEFINE_DEVICE_TYPE(MD_EEPROM_NFLQB96, md_eeprom_nflqb96_device, "md_eeprom_nflqb96", "MD NFL Quarterback 96") DEFINE_DEVICE_TYPE(MD_EEPROM_CSLAM, md_eeprom_cslam_device, "md_eeprom_cslam", "MD College Slam") DEFINE_DEVICE_TYPE(MD_EEPROM_NHLPA, md_eeprom_nhlpa_device, "md_eeprom_nhlpa", "MD NHLPA 93") DEFINE_DEVICE_TYPE(MD_EEPROM_BLARA, md_eeprom_blara_device, "md_eeprom_blara", "MD Brian Lara") @@ -84,8 +84,8 @@ md_eeprom_nbajamte_device::md_eeprom_nbajamte_device(const machine_config &mconf { } -md_eeprom_nflqb_device::md_eeprom_nflqb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_eeprom_device(mconfig, MD_EEPROM_NFLQB, tag, owner, clock) +md_eeprom_nflqb96_device::md_eeprom_nflqb96_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : md_std_eeprom_device(mconfig, MD_EEPROM_NFLQB96, tag, owner, clock) { } @@ -121,12 +121,13 @@ void md_std_eeprom_device::device_add_mconfig(machine_config &config) void md_eeprom_nbajam_device::device_add_mconfig(machine_config &config) { + // nflqb uses a 24LC02B I2C_24C02(config, m_i2cmem); } void md_eeprom_nbajamte_device::device_add_mconfig(machine_config &config) { - I2C_24C01(config, m_i2cmem); + I2C_24C04(config, m_i2cmem); // 24LC04B } void md_eeprom_cslam_device::device_add_mconfig(machine_config &config) @@ -134,7 +135,7 @@ void md_eeprom_cslam_device::device_add_mconfig(machine_config &config) I2C_24C64(config, m_i2cmem); } -void md_eeprom_nflqb_device::device_add_mconfig(machine_config &config) +void md_eeprom_nflqb96_device::device_add_mconfig(machine_config &config) { I2C_24C16(config, m_i2cmem); } @@ -286,7 +287,7 @@ void md_eeprom_cslam_device::write(offs_t offset, uint16_t data, uint16_t mem_ma } // same as NBAJAMTE above... derived class? -uint16_t md_eeprom_nflqb_device::read(offs_t offset) +uint16_t md_eeprom_nflqb96_device::read(offs_t offset) { if (offset == 0x200000/2) { @@ -299,14 +300,21 @@ uint16_t md_eeprom_nflqb_device::read(offs_t offset) return 0xffff; } -void md_eeprom_nflqb_device::write(offs_t offset, uint16_t data, uint16_t mem_mask) +void md_eeprom_nflqb96_device::write(offs_t offset, uint16_t data, uint16_t mem_mask) { if (offset == 0x200000/2) { - m_i2c_clk = BIT(data, 8); - m_i2c_mem = BIT(data, 0); - m_i2cmem->write_scl(m_i2c_clk); - m_i2cmem->write_sda(m_i2c_mem); + if(ACCESSING_BITS_8_15) + { + m_i2c_clk = BIT(data, 8); + m_i2cmem->write_scl(m_i2c_clk); + } + + if(ACCESSING_BITS_0_7) + { + m_i2c_mem = BIT(data, 0); + m_i2cmem->write_sda(m_i2c_mem); + } } } diff --git a/src/devices/bus/megadrive/eeprom.h b/src/devices/bus/megadrive/eeprom.h index 729f9c338db..fd1a6d40603 100644 --- a/src/devices/bus/megadrive/eeprom.h +++ b/src/devices/bus/megadrive/eeprom.h @@ -89,13 +89,13 @@ protected: virtual void write(offs_t offset, uint16_t data, uint16_t mem_mask = ~0) override; }; -// ======================> md_eeprom_nflqb_device (same read/write as nbajamte, but different I2C type) +// ======================> md_eeprom_nflqb96_device (same read/write as nbajamte, but different I2C type) -class md_eeprom_nflqb_device : public md_std_eeprom_device +class md_eeprom_nflqb96_device : public md_std_eeprom_device { public: // construction/destruction - md_eeprom_nflqb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + md_eeprom_nflqb96_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: // device-level overrides @@ -159,7 +159,7 @@ DECLARE_DEVICE_TYPE(MD_STD_EEPROM, md_std_eeprom_device) DECLARE_DEVICE_TYPE(MD_EEPROM_NBAJAM, md_eeprom_nbajam_device) DECLARE_DEVICE_TYPE(MD_EEPROM_NBAJAMTE, md_eeprom_nbajamte_device) DECLARE_DEVICE_TYPE(MD_EEPROM_CSLAM, md_eeprom_cslam_device) -DECLARE_DEVICE_TYPE(MD_EEPROM_NFLQB, md_eeprom_nflqb_device) +DECLARE_DEVICE_TYPE(MD_EEPROM_NFLQB96, md_eeprom_nflqb96_device) DECLARE_DEVICE_TYPE(MD_EEPROM_NHLPA, md_eeprom_nhlpa_device) DECLARE_DEVICE_TYPE(MD_EEPROM_BLARA, md_eeprom_blara_device) DECLARE_DEVICE_TYPE(MD_EEPROM_MODE1, md_eeprom_mode1_device) diff --git a/src/devices/bus/megadrive/md_carts.cpp b/src/devices/bus/megadrive/md_carts.cpp index c5be97a54f4..390452c15d0 100644 --- a/src/devices/bus/megadrive/md_carts.cpp +++ b/src/devices/bus/megadrive/md_carts.cpp @@ -35,8 +35,8 @@ void md_cart(device_slot_interface &device) // EEPROM handling (most not supported fully yet) device.option_add_internal("rom_eeprom", MD_STD_EEPROM); device.option_add_internal("rom_nbajam", MD_EEPROM_NBAJAM); - device.option_add_internal("rom_nbajamte", MD_EEPROM_NBAJAMTE); - device.option_add_internal("rom_nflqb96", MD_EEPROM_NFLQB); + device.option_add_internal("rom_nbajamte", MD_EEPROM_NBAJAMTE); + device.option_add_internal("rom_nflqb96", MD_EEPROM_NFLQB96); device.option_add_internal("rom_cslam", MD_EEPROM_CSLAM); device.option_add_internal("rom_nhlpa", MD_EEPROM_NHLPA); device.option_add_internal("rom_blara", MD_EEPROM_BLARA); diff --git a/src/devices/bus/megadrive/md_slot.cpp b/src/devices/bus/megadrive/md_slot.cpp index a7b4d2a20ac..4117938650f 100644 --- a/src/devices/bus/megadrive/md_slot.cpp +++ b/src/devices/bus/megadrive/md_slot.cpp @@ -229,7 +229,7 @@ static const md_slot slot_list[] = { NBA_JAM, "rom_nbajam" }, { NBA_JAM_ALT, "rom_nbajam_alt" }, { NBA_JAM_TE, "rom_nbajamte" }, - { NFL_QB_96, "rom_nflqb" }, + { NFL_QB_96, "rom_nflqb96" }, { C_SLAM, "rom_cslam" }, { EA_NHLPA, "rom_nhlpa" }, { BRIAN_LARA, "rom_blara" }, |
