Previous 199869 Revisions Next

r20390 Monday 21st January, 2013 at 16:48:11 UTC by Roberto Fresca
Improvements to sanremo.c driver... [Roberto Fresca]
 - Graphics decode.
 - Proper ROM load.
 - Accurate memory map.
 - Hooked CPU & interrupts.
 - Added CRTC support.
 - Added AY-3-8910 sound and ports support.
 - Added input ports.
 - Added output-lamps port.
 - Added button-lamps layout.
 - NVRAM support.
[src/mame]mame.lst mame.mak
[src/mame/drivers]sanremo.c
[src/mame/layout]sanremo.lay*

trunk/src/mame/layout/sanremo.lay
r0r20390
1<?xml version="1.0"?>
2<mamelayout version="2">
3   <element name="discard1" defstate="0">
4      <rect state="1">
5         <color red="1.0" green="0.0" blue="0.0" />
6      </rect>
7      <rect state="0">
8         <color red="0.3" green="0.0" blue="0.0" />
9      </rect>
10      <text string="DISCARD 1">
11         <color red="0.0" green="0.0" blue="0.0" />
12         <bounds x="0" y="0.2" width="1" height="0.6" />
13      </text>
14   </element>
15
16   <element name="discard2" defstate="0">
17      <rect state="1">
18         <color red="1.0" green="0.0" blue="0.0" />
19      </rect>
20      <rect state="0">
21         <color red="0.3" green="0.0" blue="0.0" />
22      </rect>
23      <text string="DISCARD 2">
24         <color red="0.0" green="0.0" blue="0.0" />
25         <bounds x="0" y="0.1" width="1" height="0.4" />
26      </text>
27      <text string="BASSO/LEFT">
28         <color red="0.0" green="0.0" blue="0.0" />
29         <bounds x="0" y="0.5" width="1" height="0.4" />
30      </text>
31   </element>
32
33   <element name="discard3" defstate="0">
34      <rect state="1">
35         <color red="1.0" green="0.0" blue="0.0" />
36      </rect>
37      <rect state="0">
38         <color red="0.3" green="0.0" blue="0.0" />
39      </rect>
40      <text string="DISCARD 3">
41         <color red="0.0" green="0.0" blue="0.0" />
42         <bounds x="0" y="0.2" width="1" height="0.6" />
43      </text>
44   </element>
45
46   <element name="discard4" defstate="0">
47      <rect state="1">
48         <color red="1.0" green="0.0" blue="0.0" />
49      </rect>
50      <rect state="0">
51         <color red="0.3" green="0.0" blue="0.0" />
52      </rect>
53      <text string="DISCARD 4">
54         <color red="0.0" green="0.0" blue="0.0" />
55         <bounds x="0" y="0.1" width="1" height="0.4" />
56      </text>
57      <text string="ALTO/RIGHT">
58         <color red="0.0" green="0.0" blue="0.0" />
59         <bounds x="0" y="0.5" width="1" height="0.4" />
60      </text>
61   </element>
62
63   <element name="discard5" defstate="0">
64      <rect state="1">
65         <color red="1.0" green="0.0" blue="0.0" />
66      </rect>
67      <rect state="0">
68         <color red="0.3" green="0.0" blue="0.0" />
69      </rect>
70      <text string="DISCARD 5">
71         <color red="0.0" green="0.0" blue="0.0" />
72         <bounds x="0" y="0.2" width="1" height="0.6" />
73      </text>
74   </element>
75
76   <element name="bet" defstate="0">
77      <rect state="1">
78         <color red="0.0" green="1.0" blue="0.0" />
79      </rect>
80      <rect state="0">
81         <color red="0.0" green="0.3" blue="0.0" />
82      </rect>
83      <text string="BET">
84         <color red="0.0" green="0.0" blue="0.0" />
85         <bounds x="0" y="0.2" width="1" height="0.6" />
86      </text>
87   </element>
88
89   <element name="start" defstate="0">
90      <rect state="1">
91         <color red="0.0" green="1.0" blue="0.0" />
92      </rect>
93      <rect state="0">
94         <color red="0.0" green="0.3" blue="0.0" />
95      </rect>
96      <text string="START">
97         <color red="0.0" green="0.0" blue="0.0" />
98         <bounds x="0" y="0.1" width="1" height="0.4" />
99      </text>
100      <text string="PICK">
101         <color red="0.0" green="0.0" blue="0.0" />
102         <bounds x="0" y="0.5" width="1" height="0.4" />
103      </text>
104   </element>
105
106
107   <view name="Button Lamps">
108      <screen index="0">
109         <bounds left="0" top="0" right="4" bottom="3" />
110      </screen>
111      <bezel name="lamp0" element="discard1">
112         <bounds x="0.15" y="3.13" width="0.55" height="0.24" />
113      </bezel>
114      <bezel name="lamp1" element="discard2">
115         <bounds x="0.80" y="3.13" width="0.55" height="0.24" />
116      </bezel>
117      <bezel name="lamp2" element="discard3">
118         <bounds x="1.45" y="3.13" width="0.55" height="0.24" />
119      </bezel>
120      <bezel name="lamp3" element="discard4">
121         <bounds x="2.1" y="3.13" width="0.55" height="0.24" />
122      </bezel>
123      <bezel name="lamp4" element="discard5">
124         <bounds x="2.75" y="3.13" width="0.55" height="0.24" />
125      </bezel>
126      <bezel name="lamp5" element="start">
127         <bounds x="3.45" y="3.28" width="0.55" height="0.24" />
128      </bezel>
129      <bezel name="lamp6" element="bet">
130         <bounds x="3.45" y="3.02" width="0.55" height="0.24" />
131      </bezel>
132   </view>
133</mamelayout>
Property changes on: trunk/src/mame/layout/sanremo.lay
Added: svn:eol-style
   + native
