Previous 199869 Revisions Next

r18287 Thursday 4th October, 2012 at 18:35:04 UTC by Robbbert
FIREBIRD - fixed display
[src/mame/drivers]nsm.c
[src/mame/layout]nsm.lay

trunk/src/mame/layout/nsm.lay
r18286r18287
2727
2828      <!-- Background -->
2929      <backdrop element="background">
30         <bounds left="0" top="20" right="318" bottom="394" />
30         <bounds left="0" top="20" right="362" bottom="394" />
3131      </backdrop>
3232
3333      <!-- Flourescent Displays -->
3434
3535      <!-- Player 1 Score -->
3636
37      <bezel name="digit10" element="digit">
37      <bezel name="digit47" element="digit">
3838         <bounds left="10" top="45" right="44" bottom="84" />
3939      </bezel>
40      <bezel name="digit11" element="digit">
40      <bezel name="digit46" element="digit">
4141         <bounds left="54" top="45" right="88" bottom="84" />
4242      </bezel>
43      <bezel name="digit12" element="digit">
43      <bezel name="digit45" element="digit">
4444         <bounds left="98" top="45" right="132" bottom="84" />
4545      </bezel>
46      <bezel name="digit13" element="digit">
46      <bezel name="digit44" element="digit">
4747         <bounds left="142" top="45" right="176" bottom="84" />
4848      </bezel>
49      <bezel name="digit14" element="digit">
49      <bezel name="digit43" element="digit">
5050         <bounds left="186" top="45" right="220" bottom="84" />
5151      </bezel>
52      <bezel name="digit15" element="digit">
52      <bezel name="digit42" element="digit">
5353         <bounds left="230" top="45" right="264" bottom="84" />
5454      </bezel>
55      <bezel name="digit16" element="digit">
55      <bezel name="digit41" element="digit">
5656         <bounds left="274" top="45" right="308" bottom="84" />
5757      </bezel>
58      <bezel name="digit17" element="digit">
58      <bezel name="digit40" element="digit">
5959         <bounds left="318" top="45" right="352" bottom="84" />
6060      </bezel>
6161
6262      <!-- Player 2 Score -->
63      <bezel name="digit30" element="digit">
63      <bezel name="digit37" element="digit">
6464         <bounds left="10" top="105" right="44" bottom="144" />
6565      </bezel>
66      <bezel name="digit31" element="digit">
66      <bezel name="digit36" element="digit">
6767         <bounds left="54" top="105" right="88" bottom="144" />
6868      </bezel>
69      <bezel name="digit32" element="digit">
69      <bezel name="digit35" element="digit">
7070         <bounds left="98" top="105" right="132" bottom="144" />
7171      </bezel>
72      <bezel name="digit33" element="digit">
72      <bezel name="digit34" element="digit">
7373         <bounds left="142" top="105" right="176" bottom="144" />
7474      </bezel>
75      <bezel name="digit34" element="digit">
75      <bezel name="digit33" element="digit">
7676         <bounds left="186" top="105" right="220" bottom="144" />
7777      </bezel>
78      <bezel name="digit35" element="digit">
78      <bezel name="digit32" element="digit">
7979         <bounds left="230" top="105" right="264" bottom="144" />
8080      </bezel>
81      <bezel name="digit36" element="digit">
81      <bezel name="digit31" element="digit">
8282         <bounds left="274" top="105" right="308" bottom="144" />
8383      </bezel>
84      <bezel name="digit37" element="digit">
84      <bezel name="digit30" element="digit">
8585         <bounds left="318" top="105" right="352" bottom="144" />
8686      </bezel>
8787
8888      <!-- Player 3 Score -->
89      <bezel name="digit20" element="digit">
89      <bezel name="digit27" element="digit">
9090         <bounds left="10" top="165" right="44" bottom="204" />
9191      </bezel>
92      <bezel name="digit21" element="digit">
92      <bezel name="digit26" element="digit">
9393         <bounds left="54" top="165" right="88" bottom="204" />
9494      </bezel>
95      <bezel name="digit22" element="digit">
95      <bezel name="digit25" element="digit">
9696         <bounds left="98" top="165" right="132" bottom="204" />
9797      </bezel>
98      <bezel name="digit23" element="digit">
98      <bezel name="digit24" element="digit">
9999         <bounds left="142" top="165" right="176" bottom="204" />
100100      </bezel>
101      <bezel name="digit24" element="digit">
101      <bezel name="digit23" element="digit">
102102         <bounds left="186" top="165" right="220" bottom="204" />
103103      </bezel>
104      <bezel name="digit25" element="digit">
104      <bezel name="digit22" element="digit">
105105         <bounds left="230" top="165" right="264" bottom="204" />
106106      </bezel>
107      <bezel name="digit26" element="digit">
107      <bezel name="digit21" element="digit">
108108         <bounds left="274" top="165" right="308" bottom="204" />
109109      </bezel>
110      <bezel name="digit27" element="digit">
110      <bezel name="digit20" element="digit">
111111         <bounds left="318" top="165" right="352" bottom="204" />
112112      </bezel>
113113
114114      <!-- Player 4 Score -->
115      <bezel name="digit40" element="digit">
115      <bezel name="digit17" element="digit">
116116         <bounds left="10" top="225" right="44" bottom="264" />
117117      </bezel>
118      <bezel name="digit41" element="digit">
118      <bezel name="digit16" element="digit">
119119         <bounds left="54" top="225" right="88" bottom="264" />
120120      </bezel>
121      <bezel name="digit42" element="digit">
121      <bezel name="digit15" element="digit">
122122         <bounds left="98" top="225" right="132" bottom="264" />
123123      </bezel>
124      <bezel name="digit43" element="digit">
124      <bezel name="digit14" element="digit">
125125         <bounds left="142" top="225" right="176" bottom="264" />
126126      </bezel>
127      <bezel name="digit44" element="digit">
127      <bezel name="digit13" element="digit">
128128         <bounds left="186" top="225" right="220" bottom="264" />
129129      </bezel>
130      <bezel name="digit45" element="digit">
130      <bezel name="digit12" element="digit">
131131         <bounds left="230" top="225" right="264" bottom="264" />
132132      </bezel>
133      <bezel name="digit46" element="digit">
133      <bezel name="digit11" element="digit">
134134         <bounds left="274" top="225" right="308" bottom="264" />
135135      </bezel>
136      <bezel name="digit47" element="digit">
136      <bezel name="digit10" element="digit">
137137         <bounds left="318" top="225" right="352" bottom="264" />
138138      </bezel>
139139
140140      <!-- Credits and Balls -->
141      <bezel name="digit0" element="digit">
141      <bezel name="digit7" element="digit">
142142         <bounds left="10" top="345" right="44" bottom="384" />
143143      </bezel>
144      <bezel name="digit1" element="digit">
144      <bezel name="digit6" element="digit">
145145         <bounds left="54" top="345" right="88" bottom="384" />
146146      </bezel>
147      <bezel name="digit2" element="digit">
147      <bezel name="digit5" element="digit">
148148         <bounds left="98" top="345" right="132" bottom="384" />
149149      </bezel>
150      <bezel name="digit3" element="digit">
150      <bezel name="digit4" element="digit">
151151         <bounds left="142" top="345" right="176" bottom="384" />
152152      </bezel>
153      <bezel name="digit4" element="digit">
153      <bezel name="digit3" element="digit">
154154         <bounds left="186" top="345" right="220" bottom="384" />
155155      </bezel>
156      <bezel name="digit5" element="digit">
156      <bezel name="digit2" element="digit">
157157         <bounds left="230" top="345" right="264" bottom="384" />
158158      </bezel>
159      <bezel name="digit6" element="digit">
159      <bezel name="digit1" element="digit">
160160         <bounds left="274" top="345" right="308" bottom="384" />
161161      </bezel>
162      <bezel name="digit7" element="digit">
162      <bezel name="digit0" element="digit">
163163         <bounds left="318" top="345" right="352" bottom="384" />
164164      </bezel>
165165
166      <bezel element="P0"><bounds left="100" right="180" top="330" bottom="342" /></bezel>
167      <bezel element="P1"><bounds left="30" right="88" top="330" bottom="342" /></bezel>
166      <bezel element="P0"><bounds left="200" right="280" top="330" bottom="342" /></bezel>
167      <bezel element="P1"><bounds left="90" right="148" top="330" bottom="342" /></bezel>
168168      <bezel element="P3"><bounds left="120" right="200" top="30" bottom="42" /></bezel>
169169      <bezel element="P4"><bounds left="120" right="200" top="90" bottom="102" /></bezel>
170170      <bezel element="P5"><bounds left="120" right="200" top="150" bottom="162" /></bezel>
trunk/src/mame/drivers/nsm.c
r18286r18287
66    Schematic and PinMAME used as references
77
88    Everything in this machine is controlled by a serial bus based on the
9    processor's CRU pins (serial i/o). It needs a T.I. specialist to get this
10    working.
9    processor's CRU pins (serial i/o).
1110
11ToDo:
12- Inputs (i have no idea how CRU inputs work)
13- Mechanical sounds
14- Further testing, etc
15
1216*********************************************************************************/
1317
1418#include "emu.h"
r18286r18287
3943private:
4044   UINT8 m_cru_data[9];
4145   UINT8 m_cru_count;
42public:
43   DECLARE_DRIVER_INIT(nsm);
4446};
4547
4648
r18286r18287
6264   AM_RANGE(0x0040, 0x0041) AM_READ(ff_r) // service plug
6365   AM_RANGE(0x0050, 0x0051) AM_READ(ff_r) // test of internal battery
6466   AM_RANGE(0x0060, 0x0061) AM_READ(ff_r) // sum of analog outputs of ay2
65   AM_RANGE(0x0070, 0x0071) AM_READNOP // serial data in
67   //AM_RANGE(0x0070, 0x0071) AM_READNOP // serial data in
6668   AM_RANGE(0x0f70, 0x0f7d) AM_WRITENOP
6769   AM_RANGE(0x0fe4, 0x0fff) AM_READNOP
6870   AM_RANGE(0x7fb0, 0x7fbf) AM_WRITE(cru_w)
r18286r18287
7678
7779WRITE8_MEMBER( nsm_state::oe_w )
7880{
79   m_cru_count = 0;
81   m_cru_count = 9;
8082}
8183
8284WRITE8_MEMBER( nsm_state::cru_w )
8385{
86   offset &= 7;
87   if (!offset)
88   {
89      m_cru_count--;
90      m_cru_data[m_cru_count] = 0;
91   }
92   m_cru_data[m_cru_count] |= (data << offset);
93   
8494   UINT8 i,j;
8595   int segments;
86   for (i = 1; i < 9;i++)
87      m_cru_data[i] = (m_cru_data[i] >> 1) | (BIT(m_cru_data[i-1], 0) ? 0x80 : 0);
88
89   m_cru_data[0] = (m_cru_data[0] >> 1) | (BIT(data, 0) ? 0x80 : 0);
90
91   m_cru_count++;
92
93   if (m_cru_count == 72)
96   if (!m_cru_count && (offset == 7))
9497   {
95      m_cru_count = 0;
96      //for (i = 0; i < 8; i++) printf("%02X ",m_cru_data[i]);printf("\n");
98      m_cru_count = 9;
99      //for (i = 0; i < 9; i++) printf("%02X ",m_cru_data[i]);printf("\n");
97100      for (i = 0; i < 8; i++)
98101      {
99102         if (BIT(m_cru_data[0], i))
r18286r18287
101104            for (j = 0; j < 5; j++)
102105            {
103106               segments = m_cru_data[8-j]^0xff;
104               output_set_digit_value(j * 10 + i, BITSWAP16(segments, 8, 8, 8, 8, 8, 8, 7, 7, 6, 6, 5, 4, 3, 2, 1, 0));
107               output_set_digit_value(j * 10 + i, BITSWAP16(segments, 8, 8, 8, 8, 8, 8, 0, 0, 1, 1, 2, 3, 4, 5, 6, 7));
105108            }
106109         }
107110      }
r18286r18287
109112}
110113
111114
112
113
114115void nsm_state::machine_reset()
115116{
116117}
117118
118DRIVER_INIT_MEMBER(nsm_state,nsm)
119{
120}
121
122119static MACHINE_CONFIG_START( nsm, nsm_state )
123120   /* basic machine hardware */
124121   MCFG_CPU_ADD("maincpu", TMS9995L, 11052000)
r18286r18287
158155/ The Games (1985)
159156/-------------------------------------------------------------------*/
160157
161GAME(1985,  firebird,  0,  nsm,  nsm, nsm_state, nsm,  ROT0, "NSM", "Hot Fire Birds", GAME_NOT_WORKING | GAME_MECHANICAL)
158GAME(1985,  firebird,  0,  nsm,  nsm, driver_device, 0,  ROT0, "NSM", "Hot Fire Birds", GAME_NOT_WORKING | GAME_MECHANICAL)

Previous 199869 Revisions Next


© 1997-2024 The MAME Team