summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/steppers.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/steppers.cpp')
-rw-r--r--src/devices/machine/steppers.cpp55
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)