mirror of
https://github.com/holub/mame
synced 2025-04-23 17:00:53 +03:00
vectrex: Pass the new value with the timer param, so it ends up in the y integrator. (#10074)
* Param now holds a value and a destination, so that we write the value that existed at send time, rather than whatever's in PORTA when receipt occurs. Fixes 45° vectors in Thrust and Moon Lander (and presumably others).
This commit is contained in:
parent
c90a16481d
commit
c2c4a2dd13
@ -49,7 +49,10 @@ static const double unknown_game_angles[3] = {0,0.16666666, 0.33333333};
|
||||
TIMER_CALLBACK_MEMBER(vectrex_base_state::update_analog)
|
||||
{
|
||||
update_vector();
|
||||
m_analog[param] = m_via_out[PORTA];
|
||||
if (param & 0x100)
|
||||
m_analog[param & 0xff] = param >> 9;
|
||||
else
|
||||
m_analog[param] = m_via_out[PORTA];
|
||||
}
|
||||
|
||||
TIMER_CALLBACK_MEMBER(vectrex_base_state::update_blank)
|
||||
|
@ -275,7 +275,7 @@ void vectrex_state::video_start()
|
||||
|
||||
void vectrex_base_state::multiplexer(int mux)
|
||||
{
|
||||
machine().scheduler().timer_set(attotime::from_nsec(ANALOG_DELAY), timer_expired_delegate(FUNC(vectrex_base_state::update_analog), this), mux);
|
||||
machine().scheduler().timer_set(attotime::from_nsec(ANALOG_DELAY), timer_expired_delegate(FUNC(vectrex_base_state::update_analog), this), m_via_out[PORTA] << 9 | 0x100 | mux);
|
||||
|
||||
if (mux == A_AUDIO)
|
||||
m_dac->write(m_via_out[PORTA] ^ 0x80); // not gate shown on schematic
|
||||
|
Loading…
Reference in New Issue
Block a user