mirror of
https://github.com/holub/mame
synced 2025-07-06 10:29:38 +03:00
midwayic: Make initial serial number random (nw)
This commit is contained in:
parent
4ed62c466d
commit
70b8384564
@ -352,8 +352,8 @@ int smc91c9x_device::address_filter(u8 *buf)
|
||||
|
||||
return ADDR_MULTICAST;
|
||||
}
|
||||
LOGMASKED(LOG_FILTER, "address_filter rejected multicast %02x-%02x-%02x-%02x-%02x-%02x crc: %08x hash: %02x multi: %16ullx\n",
|
||||
buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], crc, m_rx_hash, *(u64*)&m_reg[B3_MT0_1]);
|
||||
LOGMASKED(LOG_FILTER, "address_filter rejected multicast %02x-%02x-%02x-%02x-%02x-%02x crc: %08x hash: %02x multi: %08x%08x\n",
|
||||
buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], crc, m_rx_hash, *(u32*)&m_reg[B3_MT2_3], *(u32*)&m_reg[B3_MT0_1]);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -32,13 +32,12 @@
|
||||
*
|
||||
*************************************/
|
||||
|
||||
void midway_serial_pic_device::generate_serial_data(int upper)
|
||||
void midway_serial_pic_device::generate_serial_data(int upper, uint32_t serial_number)
|
||||
{
|
||||
int year = atoi(machine().system().year), month = 12, day = 11;
|
||||
uint32_t serial_number, temp;
|
||||
uint32_t temp;
|
||||
uint8_t serial_digit[9];
|
||||
|
||||
serial_number = 123456;
|
||||
serial_number += upper * 1000000;
|
||||
|
||||
serial_digit[0] = (serial_number / 100000000) % 10;
|
||||
@ -320,6 +319,9 @@ void midway_serial_pic2_device::device_start()
|
||||
m_time_just_written = 0;
|
||||
m_time_write_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(midway_serial_pic2_device::reset_timer),this));
|
||||
memset(m_default_nvram, 0xff, sizeof(m_default_nvram));
|
||||
// Set the first four bytes to random serial number
|
||||
u32 rand_serial = rand() & 0x7ffff;
|
||||
memcpy(m_default_nvram, &rand_serial, 4);
|
||||
}
|
||||
|
||||
|
||||
@ -580,11 +582,17 @@ WRITE8_MEMBER(midway_serial_pic2_device::write)
|
||||
void midway_serial_pic2_device::nvram_default()
|
||||
{
|
||||
memcpy(m_nvram, m_default_nvram, sizeof(m_nvram));
|
||||
|
||||
// Create serial number from first 4 bytes of nvram memory
|
||||
generate_serial_data(m_upper, (*(uint32_t*)m_nvram) & 0x7ffff);
|
||||
}
|
||||
|
||||
void midway_serial_pic2_device::nvram_read(emu_file &file)
|
||||
{
|
||||
file.read(m_nvram, sizeof(m_nvram));
|
||||
|
||||
// Create serial number from first 4 bytes of nvram memory
|
||||
generate_serial_data(m_upper, (*(uint32_t*)m_nvram) & 0x7ffff);
|
||||
}
|
||||
|
||||
void midway_serial_pic2_device::nvram_write(emu_file &file)
|
||||
|
@ -36,7 +36,7 @@ protected:
|
||||
// device-level overrides
|
||||
virtual void device_start() override;
|
||||
|
||||
void generate_serial_data(int upper);
|
||||
void generate_serial_data(int upper, uint32_t serial_number = 123456);
|
||||
void serial_register_state();
|
||||
|
||||
uint8_t m_data[16]; // reused by other devices
|
||||
|
Loading…
Reference in New Issue
Block a user