diff options
Diffstat (limited to 'src/mame/machine/deco_irq.cpp')
-rw-r--r-- | src/mame/machine/deco_irq.cpp | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/src/mame/machine/deco_irq.cpp b/src/mame/machine/deco_irq.cpp index c8cef7fc0fe..65863df16ef 100644 --- a/src/mame/machine/deco_irq.cpp +++ b/src/mame/machine/deco_irq.cpp @@ -5,8 +5,20 @@ Data East IRQ Controller TODO: - - Lightgun support is only used by Locked 'n Loaded and works badly - + - Lightgun support is only used by Locked 'n Loaded. + irq is likely an h AND v beam trigger, game counts via raster irqs until + it finds one of these, and where gun trigger x position is the H pixel + latch. + Two problems here: + 1. (assuming being correct) default calibration looks way offset. + 2. We currently give minmax defaults to Y latches to order to avoid + making the game to crash. These limits doesn't seem very sane, + for example lower limit is / 3 the full screen height (248 / 3 = 82). + Being an highly timing dependant behaviour ARM core is probably at + fault here. + - Understand if there's an additional switch for player 1 and player 2 + wrt lightgun trigger. + ***************************************************************************/ #include "emu.h" @@ -212,13 +224,13 @@ u8 deco_irq_device::status_r() WRITE_LINE_MEMBER( deco_irq_device::lightgun1_trigger_w ) { if (state) - m_lightgun_latch = m_lightgun1_cb() / 2; + m_lightgun_latch = m_lightgun1_cb(); } WRITE_LINE_MEMBER( deco_irq_device::lightgun2_trigger_w ) { if (state) - m_lightgun_latch = m_lightgun2_cb() / 2; + m_lightgun_latch = m_lightgun2_cb(); } WRITE_LINE_MEMBER( deco_irq_device::lightgun_irq_ack_w ) |