1 // license:BSD-3-Clause
2 // copyright-holders:David Haywood
3 /*
4
5 Sega System SP (Spider)
6 skeleton driver
7
8 this is another 'Naomi-derived' system
9
10 as for SP... it must be done having few things in mind:
11 differences with Naomi in SH4 memory map only:
12 0x00200000 - 0x00207fff - no SRAM here
13 0x01000000 - 0x0100ffff - banked access to ROM board address space, see later
14 0x01010000 - 0x010101ff - I/O registers, IRQ control, reg 0 - upper 16bits of rombd bank address
15
16 as for ROM board - unlike regular Naomi M4 it have not only ROM itself,
17 but the other hardware too*:
18 0x00000000 - 0x1fffffff - FlashROM, like in regular Naomi M4 cart
19 0x39xxxxxx - SRAM(128KB)**
20 0x3axxxxxx - CF IDE registers (0 - data, 4 - error, 8 - sector count, etc)
21 0x3bxxxxxx - CF IDE AltStatus/Device Ctrl register
22 0x3dxxxxxx - Network aka Media board shared buffer/RAM
23 0x3fxxxxxx - Network board present flag (0x01)**
24
25 *note: M4-decryption works for all areas if address bit 30 is 1,
26 for example BIOS can read CF IDE data with on-fly data decryption
27
28 **note: this is 8bit device on 16bit bus, each even byte access actual
29 data, each odd byte is 0xFF.
30
31 so, unlike regular Naomi this "rom board" can be accessed via BOTH regular
32 G1 bus PIO or DMA, or directly via banked area 0x0100xxxx in SH4 address space.
33
34
35
36 todo: make this actually readable, we don't support unicode source files
37
38 Title PCB ID REV CFID Dumped Region PIC MAIN BD Serial
39 Battle Police ???-????? no ???-????-???? AAFE-xxxxxxxxxxx
40 Beetle DASH!! ???-????? no ???-????-???? AAFE-xxxxxxxxxxx
41 Bingo Galaxy (main) 834-14788 C ROM JP 253-5508-0513J AAFE-01A37754716, AAFE-01E10924916, AAFE-01D67304905, Medal
42 Bingo Galaxy (satellite) 837-14481 C ROM JP not used AAFE-01A36474716, Medal
43 Bingo Galaxy (satellite) 837-14789 F* ROM JP not used AAFE-xxxxxxxxxxx, game is same as above
44 Bingo Parade ???-????? no ???-????-???? AAFE-xxxxxxxxxxx, Medal
45 Brick People / Block People 834-14881 ROM ANY 253-5508-0558 AAFE-01F67905202, AAFE-01F68275202
46 Dinosaur King 834-14493-01 D ROM US 253-5508-0408 AAFE-01D1132xxxx, AAFE-01D15924816
47 Dinosaur King - Operation: Dinosaur Rescue 837-14434-91 ROM US/EXP 253-5508-0408 AAFE-01A30164715, AAFE-01B92094811
48 - // - 834-14662-01 MDA-C0021 CF AAFE-01B87574811
49 Dinosaur King 2 ???-????? no 253-5508-0408 AAFE-xxxxxxxxxxx
50 Dinosaur King 2 Ver 2.5 834-14792-02 F MDA-C0047 CF EXP 253-5508-0408 AAFE-01D73384904
51 Dinosaur King 2 Ver 2.501 China ???-????? MDA-C0081 CF EXP 253-5508-0408 AAFE-xxxxxxxxxxx
52 Dinosaur King Ver 4.000 ???-????? MDA-C0061 CF JP 253-5508-0408 AAFE-xxxxxxxxxxx
53 Disney: Magical Dream Dance on Stage ???-????? no ???-????-???? AAFE-xxxxxxxxxxx
54 Future Police Patrol Chase ???-????? no ???-????-???? AAFE-xxxxxxxxxxx
55 Issyouni Turbo Drive ???-????? no ???-????-???? AAFE-01E91305101
56 Issyouni Wan Wan ???-????? no ???-????-???? AAFE-xxxxxxxxxxx
57 King of Beetle: Battle Terminal ???-????? no ???-????-???? AAFE-xxxxxxxxxxx
58 Love & Berry Ver 1.003 834-14661-02 ROM EXP 253-5508-0446 AAFE-01D84934906
59 Love & Berry Ver 2.000 834-14661-02 ROM EXP 253-5508-0446 AAFE-01D8493xxxx
60 Love & Berry 3 EXP Ver 1.002 834-14661-01 MDA-C0042 CF US/EXP 253-5508-0446 AAFE-01D64704904
61 Love & Berry 3 CHN ???-????? MDA-C0071 CF EXP 253-5508-0446 AAFE-01G15765216
62 Marine & Marine ???-????? no ???-????-???? AAFE-xxxxxxxxxxx
63 Medalink 837-14699 no
64 Medalink 837-14700 no
65 Mirage World (SP MRW SATL) 834-14713 ROM ANY ???-????-???? AAFG-01A3xxxxxxx, Medal
66 Monopoly: The Medal ???-????? no ???-????-???? AAFE-xxxxxxxxxxx, Medal
67 Monopoly: The Medal 2nd Edition ???-????? no ???-????-???? AAFE-xxxxxxxxxxx, Medal
68 Mushiking 2K6 2ND ???-????? no ???-????-???? AAFE-xxxxxxxxxxx
69 Mushiking 2K7 1ST ???-????? no ???-????-???? AAFE-xxxxxxxxxxx
70 Ocha-Ken Hot Medal (Medalink) 837-14790 G ROM JP unknown AAFE-01G03115212, Satellite Medal
71 Tetris Giant / Tetris Dekaris 834-14970 G MDA-C0076 CF ANY 253-5508-0604 AAFE-01G03025212
72 Tetris Giant / Tetris Dekaris Ver.2.000 834-14970 G ROM ANY 253-5508-0604 AAFE-xxxxxxxxxxx
73 Thomas: The Tank Engine ???-????? no ???-????-???? AAFE-xxxxxxxxxxx
74 UNO the Medal (Medalink) ???-????? ROM JP 253-5508-0526J AAFE-01G00225212, Satellite Medal
75 Yataimura Kingyosukui (4-player, China) 837-14875 CF EXP 253-5508-0563J AAFE-xxxxxxxxxxx
76 Unknown 834-14865 JAP
77
78 REV PCB IC6s Flash AU1500
79 C 171-8278C 315-6370 8x 128Mbit AMD
80 D 171-8278D 315-6370 8x 128Mbit AMD
81 F 171-8278F 315-6416 8x 512Mbit AMD
82 F* 171-8278F 315-6416 2x 512Mbit RMI
83 G 171-8278G 315-6416 2x 512Mbit RMI
84
85 */
86
87 #include "emu.h"
88 #include "cpu/sh/sh4.h"
89 #include "debugger.h"
90 #include "includes/segasp.h"
91 #include "machine/naomim4.h"
92
sp_bank_r(offs_t offset,uint64_t mem_mask)93 uint64_t segasp_state::sp_bank_r(offs_t offset, uint64_t mem_mask)
94 {
95 if (ACCESSING_BITS_32_63)
96 return -1;
97 return m_sp_bank;
98 }
99
sp_bank_w(offs_t offset,uint64_t data,uint64_t mem_mask)100 void segasp_state::sp_bank_w(offs_t offset, uint64_t data, uint64_t mem_mask)
101 {
102 if (ACCESSING_BITS_32_63)
103 return;
104 uint16_t bank = data & 0xffff;
105 if (bank != m_sp_bank)
106 logerror("SystemSP: G2 Bank set to %08X%s\n", (bank & 0x3fff) << 16, (bank & 0x4000) ? " decrypt ON" :"" );
107 m_sp_bank = bank;
108 }
109
sn_93c46a_r()110 uint64_t segasp_state::sn_93c46a_r()
111 {
112 int res;
113
114 /* bit 3 is EEPROM data */
115 res = m_eeprom->do_read() << 4;
116 res |= (ioport("DSW")->read() << 4) & 0xC0; // note: only old REV D PCB have DSW 3-4 here, newer does not, always 0 readed
117 return res;
118 }
119
sn_93c46a_w(uint64_t data)120 void segasp_state::sn_93c46a_w(uint64_t data)
121 {
122 /* bit 4 is data */
123 /* bit 2 is clock */
124 /* bit 5 is cs */
125 m_eeprom->di_write((data & 0x8) >> 3);
126 m_eeprom->cs_write((data & 0x20) ? ASSERT_LINE : CLEAR_LINE);
127 m_eeprom->clk_write((data & 0x4) ? ASSERT_LINE : CLEAR_LINE);
128 }
129
sp_eeprom_r(offs_t offset,uint64_t mem_mask)130 uint64_t segasp_state::sp_eeprom_r(offs_t offset, uint64_t mem_mask)
131 {
132 if (ACCESSING_BITS_32_63)
133 return -1;
134 return m_sp_eeprom->do_read() << 4;
135 }
136
sp_eeprom_w(offs_t offset,uint64_t data,uint64_t mem_mask)137 void segasp_state::sp_eeprom_w(offs_t offset, uint64_t data, uint64_t mem_mask)
138 {
139 if (ACCESSING_BITS_32_63)
140 return;
141 m_sp_eeprom->di_write(data & 1);
142 m_sp_eeprom->cs_write((data & 2) ? ASSERT_LINE : CLEAR_LINE);
143 m_sp_eeprom->clk_write((data & 4) ? ASSERT_LINE : CLEAR_LINE);
144 }
145
sp_rombdflg_r()146 uint64_t segasp_state::sp_rombdflg_r()
147 {
148 // bit 0 - romboard type, 1 = M4
149 // bit 1 - debug mode (enable easter eggs in BIOS, can boot game without proper eeproms/settings)
150 return ioport("CFG")->read();
151 }
152
sp_io_r(offs_t offset,uint64_t mem_mask)153 uint64_t segasp_state::sp_io_r(offs_t offset, uint64_t mem_mask)
154 {
155 uint64_t retval;
156
157 int reg = offset * 2;
158 int shift = 0;
159
160 if (ACCESSING_BITS_32_63)
161 {
162 reg++;
163 shift = 32;
164 }
165
166 switch (reg)
167 {
168 case 0x00/4: // CN9 17-24 IN_PORT 0 (IN)
169 retval = ioport("IN_PORT0")->read();
170 break;
171 case 0x04/4: // CN9 41-48 IN_PORT 1 (IN)
172 retval = ioport("IN_PORT1")->read();
173 break;
174 case 0x08/4: // CN9 25-32 (I/O)
175 retval = ioport("IN_PORT3")->read();
176 break;
177 case 0x18/4: // IN_PORT 2
178 // bit 0:3 - DIPSW 1-4
179 // bit 4:5 - TEST/SERVICE SW, CN9 5-6 (old rev PCB only)
180 retval = ioport("DSW")->read();
181 retval |= ioport("IN_PORT2")->read();
182 break;
183 default:
184 retval = -1;
185 }
186
187 return retval << shift;
188 }
189
190 // todo, base DC / Naomi stuff should be in it's own map, differences only here, same for Naomi 2 etc.
segasp_map(address_map & map)191 void segasp_state::segasp_map(address_map &map)
192 {
193 /* Area 0 */
194 map(0x00000000, 0x001fffff).mirror(0xa2000000).rom().region("maincpu", 0); // BIOS
195
196 map(0x005f6800, 0x005f69ff).mirror(0x02000000).rw(FUNC(segasp_state::dc_sysctrl_r), FUNC(segasp_state::dc_sysctrl_w));
197 map(0x005f6c00, 0x005f6cff).mirror(0x02000000).m(m_maple, FUNC(maple_dc_device::amap));
198 map(0x005f7000, 0x005f70ff).mirror(0x02000000).m(m_naomig1, FUNC(naomi_g1_device::submap)).umask64(0x0000ffff0000ffff);
199 map(0x005f7400, 0x005f74ff).mirror(0x02000000).m(m_naomig1, FUNC(naomi_g1_device::amap));
200 map(0x005f7800, 0x005f78ff).mirror(0x02000000).rw(FUNC(segasp_state::dc_g2_ctrl_r), FUNC(segasp_state::dc_g2_ctrl_w));
201 map(0x005f7c00, 0x005f7cff).mirror(0x02000000).m(m_powervr2, FUNC(powervr2_device::pd_dma_map));
202 map(0x005f8000, 0x005f9fff).mirror(0x02000000).m(m_powervr2, FUNC(powervr2_device::ta_map));
203 map(0x00600000, 0x006007ff).mirror(0x02000000).rw(FUNC(segasp_state::dc_modem_r), FUNC(segasp_state::dc_modem_w));
204 map(0x00700000, 0x00707fff).mirror(0x02000000).rw(FUNC(segasp_state::dc_aica_reg_r), FUNC(segasp_state::dc_aica_reg_w));
205 map(0x00710000, 0x0071000f).mirror(0x02000000).rw("aicartc", FUNC(aicartc_device::read), FUNC(aicartc_device::write)).umask64(0x0000ffff0000ffff);
206
207 map(0x00800000, 0x00ffffff).mirror(0x02000000).rw(FUNC(segasp_state::soundram_r), FUNC(segasp_state::soundram_w)); // sound RAM (8 MB)
208
209 /* External Device */
210 map(0x01000000, 0x0100ffff).ram(); // banked access to ROM/NET board address space, mainly backup SRAM and ATA
211 map(0x01010000, 0x01010007).rw(FUNC(segasp_state::sp_bank_r), FUNC(segasp_state::sp_bank_w));
212 // map(0x01010080, 0x01010087) IRQ pending/reset, ATA control
213 map(0x01010100, 0x01010127).r(FUNC(segasp_state::sp_io_r));
214 map(0x01010128, 0x0101012f).rw(FUNC(segasp_state::sp_eeprom_r), FUNC(segasp_state::sp_eeprom_w));
215 map(0x01010150, 0x01010157).r(FUNC(segasp_state::sp_rombdflg_r));
216 // map(0x01010180, 0x010101af) custom UART 1
217 // map(0x010101c0, 0x010101ef) custom UART 2
218
219 /* Area 1 */
220 map(0x04000000, 0x04ffffff).mirror(0x02000000).ram().share("dc_texture_ram"); // texture memory 64 bit access
221 map(0x05000000, 0x05ffffff).mirror(0x02000000).ram().share("frameram"); // apparently this actually accesses the same memory as the 64-bit texture memory access, but in a different format, keep it apart for now
222
223 /* Area 2*/
224 map(0x08000000, 0x09ffffff).mirror(0x02000000).noprw(); // 'Unassigned'
225
226 /* Area 3 */
227 map(0x0c000000, 0x0dffffff).mirror(0xa2000000).ram().share("dc_ram");
228
229 /* Area 4 */
230 map(0x10000000, 0x107fffff).mirror(0x02000000).w(m_powervr2, FUNC(powervr2_device::ta_fifo_poly_w));
231 map(0x10800000, 0x10ffffff).w(m_powervr2, FUNC(powervr2_device::ta_fifo_yuv_w));
232 map(0x11000000, 0x11ffffff).w(m_powervr2, FUNC(powervr2_device::ta_texture_directpath0_w)); // access to texture / framebuffer memory (either 32-bit or 64-bit area depending on SB_LMMODE0 register - cannot be written directly, only through dma / store queue)
233 /* 0x12000000 -0x13ffffff Mirror area of 0x10000000 -0x11ffffff */
234 map(0x13000000, 0x13ffffff).w(m_powervr2, FUNC(powervr2_device::ta_texture_directpath1_w)); // access to texture / framebuffer memory (either 32-bit or 64-bit area depending on SB_LMMODE1 register - cannot be written directly, only through dma / store queue)
235
236 /* Area 5 */
237 //map(0x14000000, 0x17ffffff).noprw(); // MPX Ext.
238
239 /* Area 6 */
240 //map(0x18000000, 0x1bffffff).noprw(); // Unassigned
241
242 /* Area 7 */
243 //map(0x1c000000, 0x1fffffff).noprw(); // SH4 Internal
244 }
245
onchip_port(address_map & map)246 void segasp_state::onchip_port(address_map &map)
247 {
248 map(0x00, 0x0f).rw(FUNC(segasp_state::sn_93c46a_r), FUNC(segasp_state::sn_93c46a_w));
249 }
250
251
252 INPUT_PORTS_START( segasp )
PORT_INCLUDE(naomi_debug)253 PORT_INCLUDE( naomi_debug )
254
255 PORT_START("CFG")
256 PORT_DIPNAME( 0x01, 0x01, "ROM Board type" )
257 PORT_DIPSETTING( 0x00, "other" )
258 PORT_DIPSETTING( 0x01, "M4-type" )
259 PORT_DIPNAME( 0x02, 0x00, "BIOS Debug mode" )
260 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
261 PORT_DIPSETTING( 0x02, DEF_STR( On ) )
262
263 PORT_START("DSW")
264 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW:1")
265 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
266 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
267 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW:2")
268 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
269 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
270 PORT_DIPNAME( 0x04, 0x04, "Monitor" ) PORT_DIPLOCATION("SW:3")
271 PORT_DIPSETTING( 0x04, "31 kHz" )
272 PORT_DIPSETTING( 0x00, "15 kHz" )
273 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW:4") // Must be ON, with off BIOS bootstrap will deadloop with green screen
274 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
275 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
276
277 PORT_START("IN_PORT0")
278 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
279 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
280 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
281 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
282 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
283 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
284 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
285 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
286
287 PORT_START("IN_PORT1")
288 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
289 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE2 )
290 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 )
291 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 )
292 PORT_BIT( 0xca, IP_ACTIVE_LOW, IPT_UNKNOWN )
293
294 PORT_START("IN_PORT2")
295 PORT_SERVICE_NO_TOGGLE( 0x10, IP_ACTIVE_LOW )
296 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE1 )
297 PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN )
298
299 PORT_START("IN_PORT3")
300 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
301 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
302 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 )
303 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
304 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 )
305 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
306 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )
307 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
308
309 INPUT_PORTS_END
310
311 void segasp_state::segasp(machine_config &config)
312 {
313 naomi_aw_base(config);
314 m_maincpu->set_addrmap(AS_PROGRAM, &segasp_state::segasp_map);
315 m_maincpu->set_addrmap(AS_IO, &segasp_state::onchip_port);
316
317 EEPROM_93C46_16BIT(config, "main_eeprom");
318 EEPROM_93C46_16BIT(config, "sp_eeprom");
319
320 // todo, not exactly NaomiM4 (see notes at top of driver) use custom board type here instead
321 X76F100(config, "naomibd_eeprom"); // actually not present
322 naomi_m4_board &rom_board(NAOMI_M4_BOARD(config, "rom_board", 0, "naomibd_eeprom", "pic_readout"));
323 rom_board.irq_callback().set(FUNC(dc_state::g1_irq));
324 }
325
init_segasp()326 void segasp_state::init_segasp()
327 {
328 set_drc_options();
329 }
330
331 #define ROM_LOAD16_WORD_SWAP_BIOS(bios,name,offset,length,hash) \
332 ROMX_LOAD(name, offset, length, hash, ROM_GROUPWORD | ROM_BIOS(bios))
333
334 #define SEGASP_BIOS \
335 ROM_REGION( 0x200000, "maincpu", 0) \
336 ROM_SYSTEM_BIOS( 0, "v101", "BOOT VER 1.01" ) \
337 ROM_LOAD16_WORD_SWAP_BIOS( 0, "epr-24236a.ic50", 0x000000, 0x200000, CRC(ca7df0de) SHA1(504c74d5fc96c53ef9f7753e9e37fb8b39cb628c) ) \
338 ROM_SYSTEM_BIOS( 1, "v200", "BOOT VER 2.00" ) \
339 ROM_LOAD16_WORD_SWAP_BIOS( 1, "epr-24328.ic50", 0x000000, 0x200000, CRC(25f2ef00) SHA1(e58dec9f171e52b3ded213b3fcd9a0de8a438076) ) \
340 ROM_SYSTEM_BIOS( 2, "v201", "BOOT VER 2.01" ) \
341 ROM_LOAD16_WORD_SWAP_BIOS( 2, "epr-24328a.ic50", 0x000000, 0x200000, CRC(03ec3805) SHA1(a8fbaea826ca257be0b2b86952f247254929e046) ) \
342 ROM_REGION16_BE( 0x80, "main_eeprom", 0 ) \
343 ROM_LOAD16_WORD( "mb_serial.ic57", 0x0000, 0x0080, CRC(e1e3c009) SHA1(66bc636c527389c3338f631d78c788b4bd4e93be) )
344
345 // net_firm_119.ic72 - Network/Media Board firmware VER 1.19(VxWorks), 1st half contain original 1.10 version
346 // fpr-24208a.ic72 - version 1.23, 1st half - 1.10
347 // fpr-24329.ic72 - version 1.21, 1st half - 1.20
348 // fpr-24407_123.ic72 - version 1.23, 1st half - 1.20
349 // fpr-24407.ic72 - version 1.25, 1st half - 1.20
350 #define SEGASP_NETFIRM \
351 ROM_REGION( 0x200000, "netcpu", 0) \
352 ROM_LOAD( "net_eeprom.ic74s", 0x00000000, 0x200, CRC(77cc5a6c) SHA1(cbfba546256b70bce6c6fd0030d7e2e410a25526) ) \
353 ROM_LOAD( "net_firm_119.ic72", 0x00000000, 0x200000, CRC(a738ea1c) SHA1(d25187a973a7e166e70334f964363adf2be87257) ) \
354 ROM_LOAD( "fpr-24208a.ic72", 0x00000000, 0x200000, CRC(a738ea1c) SHA1(3c32ddfb3c40be66b9fb2ba35fbfd5b534bb3da0) ) \
355 ROM_LOAD( "fpr-24329.ic72", 0x00000000, 0x200000, CRC(a738ea1c) SHA1(d0d062a4089a2d3404df45eb015faaf7eee9b8c2) ) \
356 ROM_LOAD( "fpr-24407.ic72", 0x00000000, 0x200000, CRC(a738ea1c) SHA1(fbcc3d119b47a6da4d194e3fe4a98126c7049edf) ) \
357 ROM_LOAD( "fpr-24407_123.ic72",0x00000000, 0x200000, CRC(a738ea1c) SHA1(3f5a2fb03bbb1bd9af9fe32ad76a224c97aa9b7a) )
358
359 // keep M4 board code happy for now
360 #define SEGASP_MISC \
361 ROM_REGION( 0x84, "naomibd_eeprom", ROMREGION_ERASEFF )
362
363 #define SEGASPEE_US \
364 ROM_LOAD16_WORD( "mb_eeprom_us.ic54s", 0x0000, 0x0080, CRC(4186d7ab) SHA1(fc23da69a511a7643b6a066161bcfc3cdeeacf04) )
365
366 #define SEGASPEE_EXP \
367 ROM_LOAD16_WORD( "mb_eeprom_exp.ic54s", 0x0000, 0x0080, CRC(947ddfad) SHA1(832a3db097af680d1d0eb9451b4650565f0cf8c7) )
368
369 #define SEGASP_US \
370 ROM_REGION16_BE(0x80, "sp_eeprom", 0) \
371 SEGASPEE_US
372
373 #define SEGASP_EXP \
374 ROM_REGION16_BE(0x80, "sp_eeprom", 0) \
375 SEGASPEE_EXP
376
377 #define SEGASP_JP \
378 ROM_REGION16_BE(0x80, "sp_eeprom", ROMREGION_ERASEFF)
379
380 ROM_START( segasp )
381 SEGASP_BIOS
382 SEGASP_NETFIRM
383 SEGASP_MISC
384 SEGASP_JP
385 SEGASPEE_US
386 SEGASPEE_EXP
387
388 ROM_REGION( 0x08000000, "rom_board", ROMREGION_ERASEFF)
389 ROM_PARAMETER( ":rom_board:id", "5502" )
390 ROM_REGION( 0x800, "pic_readout", ROMREGION_ERASE00 )
391 ROM_END
392
393 ROM_START( brickppl )
394 SEGASP_BIOS
395 ROM_DEFAULT_BIOS( "v201" )
396 SEGASP_JP
397 SEGASP_MISC
398
399 ROM_REGION( 0x10000000, "rom_board", ROMREGION_ERASE)
400 ROM_LOAD( "ic62", 0x00000000, 0x4000000, CRC(d79afdb6) SHA1(328e535980624d9173164b756ebbdc1ca4cb6f18) )
401 ROM_LOAD( "ic63", 0x04000000, 0x4000000, CRC(4f3c0937) SHA1(72d68b66c57ff539b8058f80f1a15ffa44095460) )
402 ROM_LOAD( "ic64", 0x08000000, 0x4000000, CRC(383e90d9) SHA1(eeca4b1bd0cd1fed7b85f045d71e0c7258d4350b) )
403 ROM_LOAD( "ic65", 0x0c000000, 0x4000000, CRC(4c29b5ac) SHA1(9e6a79ad2d2498eed5b2590c8764222e7d6c0229) )
404
405 ROM_PARAMETER( ":rom_board:id", "5508" ) // 8x 512Mbit FlashROMs
406
407 ROM_REGION( 0x800, "pic_readout", 0 )
408 ROM_LOAD( "317-0558-com.ic15", 0, 0x800, BAD_DUMP CRC(7592d004) SHA1(632373d807f54953d68c95a9f874ed3e8011f085) )
409 ROM_END
410
411 ROM_START( bingogal )
412 SEGASP_BIOS
413 SEGASP_JP
414 SEGASP_MISC
415
416 ROM_REGION( 0x08000000, "rom_board", ROMREGION_ERASE)
417 ROM_LOAD( "ic62", 0x00000000, 0x01000000, CRC(c07d9870) SHA1(5d40c14c398c11908f05ef1fd274aa3818409fc6) )
418 ROM_LOAD( "ic63", 0x01000000, 0x01000000, CRC(5d85e6c0) SHA1(c09e843399fa4855ea149564480adbdf02dcc182) )
419 ROM_LOAD( "ic64", 0x02000000, 0x01000000, CRC(73134f52) SHA1(63e32fbbd15bb527d9b840dcc92bb9dd86483ae3) )
420 ROM_LOAD( "ic65", 0x03000000, 0x01000000, CRC(1e4ae511) SHA1(55b4f9dc86f7da8db9e4875a6ee120228be42591) )
421 ROM_LOAD( "ic66s", 0x04000000, 0x01000000, CRC(810d5dfc) SHA1(6998a622d0a4be27ba6d1fcfb2a89586f269b59e) )
422 ROM_LOAD( "ic67s", 0x05000000, 0x01000000, CRC(92014e31) SHA1(6a5cf75da4c81dc55386996b6e62bbb4594591e8) )
423 ROM_LOAD( "ic68s", 0x06000000, 0x01000000, CRC(0640172c) SHA1(44ccf6919922a1ce8ffd49ad3306c68b15193a71) )
424 ROM_LOAD( "ic69s", 0x07000000, 0x01000000, CRC(ca26fbf9) SHA1(fe131e23109d4ff2b79ce53b79c22009b2078c85) )
425
426 ROM_PARAMETER( ":rom_board:id", "5502" ) // actually 8x 128Mbit FlashROMs
427
428 ROM_REGION( 0x800, "pic_readout", 0 )
429 ROM_LOAD( "317-0513-jpn.ic15", 0, 0x800, BAD_DUMP CRC(778dc297) SHA1(a920ab31ea670cc5056c40baea3b832b7868bfe7) )
430 ROM_END
431
432 // Also was dumped 837-14789 PCB, which uses 2x 512Mbit Flash ROMs. Game contents is the same as joined IC 62-64 dumps below.
433 ROM_START( bingogals )
434 SEGASP_BIOS
435 SEGASP_JP
436 SEGASP_MISC
437
438 ROM_REGION( 0x08000000, "rom_board", ROMREGION_ERASE)
439 ROM_LOAD( "ic62", 0x00000000, 0x01000000, CRC(880eb905) SHA1(7afdb154329d49c85b10316d62aef4934e9a5479) )
440 ROM_LOAD( "ic63", 0x01000000, 0x01000000, CRC(41dab407) SHA1(d4582e6d8a0e67e6bfebcb336a4c8392f7cdba39) )
441 ROM_LOAD( "ic64", 0x02000000, 0x01000000, CRC(97dfb2ab) SHA1(97f95643145717b199cf79020d5e81bf913a96a7) )
442
443 ROM_PARAMETER( ":rom_board:id", "5502" ) // actually 8x 128Mbit FlashROMs
444
445 ROM_REGION( 0x800, "pic_readout", ROMREGION_ERASEFF) // not populated
446 ROM_END
447
448 ROM_START( dinoking )
449 SEGASP_BIOS
450 SEGASP_US
451 SEGASP_MISC
452
453 ROM_REGION( 0x08000000, "rom_board", ROMREGION_ERASE)
454 ROM_LOAD( "ic62", 0x00000000, 0x01000000, CRC(8bd18bf7) SHA1(8972ed2bf5bc2f8af9b864118f7a22940c392079) )
455 ROM_LOAD( "ic63", 0x01000000, 0x01000000, CRC(8e8c8d1b) SHA1(4ec4a91515e57524d82a0cb98beabe8a286a5cd1) )
456 ROM_LOAD( "ic64", 0x02000000, 0x01000000, CRC(01b32ff7) SHA1(27301813ccd895b16a247ebed5edc3d8e3eab334) )
457 ROM_LOAD( "ic65", 0x03000000, 0x01000000, CRC(4b60cdb3) SHA1(4ad3e97845d6bdd8b32369aa23e622e066c8ba67) )
458 ROM_LOAD( "ic66s", 0x04000000, 0x01000000, CRC(ee3c278e) SHA1(3273a9f1eace78f65ba25bf0f6fcaa77fa421fc4) )
459 ROM_LOAD( "ic67s", 0x05000000, 0x01000000, CRC(42441393) SHA1(7ba94bc12ace699ea1159cece3d070fb35789d31) )
460 ROM_LOAD( "ic68s", 0x06000000, 0x01000000, CRC(4a787a44) SHA1(4d8f348466187fb67ffff8605be151cea1f77ec6) )
461 ROM_LOAD( "ic69s", 0x07000000, 0x01000000, CRC(c78e46c2) SHA1(b8224c68face23010414d13ebb4cc05a2a9dce8a) )
462
463
464 ROM_PARAMETER( ":rom_board:id", "5502" ) // actually 8x 128Mbit FlashROMs
465
466 ROM_REGION( 0x800, "pic_readout", 0 )
467 ROM_LOAD( "317-0408-com.ic15", 0, 0x800, CRC(f77c49dc) SHA1(e10173bbbd5930ed159cec9a7dba308e2a3f3c43) )
468 ROM_END
469
470 ROM_START( lovebery )
471 SEGASP_BIOS
472 ROM_DEFAULT_BIOS( "v201" )
473 SEGASP_EXP
474 SEGASP_MISC
475
476 ROM_REGION( 0x08000000, "rom_board", ROMREGION_ERASE)
477 ROM_LOAD( "ic62", 0x00000000, 0x4000000, CRC(1bd80ed0) SHA1(d50307573389ebe71e381a75deb83811fa397b94) )
478 ROM_LOAD( "ic63", 0x04000000, 0x4000000, CRC(d3870287) SHA1(efd3630d54068f5a8caf242a48db410bedf48e7a) )
479
480 ROM_PARAMETER( ":rom_board:id", "5508" ) // 8x 512Mbit FlashROMs
481
482 ROM_REGION( 0x800, "pic_readout", 0 )
483 ROM_LOAD( "317-0446-com.ic15", 0, 0x800, BAD_DUMP CRC(60f56bf2) SHA1(35e697aca7213e3fb1ebe75bb8991b1b992af6d9) )
484
485 // LOVE AND BERRY
486 // Dress up and Dance!
487 // Type-3
488 // 800
489 // note: this dump from "empty/dead" Management Chip with no game run count left
490 ROM_REGION( 0x80, "rf_tag", 0 )
491 ROM_LOAD( "berry_type3.bin", 0, 0x80, CRC(0c58aabd) SHA1(8e5d8c9fd2c84e93b442192682930cf4da3fcf79) )
492 ROM_END
493
494 ROM_START( lovebero )
495 SEGASP_BIOS
496 ROM_DEFAULT_BIOS( "v201" )
497 SEGASP_EXP
498 SEGASP_MISC
499
500 ROM_REGION( 0x08000000, "rom_board", ROMREGION_ERASE)
501 ROM_LOAD( "ic62", 0x00000000, 0x4000000, CRC(0a23cea3) SHA1(1780d935b0d641769859b2022df8e4262e7bafd8) ) // sldh
502 ROM_LOAD( "ic63", 0x04000000, 0x4000000, CRC(d3870287) SHA1(efd3630d54068f5a8caf242a48db410bedf48e7a) )
503
504 ROM_PARAMETER( ":rom_board:id", "5508" ) // 8x 512Mbit FlashROMs
505
506 ROM_REGION( 0x800, "pic_readout", 0 )
507 ROM_LOAD( "317-0446-com.ic15", 0, 0x800, BAD_DUMP CRC(60f56bf2) SHA1(35e697aca7213e3fb1ebe75bb8991b1b992af6d9) )
508 ROM_END
509
510 // Mirage World
511 // "coin pusher" type medal game machine, consists of "Main", "Center" and several "Satellite" units connected via Ethernet.
512 // Only Satellite unit was dumped, Main and Center units is missing.
513 // 834-14713 SP MRW SATL
514 ROM_START( mirworld )
515 SEGASP_BIOS
516 ROM_DEFAULT_BIOS( "v201" )
517 SEGASP_JP
518 SEGASP_MISC
519
520 ROM_REGION( 0x08000000, "rom_board", ROMREGION_ERASE)
521 ROM_LOAD( "ic62", 0x00000000, 0x4000000, CRC(beda1ded) SHA1(a493a298d8fbe1fa2c66423da2dee378e691a7f4) )
522 ROM_LOAD( "ic63", 0x04000000, 0x4000000, CRC(ec7e58cb) SHA1(8c6a45da31cd87a71b8e2f7454dc31bc2891210b) )
523
524 ROM_PARAMETER( ":rom_board:id", "5502" ) // 2x 512Mbit FlashROMs
525
526 ROM_REGION( 0x800, "pic_readout", ROMREGION_ERASEFF ) // not populated
527 ROM_END
528
529 ROM_START( ochaken )
530 SEGASP_BIOS
531 ROM_DEFAULT_BIOS( "v201" )
532 SEGASP_JP
533 SEGASP_MISC
534
535 ROM_REGION( 0x08000000, "rom_board", ROMREGION_ERASE)
536 ROM_LOAD( "ic62", 0x00000000, 0x4000000, CRC(7eb89b69) SHA1(5991c72df7ee68073f6de158f6ddf3f0490444ac) )
537 ROM_LOAD( "ic63", 0x04000000, 0x4000000, CRC(e52d7885) SHA1(96485af39b7cbf3c7bfd403f673eb8678077bbe8) )
538
539 ROM_PARAMETER( ":rom_board:id", "5502" ) // 2x 512Mbit FlashROMs
540
541 ROM_REGION( 0x800, "pic_readout", 0 )
542 // no PIC was provided with game board, brute forced key
543 ROM_LOAD( "317-unknown.ic15", 0, 0x800, BAD_DUMP CRC(0a6e8627) SHA1(01a0b66bffbf7caca8199b132a6014813f04843f) )
544 ROM_END
545
546 ROM_START( tetgiant )
547 SEGASP_BIOS
548 ROM_DEFAULT_BIOS( "v201" )
549 SEGASP_JP
550 SEGASP_MISC
551
552 ROM_REGION( 0x08000000, "rom_board", ROMREGION_ERASE)
553 ROM_LOAD( "ic62", 0x00000000, 0x4000000, CRC(31ba1938) SHA1(9b5a05193b3df13cd7617a38913e0b0fbd61da44) )
554 ROM_LOAD( "ic63", 0x04000000, 0x4000000, CRC(cb946213) SHA1(6195e33c44a1e8eb464dfc3558dc1c9b4d910ef3) )
555
556 ROM_PARAMETER( ":rom_board:id", "5502" ) // 2x 512Mbit FlashROMs
557
558 ROM_REGION( 0x800, "pic_readout", 0 )
559 ROM_LOAD( "317-0604-com.ic15", 0, 0x800, CRC(a46dfd47) SHA1(9e24739ecaaf85ef3b862485064450db6c607189) )
560 ROM_END
561
562 ROM_START( unomedal )
563 SEGASP_BIOS
564 ROM_DEFAULT_BIOS( "v201" )
565 SEGASP_JP
566 SEGASP_MISC
567
568 ROM_REGION( 0x08000000, "rom_board", ROMREGION_ERASEFF)
569 ROM_LOAD( "ic62", 0x00000000, 0x4000000, CRC(2af0cfb3) SHA1(88e75e547e525d7752f365256ba22411d2f0c7d9) )
570 ROM_LOAD( "ic63", 0x04000000, 0x4000000, CRC(fe375da9) SHA1(b2c6ddf3f15ba801bfa1d0c6ae7ebde0ce6766e9) )
571
572 ROM_PARAMETER( ":rom_board:id", "5502" ) // 2x 512Mbit FlashROMs
573
574 ROM_REGION( 0x800, "pic_readout", 0 )
575 ROM_LOAD( "317-0526-jpn.ic15", 0, 0x800, CRC(14232fb7) SHA1(5fb8f832c760081aec6fdaa3be8535e3d641ae13) )
576 ROM_END
577
578
579 ROM_START( dinokior )
580 SEGASP_BIOS
581 SEGASP_US
582 SEGASP_MISC
583
584 ROM_REGION( 0x08000000, "rom_board", ROMREGION_ERASEFF)
585
586 // DINOSAUR KING
587 // Operation:Dinosaur Rescue
588 // MDA-C0021
589 DISK_REGION( "cflash" )
590 DISK_IMAGE( "mda-c0021", 0, SHA1(947c987fb93a32c5acf7839e0186de91b5a9facc) )
591
592 ROM_PARAMETER( ":rom_board:id", "5502" ) // actually 8x 128Mbit FlashROMs
593
594 ROM_REGION( 0x800, "pic_readout", 0 )
595 ROM_LOAD( "317-0408-com.ic15", 0, 0x800, CRC(f77c49dc) SHA1(e10173bbbd5930ed159cec9a7dba308e2a3f3c43) )
596 ROM_END
597
598 ROM_START( dinoki25 )
599 SEGASP_BIOS
600 ROM_DEFAULT_BIOS( "v200" )
601 SEGASP_EXP
602 SEGASP_MISC
603
604 ROM_REGION( 0x08000000, "rom_board", ROMREGION_ERASEFF)
605
606 // DINOSAUR KING
607 // VER2.5 ENG_ASIA
608 // MDA-C0047
609 DISK_REGION( "cflash" )
610 DISK_IMAGE( "mda-c0047", 0, SHA1(0f97291d9c5dbe3e66a5220da05aebdfaa78b35d) )
611
612 ROM_PARAMETER( ":rom_board:id", "5508" ) // 8x 512Mbit FlashROMs
613
614 ROM_REGION( 0x800, "pic_readout", 0 )
615 ROM_LOAD( "317-0408-com.ic15", 0, 0x800, CRC(f77c49dc) SHA1(e10173bbbd5930ed159cec9a7dba308e2a3f3c43) )
616
617 // DINOSAUR KING
618 // TYPE-3
619 // 800
620 // note: this dump from "empty/dead" Management Chip with no game run count left
621 ROM_REGION( 0x80, "rf_tag", 0 )
622 ROM_LOAD( "dino_type3.bin", 0, 0x80, CRC(1b6c9ea7) SHA1(2e56a1969c49c347f7facda187e5bf787c74328c) )
623 ROM_END
624
625 // This game's protection uses contact IC card reader made by Hirocon, with 2 IC card slots, cards probably SLE4428 or SLE5528.
626 ROM_START( dinokich )
627 SEGASP_BIOS
628 ROM_DEFAULT_BIOS( "v200" )
629 SEGASP_EXP
630 SEGASP_MISC
631
632 ROM_REGION( 0x08000000, "rom_board", ROMREGION_ERASEFF)
633
634 // DINOSAUR KING
635 // MDA-C0081
636 DISK_REGION( "cflash" )
637 DISK_IMAGE( "mda-c0081", 0, SHA1(c9b8449666124f52b175a3d3d795bc0e7ea4d91e) ) // unused space contain leftovers from "Disney Magical Dream Dance" game, encrypted, key is 1ffbc9f0
638
639 ROM_PARAMETER( ":rom_board:id", "5508" ) // 8x 512Mbit FlashROMs
640
641 ROM_REGION( 0x800, "pic_readout", 0 )
642 ROM_LOAD( "317-0408-com.ic15", 0, 0x800, CRC(f77c49dc) SHA1(e10173bbbd5930ed159cec9a7dba308e2a3f3c43) )
643 ROM_END
644
645 // This version does not use RFID readers and Management chips.
646 ROM_START( dinoki4 )
647 SEGASP_BIOS
648 ROM_DEFAULT_BIOS( "v200" )
649 SEGASP_JP
650 SEGASP_MISC
651
652 ROM_REGION( 0x08000000, "rom_board", ROMREGION_ERASEFF)
653
654 // 古代王者 恐竜キング
655 // 目覚めよ! 新たなる力!!
656 // MDA-C0061
657 DISK_REGION( "cflash" )
658 DISK_IMAGE( "mda-c0061", 0, BAD_DUMP SHA1(d9e21aff3d33cc5d3d97decacf963cff23c60ff1) ) // BAD_DUMP note: actual game files is all good and genuine, but image itself was modified and not original.
659
660 ROM_PARAMETER( ":rom_board:id", "5502" )
661
662 ROM_REGION( 0x800, "pic_readout", 0 )
663 ROM_LOAD( "317-0408-com.ic15", 0, 0x800, CRC(f77c49dc) SHA1(e10173bbbd5930ed159cec9a7dba308e2a3f3c43) )
664 ROM_END
665
666 ROM_START( kingyoch )
667 SEGASP_BIOS
668 ROM_DEFAULT_BIOS( "v201" )
669 SEGASP_EXP
670 SEGASP_MISC
671
672 ROM_REGION( 0x08000000, "rom_board", ROMREGION_ERASEFF)
673
674 // YATAIMURA
675 // KINGYOSUKUI EX
676 DISK_REGION( "cflash" )
677 DISK_IMAGE( "kingyo", 0, SHA1(f3685a0c6109b78f4812972b71bcec4ef9e9198f) ) // free space contain other game leftovers, presumable Issyouni Wan Wan, encrypted, key is 511248c2
678
679 ROM_PARAMETER( ":rom_board:id", "5508" ) // 8x 512Mbit FlashROMs
680
681 ROM_REGION( 0x800, "pic_readout", 0 )
682 // no PIC was provided with CF card, brute forced key
683 ROM_LOAD( "317-0563-jpn.ic15", 0, 0x800, BAD_DUMP CRC(8af67833) SHA1(0b79abf9182c249a6d4976d6fd3b90101d66354f) )
684 ROM_END
685
686 ROM_START( loveber3 )
687 SEGASP_BIOS
688 ROM_DEFAULT_BIOS( "v200" )
689 SEGASP_US
690 SEGASP_MISC
691
692 ROM_REGION( 0x08000000, "rom_board", ROMREGION_ERASEFF)
693
694 // LOVE AND BERRY III ENG
695 // MDA-C0042
696 DISK_REGION( "cflash" )
697 DISK_IMAGE( "mda-c0042", 0, SHA1(9992d90dae8ce7636e4153e02b779c27931b3be6) )
698
699 ROM_PARAMETER( ":rom_board:id", "5508" ) // 8x 512Mbit FlashROMs
700
701 ROM_REGION( 0x800, "pic_readout", 0 )
702 ROM_LOAD( "317-0446-com.ic15", 0, 0x800, BAD_DUMP CRC(60f56bf2) SHA1(35e697aca7213e3fb1ebe75bb8991b1b992af6d9) )
703 ROM_END
704
705 // This game's protection uses contact IC card reader made by Hirocon, with 2 IC card slots, cards probably SLE4428 or SLE5528.
706 ROM_START( loveber3cn )
707 SEGASP_BIOS
708 ROM_DEFAULT_BIOS( "v201" )
709 SEGASP_EXP
710 SEGASP_MISC
711
712 ROM_REGION( 0x08000000, "rom_board", ROMREGION_ERASEFF)
713
714 // LOVE AND BERRY III CHN
715 // MDA-C0071
716 DISK_REGION( "cflash" )
717 DISK_IMAGE( "mda-c0071", 0, SHA1(ea65def6d97dc76c08654fae3c89b80a0492575b) ) // unused space contain leftovers from "Disney Magical Dream Dance" game, encrypted, key is 1ffbc9f0
718
719 ROM_PARAMETER( ":rom_board:id", "5508" ) // 8x 512Mbit FlashROMs
720
721 ROM_REGION( 0x800, "pic_readout", 0 )
722 ROM_LOAD( "317-0446-com.ic15", 0, 0x800, BAD_DUMP CRC(60f56bf2) SHA1(35e697aca7213e3fb1ebe75bb8991b1b992af6d9) )
723 ROM_END
724
725 ROM_START( tetgiano )
726 SEGASP_BIOS
727 ROM_DEFAULT_BIOS( "v201" )
728 SEGASP_JP
729 SEGASP_MISC
730
731 ROM_REGION( 0x08000000, "rom_board", ROMREGION_ERASEFF)
732
733 // TETRIS - DEKARIS (romaji)
734 // / TETRIS® - GIANT
735 // MDA-C0076
736 DISK_REGION( "cflash" )
737 DISK_IMAGE( "mda-c0076", 0, SHA1(6987c888d2a3ada2d07f6396d47fdba507ca859d) )
738
739 ROM_PARAMETER( ":rom_board:id", "5502" ) // 2x 512Mbit FlashROMs
740
741 ROM_REGION( 0x800, "pic_readout", 0 )
742 ROM_LOAD( "317-0604-com.ic15", 0, 0x800, CRC(a46dfd47) SHA1(9e24739ecaaf85ef3b862485064450db6c607189) )
743 ROM_END
744
745
746 #define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND)
747
748 GAME( 2004, segasp, 0, segasp, segasp, segasp_state, init_segasp, ROT0, "Sega", "Sega System SP (Spider) BIOS", GAME_FLAGS | MACHINE_IS_BIOS_ROOT )
749 // These use ROMs
750 GAME( 2009, bingogal,segasp, segasp, segasp, segasp_state, init_segasp, ROT0, "Sega", "Bingo Galaxy (main)", GAME_FLAGS ) // 28.05.2009
751 GAME( 2009, bingogals,segasp, segasp, segasp, segasp_state, init_segasp, ROT0, "Sega", "Bingo Galaxy (satellite)", GAME_FLAGS ) // 28.05.2009
752 GAME( 2009, brickppl,segasp, segasp, segasp, segasp_state, init_segasp, ROT0, "Sega", "Brick People / Block PeePoo (Ver 1.002)", GAME_FLAGS )
753 GAME( 2005, dinoking,segasp, segasp, segasp, segasp_state, init_segasp, ROT0, "Sega", "Dinosaur King (USA)", GAME_FLAGS )
754 GAME( 2006, lovebery,segasp, segasp, segasp, segasp_state, init_segasp, ROT0, "Sega", "Love And Berry - 1st-2nd Collection (Export, Ver 2.000)", GAME_FLAGS )
755 GAME( 2006, lovebero,lovebery, segasp, segasp, segasp_state, init_segasp, ROT0, "Sega", "Love And Berry - 1st-2nd Collection (Export, Ver 1.003)", GAME_FLAGS )
756 GAME( 2007, mirworld,segasp, segasp, segasp, segasp_state, init_segasp, ROT0, "Sega", "Mirage World (satellite)", GAME_FLAGS )
757 GAME( 2007, ochaken, segasp, segasp, segasp, segasp_state, init_segasp, ROT0, "Sega", "Ocha-Ken Hot Medal", GAME_FLAGS )
758 GAME( 2009, tetgiant,segasp, segasp, segasp, segasp_state, init_segasp, ROT0, "Sega", "Tetris Giant / Tetris Dekaris (Ver.2.000)", GAME_FLAGS )
759 GAME( 2009, unomedal,segasp, segasp, segasp, segasp_state, init_segasp, ROT0, "Sega", "UNO the Medal", GAME_FLAGS )
760 // These use a CF card
761 GAME( 2006, dinokior,segasp, segasp, segasp, segasp_state, init_segasp, ROT0, "Sega", "Dinosaur King - Operation: Dinosaur Rescue (USA, Export) (MDA-C0021)", GAME_FLAGS )
762 GAME( 2008, dinoki25,segasp, segasp, segasp, segasp_state, init_segasp, ROT0, "Sega", "Dinosaur King - D-Team VS. the Alpha Fortress (Export, Ver 2.500) (MDA-C0047)", GAME_FLAGS )
763 GAME( 2010, dinokich,dinoki25, segasp, segasp, segasp_state, init_segasp, ROT0, "Sega", "Konglongwang - D-Kids VS Alpha Yaosai (China, Ver 2.501) (MDA-C0081)", GAME_FLAGS ) // D-Kids VS 亚法要塞
764 GAME( 2008, dinoki4,segasp, segasp, segasp, segasp_state, init_segasp, ROT0, "Sega", "Kodai Ouja Kyouryuu King - Mezame yo! Arata-naru Chikara!! (Japan, Ver 4.000) (MDA-C0061)", GAME_FLAGS ) // Ancient Ruler Dinosaur King - Wake up! New Power!!
765 GAME( 2009, kingyoch,segasp, segasp, segasp, segasp_state, init_segasp, ROT0, "Sega", "Yataimura Kingyosukui (4-player, China, Ver 1.000)", GAME_FLAGS )
766 GAME( 2007, loveber3,segasp, segasp, segasp, segasp_state, init_segasp, ROT0, "Sega", "Love And Berry - 3rd-5th Collection (USA, Export, Ver 1.002) (MDA-C0042)", GAME_FLAGS )
767 GAME( 2010, loveber3cn,loveber3, segasp, segasp, segasp_state, init_segasp, ROT0, "Sega", "Love And Berry - 3rd-5th Collection (China, Ver 1.001) (MDA-C0071)", GAME_FLAGS )
768 GAME( 2009, tetgiano,tetgiant, segasp, segasp, segasp_state, init_segasp, ROT0, "Sega", "Tetris Giant / Tetris Dekaris (MDA-C0076)", GAME_FLAGS )
769