s7.cpp: WIP. All machines are somewhat playable.

httip_l1: fixed startup tune.
s3,4,6,6a: used correct segment decoder as per videos.
This commit is contained in:
Robbbert 2021-12-21 04:49:44 +11:00
parent 3f0526942f
commit d786ac4a50
5 changed files with 560 additions and 293 deletions

View File

@ -464,16 +464,16 @@ void s3a_state::s3a_sol0_w(u8 data)
void s3_state::sol1_w(u8 data)
{
if (BIT(data, 0))
m_samples->start(3, 3); // 10 chime
m_samples->start(4, 4); // 10 chime
if (BIT(data, 1))
m_samples->start(2, 2); // 100 chime
m_samples->start(1, 1); // 100 chime
if (BIT(data, 2))
m_samples->start(1, 1); // 1000 chime
m_samples->start(2, 2); // 1000 chime
if (BIT(data, 3))
m_samples->start(4, 4); // 10k chime
m_samples->start(3, 3); // 10k chime
if (BIT(data, 5))
m_samples->start(0, 6); // knocker
@ -536,7 +536,7 @@ void s3_state::dig0_w(u8 data)
void s3_state::dig1_w(u8 data)
{
static const u8 patterns[16] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7c, 0x07, 0x7f, 0x67, 0, 0, 0, 0, 0, 0 }; // MC14558
static const u8 patterns[16] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0,0,0,0,0,0 }; // MC14543
if (m_data_ok)
{
m_digits[m_strobe+16] = patterns[data&15];

View File

@ -408,16 +408,16 @@ void s4_state::sol0_w(u8 data)
void s4_state::sol1_w(u8 data)
{
if (BIT(data, 0))
m_samples->start(3, 3); // 10 chime
m_samples->start(4, 4); // 10 chime
if (BIT(data, 1))
m_samples->start(2, 2); // 100 chime
m_samples->start(1, 1); // 100 chime
if (BIT(data, 2))
m_samples->start(1, 1); // 1000 chime
m_samples->start(2, 2); // 1000 chime
if (BIT(data, 3))
m_samples->start(4, 4); // 10k chime
m_samples->start(3, 3); // 10k chime
if (BIT(data, 5))
m_samples->start(0, 6); // knocker
@ -477,7 +477,7 @@ void s4_state::dig0_w(u8 data)
void s4_state::dig1_w(u8 data)
{
static const u8 patterns[16] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7c, 0x07, 0x7f, 0x67, 0, 0, 0, 0, 0, 0 }; // MC14558
static const u8 patterns[16] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0,0,0,0,0,0 }; // MC14543
if (m_data_ok)
{
m_digits[m_strobe+16] = patterns[data&15];

View File

@ -393,7 +393,7 @@ void s6_state::dig0_w(u8 data)
void s6_state::dig1_w(u8 data)
{
static const u8 patterns[16] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7c, 0x07, 0x7f, 0x67, 0, 0, 0, 0, 0, 0 }; // MC14558
static const u8 patterns[16] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0,0,0,0,0,0 }; // MC14543
if (m_data_ok)
{
m_digits[m_strobe+20] = patterns[data&15];

View File

@ -323,7 +323,7 @@ void s6a_state::dig0_w(u8 data)
void s6a_state::dig1_w(u8 data)
{
static const u8 patterns[16] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7c, 0x07, 0x7f, 0x67, 0, 0, 0, 0, 0, 0 }; // MC14558
static const u8 patterns[16] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0,0,0,0,0,0 }; // MC14543
if (m_data_ok)
{
m_digits[m_strobe+16] = patterns[data&15];

File diff suppressed because it is too large Load Diff