Previous 199869 Revisions Next

r17867 Thursday 13th September, 2012 at 15:40:19 UTC by Robbbert
Rotation: fixed displays, fixed sensors so that the game is now playable. [Robbbert]
[src/mame/drivers]g627.c
[src/mame/layout]g627.lay

trunk/src/mame/layout/g627.lay
r17866r17867
1818   </element>
1919   <element name="P0"><text string="Balls"><color red="1.0" green="1.0" blue="1.0" /></text></element>
2020   <element name="P1"><text string="Credits"><color red="1.0" green="1.0" blue="1.0" /></text></element>
21   <element name="P3"><text string="Player 1"><color red="1.0" green="1.0" blue="1.0" /></text></element>
22   <element name="P4"><text string="Player 2"><color red="1.0" green="1.0" blue="1.0" /></text></element>
23   <element name="P5"><text string="Player 3"><color red="1.0" green="1.0" blue="1.0" /></text></element>
24   <element name="P6"><text string="Player 4"><color red="1.0" green="1.0" blue="1.0" /></text></element>
25   <element name="P7"><text string="High Score"><color red="1.0" green="1.0" blue="1.0" /></text></element>
21   <element name="P3"><text string="East"><color red="1.0" green="1.0" blue="1.0" /></text></element>
22   <element name="P4"><text string="North"><color red="1.0" green="1.0" blue="1.0" /></text></element>
23   <element name="P5"><text string="West"><color red="1.0" green="1.0" blue="1.0" /></text></element>
24   <element name="P6"><text string="South"><color red="1.0" green="1.0" blue="1.0" /></text></element>
2625
2726   <view name="Default Layout">
2827
r17866r17867
3534
3635      <!-- Player 1 Score -->
3736
38      <bezel name="digit5" element="digit">
37      <bezel name="digit0" element="digit">
3938         <bounds left="10" top="45" right="44" bottom="84" />
4039      </bezel>
41      <bezel name="digit4" element="digit">
40      <bezel name="digit1" element="digit">
4241         <bounds left="54" top="45" right="88" bottom="84" />
4342      </bezel>
44      <bezel name="digit3" element="digit">
43      <bezel name="digit2" element="digit">
4544         <bounds left="98" top="45" right="132" bottom="84" />
4645      </bezel>
47      <bezel name="digit2" element="digit">
46      <bezel name="digit3" element="digit">
4847         <bounds left="142" top="45" right="176" bottom="84" />
4948      </bezel>
50      <bezel name="digit1" element="digit">
49      <bezel name="digit4" element="digit">
5150         <bounds left="186" top="45" right="220" bottom="84" />
5251      </bezel>
53      <bezel name="digit0" element="digit">
52      <bezel name="digit5" element="digit">
5453         <bounds left="230" top="45" right="264" bottom="84" />
5554      </bezel>
5655
5756      <!-- Player 2 Score -->
58      <bezel name="digit15" element="digit">
57      <bezel name="digit10" element="digit">
5958         <bounds left="10" top="105" right="44" bottom="144" />
6059      </bezel>
61      <bezel name="digit14" element="digit">
60      <bezel name="digit11" element="digit">
6261         <bounds left="54" top="105" right="88" bottom="144" />
6362      </bezel>
64      <bezel name="digit13" element="digit">
63      <bezel name="digit12" element="digit">
6564         <bounds left="98" top="105" right="132" bottom="144" />
6665      </bezel>
67      <bezel name="digit12" element="digit">
66      <bezel name="digit13" element="digit">
6867         <bounds left="142" top="105" right="176" bottom="144" />
6968      </bezel>
70      <bezel name="digit11" element="digit">
69      <bezel name="digit14" element="digit">
7170         <bounds left="186" top="105" right="220" bottom="144" />
7271      </bezel>
73      <bezel name="digit10" element="digit">
72      <bezel name="digit15" element="digit">
7473         <bounds left="230" top="105" right="264" bottom="144" />
7574      </bezel>
7675
7776      <!-- Player 3 Score -->
78      <bezel name="digit25" element="digit">
77      <bezel name="digit20" element="digit">
7978         <bounds left="10" top="165" right="44" bottom="204" />
8079      </bezel>
81      <bezel name="digit24" element="digit">
80      <bezel name="digit21" element="digit">
8281         <bounds left="54" top="165" right="88" bottom="204" />
8382      </bezel>
84      <bezel name="digit23" element="digit">
83      <bezel name="digit22" element="digit">
8584         <bounds left="98" top="165" right="132" bottom="204" />
8685      </bezel>
87      <bezel name="digit22" element="digit">
86      <bezel name="digit23" element="digit">
8887         <bounds left="142" top="165" right="176" bottom="204" />
8988      </bezel>
90      <bezel name="digit21" element="digit">
89      <bezel name="digit24" element="digit">
9190         <bounds left="186" top="165" right="220" bottom="204" />
9291      </bezel>
93      <bezel name="digit20" element="digit">
92      <bezel name="digit25" element="digit">
9493         <bounds left="230" top="165" right="264" bottom="204" />
9594      </bezel>
9695
9796      <!-- Player 4 Score -->
98      <bezel name="digit35" element="digit">
97      <bezel name="digit30" element="digit">
9998         <bounds left="10" top="225" right="44" bottom="264" />
10099      </bezel>
101      <bezel name="digit34" element="digit">
100      <bezel name="digit31" element="digit">
102101         <bounds left="54" top="225" right="88" bottom="264" />
103102      </bezel>
104      <bezel name="digit33" element="digit">
103      <bezel name="digit32" element="digit">
105104         <bounds left="98" top="225" right="132" bottom="264" />
106105      </bezel>
107      <bezel name="digit32" element="digit">
106      <bezel name="digit33" element="digit">
108107         <bounds left="142" top="225" right="176" bottom="264" />
109108      </bezel>
110      <bezel name="digit31" element="digit">
109      <bezel name="digit34" element="digit">
111110         <bounds left="186" top="225" right="220" bottom="264" />
112111      </bezel>
113      <bezel name="digit30" element="digit">
112      <bezel name="digit35" element="digit">
114113         <bounds left="230" top="225" right="264" bottom="264" />
115114      </bezel>
116115
117      <!-- High Score -->
118      <bezel name="digit45" element="digit">
119         <bounds left="10" top="285" right="44" bottom="324" />
120      </bezel>
121      <bezel name="digit44" element="digit">
122         <bounds left="54" top="285" right="88" bottom="324" />
123      </bezel>
124      <bezel name="digit43" element="digit">
125         <bounds left="98" top="285" right="132" bottom="324" />
126      </bezel>
127      <bezel name="digit42" element="digit">
128         <bounds left="142" top="285" right="176" bottom="324" />
129      </bezel>
130      <bezel name="digit41" element="digit">
131         <bounds left="186" top="285" right="220" bottom="324" />
132      </bezel>
133      <bezel name="digit40" element="digit">
134         <bounds left="230" top="285" right="264" bottom="324" />
135      </bezel>
136
137      <!-- Credits -->
138      <bezel name="digit55" element="digit">
116      <!-- Credits and Balls -->
117      <bezel name="digit50" element="digit">
139118         <bounds left="10" top="345" right="44" bottom="384" />
140119      </bezel>
141      <bezel name="digit54" element="digit">
120      <bezel name="digit51" element="digit">
142121         <bounds left="54" top="345" right="88" bottom="384" />
143122      </bezel>
144      <bezel name="digit53" element="digit">
123      <bezel name="digit52" element="digit">
145124         <bounds left="98" top="345" right="132" bottom="384" />
146125      </bezel>
147      <bezel name="digit52" element="digit">
126      <bezel name="digit53" element="digit">
148127         <bounds left="142" top="345" right="176" bottom="384" />
149128      </bezel>
150
151      <!-- Match / Balls Left -->
152      <bezel name="digit51" element="digit">
129      <bezel name="digit54" element="digit">
153130         <bounds left="186" top="345" right="220" bottom="384" />
154131      </bezel>
155      <bezel name="digit50" element="digit">
132      <bezel name="digit55" element="digit">
156133         <bounds left="230" top="345" right="264" bottom="384" />
157134      </bezel>
158135      <bezel element="P0"><bounds left="200" right="258" top="330" bottom="342" /></bezel>
r17866r17867
161138      <bezel element="P4"><bounds left="100" right="180" top="90" bottom="102" /></bezel>
162139      <bezel element="P5"><bounds left="100" right="180" top="150" bottom="162" /></bezel>
163140      <bezel element="P6"><bounds left="100" right="180" top="210" bottom="222" /></bezel>
164      <bezel element="P7"><bounds left="100" right="180" top="270" bottom="282" /></bezel>
165141   </view>
166142</mamelayout>
trunk/src/mame/drivers/g627.c
r17866r17867
1515
1616    Schematic and PinMAME used as references
1717
18Machine Operation:
191. Press num-enter then END then .(period key)   (the displays will flash 400000)
202. Press num-enter
213. Insert a coin, credit will be registered
224. Hold X and start game. When 00 is flashing, release X
235. Press any of QWERYUIOASDFGHJKLZ-='; to simulate scoring shots (T will tilt)
246. Press and hold X to simulate losing the ball
257. When score starts flashing, release X and go to step 5 to play next ball
26
27Notes: Do not play more than one player because the machine will try to
28rotate the table, and the motor circuits are not emulated due to lack of info.
29This means that the score labels of East, West and South are not verified.
30
31The manual explains the tests available, and also how to set number of balls,
32high score, etc., with the diagnostic keyboard.
33
1834ToDo:
1935- Battery backup
2036- Outputs
21- Displays / Layout to fix
37- Simulate motor circuitry and sensor feedback
38- Verify labels of East, West and South on the display panel
2239- Possibility of a rom missing (most likely it is optional)
2340
2441*******************************************************************************/
r17866r17867
4360   DECLARE_READ8_MEMBER(portb_r);
4461   DECLARE_WRITE8_MEMBER(portc_w);
4562   DECLARE_WRITE8_MEMBER(disp_w);
63   DECLARE_WRITE8_MEMBER(lamp_w);
4664
4765protected:
4866
r17866r17867
6684static ADDRESS_MAP_START( g627_io, AS_IO, 8, g627_state )
6785   ADDRESS_MAP_GLOBAL_MASK(0xff)
6886   AM_RANGE(0x00, 0x02) AM_WRITE(disp_w)
69   //AM_RANGE(0x03, 0x07) AM_WRITE(port_0x_w)
87   AM_RANGE(0x03, 0x07) AM_WRITE(lamp_w)
7088   AM_RANGE(0x10, 0x17) AM_DEVWRITE_LEGACY("astrocade", astrocade_sound_w)
7189   AM_RANGE(0x20, 0x27) AM_DEVREADWRITE("i8156", i8155_device, io_r, io_w)
7290ADDRESS_MAP_END
7391
7492static INPUT_PORTS_START( g627 )
7593   PORT_START("X0")
94   PORT_BIT(0x03, IP_ACTIVE_LOW, IPT_UNUSED) // force 3 here so game can start
7695   //bits 0,1 : optical encoder for precise table alignment. Correct position = 3.
7796   //bit2-7   : position of table as it turns, using Gray code.
97   // code to convert a number to a Gray Code: { return (input >> 1)^input; }
7898   PORT_START("X1")
7999   PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Centre TB") PORT_CODE(KEYCODE_Q)
80100   PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Bank Shot Outlane") PORT_CODE(KEYCODE_W)
r17866r17867
92112   PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("North Slam")
93113   PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("North Test") PORT_CODE(KEYCODE_9)
94114   PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_COIN1) PORT_NAME("North Coin")
95   PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("North Tilt") PORT_CODE(KEYCODE_T)
115   PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_TILT) PORT_NAME("North Tilt")
96116   PORT_START("X3")
97117   PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Top Slingshot") PORT_CODE(KEYCODE_O)
98118   PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Bank Shot Advance") PORT_CODE(KEYCODE_A)
r17866r17867
181201   return 0;
182202}
183203
184// write the 6 digits of 1 display panel
204// write 6 digits
185205WRITE8_MEMBER( g627_state::portc_w )
186206{
187207   m_portc = data;
188   if (data < 7)
189      for (int i = 0; i < 6; i++)
190         output_set_digit_value(data * 10 + i, m_seg[i]);
208   if (data < 6)
209   {
210      output_set_digit_value(data, m_seg[0]);
211      output_set_digit_value(10 + data, m_seg[1]);
212      output_set_digit_value(20 + data, m_seg[2]);
213      output_set_digit_value(30 + data, m_seg[3]);
214      output_set_digit_value(50 + data, m_seg[5]);
215   }
191216}
192217
193218// save segments until we can write the digits
r17866r17867
199224   m_seg[++offset] = patterns[data&15];
200225}
201226
227// lamps and solenoids
228WRITE8_MEMBER( g627_state::lamp_w )
229{
230}
231
202232static I8156_INTERFACE(i8156_intf)
203233{
204234   DEVCB_DRIVER_MEMBER(g627_state,porta_r), // Port A in
r17866r17867
235265ROM_END
236266
237267
238GAME(1978,  rotation,  0,  g627,  g627, driver_device,  0,  ROT0,  "Midway", "Rotation VIII", GAME_MECHANICAL | GAME_NOT_WORKING | GAME_IMPERFECT_KEYBOARD)
268GAME(1978,  rotation,  0,  g627,  g627, driver_device,  0,  ROT0,  "Midway", "Rotation VIII", GAME_MECHANICAL )

Previous 199869 Revisions Next


© 1997-2024 The MAME Team