summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author angelosa <lordkale4@gmail.com>2025-07-24 00:41:31 +0200
committer angelosa <lordkale4@gmail.com>2025-07-24 00:41:38 +0200
commit6c9d79df2e720da91a7e1b254d82ed0d441c8146 (patch)
treee5dc27a8994a56d2a8cef314716cac74ff727b5a /src
parent8f0be6bda568ab984e42782990ab8c1e58daf353 (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.cpp30
-rw-r--r--src/devices/bus/megadrive/eeprom.h8
-rw-r--r--src/devices/bus/megadrive/md_carts.cpp4
-rw-r--r--src/devices/bus/megadrive/md_slot.cpp2
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" },