diff options
Diffstat (limited to 'src/devices/machine/steppers.cpp')
-rw-r--r-- | src/devices/machine/steppers.cpp | 55 |
1 files changed, 42 insertions, 13 deletions
diff --git a/src/devices/machine/steppers.cpp b/src/devices/machine/steppers.cpp index 0350017d976..308f2a4ff25 100644 --- a/src/devices/machine/steppers.cpp +++ b/src/devices/machine/steppers.cpp @@ -95,9 +95,6 @@ void stepper_device::update_optic() void stepper_device::device_start() { - /* resolve callbacks */ - m_optic_cb.resolve_safe(); - /* register for state saving */ save_item(NAME(m_index_start)); save_item(NAME(m_index_end)); @@ -189,7 +186,7 @@ void stepper_device::advance_phase() { //Standard drive table is 2,6,4,5,1,9,8,a //NOTE: This runs through the stator patterns in such a way as to drive the reel forward (downwards from the player's view, clockwise on our rose) - //The Heber 'Pluto' controller runs this in reverse + //The Heber 'Pluto' controller runs this in reverse, this needs checking on real hardware switch (m_pattern) { //Black Blue Red Yellow case 0x02:// 0 0 1 0 @@ -257,7 +254,8 @@ void reel_device::advance_phase() case STARPOINT_48STEP_REEL : /* STARPOINT RMxxx */ case GAMESMAN_200STEP_REEL : /* Gamesman GMxxxx */ case STARPOINT_144STEP_DICE :/* STARPOINT 1DCU DICE mechanism */ - case STARPOINT_200STEP_REEL :/* STARPOINT 1DCU DICE mechanism */ + case STARPOINT_200STEP_REEL : + case SYS5_100STEP_REEL : stepper_device::advance_phase(); break; @@ -325,23 +323,22 @@ void reel_device::advance_phase() break; case MPU3_48STEP_REEL : - /* The MPU3 interface is actually the same as the MPU4 setup, but with two active lines instead of four + /* The MPU3 harness is actually the same as the MPU4 setup, but with two active lines instead of four, and a slight change to the windings. Inverters are used so if a pin is low, the higher bit of the pair is activated, and if high the lower bit is activated. - TODO:Check this, 2 and 1 could be switched over. - */ + */ switch (m_pattern) { - // Yellow(2) Brown(1) Orange(!2) Black(!1) - case 0x00 :// 0 0 1 1 + // Grey(1) Yellow(2) Grey (2) Yellow (2) + case 0x02 :// 0 1 0 1 m_phase = 6; break; - case 0x01 :// 0 1 1 0 + case 0x03 :// 0 1 1 0 m_phase = 4; break; - case 0x03 :// 1 1 0 0 + case 0x01 :// 1 0 1 0 m_phase = 2; break; - case 0x02 :// 1 0 0 1 + case 0x00 :// 1 0 0 1 m_phase = 0; break; } @@ -404,6 +401,38 @@ void reel_device::advance_phase() } break; + case SRU_200STEP_REEL : + //Standard drive table is 2,3,1,9,8,c,4,6 + //Starpoint mechanism, custom for JPM? + switch (m_pattern) + { + case 0x02: + m_phase = 7; + break; + case 0x03: + m_phase = 6; + break; + case 0x01: + m_phase = 5; + break; + case 0x09: + m_phase = 4; + break; + case 0x08: + m_phase = 3; + break; + case 0x0c: + m_phase = 2; + break; + case 0x04: + m_phase = 1; + break; + case 0x06: + m_phase = 0; + break; + } + break; + case PROJECT_48STEP_REEL : //Standard drive table is 8,c,4,5,1,3,2,a //This appears to be basically a rewired Gamesman (the reel PCB looks like it does some shuffling) |