1 // license:BSD-3-Clause
2 // copyright-holders:
3
4 /*
5 Skeleton driver for Cirsa "Mini Super Fruits" and clones.
6 Known games on this hardware:
7 __________________________________________________
8 | Dumped | Game | Manufacturer |
9 +--------+-------------------+--------------------+
10 | YES | Mini Super Fruits | Cirsa |
11 | YES | Lucky Player | Cirsa |
12 | YES | Miss Bamby | Automatics Pasqual |
13 | YES | Golden Winer | Reben |
14 | NO | Golden Fruits | unknown |
15 | NO | St.-Tropez | unknown |
16 +-------------------------------------------------+
17 */
18 /*
19 Miss Bamby - Automatics Pasqual
20 _____________________________________________________________
21 | _______ |
22 | |_PROM_| ____________ |
23 | __________________ | EMPTY | |
24 | | M5L8085AP | |_SOCKET____| |
25 | |_________________| ____________ |
26 | ______________ | ROM1 | |
27 | XTAL |M5L8212P | |___________| |
28 | __ 6.144 |____________| ____________ |
29 | |R| | ROM0 | |
30 __| |___________| |
31 |__| ________ ________ ___________________ ____________ |
32 |__| |ULN2003A |ULN2003A | M5L8155P | |_D5101LC__| |
33 |__| |__________________| ____________ |
34 |__| ________ _________ |_D5101LC__| |
35 |__| _______ |74LS393| |74LS74B1 |
36 |__| |7407N | ________ |
37 |__| ________ ________ |GD4001B| |
38 |__| |74LS14_| |74LS153| _________ |
39 |__| ____ | BATT | |
40 |__| _______ ___________________ |D | | 3.6V | |
41 |__| |LM380N| | AY-3-8910 | |I | |_________| |
42 |__| |__________________| |P | ______ |
43 |__| |S__| LM311N |
44 |____________________________________________________________|
45
46 Golden Winner - Reben
47 _____________________________________________________________
48 | _______ |
49 | DM74S188N ____________ |
50 | __________________ | EMPTY | |
51 | | NEC D8085AC | |_SOCKET____| |
52 | |_________________| ____________ |
53 | ______________ | ROM-B | |
54 | XTAL |INS/DP8212N | |___________| |
55 | __ 6.000 |____________| ____________ |
56 | |R| | ROM-A | |
57 __| |___________| |
58 |__| ________ ________ ___________________ ____________ |
59 |__| |_L203B_| |_L203B_| | NEC D8155HC | |MCM51L01P45| |
60 |__| |__________________| ____________ |
61 |__| ________ _________ |SCL 5101E-1| |
62 |__| _______ |74LS393N |DM7474N| |
63 |__| |7407N | ________ |
64 |__| ________ ________ |GD4001B| |
65 |__| SN74LS14N DM74LS153N |
66 |__| ____ |
67 |__| _______ ___________________ |D | |
68 |__| |LM380N| | AY-3-8910 | |I | |
69 |__| |__________________| |P | ______ |
70 |__| |S__| CA311E |
71 |____________________________________________________________|
72 */
73
74 #include "emu.h"
75 #include "emupal.h"
76 #include "speaker.h"
77 #include "cpu/i8085/i8085.h"
78 #include "machine/i8155.h"
79 //#include "machine/nvram.h"
80 #include "sound/ay8910.h"
81
82 class missbamby_state : public driver_device
83 {
84 public:
missbamby_state(const machine_config & mconfig,device_type type,const char * tag)85 missbamby_state(const machine_config &mconfig, device_type type, const char *tag)
86 : driver_device(mconfig, type, tag),
87 m_maincpu(*this, "maincpu")
88 {
89 }
90
91 void missbamby(machine_config &config);
92 void gldwinner(machine_config &config);
93
94 private:
95 required_device<cpu_device> m_maincpu;
96
97 void io_map(address_map &map);
98 void prg_map(address_map &map);
99
100 virtual void machine_start() override;
101 };
102
prg_map(address_map & map)103 void missbamby_state::prg_map(address_map &map) // preliminary, everything to be taken with a grain of salt
104 {
105 map(0x0000, 0x3fff).rom();
106 map(0x5000, 0x50ff).ram();
107 //map(0x6000, 0x6000).r(); // only read once at start-up?
108 map(0x8000, 0x80ff).ram();
109 map(0x8800, 0x88ff).rw("i8155", FUNC(i8155_device::memory_r), FUNC(i8155_device::memory_w));
110 map(0x8900, 0x8907).rw("i8155", FUNC(i8155_device::io_r), FUNC(i8155_device::io_w));
111 map(0x9000, 0x9000).r("psg", FUNC(ay8910_device::data_r));
112 map(0x9001, 0x9001).w("psg", FUNC(ay8910_device::address_w));
113 map(0x9002, 0x9002).w("psg", FUNC(ay8910_device::data_w));
114 }
115
io_map(address_map & map)116 void missbamby_state::io_map(address_map &map)
117 {
118 map.global_mask(0xff);
119 map.unmap_value_high();
120 }
121
122
123 static INPUT_PORTS_START( missbamby )
124 PORT_START("IN0")
125 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
126
127 PORT_START("DSW1")
128 PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW1:1")
129 PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "SW1:2")
130 PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "SW1:3")
131 PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "SW1:4")
132 PORT_DIPUNKNOWN_DIPLOC(0x10, 0x10, "SW1:5")
133 PORT_DIPUNKNOWN_DIPLOC(0x20, 0x20, "SW1:6")
134 PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "SW1:7")
135 PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "SW1:8")
136 INPUT_PORTS_END
137
138
machine_start()139 void missbamby_state::machine_start()
140 {
141 }
142
143
missbamby(machine_config & config)144 void missbamby_state::missbamby(machine_config &config)
145 {
146 I8085A(config, m_maincpu, 6.144_MHz_XTAL); // M5L8085AP
147 m_maincpu->set_addrmap(AS_PROGRAM, &missbamby_state::prg_map);
148 m_maincpu->set_addrmap(AS_IO, &missbamby_state::io_map);
149
150 I8155(config, "i8155", 6.144_MHz_XTAL/2); // Guessed divisor
151
152 SPEAKER(config, "mono").front_center();
153 ay8910_device &psg(AY8910(config, "psg", 6.144_MHz_XTAL / 4));
154 psg.port_a_read_callback().set_ioport("DSW1");
155 psg.add_route(ALL_OUTPUTS, "mono", 1.0); // guess
156 }
157
gldwinner(machine_config & config)158 void missbamby_state::gldwinner(machine_config &config)
159 {
160 I8085A(config, m_maincpu, 6_MHz_XTAL); // NEC D8085AC
161 m_maincpu->set_addrmap(AS_PROGRAM, &missbamby_state::prg_map);
162 m_maincpu->set_addrmap(AS_IO, &missbamby_state::io_map);
163
164 I8155(config, "i8155", 6_MHz_XTAL/2); // NEC D8155HC, guessed divisor
165
166 SPEAKER(config, "mono").front_center();
167 ay8910_device &psg(AY8910(config, "psg", 6_MHz_XTAL / 4));
168 psg.port_a_read_callback().set_ioport("DSW1");
169 psg.port_b_read_callback().set_ioport("IN0");
170 psg.add_route(ALL_OUTPUTS, "mono", 1.0); // guess
171 }
172
173 ROM_START( minisupf )
174 ROM_REGION(0x4000, "maincpu", 0)
175 ROM_LOAD( "mini_av_1.4.a", 0x0000, 0x0800, CRC(d29a6468) SHA1(9a6d25a6d5602aff226340e8b4a87aa8a55e7c51) )
176 ROM_LOAD( "mini_av_1.4.b", 0x0800, 0x0800, CRC(0ebf0bd8) SHA1(d4a1a551dbeb56f16f17d7c02f926364132fb4a5) )
177 ROM_LOAD( "mini_av_1.4.c", 0x1000, 0x0800, CRC(5f976549) SHA1(5b81e71967719a913c51fe2e027f4477d507c5b6) )
178
179 ROM_REGION(0x20, "prom", 0)
180 ROM_LOAD( "mini_18sa030n.bin", 0x00, 0x20, CRC(fa7822eb) SHA1(586705f64a5fb95e5dd1c7bfc929dccfebc3ec49) )
181 ROM_END
182
183 // The 8155 was missing on this PCB, but probably it was just removed for reusing it elsewhere.
184 ROM_START( luckyplr )
185 ROM_REGION(0x4000, "maincpu", 0)
186 ROM_LOAD( "lucky_player_24.a", 0x0000, 0x1000, CRC(11a3daf2) SHA1(239d2e53f05eecfcbc0cf5e037df21e3851e4d69) )
187 ROM_LOAD( "lucky_player.b", 0x1000, 0x1000, CRC(5578abba) SHA1(1daf3de6c12792043fbea533d619e81b092a0a7d) )
188
189 ROM_REGION(0x20, "prom", 0)
190 ROM_LOAD( "lucky_player_18sa030n.bin", 0x00, 0x20, CRC(cf80f260) SHA1(b965017aa871454c54f6175fee486eea810a9c2e) )
191 ROM_END
192
193 ROM_START( msbamby )
194 ROM_REGION(0x4000, "maincpu", 0)
195 ROM_LOAD( "1.bin", 0x0000, 0x2000, CRC(7b5efbd9) SHA1(abb4b4432021945aee474c4bdd83979f6460c671) )
196 ROM_LOAD( "2.bin", 0x2000, 0x2000, CRC(6048d5cd) SHA1(a3bbf43b1474de75aef9957b967ead96b9a18fc5) )
197
198 ROM_REGION(0x20, "prom", 0)
199 ROM_LOAD( "prom.bin", 0x00, 0x20, CRC(f7013c11) SHA1(6e4e6d7f2a041d44359a7f5662bb4302da234ace) ) // Unknown manufacturer, dumped as 82s123
200 ROM_END
201
202 ROM_START( gwinner )
203 ROM_REGION(0x4000, "maincpu", 0)
204 ROM_LOAD( "reben_sa_gw-a_chk_8811_crc_2677.bin", 0x0000, 0x1000, CRC(ffcb4ba0) SHA1(2bc0dfc2b35a3a6cc3addf69a4c8916cc54347e4) )
205 ROM_LOAD( "reben_sa_gw-b_chk_f884_crc_7822.bin", 0x2000, 0x1000, CRC(0146a4ff) SHA1(d23048ba0f23daf5caba07affc57e88ab09ca91e) )
206
207 ROM_REGION(0x20, "prom", 0)
208 ROM_LOAD( "dm74s188n.bin", 0x00, 0x20, NO_DUMP )
209 ROM_END
210
211 ROM_START( unkslot )
212 ROM_REGION(0x4000, "maincpu", 0)
213 ROM_LOAD( "tms2564jl.bin", 0x0000, 0x2000, CRC(43fa54fb) SHA1(2e0d0883deb20d68e46d3c5c5c98508c9b5d5411) )
214 ROM_LOAD( "d2764d.bin", 0x2000, 0x1000, CRC(b7c55fc2) SHA1(2dfcc35821971c27178522afe9db1d18e12b3a42) ) // 1xxxxxxxxxxx = 0xFF
215
216 ROM_REGION(0x20, "prom", 0)
217 ROM_LOAD( "n83s23n.bin", 0x00, 0x20, CRC(ea598b2c) SHA1(c0d6367ed2381a4a0f22780773ff4777569e88ab) )
218 ROM_END
219
220
221 GAME( 1981, minisupf, 0, missbamby, missbamby, missbamby_state, empty_init, ROT0, "Cirsa", "Mini Super Fruits", MACHINE_IS_SKELETON_MECHANICAL )
222 GAME( 1981, luckyplr, 0, missbamby, missbamby, missbamby_state, empty_init, ROT0, "Cirsa", "Lucky Player", MACHINE_IS_SKELETON_MECHANICAL )
223 GAME( 198?, msbamby, 0, missbamby, missbamby, missbamby_state, empty_init, ROT0, "Automatics Pasqual", "Miss Bamby", MACHINE_IS_SKELETON_MECHANICAL )
224 GAME( 198?, unkslot, 0, missbamby, missbamby, missbamby_state, empty_init, ROT0, "<unknown>", "unknown MGA or Costa Net slot machine", MACHINE_IS_SKELETON_MECHANICAL )
225 GAME( 1983, gwinner, 0, gldwinner, missbamby, missbamby_state, empty_init, ROT0, "Reben SA", "Golden Winner", MACHINE_IS_SKELETON_MECHANICAL )
226