Added: svn:mime-type
   + text/plain
trunk/src/mame/drivers/sanremo.c
r20389r20390
11/******************************************************************************
22
3  Number One
4
5  8bit gambling hardware.
36  San Remo Games.
4  8bit gambling hardware.
57
8
69  Driver by Roberto Fresca.
710
811
r20389r20390
1013
1114  *** Hardware notes ***
1215
13  - CPU:  1x TMPZ84C00AP-6.
14  - CRTC: 1x MC6845.
15  - SND:  1x WF19054 (AY-3-8910).
16  - CPU:  1x TMPZ84C00AP-6       [IC7]
17  - CRTC: 1x MC68B45P            [IC14]
18  - SND:  1x WF19054 (AY-3-8910) [IC32]
1619  - CLK:  1x crystal @ 18.000 MHz.
1720
18  - PLDs: 3x PALCE (read protected).
21  - ROM:  1x NM27C256            [IC26]
22          4x 27C512              [IC27, IC28, IC29, IC30]
1923
24  - RAM:  1x UMC UM6116-3L        (2K x 8 SRAM) (battery backed) [IC15]
25          2x GoldStar GN76C28K-10 (2K x 8 SRAM)                  [IC20, IC21]
2026
27  - PLDs: 4x unknown PALCE (DIP-20, read protected)  [IC4, IC24, IC25 & IC31]
28
29  - 1x 8 DIP switches bank.
30
31  - 1x 28x2 JAMMA edge connector [CN3]
32  - 1x 4 legs connector          [CN2]
33  - 1x 5 legs connector          [CN5]
34  - 1x trimmer (volume)          [P1]
35
36
37  Graphics seems to have the insanely amount of 32 banks of 256 tiles, but with
38  some scrambled logic (maybe driven through PLDs)...
39
40
2141*******************************************************************************
2242
2343  Game Notes
2444  ----------
2545
26  Nothing yet...
46  You can switch the game to use numbers or cards through the Test Mode.
47  To enter the Test Mode, just turn the DIP switch 7 ON.
2748
2849
2950*******************************************************************************
3051
3152  Driver updates:
3253
33  [2012/01/19]    Preliminary driver...
3454
55  [2012/01/19]
3556
57  - Initial release. Preliminary driver.
58
59
60  [2012/01/20]
61
62  - Graphics decode.
63  - Proper ROM load.
64  - Memory Map.
65  - Hooked CPU & interrupts.
66  - Added CRTC support.
67  - Added AY-3-8910 support.
68  - Added input ports.
69  - Added output-lamps port.
70  - Added Button-Lamps layout.
71  - Complete lamps support.
72  - NVRAM support.
73
74
3675  TODO:
3776
38  - Fix video RAM
39  - Interrupts.
40  - Hook inputs.
41  - Hook AY-8910.
77  - Fix GFX banking.
78  - Hook the intensity layer.
79  - Figure out activity in some output ports.
4280
4381
4482*******************************************************************************/
r20389r20390
5189#include "video/mc6845.h"
5290#include "sound/ay8910.h"
5391#include "machine/nvram.h"
92#include "sanremo.lh"
5493
5594
5695class sanremo_state : public driver_device
r20389r20390
5897public:
5998   sanremo_state(const machine_config &mconfig, device_type type, const char *tag)
6099      : driver_device(mconfig, type, tag) ,
61      m_videoram(*this, "videoram"),
62      m_colorram(*this, "colorram"){ }
100      m_videoram(*this, "videoram"){ }
63101
64102   required_shared_ptr<UINT8> m_videoram;
65   required_shared_ptr<UINT8> m_colorram;
66103   tilemap_t *m_bg_tilemap;
67104   DECLARE_WRITE8_MEMBER(sanremo_videoram_w);
68   DECLARE_WRITE8_MEMBER(sanremo_colorram_w);
69105   TILE_GET_INFO_MEMBER(get_sanremo_tile_info);
70   DECLARE_READ8_MEMBER(testa_r);
71   DECLARE_WRITE8_MEMBER(testa_w);
106   DECLARE_WRITE8_MEMBER(banksel_w);
107   DECLARE_WRITE8_MEMBER(lamps_w);
108   int banksel;
72109   virtual void video_start();
110   virtual void palette_init();
73111   UINT32 screen_update_sanremo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
74112};
75113
76114
77/*************************
78*     Video Hardware     *
79*************************/
115/*********************************************
116*               Video Hardware               *
117*********************************************/
80118
81119
82120WRITE8_MEMBER(sanremo_state::sanremo_videoram_w)
r20389r20390
85123   m_bg_tilemap->mark_tile_dirty(offset);
86124}
87125
88WRITE8_MEMBER(sanremo_state::sanremo_colorram_w)
89{
90   m_colorram[offset] = data;
91   m_bg_tilemap->mark_tile_dirty(offset);
92}
93
94126TILE_GET_INFO_MEMBER(sanremo_state::get_sanremo_tile_info)
95127{
96   int attr = m_colorram[tile_index];
97128   int code = m_videoram[tile_index];
129   int bank = banksel;
98130
99   SET_TILE_INFO_MEMBER( 0, code, attr, 0);
100
131   SET_TILE_INFO_MEMBER( bank, code, 0, 0);
101132}
102133
103134void sanremo_state::video_start()
104135{
105   m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(sanremo_state::get_sanremo_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
136   m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(sanremo_state::get_sanremo_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 48, 48);
106137}
107138
108
109139UINT32 sanremo_state::screen_update_sanremo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
110140{
111141   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
112142   return 0;
113143}
114144
145void sanremo_state::palette_init()
146{
147   // TODO: implement 3bpp + I
148}
115149
116150
117/******************************
118*         R/W Handlers        *
119******************************/
151/**************************************************
152*                   R/W Handlers                  *
153**************************************************/
120154
121READ8_MEMBER(sanremo_state::testa_r)
155WRITE8_MEMBER(sanremo_state::lamps_w)
122156{
123   return machine().rand() & 0xff;
157/*  LAMPS:
158
159    7654 3210
160    ---- ---x  DISCARD 1
161    ---- --x-  DISCARD 2
162    ---- -x--  DISCARD 3
163    ---- x---  DISCARD 4
164    ---x ----  DISCARD 5
165    --x- ----  START
166    -x-- ----  BET
167    x--- ----  (always on)
168*/
169   output_set_lamp_value(0, (data >> 0) & 1);   /* DISCARD 1 */
170   output_set_lamp_value(1, (data >> 1) & 1);   /* DISCARD 2 */
171   output_set_lamp_value(2, (data >> 2) & 1);   /* DISCARD 3 */
172   output_set_lamp_value(3, (data >> 3) & 1);   /* DISCARD 4 */
173   output_set_lamp_value(4, (data >> 4) & 1);   /* DISCARD 5 */
174   output_set_lamp_value(5, (data >> 5) & 1);   /* START */
175   output_set_lamp_value(6, (data >> 6) & 1);   /* BET */
124176}
125177
126WRITE8_MEMBER(sanremo_state::testa_w)
178WRITE8_MEMBER(sanremo_state::banksel_w)
127179{
128//   printf("%02x TESTA\n", data);
180/*  GFX banks selector.
181
182    7654 3210
183    ---x xxxx  GFX banks selector
184    xxx- ----  unknown
185*/
186   banksel = data & 0x1f;
187
188//   printf("BANKSEL %02x\n", data);
129189}
130190
131191
192/*********************************************
193*           Memory map information           *
194*********************************************/
132195
133/*************************
134* Memory map information *
135*************************/
136
137196static ADDRESS_MAP_START( sanremo_map, AS_PROGRAM, 8, sanremo_state )
138197   AM_RANGE(0x0000, 0x7fff) AM_ROM
139   AM_RANGE(0xc000, 0xc7ff) AM_RAM // seems to be working RAM
140   AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(sanremo_videoram_w) AM_SHARE("videoram")   // filling 8000-87ff with 0x0b ???
141   AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(sanremo_colorram_w) AM_SHARE("colorram")   // filling 8000-87ff with 0x0b ???
142   AM_RANGE(0xf800, 0xffff) AM_RAM // dunno.. writting at very end.
143
198   AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(sanremo_videoram_w) AM_SHARE("videoram")   // 2x 76C28 (only 1 used?)
199   AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("nvram")                        // battery backed UM6116
144200ADDRESS_MAP_END
145201
146202static ADDRESS_MAP_START( sanremo_portmap, AS_IO, 8, sanremo_state )
147203   ADDRESS_MAP_GLOBAL_MASK(0xff)
148   AM_RANGE(0x01, 0x01) AM_READ(testa_r)
149   AM_RANGE(0x03, 0x03) AM_WRITE(testa_w)
204   AM_RANGE(0x01, 0x01) AM_READ_PORT("IN0")
205   AM_RANGE(0x02, 0x02) AM_READ_PORT("IN1")
150206   AM_RANGE(0x04, 0x04) AM_DEVWRITE("crtc", mc6845_device, address_w)
207   AM_RANGE(0x05, 0x05) AM_WRITE(lamps_w)
151208   AM_RANGE(0x14, 0x14) AM_DEVREADWRITE("crtc", mc6845_device, register_r, register_w)
209   AM_RANGE(0x17, 0x17) AM_DEVWRITE_LEGACY("ay8910", ay8910_data_w)
210   AM_RANGE(0x24, 0x24) AM_WRITE(banksel_w)
211   AM_RANGE(0x27, 0x27) AM_DEVREAD_LEGACY("ay8910", ay8910_r)
212   AM_RANGE(0x37, 0x37) AM_DEVWRITE_LEGACY("ay8910", ay8910_address_w)
213ADDRESS_MAP_END
152214
153215/*
154216
155  00 W
156  01 R -- read and xor to 03
157  02 R
158  03 W
217  00 W -- contents of $C110 --> output port (normal 07, hopper 84).
218  01 R -- IN0 (read and xor to port 03h)
219  02 R -- IN1
220  03 W -- ??? (from IN0)
159221  04 W -- CRTC address
160  06 W
222  05 W -- contents of $C117 --> lamps.
223  06 W -- contents of $C118 --> output port (mech pulses?)
161224  14 W -- CRTC register
162  15 W
163  17 W
164  24 W -- sequence 05 05 05 05 05 05 05 05 05 06 07 0A 0B 0C 0D
165  27 R
166  37 W
225  15 W -- contents of $C119 --> unknown
226  17 W -- AY8910 data
227  24 W -- sequence 05 05 05 05 05 05 05 05 05 06 07 0A 0B 0C 0D (banking)
228  27 R -- AY8910 read
229  37 W -- AY8910 address
167230
168231*/
169232
170ADDRESS_MAP_END
171233
234/*********************************************
235*                Input ports                 *
236*********************************************/
172237
173/*************************
174*      Input ports       *
175*************************/
238static INPUT_PORTS_START( number1 )
239   PORT_START("IN0")   // from I/O port 01h.
240   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER )      PORT_NAME("IN1-1") PORT_CODE(KEYCODE_A)
241   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN1 )
242   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 )
243   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER )      PORT_NAME("IN1-4") PORT_CODE(KEYCODE_S)
244   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER )      PORT_NAME("IN1-5") PORT_CODE(KEYCODE_D)
245   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER )      PORT_NAME("IN1-6") PORT_CODE(KEYCODE_F)
246   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK )
247   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER )      PORT_NAME("IN1-8") PORT_CODE(KEYCODE_G)
176248
177static INPUT_PORTS_START( sanremo )
249   PORT_START("IN1")   // from I/O port 02h.
250   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_BET )
251   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 )      PORT_NAME("Start")
252   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME("Discard 2 / Basso (Low) / Left Card")
253   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Discard 4 / Alto (High) / Right Card")
254   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER )       PORT_NAME("IN0-5")     PORT_CODE(KEYCODE_H)
255   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Discard 3")
256   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_NAME("Discard 5")
257   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Discard 1")
258
259   PORT_START("DSW")   // from AY-8910 por A.
260   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )   PORT_DIPLOCATION("DSW:1")
261   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
262   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
263   PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )   PORT_DIPLOCATION("DSW:2")
264   PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
265   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
266   PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )   PORT_DIPLOCATION("DSW:3")
267   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
268   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
269   PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )   PORT_DIPLOCATION("DSW:4")
270   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
271   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
272   PORT_DIPNAME( 0x10, 0x00, "Auto Hold" )         PORT_DIPLOCATION("DSW:5")
273   PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
274   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
275   PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )   PORT_DIPLOCATION("DSW:6")
276   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
277   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
278   PORT_DIPNAME( 0x40, 0x00, "Test Mode" )         PORT_DIPLOCATION("DSW:7")
279   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
280   PORT_DIPSETTING(    0x40, DEF_STR( On ) )
281   PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )   PORT_DIPLOCATION("DSW:8")
282   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
283   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
284
178285INPUT_PORTS_END
179286
180287
181/*************************
182*    Graphics Layouts    *
183*************************/
288/*********************************************
289*              Graphics Layouts              *
290*********************************************/
184291
185static const gfx_layout charlayout =
292static const gfx_layout tilelayout =
186293{
187294   8, 8,
188   RGN_FRAC(1,1),
189   1,
190   { 0 },
295   RGN_FRAC(1,3),
296   3,
297   { 0, RGN_FRAC(1,3), RGN_FRAC(2,3) },
191298   { 0, 1, 2, 3, 4, 5, 6, 7 },
192299   { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
193300   8*8
194301};
195302
196static const gfx_layout tilelayout =
303static const gfx_layout ilayout =
197304{
198305   8, 8,
199   RGN_FRAC(1,3),
200   3,
201   { 0, RGN_FRAC(1,3), RGN_FRAC(2,3) },
306   RGN_FRAC(1,1),
307   1,
308   { 0 },
202309   { 0, 1, 2, 3, 4, 5, 6, 7 },
203310   { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
204311   8*8
205312};
206313
207314
208/******************************
209* Graphics Decode Information *
210******************************/
315/**************************************************
316*           Graphics Decode Information           *
317**************************************************/
211318
212319static GFXDECODE_START( sanremo )
213   GFXDECODE_ENTRY( "gfxbnk1", 0, tilelayout, 0, 1 )
214   GFXDECODE_ENTRY( "gfxbnk0", 0, charlayout, 0, 8 )
320   GFXDECODE_ENTRY( "gfx",  0,      tilelayout, 0, 1 )   // ok
321   GFXDECODE_ENTRY( "gfx",  0x800,  tilelayout, 0, 1 )
322   GFXDECODE_ENTRY( "gfx",  0x1000, tilelayout, 0, 1 )
323   GFXDECODE_ENTRY( "gfx",  0x1800, tilelayout, 0, 1 )
324   GFXDECODE_ENTRY( "gfx",  0x2000, tilelayout, 0, 1 ) // ok tiles 0x400 (joker1)
325   GFXDECODE_ENTRY( "gfx",  0x2800, tilelayout, 0, 1 ) // ok tiles 0x500 (joker2)
326   GFXDECODE_ENTRY( "gfx",  0x3000, tilelayout, 0, 1 )
327   GFXDECODE_ENTRY( "gfx",  0x3800, tilelayout, 0, 1 )
328
329   GFXDECODE_ENTRY( "gfx",  0x4000, tilelayout, 0, 1 )
330   GFXDECODE_ENTRY( "gfx",  0x4800, tilelayout, 0, 1 )
331   GFXDECODE_ENTRY( "gfx",  0x5000, tilelayout, 0, 1 )
332   GFXDECODE_ENTRY( "gfx",  0x5800, tilelayout, 0, 1 )
333   GFXDECODE_ENTRY( "gfx",  0x6000, tilelayout, 0, 1 )
334   GFXDECODE_ENTRY( "gfx",  0x6800, tilelayout, 0, 1 )
335   GFXDECODE_ENTRY( "gfx",  0x7000, tilelayout, 0, 1 )
336   GFXDECODE_ENTRY( "gfx",  0x7800, tilelayout, 0, 1 )
337
338   GFXDECODE_ENTRY( "gfx",  0x8000, tilelayout, 0, 1 )
339   GFXDECODE_ENTRY( "gfx",  0x8800, tilelayout, 0, 1 )
340   GFXDECODE_ENTRY( "gfx",  0x9000, tilelayout, 0, 1 )
341   GFXDECODE_ENTRY( "gfx",  0x9800, tilelayout, 0, 1 )
342   GFXDECODE_ENTRY( "gfx",  0xa000, tilelayout, 0, 1 )
343   GFXDECODE_ENTRY( "gfx",  0xa800, tilelayout, 0, 1 ) // ok tiles 0x1500 (light lucky clubs)
344   GFXDECODE_ENTRY( "gfx",  0xb000, tilelayout, 0, 1 ) // ok tiles 0x1600 (dark lucky clubs)
345   GFXDECODE_ENTRY( "gfx",  0xb800, tilelayout, 0, 1 )
346
347   GFXDECODE_ENTRY( "gfx",  0xc000, tilelayout, 0, 1 )
348   GFXDECODE_ENTRY( "gfx",  0xc800, tilelayout, 0, 1 )
349   GFXDECODE_ENTRY( "gfx",  0xd000, tilelayout, 0, 1 )
350   GFXDECODE_ENTRY( "gfx",  0xd800, tilelayout, 0, 1 )
351   GFXDECODE_ENTRY( "gfx",  0xe000, tilelayout, 0, 1 )
352   GFXDECODE_ENTRY( "gfx",  0xe800, tilelayout, 0, 1 )
353   GFXDECODE_ENTRY( "gfx",  0xf000, tilelayout, 0, 1 )
354   GFXDECODE_ENTRY( "gfx",  0xf800, tilelayout, 0, 1 )
355
356   GFXDECODE_ENTRY( "gfxi", 0, ilayout,    0, 1 )   // Intensity, just to see the layer graphically
215357GFXDECODE_END
216358
217359
218/************************
219*    CRTC Interface    *
220************************/
360/********************************************
361*              CRTC Interface               *
362********************************************/
221363
222static MC6845_INTERFACE( mc6845_intf )
364static const mc6845_interface mc6845_intf =
365/*
366  *** MC6845 init ***
367
368  Register:   00    01    02    03    04    05    06    07    08    09    10    11    12    13    14    15    16    17
369  Value:     0x45  0x30  0x36  0x0A  0x28  0x00  0x26  0x27  0x00  0x07  0x20  0x0B  0x00  0x00  0x00  0x00  0x00  0x00.
370
371*/
223372{
224373   "screen",   /* screen we are acting on */
225374   false,      /* show border area */
r20389r20390
235384};
236385
237386
238/*************************
239*    Sound Interfaces    *
240*************************/
387/********************************************
388*             Sound Interface               *
389********************************************/
241390
242391static const ay8910_interface ay8910_config =
243392{
244393   AY8910_LEGACY_OUTPUT,
245394   AY8910_DEFAULT_LOADS,
395   DEVCB_INPUT_PORT("DSW"),
246396   DEVCB_NULL,
247397   DEVCB_NULL,
248   DEVCB_NULL,
249398   DEVCB_NULL
250399};
251400
252401
253/*************************
254*    Machine Drivers     *
255*************************/
402/*********************************************
403*              Machine Drivers               *
404*********************************************/
256405
257406static MACHINE_CONFIG_START( sanremo, sanremo_state )
258407
r20389r20390
260409   MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/3)
261410   MCFG_CPU_PROGRAM_MAP(sanremo_map)
262411   MCFG_CPU_IO_MAP(sanremo_portmap)
263//   MCFG_CPU_VBLANK_INT_DRIVER("screen", sanremo_state, nmi_line_pulse)
412   MCFG_CPU_VBLANK_INT_DRIVER("screen", sanremo_state, irq0_line_hold)
264413
265//  MCFG_NVRAM_ADD_0FILL("nvram")
414   MCFG_NVRAM_ADD_0FILL("nvram")
266415
267416   /* video hardware */
268417   MCFG_SCREEN_ADD("screen", RASTER)
r20389r20390
285434MACHINE_CONFIG_END
286435
287436
288/*************************
289*        Rom Load        *
290*************************/
437/*********************************************
438*                  Rom Load                  *
439*********************************************/
291440
292ROM_START( sanremo )
441ROM_START( number1 )
293442   ROM_REGION( 0x10000, "maincpu", 0 )
294443   ROM_LOAD( "no_g0.ic26",   0x0000, 0x8000, CRC(2d83646f) SHA1(d1fafcce44ed3ec3dd53d84338c42244ebfca820) )
295444
296   ROM_REGION( 0x10000, "gfxbnk0", 0 )
297   ROM_LOAD( "no_i4.ic30",   0x00000, 0x10000, CRC(55b351a4) SHA1(b0c8a30dde076520234281da051f21f1b7cb3166) )   // i?
445   ROM_REGION( 0x10000, "gfxi", 0 )
446   ROM_LOAD( "no_i4.ic30",   0x00000, 0x10000, CRC(55b351a4) SHA1(b0c8a30dde076520234281da051f21f1b7cb3166) )   // i
298447
299   ROM_REGION( 0x30000, "gfxbnk1", 0 )
448   ROM_REGION( 0x30000, "gfx", 0 )
300449   ROM_LOAD( "no_b4.ic27",   0x00000, 0x10000, CRC(e48b1c8a) SHA1(88f60268fd43c06e146d936a1bdc078c44e2a213) )   // b
301450   ROM_LOAD( "no_g4.ic28",   0x10000, 0x10000, CRC(4eea9a9b) SHA1(c86c083ccf08c3c310028920f9a0fe809fd7ccbe) )   // g
302451   ROM_LOAD( "no_r4.ic29",   0x20000, 0x10000, CRC(ab08cdaf) SHA1(e0518403039b6bada79ffe4c6bc22fbb64d16e43) )   // r
303452
453   ROM_REGION( 0x0800, "nvram", 0 )    /* default NVRAM */
454   ROM_LOAD( "number1_nvram.bin", 0x0000, 0x0800, CRC(4ece7b39) SHA1(49815571d75a39ab67d26691f902dfbd4e05feb4) )
455
304456   ROM_REGION( 0x0600, "plds", 0 )
305457   ROM_LOAD( "palce1.bin",   0x0000, 0x0104, NO_DUMP )   /* PALCE is read protected */
306458   ROM_LOAD( "palce2.bin",   0x0200, 0x0104, NO_DUMP )   /* PALCE is read protected */
r20389r20390
308460ROM_END
309461
310462
311/*************************
312*      Game Drivers      *
313*************************/
463/*********************************************
464*                Game Drivers                *
465*********************************************/
314466
315/*    YEAR  NAME     PARENT  MACHINE  INPUT    STATE          INIT   ROT    COMPANY           FULLNAME                      FLAGS... */
316GAME( 198?, sanremo, 0,      sanremo, sanremo, driver_device, 0,     ROT0, "San Remo Games", "Unknown San Remo poker game", GAME_NOT_WORKING )
467/*     YEAR  NAME     PARENT  MACHINE  INPUT    STATE          INIT   ROT    COMPANY           FULLNAME      FLAGS...                                    LAYOUT  */
468GAMEL( 1996, number1, 0,      sanremo, number1, driver_device, 0,     ROT0, "San Remo Games", "Number One",  GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING, layout_sanremo )
trunk/src/mame/mame.lst
r20389r20390
3041930419bingoman
3042030420bingomana
3042130421
30422sanremo
30422number1    // 1996 San Remo Games
trunk/src/mame/mame.mak
r20389r20390
22662266$(DRIVERS)/s11b.o:  $(LAYOUT)/s11b.lh
22672267$(DRIVERS)/s11c.o:  $(LAYOUT)/s11c.lh
22682268
2269$(DRIVERS)/sanremo.o:   $(LAYOUT)/sanremo.lh
2270
22692271$(DRIVERS)/sbrkout.o:   $(LAYOUT)/sbrkout.lh
22702272
22712273$(DRIVERS)/sderby.o:    $(LAYOUT)/sderby.lh \

Previous 199869 Revisions Next


© 1997-2024 The MAME Team