Skip to content

Commit

Permalink
Don't clear the input queue on reset. (#6517)
Browse files Browse the repository at this point in the history
This fixes problems where devices are input line changes are missed
because a device was reset. One case is at startup, where one device's
output is wire to another's input. During start the first device adds,
eg, a RESET assertion to the second. When that device starts, it resets
itself and clears the pending RESET assertion.
  • Loading branch information
hackbar committed Apr 4, 2020
1 parent e69984e commit 7339d77
Showing 1 changed file with 0 additions and 1 deletion.
1 change: 0 additions & 1 deletion src/emu/diexec.cpp
Expand Up @@ -662,7 +662,6 @@ void device_execute_interface::device_input::start(device_execute_interface &exe
void device_execute_interface::device_input::reset()
{
m_curvector = m_stored_vector = m_execute->default_irq_vector(m_linenum);
m_qindex = 0;
}


Expand Down

3 comments on commit 7339d77

@Tafoid
Copy link
Contributor

@Tafoid Tafoid commented on 7339d77 Apr 8, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm slowly discovering some regression in behavior on certain drivers/machines

  • groundfx.cpp, superchs.cpp, undrfire.cpp - loss of sound, major performance decrease. Profile suggests sound stream being recalculated/refresh a LOT. Hints towards taito_en device.
  • mmf9000, mmf9000_se, superpet - loss of characters only black screen. I was not able to 100% determine this change was the core culprit, but I saw no other changes that day that were a direct match for used components

more as I find them..

@happppp
Copy link
Member

@happppp happppp commented on 7339d77 Apr 8, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

taito_en was fixed, I don't know where it's going wrong in superpet (pet.cpp)
edit nevermind, it was a bug in bus/pet/superpet.cpp, fixed as well now.

@Tafoid
Copy link
Contributor

@Tafoid Tafoid commented on 7339d77 Apr 10, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GI CP1610 related CPU machines:
Exception at EIP=0000000005a8b7b5 (device_execute_interface::device_input::set_state_synced(int, int)+0x0085): STACK OVERFLOW

  • intv and clones - intv.cpp
  • unichamp - unichamp.cpp
    This was fixed: e3d4447

--

New findings:

  • digel804 - digel804.cpp
    Stays in "BUSY" mode with constant beep
    digel804-diff

  • sdk85 - sdk85.cpp
    LED seems to cycle and never get started or show "- 8085" properly
    sdk85-diff

  • cobram3, cobram3a - gottlieb.cpp
    Loss of non-LD audio.

  • All machines in wpc_95.cpp, wpc_dcs.cpp, wpc_s.cpp
    Loss of all sound.

Please sign in to comment.