| Previous | 199869 Revisions | Next |
| r34603 Sunday 25th January, 2015 at 12:53:11 UTC by Couriersud |
|---|
| Merged winmisc/sdlmisc into osdlib_*.c. (nw) |
| [src/emu] | device.c device.h emu.h emu.mak machine.c machine.h |
| [src/emu/cpu/i386] | pentops.inc |
| [src/emu/cpu/mips] | mips3drc.c |
| [src/emu/cpu/powerpc] | ppcdrc.c |
| [src/emu/cpu/rsp] | rspdrc.c |
| [src/emu/cpu/sh2] | sh2drc.c |
| [src/emu/video] | h63484.c h63484.h |
| [src/lib/util] | astring.h |
| [src/mame] | mame.mak |
| [src/mame/drivers] | hikaru.c model2.c model3.c naomi.c segajw.c stv.c |
| [src/mame/machine] | 315-5881_crypt.c 315-5881_crypt.h 315-5881_helper.c* 315-5881_helper.h* naomim2.c naomim2.h stvprot.c |
| [src/mess] | mess.lst mess.mak |
| [src/mess/drivers] | |
| [src/osd/modules/lib] | osdlib_macosx.c osdlib_os2.c osdlib_unix.c osdlib_win32.c |
| [src/osd/sdl] | sdl.mak |
| [src/osd/windows] | windows.mak |
| r243114 | r243115 | |
|---|---|---|
| 2249 | 2249 | MMXPROLOG(); |
| 2250 | 2250 | UINT8 modrm = FETCH(); |
| 2251 | 2251 | if( modrm >= 0xc0 ) { |
| 2252 | MMX_REG ds, sd; | |
| 2253 | 2252 | int s,d; |
| 2254 | 2253 | s=modrm & 0x7; |
| 2255 | 2254 | d=(modrm >> 3) & 0x7; |
| 2256 | ds.q = MMX(d).q; | |
| 2257 | sd.q = MMX(s).q; | |
| 2258 | MMX(d).b[0]=SaturatedSignedWordToUnsignedByte(ds.s[0]); | |
| 2259 | MMX(d).b[1]=SaturatedSignedWordToUnsignedByte(ds.s[1]); | |
| 2260 | MMX(d).b[2]=SaturatedSignedWordToUnsignedByte(ds.s[2]); | |
| 2261 | MMX(d).b[3]=SaturatedSignedWordToUnsignedByte(ds.s[3]); | |
| 2262 | MMX(d).b[4]=SaturatedSignedWordToUnsignedByte(sd.s[0]); | |
| 2263 | MMX(d).b[5]=SaturatedSignedWordToUnsignedByte(sd.s[1]); | |
| 2264 | MMX(d).b[6]=SaturatedSignedWordToUnsignedByte(sd.s[2]); | |
| 2265 | MMX(d).b[7]=SaturatedSignedWordToUnsignedByte(sd.s[3]); | |
| 2255 | MMX(d).b[0]=SaturatedSignedWordToUnsignedByte(MMX(d).s[0]); | |
| 2256 | MMX(d).b[1]=SaturatedSignedWordToUnsignedByte(MMX(d).s[1]); | |
| 2257 | MMX(d).b[2]=SaturatedSignedWordToUnsignedByte(MMX(d).s[2]); | |
| 2258 | MMX(d).b[3]=SaturatedSignedWordToUnsignedByte(MMX(d).s[3]); | |
| 2259 | MMX(d).b[4]=SaturatedSignedWordToUnsignedByte(MMX(s).s[0]); | |
| 2260 | MMX(d).b[5]=SaturatedSignedWordToUnsignedByte(MMX(s).s[1]); | |
| 2261 | MMX(d).b[6]=SaturatedSignedWordToUnsignedByte(MMX(s).s[2]); | |
| 2262 | MMX(d).b[7]=SaturatedSignedWordToUnsignedByte(MMX(s).s[3]); | |
| 2266 | 2263 | } else { |
| 2267 | MMX_REG s | |
| 2264 | MMX_REG s; | |
| 2268 | 2265 | int d=(modrm >> 3) & 0x7; |
| 2269 | 2266 | UINT32 ea = GetEA(modrm, 0); |
| 2270 | 2267 | READMMX(ea, s); |
| 2271 | t.q = MMX(d).q; | |
| 2272 | MMX(d).b[0]=SaturatedSignedWordToUnsignedByte(t.s[0]); | |
| 2273 | MMX(d).b[1]=SaturatedSignedWordToUnsignedByte(t.s[1]); | |
| 2274 | MMX(d).b[2]=SaturatedSignedWordToUnsignedByte(t.s[2]); | |
| 2275 | MMX(d).b[3]=SaturatedSignedWordToUnsignedByte(t.s[3]); | |
| 2268 | MMX(d).b[0]=SaturatedSignedWordToUnsignedByte(MMX(d).s[0]); | |
| 2269 | MMX(d).b[1]=SaturatedSignedWordToUnsignedByte(MMX(d).s[1]); | |
| 2270 | MMX(d).b[2]=SaturatedSignedWordToUnsignedByte(MMX(d).s[2]); | |
| 2271 | MMX(d).b[3]=SaturatedSignedWordToUnsignedByte(MMX(d).s[3]); | |
| 2276 | 2272 | MMX(d).b[4]=SaturatedSignedWordToUnsignedByte(s.s[0]); |
| 2277 | 2273 | MMX(d).b[5]=SaturatedSignedWordToUnsignedByte(s.s[1]); |
| 2278 | 2274 | MMX(d).b[6]=SaturatedSignedWordToUnsignedByte(s.s[2]); |
| r243114 | r243115 | |
| 2366 | 2362 | UINT8 modrm = FETCH(); |
| 2367 | 2363 | if( modrm >= 0xc0 ) { |
| 2368 | 2364 | int s,d; |
| 2369 | INT32 t1, t2, t3, t4; | |
| 2370 | 2365 | s=modrm & 0x7; |
| 2371 | 2366 | d=(modrm >> 3) & 0x7; |
| 2372 | t1 = MMX(d).i[0]; | |
| 2373 | t2 = MMX(d).i[1]; | |
| 2374 | t3 = MMX(s).i[0]; | |
| 2375 | t4 = MMX(s).i[1]; | |
| 2376 | MMX(d).s[0] = SaturatedSignedDwordToSignedWord(t1); | |
| 2377 | MMX(d).s[1] = SaturatedSignedDwordToSignedWord(t2); | |
| 2378 | MMX(d).s[2] = SaturatedSignedDwordToSignedWord(t3); | |
| 2379 | MMX(d).s[3] = SaturatedSignedDwordToSignedWord(t4); | |
| 2380 | } | |
| 2381 | else { | |
| 2367 | MMX(d).s[0]=SaturatedSignedDwordToSignedWord(MMX(d).i[0]); | |
| 2368 | MMX(d).s[1]=SaturatedSignedDwordToSignedWord(MMX(d).i[1]); | |
| 2369 | MMX(d).s[2]=SaturatedSignedDwordToSignedWord(MMX(s).i[0]); | |
| 2370 | MMX(d).s[3]=SaturatedSignedDwordToSignedWord(MMX(s).i[1]); | |
| 2371 | } else { | |
| 2382 | 2372 | MMX_REG s; |
| 2383 | INT32 t1, t2; | |
| 2384 | 2373 | int d=(modrm >> 3) & 0x7; |
| 2385 | 2374 | UINT32 ea = GetEA(modrm, 0); |
| 2386 | 2375 | READMMX(ea, s); |
| 2387 | t1 = MMX(d).i[0]; | |
| 2388 | t2 = MMX(d).i[1]; | |
| 2389 | MMX(d).s[0] = SaturatedSignedDwordToSignedWord(t1); | |
| 2390 | MMX(d).s[1] = SaturatedSignedDwordToSignedWord(t2); | |
| 2391 | MMX(d).s[2] = SaturatedSignedDwordToSignedWord(s.i[0]); | |
| 2392 | MMX(d).s[3] = SaturatedSignedDwordToSignedWord(s.i[1]); | |
| 2376 | MMX(d).s[0]=SaturatedSignedDwordToSignedWord(MMX(d).i[0]); | |
| 2377 | MMX(d).s[1]=SaturatedSignedDwordToSignedWord(MMX(d).i[1]); | |
| 2378 | MMX(d).s[2]=SaturatedSignedDwordToSignedWord(s.i[0]); | |
| 2379 | MMX(d).s[3]=SaturatedSignedDwordToSignedWord(s.i[1]); | |
| 2393 | 2380 | } |
| 2394 | 2381 | CYCLES(1); // TODO: correct cycle count |
| 2395 | 2382 | } |
| r243114 | r243115 | |
| 2724 | 2711 | { |
| 2725 | 2712 | UINT8 modrm = FETCH(); |
| 2726 | 2713 | if( modrm >= 0xc0 ) { |
| 2727 | // MOVHLPS opcode | |
| 2728 | XMM((modrm >> 3) & 0x7).q[0] = XMM(modrm & 0x7).q[1]; | |
| 2714 | // unsupported by cpu | |
| 2729 | 2715 | CYCLES(1); // TODO: correct cycle count |
| 2730 | 2716 | } else { |
| 2731 | // MOVLPS opcode | |
| 2732 | 2717 | UINT32 ea = GetEA(modrm, 0); |
| 2733 | 2718 | READXMM_LO64(ea, XMM((modrm >> 3) & 0x7)); |
| 2734 | 2719 | CYCLES(1); // TODO: correct cycle count |
| r243114 | r243115 | |
| 2752 | 2737 | { |
| 2753 | 2738 | UINT8 modrm = FETCH(); |
| 2754 | 2739 | if( modrm >= 0xc0 ) { |
| 2755 | // MOVLHPS opcode | |
| 2756 | XMM((modrm >> 3) & 0x7).q[1] = XMM(modrm & 0x7).q[0]; | |
| 2740 | // unsupported by cpu | |
| 2757 | 2741 | CYCLES(1); // TODO: correct cycle count |
| 2758 | 2742 | } else { |
| 2759 | // MOVHPS opcode | |
| 2760 | 2743 | UINT32 ea = GetEA(modrm, 0); |
| 2761 | 2744 | READXMM_HI64(ea, XMM((modrm >> 3) & 0x7)); |
| 2762 | 2745 | CYCLES(1); // TODO: correct cycle count |
| r243114 | r243115 | |
| 3384 | 3367 | CYCLES(1); // TODO: correct cycle count |
| 3385 | 3368 | } |
| 3386 | 3369 | |
| 3387 | void i386_device::sse_shufps() // Opcode 0f | |
| 3370 | void i386_device::sse_shufps() // Opcode 0f 67 | |
| 3388 | 3371 | { |
| 3389 | 3372 | UINT8 modrm = FETCH(); |
| 3390 | 3373 | UINT8 sel = FETCH(); |
| r243114 | r243115 | |
| 3397 | 3380 | s=modrm & 0x7; |
| 3398 | 3381 | d=(modrm >> 3) & 0x7; |
| 3399 | 3382 | if( modrm >= 0xc0 ) { |
| 3400 | UINT32 t1,t2,t3,t4; | |
| 3401 | t1=XMM(d).d[m1]; | |
| 3402 | t2=XMM(d).d[m2]; | |
| 3403 | t3=XMM(s).d[m3]; | |
| 3404 | t4=XMM(s).d[m4]; | |
| 3405 | XMM(d).d[0]=t1; | |
| 3406 | XMM(d).d[1]=t2; | |
| 3407 | XMM(d).d[2]=t3; | |
| 3408 | XMM(d).d[3]=t4; | |
| 3383 | UINT32 t; | |
| 3384 | t=XMM(d).d[m1]; | |
| 3385 | XMM(d).d[1]=XMM(d).d[m2]; | |
| 3386 | XMM(d).d[0]=t; | |
| 3387 | XMM(d).d[2]=XMM(s).d[m3]; | |
| 3388 | XMM(d).d[3]=XMM(s).d[m4]; | |
| 3409 | 3389 | } else { |
| 3410 | UINT32 t | |
| 3390 | UINT32 t; | |
| 3411 | 3391 | XMM_REG src; |
| 3412 | 3392 | UINT32 ea = GetEA(modrm, 0); |
| 3413 | 3393 | READXMM(ea, src); |
| 3414 | t1=XMM(d).d[m1]; | |
| 3415 | t2=XMM(d).d[m2]; | |
| 3416 | XMM(d).d[0]=t1; | |
| 3417 | XMM(d).d[1]=t2; | |
| 3394 | t=XMM(d).d[m1]; | |
| 3395 | XMM(d).d[1]=XMM(d).d[m2]; | |
| 3396 | XMM(d).d[0]=t; | |
| 3418 | 3397 | XMM(d).d[2]=src.d[m3]; |
| 3419 | 3398 | XMM(d).d[3]=src.d[m4]; |
| 3420 | 3399 | } |
| r243114 | r243115 | |
| 3425 | 3404 | { |
| 3426 | 3405 | UINT8 modrm = FETCH(); |
| 3427 | 3406 | int s,d; |
| 3428 | UINT32 t1, t2, t3, t4; | |
| 3429 | 3407 | s=modrm & 0x7; |
| 3430 | 3408 | d=(modrm >> 3) & 0x7; |
| 3431 | 3409 | if( modrm >= 0xc0 ) { |
| 3432 | t1 = XMM(s).d[1]; | |
| 3433 | t2 = XMM(d).d[1]; | |
| 3434 | t3 = XMM(s).d[0]; | |
| 3435 | t4 = XMM(d).d[0]; | |
| 3436 | XMM(d).d[3]=t1; | |
| 3437 | XMM(d).d[2]=t2; | |
| 3438 | XMM(d).d[1]=t3; | |
| 3439 | XMM(d).d[0]=t4; | |
| 3410 | XMM(d).d[3]=XMM(s).d[1]; | |
| 3411 | XMM(d).d[2]=XMM(d).d[1]; | |
| 3412 | XMM(d).d[1]=XMM(s).d[0]; | |
| 3413 | //XMM(d).d[0]=XMM(d).d[0]; | |
| 3440 | 3414 | } else { |
| 3441 | 3415 | XMM_REG src; |
| 3442 | 3416 | UINT32 ea = GetEA(modrm, 0); |
| 3443 | 3417 | READXMM(ea, src); |
| 3444 | t2 = XMM(d).d[1]; | |
| 3445 | 3418 | XMM(d).d[3]=src.d[1]; |
| 3446 | XMM(d).d[2]= | |
| 3419 | XMM(d).d[2]=XMM(d).d[1]; | |
| 3447 | 3420 | XMM(d).d[1]=src.d[0]; |
| 3448 | 3421 | } |
| 3449 | 3422 | CYCLES(1); // TODO: correct cycle count |
| r243114 | r243115 | |
| 3453 | 3426 | { |
| 3454 | 3427 | UINT8 modrm = FETCH(); |
| 3455 | 3428 | int s,d; |
| 3456 | UINT32 t1, t2, t3, t4; | |
| 3457 | 3429 | s=modrm & 0x7; |
| 3458 | 3430 | d=(modrm >> 3) & 0x7; |
| 3459 | 3431 | if( modrm >= 0xc0 ) { |
| 3460 | t1 = XMM(d).d[2]; | |
| 3461 | t2 = XMM(s).d[2]; | |
| 3462 | t3 = XMM(d).d[3]; | |
| 3463 | t4 = XMM(s).d[3]; | |
| 3464 | XMM(d).d[0]=t1; | |
| 3465 | XMM(d).d[1]=t2; | |
| 3466 | XMM(d).d[2]=t3; | |
| 3467 | XMM(d).d[3]=t4; | |
| 3432 | XMM(d).d[0]=XMM(d).d[2]; | |
| 3433 | XMM(d).d[1]=XMM(s).d[2]; | |
| 3434 | XMM(d).d[2]=XMM(d).d[3]; | |
| 3435 | XMM(d).d[3]=XMM(s).d[3]; | |
| 3468 | 3436 | } else { |
| 3469 | 3437 | XMM_REG src; |
| 3470 | 3438 | UINT32 ea = GetEA(modrm, 0); |
| 3471 | 3439 | READXMM(ea, src); |
| 3472 | t1 = XMM(d).d[2]; | |
| 3473 | t3 = XMM(d).d[3]; | |
| 3474 | XMM(d).d[0]=t1; | |
| 3440 | XMM(d).d[0]=XMM(d).d[2]; | |
| 3475 | 3441 | XMM(d).d[1]=src.d[2]; |
| 3476 | XMM(d).d[2]= | |
| 3442 | XMM(d).d[2]=XMM(d).d[3]; | |
| 3477 | 3443 | XMM(d).d[3]=src.d[3]; |
| 3478 | 3444 | } |
| 3479 | 3445 | CYCLES(1); // TODO: correct cycle count |
| r243114 | r243115 | |
|---|---|---|
| 1013 | 1013 | an exception if out |
| 1014 | 1014 | -------------------------------------------------*/ |
| 1015 | 1015 | |
| 1016 | void mips3_device::generate_update_cycles(drcuml_block *block, compiler_state *compiler, | |
| 1016 | void mips3_device::generate_update_cycles(drcuml_block *block, compiler_state *compiler, parameter param, int allow_exception) | |
| 1017 | 1017 | { |
| 1018 | 1018 | /* check software interrupts if pending */ |
| 1019 | 1019 | if (compiler->checksoftints) |
| r243114 | r243115 | |
|---|---|---|
| 57 | 57 | ***************************************************************************/ |
| 58 | 58 | |
| 59 | 59 | #define R32(reg) m_regmap[reg] |
| 60 | #define R32Z(reg) (((reg) == 0) ? | |
| 60 | #define R32Z(reg) (((reg) == 0) ? parameter(0) : m_regmap[reg]) | |
| 61 | 61 | #define F64(reg) m_fdregmap[reg] |
| 62 | 62 | #define CR32(reg) mem(&m_core->cr[reg]) |
| 63 | 63 | #define FPSCR32 mem(&m_core->fpscr) |
| r243114 | r243115 | |
| 1549 | 1549 | an exception if out |
| 1550 | 1550 | -------------------------------------------------*/ |
| 1551 | 1551 | |
| 1552 | void ppc_device::generate_update_cycles(drcuml_block *block, compiler_state *compiler, | |
| 1552 | void ppc_device::generate_update_cycles(drcuml_block *block, compiler_state *compiler, parameter param, int allow_exception) | |
| 1553 | 1553 | { |
| 1554 | 1554 | /* check full interrupts if pending */ |
| 1555 | 1555 | if (compiler->checkints) |
| r243114 | r243115 | |
|---|---|---|
| 641 | 641 | subtract cycles from the icount and generate |
| 642 | 642 | an exception if out |
| 643 | 643 | -------------------------------------------------*/ |
| 644 | void rsp_device::generate_update_cycles(drcuml_block *block, compiler_state *compiler, | |
| 644 | void rsp_device::generate_update_cycles(drcuml_block *block, compiler_state *compiler, parameter param, int allow_exception) | |
| 645 | 645 | { |
| 646 | 646 | /* account for cycles */ |
| 647 | 647 | if (compiler->cycles > 0) |
| r243114 | r243115 | |
|---|---|---|
| 91 | 91 | { |
| 92 | 92 | if (m_regmap[regnum].is_int_register()) |
| 93 | 93 | { |
| 94 | UML_MOV(block, | |
| 94 | UML_MOV(block, parameter::make_ireg(m_regmap[regnum].ireg()), mem(&m_sh2_state->r[regnum])); | |
| 95 | 95 | } |
| 96 | 96 | } |
| 97 | 97 | } |
| r243114 | r243115 | |
| 110 | 110 | { |
| 111 | 111 | if (m_regmap[regnum].is_int_register()) |
| 112 | 112 | { |
| 113 | UML_MOV(block, mem(&m_sh2_state->r[regnum]), | |
| 113 | UML_MOV(block, mem(&m_sh2_state->r[regnum]), parameter::make_ireg(m_regmap[regnum].ireg())); | |
| 114 | 114 | } |
| 115 | 115 | } |
| 116 | 116 | } |
| r243114 | r243115 | |
| 1220 | 1220 | subtract cycles from the icount and generate |
| 1221 | 1221 | an exception if out |
| 1222 | 1222 | -------------------------------------------------*/ |
| 1223 | void sh2_device::generate_update_cycles(drcuml_block *block, compiler_state *compiler, | |
| 1223 | void sh2_device::generate_update_cycles(drcuml_block *block, compiler_state *compiler, parameter param, int allow_exception) | |
| 1224 | 1224 | { |
| 1225 | 1225 | /* check full interrupts if pending */ |
| 1226 | 1226 | if (compiler->checkints) |
| r243114 | r243115 | |
|---|---|---|
| 186 | 186 | |
| 187 | 187 | |
| 188 | 188 | //------------------------------------------------- |
| 189 | // ioport - return a pointer to the I/O port | |
| 190 | // object for a given port name | |
| 191 | //------------------------------------------------- | |
| 192 | ||
| 193 | astring device_t::parameter(const char *tag) const | |
| 194 | { | |
| 195 | // safety first | |
| 196 | if (this == NULL) | |
| 197 | return NULL; | |
| 198 | ||
| 199 | // build a fully-qualified name and look it up | |
| 200 | astring fullpath; | |
| 201 | return machine().parameters().lookup(subtag(fullpath, tag)); | |
| 202 | } | |
| 203 | ||
| 204 | ||
| 205 | //------------------------------------------------- | |
| 206 | 189 | // static_set_clock - set/change the clock on |
| 207 | 190 | // a device |
| 208 | 191 | //------------------------------------------------- |
| r243114 | r243115 | |
|---|---|---|
| 130 | 130 | UINT8 default_bios() const { return m_default_bios; } |
| 131 | 131 | UINT8 system_bios() const { return m_system_bios; } |
| 132 | 132 | astring default_bios_tag() const { return m_default_bios_tag; } |
| 133 | astring parameter(const char *tag) const; | |
| 134 | 133 | |
| 135 | 134 | // interface helpers |
| 136 | 135 | device_interface *first_interface() const { return m_interface_list; } |
| r243114 | r243115 | |
|---|---|---|
| 82 | 82 | // machine and driver configuration |
| 83 | 83 | #include "mconfig.h" |
| 84 | 84 | #include "gamedrv.h" |
| 85 | #include "parameters.h" | |
| 86 | 85 | |
| 87 | 86 | // timers, CPU and scheduling |
| 88 | 87 | #include "devcpu.h" |
| r243114 | r243115 | |
|---|---|---|
| 99 | 99 | $(EMUOBJ)/memarray.o \ |
| 100 | 100 | $(EMUOBJ)/memory.o \ |
| 101 | 101 | $(EMUOBJ)/network.o \ |
| 102 | $(EMUOBJ)/parameters.o \ | |
| 103 | 102 | $(EMUOBJ)/output.o \ |
| 104 | 103 | $(EMUOBJ)/render.o \ |
| 105 | 104 | $(EMUOBJ)/rendfont.o \ |
| r243114 | r243115 | |
|---|---|---|
| 142 | 142 | m_save(*this), |
| 143 | 143 | m_memory(*this), |
| 144 | 144 | m_ioport(*this), |
| 145 | m_parameters(*this), | |
| 146 | 145 | m_scheduler(*this) |
| 147 | 146 | { |
| 148 | 147 | memset(&m_base_time, 0, sizeof(m_base_time)); |
| r243114 | r243115 | |
|---|---|---|
| 165 | 165 | save_manager &save() { return m_save; } |
| 166 | 166 | memory_manager &memory() { return m_memory; } |
| 167 | 167 | ioport_manager &ioport() { return m_ioport; } |
| 168 | parameters_manager ¶meters() { return m_parameters; } | |
| 169 | 168 | cheat_manager &cheat() const { assert(m_cheat != NULL); return *m_cheat; } |
| 170 | 169 | render_manager &render() const { assert(m_render != NULL); return *m_render; } |
| 171 | 170 | input_manager &input() const { assert(m_input != NULL); return *m_input; } |
| r243114 | r243115 | |
| 358 | 357 | save_manager m_save; // save manager |
| 359 | 358 | memory_manager m_memory; // memory manager |
| 360 | 359 | ioport_manager m_ioport; // I/O port manager |
| 361 | parameters_manager m_parameters; // parameters manager | |
| 362 | 360 | device_scheduler m_scheduler; // scheduler object |
| 363 | 361 | emu_timer *m_autoboot_timer; // autoboot timer |
| 364 | 362 | }; |
| r243114 | r243115 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Olivier Galibert, Aaron Giles | |
| 3 | /*************************************************************************** | |
| 4 | ||
| 5 | parameters.c | |
| 6 | ||
| 7 | Per-game parameters handling. | |
| 8 | ||
| 9 | ***************************************************************************/ | |
| 10 | ||
| 11 | #include "emu.h" | |
| 12 | ||
| 13 | parameters_manager::parameters_manager(running_machine &machine) | |
| 14 | : m_machine(machine) | |
| 15 | { | |
| 16 | } | |
| 17 | ||
| 18 | astring parameters_manager::lookup(astring tag) const | |
| 19 | { | |
| 20 | return m_parameters.find(tag); | |
| 21 | } | |
| 22 | ||
| 23 | void parameters_manager::add(astring tag, astring value) | |
| 24 | { | |
| 25 | m_parameters.add(tag, value); | |
| 26 | } | |
| 27 |
| r243114 | r243115 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Olivier Galibert,Aaron Giles | |
| 3 | /*************************************************************************** | |
| 4 | ||
| 5 | parameters.h | |
| 6 | ||
| 7 | Per-game parameters handling. | |
| 8 | ||
| 9 | ***************************************************************************/ | |
| 10 | ||
| 11 | #pragma once | |
| 12 | ||
| 13 | #ifndef __EMU_H__ | |
| 14 | #error Dont include this file directly; include emu.h instead. | |
| 15 | #endif | |
| 16 | ||
| 17 | #ifndef __PARAMETERS_H__ | |
| 18 | #define __PARAMETERS_H__ | |
| 19 | ||
| 20 | ||
| 21 | //************************************************************************** | |
| 22 | // TYPE DEFINITIONS | |
| 23 | //************************************************************************** | |
| 24 | ||
| 25 | // ======================> parameters_manager | |
| 26 | ||
| 27 | class parameters_manager | |
| 28 | { | |
| 29 | DISABLE_COPYING(parameters_manager); | |
| 30 | ||
| 31 | public: | |
| 32 | // construction/destruction | |
| 33 | parameters_manager(running_machine &machine); | |
| 34 | ||
| 35 | // getters | |
| 36 | running_machine &machine() const { return m_machine; } | |
| 37 | astring lookup(astring tag) const; | |
| 38 | ||
| 39 | // setters | |
| 40 | void add(astring tag, astring value); | |
| 41 | ||
| 42 | private: | |
| 43 | // internal state | |
| 44 | running_machine & m_machine; // reference to owning machine | |
| 45 | tagmap_t<astring> m_parameters; | |
| 46 | }; | |
| 47 | ||
| 48 | #endif // __INPTPORT_H__ */ |
| r243114 | r243115 | |
|---|---|---|
| 171 | 171 | const rom_entry *rom_first_region(const device_t &device) |
| 172 | 172 | { |
| 173 | 173 | const rom_entry *romp = device.rom_region(); |
| 174 | while (romp && ROMENTRY_ISPARAMETER(romp)) | |
| 175 | romp++; | |
| 176 | 174 | return (romp != NULL && !ROMENTRY_ISEND(romp)) ? romp : NULL; |
| 177 | 175 | } |
| 178 | 176 | |
| r243114 | r243115 | |
| 187 | 185 | romp++; |
| 188 | 186 | while (!ROMENTRY_ISREGIONEND(romp)) |
| 189 | 187 | romp++; |
| 190 | while (ROMENTRY_ISPARAMETER(romp)) | |
| 191 | romp++; | |
| 192 | 188 | return ROMENTRY_ISEND(romp) ? NULL : romp; |
| 193 | 189 | } |
| 194 | 190 | |
| r243114 | r243115 | |
| 222 | 218 | |
| 223 | 219 | |
| 224 | 220 | /*------------------------------------------------- |
| 225 | rom_first_parameter - return pointer to the first | |
| 226 | per-game parameter | |
| 227 | -------------------------------------------------*/ | |
| 228 | ||
| 229 | const rom_entry *rom_first_parameter(const device_t &device) | |
| 230 | { | |
| 231 | const rom_entry *romp = device.rom_region(); | |
| 232 | while (romp && !ROMENTRY_ISEND(romp) && !ROMENTRY_ISPARAMETER(romp)) | |
| 233 | romp++; | |
| 234 | return (romp != NULL && !ROMENTRY_ISEND(romp)) ? romp : NULL; | |
| 235 | } | |
| 236 | ||
| 237 | ||
| 238 | /*------------------------------------------------- | |
| 239 | rom_next_parameter - return pointer to the next | |
| 240 | per-game parameter | |
| 241 | -------------------------------------------------*/ | |
| 242 | ||
| 243 | const rom_entry *rom_next_parameter(const rom_entry *romp) | |
| 244 | { | |
| 245 | romp++; | |
| 246 | while (!ROMENTRY_ISREGIONEND(romp) && !ROMENTRY_ISPARAMETER(romp)) | |
| 247 | romp++; | |
| 248 | return ROMENTRY_ISEND(romp) ? NULL : romp; | |
| 249 | } | |
| 250 | ||
| 251 | ||
| 252 | /*------------------------------------------------- | |
| 253 | 221 | rom_region_name - return the appropriate name |
| 254 | 222 | for a rom region |
| 255 | 223 | -------------------------------------------------*/ |
| r243114 | r243115 | |
| 261 | 229 | |
| 262 | 230 | |
| 263 | 231 | /*------------------------------------------------- |
| 264 | rom_parameter_name - return the appropriate name | |
| 265 | for a per-game parameter | |
| 266 | -------------------------------------------------*/ | |
| 267 | ||
| 268 | astring &rom_parameter_name(astring &result, const device_t &device, const rom_entry *romp) | |
| 269 | { | |
| 270 | return device.subtag(result, romp->_name); | |
| 271 | } | |
| 272 | ||
| 273 | ||
| 274 | /*------------------------------------------------- | |
| 275 | rom_parameter_name - return the value for a | |
| 276 | per-game parameter | |
| 277 | -------------------------------------------------*/ | |
| 278 | ||
| 279 | astring rom_parameter_value(const rom_entry *romp) | |
| 280 | { | |
| 281 | return romp->_hashdata; | |
| 282 | } | |
| 283 | ||
| 284 | ||
| 285 | /*------------------------------------------------- | |
| 286 | 232 | rom_file_size - return the expected size of a |
| 287 | 233 | file given the ROM description |
| 288 | 234 | -------------------------------------------------*/ |
| r243114 | r243115 | |
| 1508 | 1454 | rom_region_name(regiontag, *device, region); |
| 1509 | 1455 | region_post_process(romdata, regiontag, ROMREGION_ISINVERTED(region)); |
| 1510 | 1456 | } |
| 1511 | ||
| 1512 | /* and finally register all per-game parameters */ | |
| 1513 | for (device_t *device = deviter.first(); device != NULL; device = deviter.next()) | |
| 1514 | for (const rom_entry *param = rom_first_parameter(*device); param != NULL; param = rom_next_parameter(param)) | |
| 1515 | { | |
| 1516 | rom_parameter_name(regiontag, *device, param); | |
| 1517 | romdata->machine().parameters().add(regiontag, rom_parameter_value(param)); | |
| 1518 | } | |
| 1519 | 1457 | } |
| 1520 | 1458 | |
| 1521 | 1459 |
| r243114 | r243115 | |
|---|---|---|
| 39 | 39 | ROMENTRYTYPE_IGNORE, /* this entry continues loading the previous ROM but throws the data away */ |
| 40 | 40 | ROMENTRYTYPE_SYSTEM_BIOS, /* this entry specifies a bios */ |
| 41 | 41 | ROMENTRYTYPE_DEFAULT_BIOS, /* this entry specifies a default bios */ |
| 42 | ROMENTRYTYPE_PARAMETER, /* this entry specifies a per-game parameter */ | |
| 43 | 42 | ROMENTRYTYPE_COUNT |
| 44 | 43 | }; |
| 45 | 44 | |
| r243114 | r243115 | |
| 153 | 152 | #define ROMENTRY_ISIGNORE(r) (ROMENTRY_GETTYPE(r) == ROMENTRYTYPE_IGNORE) |
| 154 | 153 | #define ROMENTRY_ISSYSTEM_BIOS(r) (ROMENTRY_GETTYPE(r) == ROMENTRYTYPE_SYSTEM_BIOS) |
| 155 | 154 | #define ROMENTRY_ISDEFAULT_BIOS(r) (ROMENTRY_GETTYPE(r) == ROMENTRYTYPE_DEFAULT_BIOS) |
| 156 | #define ROMENTRY_ISPARAMETER(r) (ROMENTRY_GETTYPE(r) == ROMENTRYTYPE_PARAMETER) | |
| 157 | #define ROMENTRY_ISREGIONEND(r) (ROMENTRY_ISREGION(r) || ROMENTRY_ISPARAMETER(r) || ROMENTRY_ISEND(r)) | |
| 155 | #define ROMENTRY_ISREGIONEND(r) (ROMENTRY_ISREGION(r) || ROMENTRY_ISEND(r)) | |
| 158 | 156 | |
| 159 | 157 | /* ----- per-region macros ----- */ |
| 160 | 158 | #define ROMREGION_GETTAG(r) ((r)->_name) |
| r243114 | r243115 | |
| 245 | 243 | #define ROM_DEFAULT_BIOS(name) { name, NULL, 0, 0, ROMENTRYTYPE_DEFAULT_BIOS }, |
| 246 | 244 | |
| 247 | 245 | |
| 248 | /* ----- game parameter macro ----- */ | |
| 249 | #define ROM_PARAMETER(tag, value) { tag, value, 0, 0, ROMENTRYTYPE_PARAMETER }, | |
| 250 | ||
| 251 | 246 | /* ----- disk loading macros ----- */ |
| 252 | 247 | #define DISK_REGION(tag) ROM_REGION(1, tag, ROMREGION_DATATYPEDISK) |
| 253 | 248 | #define DISK_IMAGE(name,idx,hash) ROMX_LOAD(name, idx, 0, hash, DISK_READWRITE) |
| r243114 | r243115 | |
| 282 | 277 | /* ----- ROM iteration ----- */ |
| 283 | 278 | |
| 284 | 279 | /* return pointer to the first ROM region within a source */ |
| 285 | const rom_entry *rom_first_region(const device_t & | |
| 280 | const rom_entry *rom_first_region(const device_t &romp); | |
| 286 | 281 | |
| 287 | 282 | /* return pointer to the next ROM region within a source */ |
| 288 | 283 | const rom_entry *rom_next_region(const rom_entry *romp); |
| r243114 | r243115 | |
| 299 | 294 | /* return the appropriate name for a rom region */ |
| 300 | 295 | astring &rom_region_name(astring &result, const device_t &device, const rom_entry *romp); |
| 301 | 296 | |
| 302 | /* return pointer to the first per-game parameter */ | |
| 303 | const rom_entry *rom_first_parameter(const device_t &device); | |
| 304 | 297 | |
| 305 | /* return pointer to the next per-game parameter */ | |
| 306 | const rom_entry *rom_next_parameter(const rom_entry *romp); | |
| 307 | 298 | |
| 308 | /* return the appropriate name for a per-game parameter */ | |
| 309 | astring &rom_parameter_name(astring &result, const device_t &device, const rom_entry *romp); | |
| 310 | ||
| 311 | /* return the value for a per-game parameter */ | |
| 312 | astring rom_parameter_value(const rom_entry *romp); | |
| 313 | ||
| 314 | ||
| 315 | 299 | /* ----- disk handling ----- */ |
| 316 | 300 | |
| 317 | 301 | /* open a disk image, searching up the parent and loading by checksum */ |
| r243114 | r243115 | |
|---|---|---|
| 2001 | 2001 | void h63484_device::device_start() |
| 2002 | 2002 | { |
| 2003 | 2003 | m_display_cb.bind_relative_to(*owner()); |
| 2004 | ||
| 2005 | register_save_state(); | |
| 2006 | 2004 | } |
| 2007 | 2005 | |
| 2008 | 2006 | //------------------------------------------------- |
| r243114 | r243115 | |
| 2127 | 2125 | } |
| 2128 | 2126 | return 0; |
| 2129 | 2127 | } |
| 2130 | ||
| 2131 | void h63484_device::register_save_state() | |
| 2132 | { | |
| 2133 | save_item(NAME(m_ar)); | |
| 2134 | save_item(NAME(m_vreg)); | |
| 2135 | save_item(NAME(m_sr)); | |
| 2136 | save_item(NAME(m_fifo)); | |
| 2137 | save_item(NAME(m_fifo_ptr)); | |
| 2138 | save_item(NAME(m_fifo_r)); | |
| 2139 | save_item(NAME(m_fifo_r_ptr)); | |
| 2140 | save_item(NAME(m_cr)); | |
| 2141 | save_item(NAME(m_pr)); | |
| 2142 | save_item(NAME(m_param_ptr)); | |
| 2143 | save_item(NAME(m_rwp)); | |
| 2144 | save_item(NAME(m_rwp_dn)); | |
| 2145 | save_item(NAME(m_org_dpa)); | |
| 2146 | save_item(NAME(m_org_dn)); | |
| 2147 | save_item(NAME(m_org_dpd)); | |
| 2148 | save_item(NAME(m_cl0)); | |
| 2149 | save_item(NAME(m_cl1)); | |
| 2150 | save_item(NAME(m_ccmp)); | |
| 2151 | save_item(NAME(m_mask)); | |
| 2152 | save_item(NAME(m_cpx)); | |
| 2153 | save_item(NAME(m_cpy)); | |
| 2154 | save_item(NAME(m_mwr)); | |
| 2155 | save_item(NAME(m_mwr_chr)); | |
| 2156 | save_item(NAME(m_sar)); | |
| 2157 | save_item(NAME(m_sda)); | |
| 2158 | save_item(NAME(m_pram)); | |
| 2159 | save_item(NAME(m_dn)); | |
| 2160 | save_item(NAME(m_ccr)); | |
| 2161 | save_item(NAME(m_omr)); | |
| 2162 | save_item(NAME(m_edg)); | |
| 2163 | save_item(NAME(m_dcr)); | |
| 2164 | save_item(NAME(m_hc)); | |
| 2165 | save_item(NAME(m_hds)); | |
| 2166 | save_item(NAME(m_hdw)); | |
| 2167 | save_item(NAME(m_hws)); | |
| 2168 | save_item(NAME(m_hww)); | |
| 2169 | save_item(NAME(m_sp)); | |
| 2170 | save_item(NAME(m_hsw)); | |
| 2171 | save_item(NAME(m_vc)); | |
| 2172 | save_item(NAME(m_vws)); | |
| 2173 | save_item(NAME(m_vww)); | |
| 2174 | save_item(NAME(m_vds)); | |
| 2175 | save_item(NAME(m_vsw)); | |
| 2176 | save_item(NAME(m_ppy)); | |
| 2177 | save_item(NAME(m_pzcy)); | |
| 2178 | save_item(NAME(m_ppx)); | |
| 2179 | save_item(NAME(m_pzcx)); | |
| 2180 | save_item(NAME(m_psx)); | |
| 2181 | save_item(NAME(m_pex)); | |
| 2182 | save_item(NAME(m_pzx)); | |
| 2183 | save_item(NAME(m_psy)); | |
| 2184 | save_item(NAME(m_pzy)); | |
| 2185 | save_item(NAME(m_pey)); | |
| 2186 | save_item(NAME(m_xmin)); | |
| 2187 | save_item(NAME(m_ymin)); | |
| 2188 | save_item(NAME(m_xmax)); | |
| 2189 | save_item(NAME(m_ymax)); | |
| 2190 | } |
| r243114 | r243115 | |
|---|---|---|
| 107 | 107 | void video_registers_w(int offset); |
| 108 | 108 | int translate_command(UINT16 data); |
| 109 | 109 | void draw_graphics_line(bitmap_ind16 &bitmap, const rectangle &cliprect, int vs, int y, int layer_n, bool active, bool ins_window); |
| 110 | ||
| 111 | void register_save_state(); | |
| 112 | 110 | |
| 113 | 111 | h63484_display_delegate m_display_cb; |
| 114 | 112 |
| r243114 | r243115 | |
|---|---|---|
| 32 | 32 | ~astring(); |
| 33 | 33 | |
| 34 | 34 | // construction with copy |
| 35 | astring(const char *string) { init() | |
| 35 | astring(const char *string) { init().cpy(string); } | |
| 36 | 36 | astring(const char *string, int length) { init().cpy(string, length); } |
| 37 | 37 | astring(const char *str1, const char *str2) { init().cpy(str1).cat(str2); } |
| 38 | 38 | astring(const char *str1, const char *str2, const char *str3) { init().cpy(str1).cat(str2).cat(str3); } |
| r243114 | r243115 | |
|---|---|---|
| 382 | 382 | #include "emu.h" |
| 383 | 383 | #include "cpu/sh4/sh4.h" |
| 384 | 384 | #include "machine/naomicrypt.h" |
| 385 | #include "machine/315-5881_helper.h" | |
| 385 | 386 | |
| 386 | 387 | #define CPU_CLOCK (200000000) |
| 387 | 388 | /* MD2 MD1 MD0 MD6 MD4 MD3 MD5 MD7 MD8 */ |
| r243114 | r243115 | |
| 571 | 572 | /* ic65 unpopulated */ |
| 572 | 573 | /* ic66 unpopulated */ |
| 573 | 574 | |
| 574 | // 834-14149 2000 317-0294-COM Hikaru | |
| 575 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "091b02c7" ) | |
| 575 | // 315-5881 security IC key | |
| 576 | _315_5881_KEYFILE("airtrix-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 576 | 577 | ROM_END |
| 577 | 578 | |
| 578 | 579 | |
| r243114 | r243115 | |
| 609 | 610 | ROM_LOAD32_WORD( "mpr-23560.ic65", 0xe000000, 0x1000000, CRC(24bb7072) SHA1(dad5135c89d292e4a1f96bd0ad28be6a17154be0) ) |
| 610 | 611 | ROM_LOAD32_WORD( "mpr-23564.ic66", 0xe000002, 0x1000000, CRC(255724b6) SHA1(1b382fad165831de3f2e39352c031146759dfc69) ) |
| 611 | 612 | |
| 612 | // 834-14144 2001 317-0297-COM Hikaru | |
| 613 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "0912c68a" ) | |
| 613 | // 315-5881 security IC key | |
| 614 | _315_5881_KEYFILE("pharrier-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 614 | 615 | ROM_END |
| 615 | 616 | |
| 616 | 617 | ROM_START( podrace ) |
| r243114 | r243115 | |
| 663 | 664 | ROM_LOAD32_WORD("mpr-23117.ic68s" , 0xf000002, 0x0800000, CRC(9d4d3529) SHA1(66008445629681ebf2f26b3f181d8524a8576d2f)) |
| 664 | 665 | |
| 665 | 666 | // current 315-5881 decryption simulation code can't produce valid output data with any of keys |
| 666 | // 834-14002 2001 317-0277-COM Hikaru | |
| 667 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "0903dad5" ) | |
| 667 | ROM_REGION( 4, "rom_key", ROMREGION_ERASE00 ) | |
| 668 | 668 | ROM_END |
| 669 | 669 | |
| 670 | 670 | ROM_START( braveff ) |
| r243114 | r243115 | |
| 708 | 708 | ROM_LOAD32_WORD( "mpr-22022.ic59s", 0xb000000, 0x800000, CRC(abd3d888) SHA1(9654c3a38feab46b4983a602831fb29cccdd0526) ) |
| 709 | 709 | ROM_LOAD32_WORD( "mpr-22023.ic60s", 0xb000002, 0x800000, CRC(07f00869) SHA1(92282d09d72d3e65a91128e06bb0d4426bb90be5) ) |
| 710 | 710 | |
| 711 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "0" ) // 315-5881 not populated | |
| 711 | // 315-5881 not populated | |
| 712 | _315_5881_UNUSED | |
| 712 | 713 | ROM_END |
| 713 | 714 | |
| 714 | 715 | ROM_START( sgnascar ) |
| r243114 | r243115 | |
|---|---|---|
| 2842 | 2842 | ROM_LOAD("mpr-20303.32", 0x000000, 0x200000, CRC(c040973f) SHA1(57a496c5dcc1a3931b6e41bf8d41e45d6dac0c31) ) |
| 2843 | 2843 | ROM_LOAD("mpr-20304.33", 0x200000, 0x200000, CRC(6decfe83) SHA1(d73adafceff2f1776c93e53bd5677d67f1c2c08f) ) |
| 2844 | 2844 | |
| 2845 | // 1997 317-5038-COM Model 2 | |
| 2846 | ROM_PARAMETER( ":315_5881:key", "042c0d13" ) | |
| 2847 | ||
| 2848 | 2845 | MODEL2_CPU_BOARD |
| 2849 | 2846 | MODEL2A_VID_BOARD |
| 2850 | 2847 | ROM_END |
| r243114 | r243115 | |
| 2877 | 2874 | ROM_LOAD("mpr-20303.32", 0x000000, 0x200000, CRC(c040973f) SHA1(57a496c5dcc1a3931b6e41bf8d41e45d6dac0c31) ) |
| 2878 | 2875 | ROM_LOAD("mpr-20304.33", 0x200000, 0x200000, CRC(6decfe83) SHA1(d73adafceff2f1776c93e53bd5677d67f1c2c08f) ) |
| 2879 | 2876 | |
| 2880 | // 1997 317-5038-COM Model 2 | |
| 2881 | ROM_PARAMETER( ":315_5881:key", "042c0d13" ) | |
| 2882 | ||
| 2883 | 2877 | MODEL2_CPU_BOARD |
| 2884 | 2878 | MODEL2A_VID_BOARD |
| 2885 | 2879 | ROM_END |
| r243114 | r243115 | |
| 2911 | 2905 | ROM_REGION( 0x400000, "scsp", 0 ) // Samples |
| 2912 | 2906 | ROM_LOAD("mpr-20303.32", 0x000000, 0x200000, CRC(c040973f) SHA1(57a496c5dcc1a3931b6e41bf8d41e45d6dac0c31) ) |
| 2913 | 2907 | ROM_LOAD("mpr-20304.33", 0x200000, 0x200000, CRC(6decfe83) SHA1(d73adafceff2f1776c93e53bd5677d67f1c2c08f) ) |
| 2914 | ||
| 2915 | // 1997 317-5038-COM Model 2 | |
| 2916 | ROM_PARAMETER( ":315_5881:key", "042c0d13" ) | |
| 2917 | 2908 | ROM_END |
| 2918 | 2909 | |
| 2919 | 2910 | ROM_START( zerogunj ) /* Zero Gunner (Japan), Model 2B */ |
| r243114 | r243115 | |
| 2943 | 2934 | ROM_REGION( 0x400000, "scsp", 0 ) // Samples |
| 2944 | 2935 | ROM_LOAD("mpr-20303.32", 0x000000, 0x200000, CRC(c040973f) SHA1(57a496c5dcc1a3931b6e41bf8d41e45d6dac0c31) ) |
| 2945 | 2936 | ROM_LOAD("mpr-20304.33", 0x200000, 0x200000, CRC(6decfe83) SHA1(d73adafceff2f1776c93e53bd5677d67f1c2c08f) ) |
| 2946 | ||
| 2947 | // 1997 317-5038-COM Model 2 | |
| 2948 | ROM_PARAMETER( ":315_5881:key", "042c0d13" ) | |
| 2949 | 2937 | ROM_END |
| 2950 | 2938 | |
| 2951 | 2939 | ROM_START( gunblade ) /* Gunblade NY Revision A, Model 2B, Sega game ID# 833-12562 GUN BLADE, Sega ROM board ID# 834-12563 */ |
| r243114 | r243115 | |
| 3681 | 3669 | ROM_LOAD("mpr-20814.36", 0x400000, 0x200000, CRC(e8ebc74c) SHA1(731ce721bb9e148f3a9f7fbe569522567a681c4e) ) |
| 3682 | 3670 | ROM_LOAD("mpr-20815.37", 0x600000, 0x200000, CRC(1b5aaae4) SHA1(32b4bf6c096fdccdd5d8f1ddb6c27d3389a52234) ) |
| 3683 | 3671 | |
| 3684 | // 1998 317-0236-COM Model 2 | |
| 3685 | ROM_PARAMETER( ":315_5881:key", "0c2a4a93" ) | |
| 3686 | ||
| 3687 | 3672 | MODEL2_CPU_BOARD |
| 3688 | 3673 | MODEL2A_VID_BOARD |
| 3689 | 3674 | ROM_END |
| r243114 | r243115 | |
| 3732 | 3717 | ROM_LOAD("mpr-20814.36", 0x400000, 0x200000, CRC(e8ebc74c) SHA1(731ce721bb9e148f3a9f7fbe569522567a681c4e) ) |
| 3733 | 3718 | ROM_LOAD("mpr-20815.37", 0x600000, 0x200000, CRC(1b5aaae4) SHA1(32b4bf6c096fdccdd5d8f1ddb6c27d3389a52234) ) |
| 3734 | 3719 | |
| 3735 | // 1998 317-0236-COM Model 2 | |
| 3736 | ROM_PARAMETER( ":315_5881:key", "0c2a4a93" ) | |
| 3737 | ||
| 3738 | 3720 | MODEL2_CPU_BOARD |
| 3739 | 3721 | MODEL2A_VID_BOARD |
| 3740 | 3722 | ROM_END |
| r243114 | r243115 | |
| 3782 | 3764 | ROM_LOAD("mpr-20813.32", 0x200000, 0x200000, CRC(1908679c) SHA1(32913385f09da2e43af0c4a4612b955527bfe759) ) |
| 3783 | 3765 | ROM_LOAD("mpr-20814.36", 0x400000, 0x200000, CRC(e8ebc74c) SHA1(731ce721bb9e148f3a9f7fbe569522567a681c4e) ) |
| 3784 | 3766 | ROM_LOAD("mpr-20815.37", 0x600000, 0x200000, CRC(1b5aaae4) SHA1(32b4bf6c096fdccdd5d8f1ddb6c27d3389a52234) ) |
| 3785 | ||
| 3786 | // 1998 317-0236-COM Model 2 | |
| 3787 | ROM_PARAMETER( ":315_5881:key", "0c2a4a93" ) | |
| 3788 | 3767 | ROM_END |
| 3789 | 3768 | |
| 3790 | 3769 | ROM_START( dyndeka2b ) /* Dynamite Deka 2 (Japan), Model 2B */ |
| r243114 | r243115 | |
| 3830 | 3809 | ROM_LOAD("mpr-20813.32", 0x200000, 0x200000, CRC(1908679c) SHA1(32913385f09da2e43af0c4a4612b955527bfe759) ) |
| 3831 | 3810 | ROM_LOAD("mpr-20814.36", 0x400000, 0x200000, CRC(e8ebc74c) SHA1(731ce721bb9e148f3a9f7fbe569522567a681c4e) ) |
| 3832 | 3811 | ROM_LOAD("mpr-20815.37", 0x600000, 0x200000, CRC(1b5aaae4) SHA1(32b4bf6c096fdccdd5d8f1ddb6c27d3389a52234) ) |
| 3833 | ||
| 3834 | // 1998 317-0236-COM Model 2 | |
| 3835 | ROM_PARAMETER( ":315_5881:key", "0c2a4a93" ) | |
| 3836 | 3812 | ROM_END |
| 3837 | 3813 | |
| 3838 | 3814 | ROM_START( dynamcopc ) /* Dynamite Cop (USA), Model 2C */ |
| r243114 | r243115 | |
| 3878 | 3854 | ROM_LOAD("mpr-20813.32", 0x200000, 0x200000, CRC(1908679c) SHA1(32913385f09da2e43af0c4a4612b955527bfe759) ) /* Located at position 33 on 2C-CRX rom board */ |
| 3879 | 3855 | ROM_LOAD("mpr-20814.36", 0x400000, 0x200000, CRC(e8ebc74c) SHA1(731ce721bb9e148f3a9f7fbe569522567a681c4e) ) /* Located at position 34 on 2C-CRX rom board */ |
| 3880 | 3856 | ROM_LOAD("mpr-20815.37", 0x600000, 0x200000, CRC(1b5aaae4) SHA1(32b4bf6c096fdccdd5d8f1ddb6c27d3389a52234) ) /* Located at position 35 on 2C-CRX rom board */ |
| 3881 | ||
| 3882 | // 1998 317-0236-COM Model 2 | |
| 3883 | ROM_PARAMETER( ":315_5881:key", "0c2a4a93" ) | |
| 3884 | 3857 | ROM_END |
| 3885 | 3858 | |
| 3886 | 3859 | ROM_START( schamp ) /* Sonic Championship, Model 2B - Sega ROM board ID# 834-12786 */ |
| r243114 | r243115 | |
| 4423 | 4396 | ROM_LOAD("mpr-21279.sd3", 0x0400000, 0x200000, CRC(3a8dcf68) SHA1(312496b45b699051c8b4dd0e5d94e73fe5f3ad8d) ) |
| 4424 | 4397 | ROM_LOAD("mpr-21280.sd4", 0x0600000, 0x200000, CRC(aa548124) SHA1(a94adfe16b5c3236746451c181ccd3e1c27432f4) ) |
| 4425 | 4398 | |
| 4426 | // 1998 317-5044-COM Model 2 | |
| 4427 | ROM_PARAMETER( ":315_5881:key", "042e2dc1" ) | |
| 4428 | ||
| 4429 | 4399 | MODEL2_CPU_BOARD |
| 4430 | 4400 | MODEL2A_VID_BOARD |
| 4431 | 4401 | ROM_END |
| r243114 | r243115 | |
| 4465 | 4435 | ROM_LOAD("mpr-21278.sd2", 0x0200000, 0x200000, CRC(27e18e08) SHA1(254c0ad4d6bd572ff0efc3ea80489e73716a31a7) ) |
| 4466 | 4436 | ROM_LOAD("mpr-21279.sd3", 0x0400000, 0x200000, CRC(3a8dcf68) SHA1(312496b45b699051c8b4dd0e5d94e73fe5f3ad8d) ) |
| 4467 | 4437 | ROM_LOAD("mpr-21280.sd4", 0x0600000, 0x200000, CRC(aa548124) SHA1(a94adfe16b5c3236746451c181ccd3e1c27432f4) ) |
| 4468 | ||
| 4469 | // 1998 317-5044-COM Model 2 | |
| 4470 | ROM_PARAMETER( ":315_5881:key", "042e2dc1" ) | |
| 4471 | 4438 | ROM_END |
| 4472 | 4439 | |
| 4473 | 4440 | ROM_START( indy500 ) /* Defaults to Twin (Stand Alone) Cab version. 2 credits to start - Can be set to Deluxe setting in service mode, Sega Game ID# 833-12361, ROM board ID# 834-12362 */ |
| r243114 | r243115 | |
| 6001 | 5968 | ROM_END |
| 6002 | 5969 | |
| 6003 | 5970 | DRIVER_INIT_MEMBER(model2_state,genprot) |
| 6004 | { | |
| 6005 | astring key = parameter(":315_5881:key"); | |
| 5971 | { | |
| 5972 | ||
| 5973 | INT64 key = get_315_5881_key(machine()); | |
| 6006 | 5974 | |
| 6007 | if (key) | |
| 5975 | if (key != -1) | |
| 6008 | 5976 | { |
| 6009 | 5977 | m_maincpu->space(AS_PROGRAM).install_ram(0x01d80000, 0x01d8ffff); |
| 6010 | 5978 | m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x01d90000, 0x01d9ffff, read32_delegate(FUNC(model2_state::model2_5881prot_r), this), write32_delegate(FUNC(model2_state::model2_5881prot_w), this)); |
| 5979 | m_cryptdevice->set_key(key); | |
| 6011 | 5980 | } |
| 6012 | 5981 | else |
| 6013 | 5982 | { |
| r243114 | r243115 | |
|---|---|---|
| 3437 | 3437 | |
| 3438 | 3438 | ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ |
| 3439 | 3439 | ROM_FILL( 0x000000, 0x80000, 0 ) |
| 3440 | ||
| 3441 | // ???? 317-0237-COM Model 3 | |
| 3442 | ROM_PARAMETER( ":315_5881:key", "09234e96" ) | |
| 3443 | 3440 | ROM_END |
| 3444 | 3441 | |
| 3445 | 3442 | ROM_START( vs29815 ) /* Step 1.5, ROM board ID# 834-13495 VS2 VER98 STEP 1.5 */ |
| r243114 | r243115 | |
| 3590 | 3587 | |
| 3591 | 3588 | ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ |
| 3592 | 3589 | ROM_FILL( 0x000000, 0x80000, 0 ) |
| 3593 | ||
| 3594 | // ???? 317-0245-COM Model 3 | |
| 3595 | ROM_PARAMETER( ":315_5881:key", "09222ac8" ) | |
| 3596 | 3590 | ROM_END |
| 3597 | 3591 | |
| 3598 | 3592 | ROM_START( vs299b ) /* Step 2.0 */ |
| r243114 | r243115 | |
| 3668 | 3662 | |
| 3669 | 3663 | ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ |
| 3670 | 3664 | ROM_FILL( 0x000000, 0x80000, 0 ) |
| 3671 | ||
| 3672 | // ???? 317-0245-COM Model 3 | |
| 3673 | ROM_PARAMETER( ":315_5881:key", "09222ac8" ) | |
| 3674 | 3665 | ROM_END |
| 3675 | 3666 | |
| 3676 | 3667 | ROM_START( vs299a ) /* Step 2.0 */ |
| r243114 | r243115 | |
| 3746 | 3737 | |
| 3747 | 3738 | ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ |
| 3748 | 3739 | ROM_FILL( 0x000000, 0x80000, 0 ) |
| 3749 | ||
| 3750 | // ???? 317-0245-COM Model 3 | |
| 3751 | ROM_PARAMETER( ":315_5881:key", "09222ac8" ) | |
| 3752 | 3740 | ROM_END |
| 3753 | 3741 | |
| 3754 | 3742 | ROM_START( vs299 ) /* Step 2.0 */ |
| r243114 | r243115 | |
| 3824 | 3812 | |
| 3825 | 3813 | ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ |
| 3826 | 3814 | ROM_FILL( 0x000000, 0x80000, 0 ) |
| 3827 | ||
| 3828 | // ???? 317-0245-COM Model 3 | |
| 3829 | ROM_PARAMETER( ":315_5881:key", "09222ac8" ) | |
| 3830 | 3815 | ROM_END |
| 3831 | 3816 | |
| 3832 | 3817 | ROM_START( von2 ) /* Step 2.0 */ |
| r243114 | r243115 | |
| 3903 | 3888 | |
| 3904 | 3889 | ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ |
| 3905 | 3890 | ROM_FILL( 0x000000, 0x80000, 0 ) |
| 3906 | ||
| 3907 | // ???? 317-0234-COM Model 3 | |
| 3908 | ROM_PARAMETER( ":315_5881:key", "092a0e97" ) | |
| 3909 | 3891 | ROM_END |
| 3910 | 3892 | |
| 3911 | 3893 | ROM_START( von254g ) /* Step 2.0, Sega game ID# is 833-13789 */ |
| r243114 | r243115 | |
| 3982 | 3964 | |
| 3983 | 3965 | ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ |
| 3984 | 3966 | ROM_FILL( 0x000000, 0x80000, 0 ) |
| 3985 | ||
| 3986 | // ???? 317-0234-COM Model 3 | |
| 3987 | ROM_PARAMETER( ":315_5881:key", "092a0e97" ) | |
| 3988 | 3967 | ROM_END |
| 3989 | 3968 | |
| 3990 | 3969 | ROM_START( skichamp ) /* Step 2.0 */ |
| r243114 | r243115 | |
| 4129 | 4108 | |
| 4130 | 4109 | ROM_REGION( 0x10000, "ffcpu", 0 ) /* force feedback controller prg */ |
| 4131 | 4110 | ROM_LOAD( "epr21119.ic8", 0x00000, 0x10000, CRC(65082b14) SHA1(6c3c192dd6ef3780c6202dd63fc6086328928818) ) |
| 4132 | ||
| 4133 | // ???? 317-0241-COM Model 3 | |
| 4134 | ROM_PARAMETER( ":315_5881:key", "11272a01" ) | |
| 4135 | 4111 | ROM_END |
| 4136 | 4112 | |
| 4137 | 4113 | ROM_START( swtrilgya ) /* Step 2.1, Sega game ID# is 833-13586, ROM board ID# 834-13587 STAR WARS TRILOGY, Security board ID# 837-13588-COM */ |
| r243114 | r243115 | |
| 4201 | 4177 | |
| 4202 | 4178 | ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ |
| 4203 | 4179 | ROM_FILL( 0x000000, 0x80000, 0 ) |
| 4204 | ||
| 4205 | // ???? 317-0241-COM Model 3 | |
| 4206 | ROM_PARAMETER( ":315_5881:key", "11272a01" ) | |
| 4207 | 4180 | ROM_END |
| 4208 | 4181 | |
| 4209 | 4182 | ROM_START( dirtdvls ) /* Step 2.1, Sega game ID# is 833-13427, ROM board ID# 834-13528 DRT */ |
| r243114 | r243115 | |
| 4265 | 4238 | |
| 4266 | 4239 | ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ |
| 4267 | 4240 | ROM_FILL( 0x000000, 0x80000, 0 ) |
| 4268 | ||
| 4269 | // ???? 317-0238-COM Model 3 | |
| 4270 | ROM_PARAMETER( ":315_5881:key", "09290f17" ) | |
| 4271 | 4241 | ROM_END |
| 4272 | 4242 | |
| 4273 | 4243 | ROM_START( dirtdvlsa ) /* Step 2.1 */ |
| r243114 | r243115 | |
| 4329 | 4299 | |
| 4330 | 4300 | ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ |
| 4331 | 4301 | ROM_FILL( 0x000000, 0x80000, 0 ) |
| 4332 | ||
| 4333 | // ???? 317-0238-COM Model 3 | |
| 4334 | ROM_PARAMETER( ":315_5881:key", "09290f17" ) | |
| 4335 | 4302 | ROM_END |
| 4336 | 4303 | |
| 4337 | 4304 | ROM_START( daytona2 ) /* Step 2.1, ROM board ID# 834-13428 DAYTONA USA2, Security board ID# 837-13507-COM */ |
| r243114 | r243115 | |
| 4412 | 4379 | |
| 4413 | 4380 | ROM_REGION( 0x10000, "drivebd", 0 ) /* drive board ROM */ |
| 4414 | 4381 | ROM_LOAD( "epr-20985.bin", 0x000000, 0x010000, CRC(b139481d) SHA1(05fca7db7c8b084c53bd157ba3e8296f1a961a99) ) |
| 4415 | ||
| 4416 | // ???? 317-0239-COM Model 3 | |
| 4417 | ROM_PARAMETER( ":315_5881:key", "09250e16" ) | |
| 4418 | 4382 | ROM_END |
| 4419 | 4383 | |
| 4420 | 4384 | ROM_START( dayto2pe ) /* Step 2.1, Sega game ID# is 833-13610 DAYTONA USA2 SP, ROM board ID# 834-13609 DAYTONA USA2 SP, Security board ID# 837-13645-COM */ |
| r243114 | r243115 | |
| 4495 | 4459 | |
| 4496 | 4460 | ROM_REGION( 0x10000, "drivebd", 0 ) /* drive board ROM */ |
| 4497 | 4461 | ROM_LOAD( "epr-20985.bin", 0x000000, 0x010000, CRC(b139481d) SHA1(05fca7db7c8b084c53bd157ba3e8296f1a961a99) ) |
| 4498 | ||
| 4499 | // ???? 317-5045-COM Model 3 | |
| 4500 | ROM_PARAMETER( ":315_5881:key", "0" ) // unknown | |
| 4501 | 4462 | ROM_END |
| 4502 | 4463 | |
| 4503 | 4464 | ROM_START( srally2 ) /* Step 2.0, Sega game ID# is 833-13373, ROM board ID# 834-13374 SRT TWIN */ |
| r243114 | r243115 | |
| 4850 | 4811 | |
| 4851 | 4812 | ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ |
| 4852 | 4813 | ROM_FILL( 0x000000, 0x80000, 0 ) |
| 4853 | ||
| 4854 | // ???? 317-0235-COM Model 3 | |
| 4855 | ROM_PARAMETER( ":315_5881:key", "09260e96" ) | |
| 4856 | 4814 | ROM_END |
| 4857 | 4815 | |
| 4858 | 4816 | ROM_START( spikeout ) /* Step 2.1 */ |
| r243114 | r243115 | |
| 4930 | 4888 | |
| 4931 | 4889 | ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ |
| 4932 | 4890 | ROM_FILL( 0x000000, 0x80000, 0 ) |
| 4933 | ||
| 4934 | // ???? 317-0240-COM Model 3 | |
| 4935 | ROM_PARAMETER( ":315_5881:key", "092f2b04" ) | |
| 4936 | 4891 | ROM_END |
| 4937 | 4892 | |
| 4938 | 4893 | ROM_START( spikeofe ) /* Step 2.1, Sega game ID# is 833-13746, ROM board ID# 834-13747 SPK F/E, Security board ID# 837-13726-COM */ |
| r243114 | r243115 | |
| 5010 | 4965 | |
| 5011 | 4966 | ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ |
| 5012 | 4967 | ROM_FILL( 0x000000, 0x80000, 0 ) |
| 5013 | ||
| 5014 | // ???? 317-0247-COM Model 3 | |
| 5015 | ROM_PARAMETER( ":315_5881:key", "09236fc8" ) | |
| 5016 | 4968 | ROM_END |
| 5017 | 4969 | |
| 5018 | 4970 | ROM_START( eca ) /* Step 2.1, ROM board ID# 834-13946-01 ECA */ |
| r243114 | r243115 | |
| 5081 | 5033 | |
| 5082 | 5034 | ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ |
| 5083 | 5035 | ROM_FILL( 0x000000, 0x80000, 0 ) |
| 5084 | ||
| 5085 | // ???? 317-0265-COM Model 3 | |
| 5086 | ROM_PARAMETER( ":315_5881:key", "0923aa91" ) | |
| 5087 | 5036 | ROM_END |
| 5088 | 5037 | |
| 5089 | 5038 | ROM_START( ecax ) /* Step 2.1 */ |
| r243114 | r243115 | |
| 5152 | 5101 | |
| 5153 | 5102 | ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ |
| 5154 | 5103 | ROM_FILL( 0x000000, 0x80000, 0 ) |
| 5155 | ||
| 5156 | // ???? 317-0265-COM Model 3 | |
| 5157 | ROM_PARAMETER( ":315_5881:key", "0923aa91" ) | |
| 5158 | 5104 | ROM_END |
| 5159 | 5105 | |
| 5160 | 5106 | ROM_START( ecap ) /* Step 2.1 - Proto or Location test - No security dongle */ |
| r243114 | r243115 | |
| 5226 | 5172 | |
| 5227 | 5173 | ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ |
| 5228 | 5174 | ROM_FILL( 0x000000, 0x80000, 0 ) |
| 5229 | ||
| 5230 | // ???? 317-0265-COM Model 3 | |
| 5231 | ROM_PARAMETER( ":315_5881:key", "0923aa91" ) | |
| 5232 | 5175 | ROM_END |
| 5233 | 5176 | |
| 5234 | 5177 | ROM_START( magtruck ) /* Step 2.1, Sega game ID# is 833-13601-01 (Export), ROM board ID# 834-13600-01 RCS EXP (Export), Security board ID# 837-13599-COM */ |
| r243114 | r243115 | |
| 5285 | 5228 | |
| 5286 | 5229 | ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ |
| 5287 | 5230 | ROM_FILL( 0x000000, 0x80000, 0 ) |
| 5288 | ||
| 5289 | // ???? 317-0243-COM Model 3 | |
| 5290 | ROM_PARAMETER( ":315_5881:key", "09266e45" ) | |
| 5291 | 5231 | ROM_END |
| 5292 | 5232 | |
| 5293 | 5233 | ROM_START( oceanhun ) /* Step 2.0, Sega game ID# is 833-13571, ROM board ID# 834-13572 THE OCEAN HUNTER, 317-0242-COM security chip (837-13576-COM security board) */ |
| r243114 | r243115 | |
| 5356 | 5296 | |
| 5357 | 5297 | ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ |
| 5358 | 5298 | ROM_FILL( 0x000000, 0x80000, 0 ) |
| 5359 | ||
| 5360 | // ???? 317-0242-COM Model 3 | |
| 5361 | ROM_PARAMETER( ":315_5881:key", "092b6a01" ) | |
| 5362 | 5299 | ROM_END |
| 5363 | 5300 | |
| 5364 | 5301 | ROM_START( lamachin ) /* Step 2.0, Sega game ID# is 833-13664, ROM board ID# 834-13665 L.A.MACHINEGUNS, 317-0244-COM security chip (837-13666-COM security board) */ |
| r243114 | r243115 | |
| 5428 | 5365 | |
| 5429 | 5366 | ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ |
| 5430 | 5367 | ROM_FILL( 0x000000, 0x80000, 0 ) |
| 5431 | ||
| 5432 | // ???? 317-0244-COM Model 3 | |
| 5433 | ROM_PARAMETER( ":315_5881:key", "092a2bc5" ) | |
| 5434 | 5368 | ROM_END |
| 5435 | 5369 | |
| 5436 | 5370 | /* Model 3 sound board emulation */ |
| r243114 | r243115 | |
| 5732 | 5666 | |
| 5733 | 5667 | DRIVER_INIT_MEMBER(model3_state, genprot) |
| 5734 | 5668 | { |
| 5735 | | |
| 5669 | INT64 key = get_315_5881_key(machine()); | |
| 5736 | 5670 | |
| 5737 | 5671 | m_maincpu->space(AS_PROGRAM).install_ram(0xf0180000, 0xf019ffff, 0, 0x0e000000); |
| 5738 | 5672 | |
| 5739 | if (key) | |
| 5673 | if (key != -1) | |
| 5740 | 5674 | { |
| 5675 | m_cryptdevice->set_key(key); | |
| 5741 | 5676 | m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf01a0000, 0xf01a003f, 0, 0x0e000000, read64_delegate(FUNC(model3_state::model3_5881prot_r), this), write64_delegate(FUNC(model3_state::model3_5881prot_w), this) ); |
| 5742 | 5677 | } |
| 5743 | 5678 | else |
| r243114 | r243115 | |
|---|---|---|
| 1510 | 1510 | #include "includes/dc.h" |
| 1511 | 1511 | #include "includes/naomi.h" |
| 1512 | 1512 | #include "machine/naomicrypt.h" |
| 1513 | #include "machine/315-5881_helper.h" | |
| 1513 | 1514 | |
| 1514 | 1515 | #define CPU_CLOCK (200000000) |
| 1515 | 1516 | |
| r243114 | r243115 | |
| 2662 | 2663 | */ |
| 2663 | 2664 | |
| 2664 | 2665 | static MACHINE_CONFIG_DERIVED( naomim2, naomi_base ) |
| 2665 | MCFG_NAOMI_M2_BOARD_ADD("rom_board", "naomibd_eeprom", ":boardid", WRITE8(dc_state, g1_irq)) | |
| 2666 | MCFG_NAOMI_M2_BOARD_ADD("rom_board", ":315_5881key", "naomibd_eeprom", ":boardid", WRITE8(dc_state, g1_irq)) | |
| 2666 | 2667 | MACHINE_CONFIG_END |
| 2667 | 2668 | |
| 2668 | 2669 | /* |
| r243114 | r243115 | |
| 3105 | 3106 | ROM_LOAD("mpr-23208.ic11", 0x5800000, 0x0800000, CRC(b9494f4b) SHA1(2f35b25edf5210a82d4b67e639eeae11440d065a) ) |
| 3106 | 3107 | ROM_LOAD("mpr-23209.ic12s",0x6000000, 0x0800000, CRC(560188c0) SHA1(77f14c9a031c6e5414ffa854d20c40115361d715) ) |
| 3107 | 3108 | |
| 3108 | // 841-0012 2000 317-5060-COM Naomi | |
| 3109 | ROM_PARAMETER( "rom_board:segam2crypt:key", "000e2010" ) | |
| 3109 | _315_5881_KEYFILE("cspike-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 3110 | 3110 | ROM_END |
| 3111 | 3111 | |
| 3112 | 3112 | /* |
| r243114 | r243115 | |
| 3149 | 3149 | ROM_LOAD( "mpr-23509.ic6", 0x5800000, 0x1000000, CRC(281d633d) SHA1(d773be8e95f7bf9212ee1061f3076220d4fce9e0) ) |
| 3150 | 3150 | ROM_LOAD( "mpr-23510.ic7", 0x6800000, 0x1000000, CRC(b856fef5) SHA1(0634f86740c438b40286256a0269570d24cb845a) ) |
| 3151 | 3151 | |
| 3152 | // 841-0011 2000 317-5059-COM Naomi | |
| 3153 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "00000000" ) | |
| 3152 | _315_5881_KEYFILE("capsnk-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 3154 | 3153 | ROM_END |
| 3155 | 3154 | |
| 3156 | 3155 | // ver 000804 |
| r243114 | r243115 | |
| 3168 | 3167 | ROM_LOAD( "mpr-23509.ic6", 0x5800000, 0x1000000, CRC(281d633d) SHA1(d773be8e95f7bf9212ee1061f3076220d4fce9e0) ) |
| 3169 | 3168 | ROM_LOAD( "mpr-23510.ic7", 0x6800000, 0x1000000, CRC(b856fef5) SHA1(0634f86740c438b40286256a0269570d24cb845a) ) |
| 3170 | 3169 | |
| 3171 | // 841-0011 2000 317-5059-COM Naomi | |
| 3172 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "00000000" ) | |
| 3170 | _315_5881_KEYFILE("capsnk-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 3173 | 3171 | ROM_END |
| 3174 | 3172 | |
| 3175 | 3173 | // ver 000802 |
| r243114 | r243115 | |
| 3187 | 3185 | ROM_LOAD( "mpr-23509.ic6", 0x5800000, 0x1000000, CRC(281d633d) SHA1(d773be8e95f7bf9212ee1061f3076220d4fce9e0) ) |
| 3188 | 3186 | ROM_LOAD( "mpr-23510.ic7", 0x6800000, 0x1000000, CRC(b856fef5) SHA1(0634f86740c438b40286256a0269570d24cb845a) ) |
| 3189 | 3187 | |
| 3190 | // 841-0011 2000 317-5059-COM Naomi | |
| 3191 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "00000000" ) | |
| 3188 | _315_5881_KEYFILE("capsnk-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 3192 | 3189 | ROM_END |
| 3193 | 3190 | |
| 3194 | 3191 | /* |
| r243114 | r243115 | |
| 3228 | 3225 | ROM_LOAD("mpr-23426.ic7", 0x3800000, 0x0800000, CRC(7f91b13f) SHA1(2d534f77291ebfedc011bf0e803a1b9243fb477f) ) |
| 3229 | 3226 | ROM_LOAD("mpr-23427.ic8", 0x4000000, 0x0800000, CRC(5851d525) SHA1(1cb1073542d75a3bcc0d363ed31d49bcaf1fd494) ) |
| 3230 | 3227 | |
| 3231 | // 840-0044 2000 317-0289-COM Naomi | |
| 3232 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "08103347" ) | |
| 3228 | _315_5881_KEYFILE("csmash-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 3233 | 3229 | ROM_END |
| 3234 | 3230 | |
| 3235 | 3231 | ROM_START( csmasho ) |
| r243114 | r243115 | |
| 3247 | 3243 | ROM_LOAD("mpr-23426.ic7", 0x3800000, 0x0800000, CRC(7f91b13f) SHA1(2d534f77291ebfedc011bf0e803a1b9243fb477f) ) |
| 3248 | 3244 | ROM_LOAD("mpr-23427.ic8", 0x4000000, 0x0800000, CRC(5851d525) SHA1(1cb1073542d75a3bcc0d363ed31d49bcaf1fd494) ) |
| 3249 | 3245 | |
| 3250 | // 840-0044 2000 317-0289-COM Naomi | |
| 3251 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "08103347" ) | |
| 3246 | _315_5881_KEYFILE("csmasho-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 3252 | 3247 | ROM_END |
| 3253 | 3248 | |
| 3254 | 3249 | /* |
| r243114 | r243115 | |
| 3277 | 3272 | ROM_LOAD("mpr-23522.ic9", 0x4800000, 0x0800000, CRC(7ae6716e) SHA1(658b794ae6e3898885524582a207faa1076a65ca) ) |
| 3278 | 3273 | ROM_LOAD("mpr-23523.ic10",0x5000000, 0x0800000, CRC(c91efb67) SHA1(3d79870551310da7a641858ffec3840714e9cc22) ) |
| 3279 | 3274 | |
| 3280 | // 841-0016 2000 317-5066-COM Naomi | |
| 3281 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "000b64d0" ) | |
| 3275 | _315_5881_KEYFILE("deathcox-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 3282 | 3276 | ROM_END |
| 3283 | 3277 | |
| 3284 | 3278 | /* |
| r243114 | r243115 | |
| 3343 | 3337 | ROM_LOAD("mpr-22119.ic20s",0xa000000, 0x0800000, CRC(d608fa86) SHA1(54c8107cccec8cbb536f13cda5b220b7972190b7) ) |
| 3344 | 3338 | ROM_LOAD("mpr-22120.ic21s",0xa800000, 0x0800000, CRC(a30facb4) SHA1(70415ca34095c795297486bce1f956f6a8d4817f) ) |
| 3345 | 3339 | |
| 3346 | // 841-0003 1999 317-5048-COM Naomi | |
| 3347 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "0008ad01" ) | |
| 3340 | _315_5881_KEYFILE("doa2-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 3348 | 3341 | |
| 3349 | 3342 | // on-cart X76F100 eeprom contents |
| 3350 | 3343 | ROM_REGION( 0x84, "naomibd_eeprom", 0 ) |
| r243114 | r243115 | |
| 3415 | 3408 | ROM_LOAD("mpr-22119.ic20s",0xa000000, 0x0800000, CRC(d608fa86) SHA1(54c8107cccec8cbb536f13cda5b220b7972190b7) ) |
| 3416 | 3409 | ROM_LOAD("mpr-22120.ic21s",0xa800000, 0x0800000, CRC(a30facb4) SHA1(70415ca34095c795297486bce1f956f6a8d4817f) ) |
| 3417 | 3410 | |
| 3418 | // 841-0003 1999 317-5048-COM Naomi | |
| 3419 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "0008ad01" ) | |
| 3411 | _315_5881_KEYFILE("doa2m-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 3420 | 3412 | |
| 3421 | 3413 | // on-cart X76F100 eeprom contents |
| 3422 | 3414 | ROM_REGION( 0x84, "naomibd_eeprom", 0 ) |
| r243114 | r243115 | |
| 3472 | 3464 | ROM_LOAD("mpr-22097.ic13s", 0x6800000, 0x0800000, CRC(f1dedac5) SHA1(9d4499cbafe80dd0b36be617de7994a96e1e9a01) ) |
| 3473 | 3465 | ROM_LOAD("mpr-22098.ic14s", 0x7000000, 0x0800000, CRC(f9824d2e) SHA1(f20f8cc2b1bef9077ede1cb874da8f2a335d39de) ) |
| 3474 | 3466 | |
| 3475 | // 840-0016 1999 317-0262-JPN Naomi | |
| 3476 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "080fee35" ) | |
| 3467 | _315_5881_KEYFILE("derbyoc-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 3477 | 3468 | ROM_END |
| 3478 | 3469 | |
| 3479 | 3470 | ROM_START( derbyocw ) |
| r243114 | r243115 | |
| 3490 | 3481 | ROM_LOAD( "mpr-22337.ic6", 0x5800000, 0x1000000, CRC(87ca3a2f) SHA1(2ffc01597107eb60dfa7aa49d51f203b51a44334) ) |
| 3491 | 3482 | ROM_LOAD( "mpr-22338.ic7", 0x6800000, 0x1000000, CRC(4bda7303) SHA1(db27d91ef811d741cfdb5c0196e61be722c2f5bd) ) |
| 3492 | 3483 | |
| 3493 | | |
| 3484 | _315_5881_UNUSED_OR_UNKNOWN | |
| 3494 | 3485 | ROM_END |
| 3495 | 3486 | |
| 3496 | 3487 | ROM_START( drbyocwc ) |
| r243114 | r243115 | |
| 3507 | 3498 | ROM_LOAD( "mpr-22333.ic6", 0x5800000, 0x1000000, CRC(96f324aa) SHA1(bc41e2097c1841771d786ba9ad1a31df1494a856) ) |
| 3508 | 3499 | ROM_LOAD( "mpr-22334.ic7", 0x6800000, 0x1000000, CRC(5389b05a) SHA1(e206e4d82d7b1a59c33043ec0812eb69be08d9b3) ) |
| 3509 | 3500 | |
| 3510 | | |
| 3501 | _315_5881_UNUSED_OR_UNKNOWN | |
| 3511 | 3502 | ROM_END |
| 3512 | 3503 | |
| 3513 | 3504 | /* |
| r243114 | r243115 | |
| 3535 | 3526 | ROM_LOAD( "mpr-22304.ic10", 0x9800000, 0x1000000, CRC(46c1fb1f) SHA1(6daca76a75df3501f77e473eb065d48804fcc64a) ) |
| 3536 | 3527 | ROM_LOAD( "mpr-22305.ic11", 0xa800000, 0x1000000, CRC(027d0e7b) SHA1(e3c874e60cabb6f9ce686696d9055a0c0d5289ae) ) |
| 3537 | 3528 | |
| 3538 | | |
| 3529 | _315_5881_UNUSED_OR_UNKNOWN | |
| 3539 | 3530 | ROM_END |
| 3540 | 3531 | |
| 3541 | 3532 | /* |
| r243114 | r243115 | |
| 3614 | 3605 | ROM_LOAD("mpr-21573.ic20s", 0xa000000, 0x0800000, CRC(5d822e63) SHA1(8412980b288531c294d5cf9a6394aa0b9503d7df) ) |
| 3615 | 3606 | ROM_LOAD("mpr-21574.ic21s", 0xa800000, 0x0800000, CRC(d794a42c) SHA1(a79c7818c6ec993e718494b1d5407eb270a29abe) ) |
| 3616 | 3607 | |
| 3617 | // 840-0001 1998 317-0246-JPN Naomi | |
| 3618 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "080e6ae1" ) | |
| 3608 | _315_5881_KEYFILE("dynabbnao-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 3619 | 3609 | ROM_END |
| 3620 | 3610 | |
| 3621 | 3611 | /* |
| r243114 | r243115 | |
| 3678 | 3668 | ROM_LOAD("mpr-22139.ic18s", 0x9000000, 0x0800000, CRC(92faa2ca) SHA1(4953f0219c3ae62de0a89473cb7b9dd30b33fcfb) ) |
| 3679 | 3669 | ROM_LOAD("mpr-22140.ic19s", 0x9800000, 0x0800000, CRC(4cb54893) SHA1(a99b39cc3c82c3cf90f794bb8c8ba60638a6f921) ) |
| 3680 | 3670 | |
| 3681 | // 840-0019 1999 317-0269-JPN Naomi | |
| 3682 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "0804ae71" ) | |
| 3671 | _315_5881_KEYFILE("dyb99-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 3683 | 3672 | ROM_END |
| 3684 | 3673 | |
| 3685 | 3674 | ROM_START( smlg99 ) |
| r243114 | r243115 | |
| 3711 | 3700 | ROM_LOAD( "mpr-22057.ic20s", 0xa000000, 0x800000, CRC(a056c109) SHA1(637e80c2d605851265430b0fa771a4ad5233be8a) ) |
| 3712 | 3701 | ROM_LOAD( "mpr-22058.ic21s", 0xa800000, 0x800000, CRC(f16edaa0) SHA1(e093f5594df43c592a9acd45002ecc65035c2435) ) |
| 3713 | 3702 | |
| 3714 | // 840-0012 1999 317-0259-COM Naomi | |
| 3715 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "08048a01" ) | |
| 3703 | _315_5881_KEYFILE("sml99-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 3716 | 3704 | ROM_END |
| 3717 | 3705 | |
| 3718 | 3706 | /* |
| r243114 | r243115 | |
| 3753 | 3741 | ROM_LOAD("mpr-21900.ic20s", 0xa000000, 0x0800000, CRC(81901130) SHA1(1573b5c4360e29ba1a4b4901af49d5399fa1e635) ) |
| 3754 | 3742 | ROM_LOAD("mpr-21901.ic21s", 0xa800000, 0x0800000, CRC(266a3eea) SHA1(795ecc5589a0152b9cf1e03e454ed1ea01501942) ) |
| 3755 | 3743 | |
| 3756 | // 834-13842 1999 317-0254-COM Naomi | |
| 3757 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "080e8f84" ) | |
| 3744 | _315_5881_KEYFILE("f355-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 3758 | 3745 | |
| 3759 | 3746 | ROM_REGION( 0x10000, "drivebd", 0 ) /* drive board ROM */ |
| 3760 | 3747 | ROM_LOAD( "epr-21867.bin", 0x000000, 0x010000, CRC(4f93a2a0) SHA1(875907e7fcfc44850e2c60c12268ac61c742f217) ) |
| r243114 | r243115 | |
| 3788 | 3775 | ROM_LOAD( "mpr-22846.ic20s", 0xa000000, 0x800000, CRC(d4148f39) SHA1(b6598ce52bcaa42805c581de326c953d27c1b2b4) ) |
| 3789 | 3776 | ROM_LOAD( "mpr-22847.ic21s", 0xa800000, 0x800000, CRC(955ad42e) SHA1(e396ca02b5786557434632c4fac56af3a4a9f8ce) ) |
| 3790 | 3777 | |
| 3791 | // 834-13950 1999 317-0267-COM Naomi | |
| 3792 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "0806efd4" ) | |
| 3778 | _315_5881_KEYFILE("f355twin-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 3793 | 3779 | ROM_END |
| 3794 | 3780 | |
| 3795 | 3781 | // There is also a development cart (171-7885A). Content is the same. |
| r243114 | r243115 | |
| 3821 | 3807 | ROM_LOAD( "mpr-23397.ic20s", 0xa000000, 0x800000, CRC(28d2caf6) SHA1(67a3bc19abccf7f211c3aae67e751815857bd564) ) |
| 3822 | 3808 | ROM_LOAD( "mpr-23398.ic21s", 0xa800000, 0x800000, CRC(ea4d4d2a) SHA1(3dc9c7164516ae7f3b988c088ab819d8fd40d75e) ) |
| 3823 | 3809 | |
| 3824 | // 840-0042 2001 317-0287-COM Naomi | |
| 3825 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "081666c6" ) | |
| 3810 | _315_5881_KEYFILE("f355twn2-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 3826 | 3811 | ROM_END |
| 3827 | 3812 | |
| 3828 | 3813 | ROM_START( alpiltdx ) |
| r243114 | r243115 | |
| 3843 | 3828 | ROM_LOAD( "mpr-21737.ic10", 0x5000000, 0x800000, CRC(260aaa98) SHA1(d1082587afe9d79f286df8b107a553ee51c27643) ) |
| 3844 | 3829 | ROM_LOAD( "mpr-21738.ic11", 0x5800000, 0x800000, CRC(95a592e8) SHA1(862dce467e8805381bab001df68262f1baf3c498) ) |
| 3845 | 3830 | |
| 3846 | // 834-????? 1999 317-0251-COM Naomi | |
| 3847 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "08070e41" ) | |
| 3831 | _315_5881_KEYFILE("alpltdx-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 3848 | 3832 | |
| 3849 | 3833 | // on-cart X76F100 eeprom contents |
| 3850 | 3834 | ROM_REGION( 0x84, "naomibd_eeprom", 0 ) |
| r243114 | r243115 | |
| 3869 | 3853 | ROM_LOAD( "mpr-21737.ic10", 0x5000000, 0x800000, CRC(260aaa98) SHA1(d1082587afe9d79f286df8b107a553ee51c27643) ) |
| 3870 | 3854 | ROM_LOAD( "mpr-21738.ic11", 0x5800000, 0x800000, CRC(95a592e8) SHA1(862dce467e8805381bab001df68262f1baf3c498) ) |
| 3871 | 3855 | |
| 3872 | // 840-0005 1999 317-0251-COM Naomi | |
| 3873 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "08070e41" ) | |
| 3856 | _315_5881_KEYFILE("alpilota-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 3874 | 3857 | ROM_END |
| 3875 | 3858 | |
| 3876 | 3859 | ROM_START( hotd2 ) |
| r243114 | r243115 | |
| 3904 | 3887 | ROM_LOAD( "mpr-21404.ic19s", 0x9800000, 0x800000, CRC(6cf6e705) SHA1(68d7e9becefe27b556e0c5d7ba00efd2d1fb71ca) ) |
| 3905 | 3888 | ROM_LOAD( "mpr-21405.ic20s", 0xa000000, 0x800000, CRC(495e6265) SHA1(57936367fec0000691641525682fb8aefc4e4f56) ) |
| 3906 | 3889 | |
| 3907 | | |
| 3890 | _315_5881_UNUSED_OR_UNKNOWN | |
| 3908 | 3891 | ROM_END |
| 3909 | 3892 | |
| 3910 | 3893 | ROM_START( hotd2o ) |
| r243114 | r243115 | |
| 3938 | 3921 | ROM_LOAD( "mpr-21404.ic19s", 0x9800000, 0x800000, CRC(6cf6e705) SHA1(68d7e9becefe27b556e0c5d7ba00efd2d1fb71ca) ) |
| 3939 | 3922 | ROM_LOAD( "mpr-21405.ic20s", 0xa000000, 0x800000, CRC(495e6265) SHA1(57936367fec0000691641525682fb8aefc4e4f56) ) |
| 3940 | 3923 | |
| 3941 | | |
| 3924 | _315_5881_UNUSED_OR_UNKNOWN | |
| 3942 | 3925 | ROM_END |
| 3943 | 3926 | |
| 3944 | 3927 | ROM_START( hotd2p ) |
| r243114 | r243115 | |
| 3972 | 3955 | ROM_LOAD( "mpr-21404.ic19s", 0x9800000, 0x800000, CRC(6cf6e705) SHA1(68d7e9becefe27b556e0c5d7ba00efd2d1fb71ca) ) |
| 3973 | 3956 | ROM_LOAD( "mpr-21405.ic20s", 0xa000000, 0x800000, CRC(495e6265) SHA1(57936367fec0000691641525682fb8aefc4e4f56) ) |
| 3974 | 3957 | |
| 3975 | | |
| 3958 | _315_5881_UNUSED_OR_UNKNOWN | |
| 3976 | 3959 | ROM_END |
| 3977 | 3960 | |
| 3978 | 3961 | /* |
| r243114 | r243115 | |
| 4007 | 3990 | ROM_LOAD("mpr-21830.ic10", 0x5000000, 0x0800000, CRC(e01ceb86) SHA1(dd5703d7712cfc0053bddfff63e78dda372b6ff2) ) |
| 4008 | 3991 | ROM_LOAD("mpr-21831.ic11", 0x5800000, 0x0800000, CRC(751848d0) SHA1(9c2267fd3c6f9ea5f2679bb2ca20d511a49b2845) ) |
| 4009 | 3992 | |
| 4010 | // 840-0007 1999 317-0253-JPN Naomi | |
| 4011 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "08074a61" ) | |
| 3993 | _315_5881_KEYFILE("ggram2-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 4012 | 3994 | ROM_END |
| 4013 | 3995 | |
| 4014 | 3996 | /* |
| r243114 | r243115 | |
| 4096 | 4078 | ROM_REGION( 0x84, "naomibd_eeprom", 0 ) |
| 4097 | 4079 | ROM_LOAD( "x76f100.ic37", 0x000000, 0x000084, CRC(c79251d5) SHA1(3e70bbbb6d28bade7eec7e27d716463045656f98) ) |
| 4098 | 4080 | |
| 4099 | // 840-0008 1999 317-0255-JPN Naomi | |
| 4100 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "08028ea5" ) | |
| 4081 | _315_5881_KEYFILE("tduno-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 4101 | 4082 | ROM_END |
| 4102 | 4083 | |
| 4103 | 4084 | ROM_START( tduno2 ) |
| r243114 | r243115 | |
| 4151 | 4132 | ROM_LOAD( "mpr-24281.ic6", 0x5800000, 0x1000000, CRC(39133c32) SHA1(09ea8c1a98ba0fac36e18ae14ed5302feaeb89ca) ) |
| 4152 | 4133 | ROM_LOAD( "mpr-24282.ic7", 0x6800000, 0x1000000, CRC(9aa4ad5a) SHA1(2d81f99a579477c5db725f71c51f18afc15abce7) ) |
| 4153 | 4134 | |
| 4154 | | |
| 4135 | _315_5881_UNUSED_OR_UNKNOWN // or M1? | |
| 4155 | 4136 | ROM_END |
| 4156 | 4137 | |
| 4157 | 4138 | ROM_START( crackndj ) |
| r243114 | r243115 | |
| 4171 | 4152 | ROM_LOAD( "mpr-23533.ic9", 0x8800000, 0x1000000, CRC(fc909c00) SHA1(9cf22a97ea272c4586f3942aefdb803bd0e6ede7) ) |
| 4172 | 4153 | ROM_LOAD( "mpr-23534.ic10", 0x9800000, 0x1000000, CRC(62ed85b6) SHA1(b88336bc6115c92a839981cb0c0d0a67b1f7eda5) ) |
| 4173 | 4154 | |
| 4174 | // 840-0043 2000 317-0288-COM Naomi | |
| 4175 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "081c2347" ) | |
| 4155 | _315_5881_KEYFILE("crackndj-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 4176 | 4156 | ROM_END |
| 4177 | 4157 | |
| 4178 | 4158 | ROM_START( crakndj2 ) |
| r243114 | r243115 | |
| 4205 | 4185 | ROM_LOAD( "rom19.ic19s", 0x9800000, 0x800000, CRC(31f816ba) SHA1(354f8271eef20eb131f83fb9641002cfcd31c8cd) ) |
| 4206 | 4186 | ROM_LOAD( "rom20.ic20s", 0xa000000, 0x800000, CRC(aabcd580) SHA1(9455e218ab381c7ad5adb2884da39ca7948169d5) ) |
| 4207 | 4187 | |
| 4208 | // 840-0068 2001 317-0311-COM Naomi | |
| 4209 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "08428247" ) | |
| 4188 | _315_5881_KEYFILE("crackndj2-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 4210 | 4189 | ROM_END |
| 4211 | 4190 | |
| 4212 | 4191 | ROM_START( samba2k ) |
| r243114 | r243115 | |
| 4227 | 4206 | ROM_LOAD( "mpr-23598.ic10", 0x09800000, 0x1000000, CRC(e06ee3dd) SHA1(21985e45e1ab5e3a79dd52492a582324a1a36d56) ) |
| 4228 | 4207 | ROM_LOAD( "mpr-23599.ic11", 0x0a800000, 0x1000000, CRC(1fd2e792) SHA1(6f299e527be529f85d0e8b4ce0e7a06ac0d25fe9) ) |
| 4229 | 4208 | |
| 4230 | // 840-0047 2000 317-0295-COM Naomi | |
| 4231 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "081702cf" ) | |
| 4209 | _315_5881_KEYFILE("samba2k-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 4232 | 4210 | ROM_END |
| 4233 | 4211 | |
| 4234 | 4212 | ROM_START( alienfnt ) |
| r243114 | r243115 | |
| 4243 | 4221 | ROM_LOAD( "mpr-23584.ic4", 0x3800000, 0x1000000, CRC(8d444756) SHA1(89c480f9ed1239c8ae565c85fa0fd50324264b20) ) |
| 4244 | 4222 | ROM_LOAD( "mpr-23585.ic5", 0x4800000, 0x1000000, CRC(883a6482) SHA1(e3145710df793b7fd67f02707904416210a71978) ) |
| 4245 | 4223 | |
| 4246 | // 840-0048 2001 317-0293-COM Naomi | |
| 4247 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "08174343" ) | |
| 4224 | _315_5881_KEYFILE("alienfnt-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 4248 | 4225 | ROM_END |
| 4249 | 4226 | |
| 4250 | 4227 | ROM_START( alienfnta ) |
| r243114 | r243115 | |
| 4259 | 4236 | ROM_LOAD( "mpr-23584.ic4", 0x3800000, 0x1000000, CRC(8d444756) SHA1(89c480f9ed1239c8ae565c85fa0fd50324264b20) ) |
| 4260 | 4237 | ROM_LOAD( "mpr-23585.ic5", 0x4800000, 0x1000000, CRC(883a6482) SHA1(e3145710df793b7fd67f02707904416210a71978) ) |
| 4261 | 4238 | |
| 4262 | // 840-0048 2001 317-0293-COM Naomi | |
| 4263 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "08174343" ) | |
| 4239 | _315_5881_KEYFILE("alienfnt-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 4264 | 4240 | ROM_END |
| 4265 | 4241 | |
| 4266 | 4242 | /* |
| r243114 | r243115 | |
| 4291 | 4267 | ROM_LOAD("mpr-23354.ic13s",0x6800000, 0x0800000, CRC(cea127f7) SHA1(11f12472ebfc93eb72b764c780e30afd4812dbe9) ) |
| 4292 | 4268 | ROM_LOAD("mpr-23355.ic14s",0x7000000, 0x0800000, CRC(e809685f) SHA1(dc052b4eb4fdcfdc22c4807316ce34ee7a0d58a6) ) |
| 4293 | 4269 | |
| 4294 | // 841-0013 2000 317-5063-COM Naomi | |
| 4295 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "00076110" ) | |
| 4270 | _315_5881_KEYFILE("ggx-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 4296 | 4271 | ROM_END |
| 4297 | 4272 | |
| 4298 | 4273 | /* |
| r243114 | r243115 | |
| 4337 | 4312 | ROM_LOAD("mpr-23714.ic10",0x5000000, 0x0800000, CRC(da462c44) SHA1(ca450b6c07f939f96eba7b44c45b4e38abd598aa) ) |
| 4338 | 4313 | ROM_LOAD("mpr-23715.ic11",0x5800000, 0x0800000, CRC(c750abbd) SHA1(2a5bedc2b21cd3f991c7145ccfd8c7a9e7f647ae) ) |
| 4339 | 4314 | |
| 4340 | // HMG016007 2001 317-5071-COM Naomi | |
| 4341 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "00038510" ) | |
| 4315 | _315_5881_KEYFILE("hmgeo-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 4342 | 4316 | ROM_END |
| 4343 | 4317 | |
| 4344 | 4318 | /* |
| r243114 | r243115 | |
| 4376 | 4350 | ROM_LOAD("mpr-22274.ic4", 0x3800000, 0x1000000, CRC(f8daaaf3) SHA1(8854d3f8e3d55715ede33ee918b641e251f752b4) ) |
| 4377 | 4351 | ROM_LOAD("mpr-22275.ic5", 0x4800000, 0x1000000, CRC(61aa1521) SHA1(7d9f5790e72a9151d128ac7887e236526fdf72a0) ) |
| 4378 | 4352 | |
| 4379 | // 841-0014 2000 317-5064-COM Naomi | |
| 4380 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "000b25d0" ) | |
| 4353 | _315_5881_KEYFILE("gwing2-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 4381 | 4354 | ROM_END |
| 4382 | 4355 | |
| 4383 | 4356 | /* |
| r243114 | r243115 | |
| 4426 | 4399 | ROM_LOAD("mpr-21992.ic13s",0x6800000, 0x0800000, CRC(599a2fb8) SHA1(2a0007064ad2ee1e1a0fda1d5676df4ff19a9f2f) ) |
| 4427 | 4400 | ROM_LOAD("mpr-21993.ic14s",0x7000000, 0x0400000, CRC(fb28cf0a) SHA1(d51b1d4514a93074d1f77bd1bc5995739604cf56) ) |
| 4428 | 4401 | |
| 4429 | // 841-0002 1999 317-5047-JPN Naomi | |
| 4430 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "000368e1" ) | |
| 4402 | _315_5881_KEYFILE("suchie3-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 4431 | 4403 | ROM_END |
| 4432 | 4404 | |
| 4433 | 4405 | /* |
| r243114 | r243115 | |
| 4456 | 4428 | ROM_LOAD("mpr-22071.ic11", 0x5800000, 0x0800000, CRC(1ab1f1ab) SHA1(bb8fa8d5a681115a82e9598ebe599b106f7aae9d) ) |
| 4457 | 4429 | ROM_LOAD("mpr-22072.ic12s",0x6000000, 0x0800000, CRC(cb8d2634) SHA1(03ac8fb3a1acb1f8e32d9325c4da42417752f934) ) |
| 4458 | 4430 | |
| 4459 | // 841-0004 1999 317-5050-JPN Naomi seems not used by game | |
| 4460 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "0") | |
| 4431 | _315_5881_UNUSED_OR_UNKNOWN | |
| 4461 | 4432 | ROM_END |
| 4462 | 4433 | |
| 4463 | 4434 | /* |
| r243114 | r243115 | |
| 4521 | 4492 | ROM_LOAD("mpr-22033.ic9", 0x4800000, 0x0800000, CRC(5fe5586e) SHA1(3ff41ae1f81469597684faadd88e62b5e0634352) ) |
| 4522 | 4493 | ROM_LOAD("mpr-22034.ic10",0x5000000, 0x0800000, CRC(3aa5ce5e) SHA1(f00a906235e4522d6fc2ac771324114346875314) ) |
| 4523 | 4494 | |
| 4524 | // 840-0011 1999 317-0257-COM Naomi | |
| 4525 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "0802ca85" ) | |
| 4495 | _315_5881_KEYFILE("toyfight-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 4526 | 4496 | ROM_END |
| 4527 | 4497 | |
| 4528 | 4498 | /* Crazy Taxi */ |
| r243114 | r243115 | |
| 4546 | 4516 | ROM_LOAD( "mpr-21682.ic14s", 0x7000000, 0x800000, CRC(54c0290e) SHA1(6e07ab6e95c29a2aabed0ba1a7af0d7d605e0309) ) |
| 4547 | 4517 | ROM_LOAD( "mpr-21683.ic15s", 0x7800000, 0x800000, CRC(ac8a27e0) SHA1(8e71d853a102dd6c164d5326e6d157ccfb8c7b36) ) |
| 4548 | 4518 | |
| 4549 | // 840-0002 1999 317-0248-COM Naomi | |
| 4550 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "080d2f45" ) | |
| 4519 | _315_5881_KEYFILE("crzytaxi-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 4551 | 4520 | ROM_END |
| 4552 | 4521 | |
| 4553 | 4522 | /* Jambo! Safari */ |
| r243114 | r243115 | |
| 4566 | 4535 | ROM_LOAD( "mpr-22824.ic7", 0x3800000, 0x800000, CRC(cc55304a) SHA1(e548d8de83469e5816c55dbbb00afbb894282fd6) ) |
| 4567 | 4536 | ROM_LOAD( "mpr-22825.ic8", 0x4000000, 0x800000, CRC(85bada10) SHA1(b6e15d8f1d6bca12ffa4816ed0393c04ca500fba) ) |
| 4568 | 4537 | |
| 4569 | // 840-0013 1999 317-0264-COM Naomi | |
| 4570 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "080fab95" ) | |
| 4538 | _315_5881_KEYFILE("jambo-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 4571 | 4539 | ROM_END |
| 4572 | 4540 | |
| 4573 | 4541 | /* 18 Wheeler (deluxe) (Rev A) */ |
| r243114 | r243115 | |
| 4598 | 4566 | ROM_LOAD( "mpr-22182.ic19s", 0x9800000, 0x800000, CRC(c5606c42) SHA1(5871104ff1c7acde0493e13b9a4d0abdf8a40728) ) |
| 4599 | 4567 | ROM_LOAD( "mpr-22183.ic20s", 0xa000000, 0x800000, CRC(776af308) SHA1(7d29cb4dce75d34c622549fea7e102868d0da60a) ) |
| 4600 | 4568 | |
| 4601 | // 840-0023 2000 317-0273-COM Naomi | |
| 4602 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "0807cf54" ) | |
| 4569 | _315_5881_KEYFILE("18wheelr-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 4603 | 4570 | |
| 4604 | 4571 | // JVS I/O board 837-13844, code is for a Z80 of unknown type (it's inside the big Sega ASIC) |
| 4605 | 4572 | ROM_REGION( 0x20000, "jvsio", ROMREGION_ERASEFF) |
| r243114 | r243115 | |
| 4640 | 4607 | ROM_LOAD( "mpr-22182.ic19s", 0x9800000, 0x800000, CRC(c5606c42) SHA1(5871104ff1c7acde0493e13b9a4d0abdf8a40728) ) |
| 4641 | 4608 | ROM_LOAD( "mpr-22183.ic20s", 0xa000000, 0x800000, CRC(776af308) SHA1(7d29cb4dce75d34c622549fea7e102868d0da60a) ) |
| 4642 | 4609 | |
| 4643 | // 840-0023 2000 317-0273-COM Naomi | |
| 4644 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "0807cf54" ) | |
| 4610 | _315_5881_KEYFILE("18wheelr-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 4645 | 4611 | |
| 4646 | 4612 | // JVS I/O board 837-13844, code is for a Z80 of unknown type (it's inside the big Sega ASIC) |
| 4647 | 4613 | ROM_REGION( 0x20000, "jvsio", ROMREGION_ERASEFF) |
| r243114 | r243115 | |
| 4682 | 4648 | ROM_LOAD( "mpr-22182.ic19s", 0x9800000, 0x800000, CRC(c5606c42) SHA1(5871104ff1c7acde0493e13b9a4d0abdf8a40728) ) |
| 4683 | 4649 | ROM_LOAD( "mpr-22183.ic20s", 0xa000000, 0x800000, CRC(776af308) SHA1(7d29cb4dce75d34c622549fea7e102868d0da60a) ) |
| 4684 | 4650 | |
| 4685 | // 840-0023 2000 317-0273-COM Naomi | |
| 4686 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "0807cf54" ) | |
| 4651 | _315_5881_KEYFILE("18wheelr-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 4687 | 4652 | |
| 4688 | 4653 | // JVS I/O board 837-13844, code is for a Z80 of unknown type (it's inside the big Sega ASIC) |
| 4689 | 4654 | ROM_REGION( 0x20000, "jvsio", ROMREGION_ERASEFF) |
| r243114 | r243115 | |
| 4715 | 4680 | ROM_LOAD( "mpr-22991.ic14s", 0x7000000, 0x800000, CRC(0c20f313) SHA1(ac335d3015ef348c91319ae0e98b79a60e92f452) ) |
| 4716 | 4681 | ROM_LOAD( "mpr-22992.ic15s", 0x7800000, 0x800000, CRC(5eb6c4c6) SHA1(5dc1bced7ebd7d7e01f74d03706ec4a96585628d) ) |
| 4717 | 4682 | |
| 4718 | // 840-0025 1999 317-0274-JPN Naomi | |
| 4719 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "080b8ef5" ) | |
| 4683 | _315_5881_KEYFILE("marstv-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 4720 | 4684 | ROM_END |
| 4721 | 4685 | |
| 4722 | 4686 | /* Sega Strike Fighter */ |
| r243114 | r243115 | |
| 4747 | 4711 | ROM_LOAD( "mpr-23320.ic19s", 0x9800000, 0x800000, CRC(5ec75a45) SHA1(696e5d14678c794dec67246507bd580f7e5b5043) ) |
| 4748 | 4712 | ROM_LOAD( "mpr-23321.ic20s", 0xa000000, 0x800000, CRC(018627d4) SHA1(2519f39ad046d14f602648fed39bc3719185b55e) ) |
| 4749 | 4713 | |
| 4750 | // 840-0035 2000 317-0281-COM Naomi | |
| 4751 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "08132303" ) | |
| 4714 | _315_5881_KEYFILE("sstrkfgt-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 4752 | 4715 | ROM_END |
| 4753 | 4716 | |
| 4754 | 4717 | // EPR ROM have different number, possible updated/bugfixed re-release or STD/DLX version, difference with original set is unknown, have "Rev.A" label too |
| r243114 | r243115 | |
| 4779 | 4742 | ROM_LOAD( "mpr-23320.ic19s", 0x9800000, 0x800000, CRC(5ec75a45) SHA1(696e5d14678c794dec67246507bd580f7e5b5043) ) |
| 4780 | 4743 | ROM_LOAD( "mpr-23321.ic20s", 0xa000000, 0x800000, CRC(018627d4) SHA1(2519f39ad046d14f602648fed39bc3719185b55e) ) |
| 4781 | 4744 | |
| 4782 | // 840-0035 2000 317-0281-COM Naomi | |
| 4783 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "08132303" ) | |
| 4745 | _315_5881_KEYFILE("sstrkfgt-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 4784 | 4746 | ROM_END |
| 4785 | 4747 | |
| 4786 | 4748 | |
| r243114 | r243115 | |
| 4799 | 4761 | ROM_LOAD( "mpr-22914.ic5", 0x2800000, 0x800000, CRC(77844b60) SHA1(65d71febb8a160d00778ac7b53e082253cad9834) ) |
| 4800 | 4762 | ROM_LOAD( "mpr-22915.ic6", 0x3000000, 0x800000, CRC(e48148ac) SHA1(c1273353eeaf9bb6b185f133281d7d04271bc895) ) |
| 4801 | 4763 | |
| 4802 | // 840-0018 1999 317-0268-COM Naomi | |
| 4803 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "0808ae51" ) | |
| 4764 | _315_5881_KEYFILE("sgtetri-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 4804 | 4765 | ROM_END |
| 4805 | 4766 | |
| 4806 | 4767 | /* |
| r243114 | r243115 | |
| 4856 | 4817 | ROM_LOAD("mpr-23339.ic16s",0x8000000, 0x0800000, CRC(fd8c2736) SHA1(34ae1a4e35b4aac6666719fb4fc0959bd64ff3d6) ) |
| 4857 | 4818 | ROM_LOAD("mpr-23340.ic17s",0x8800000, 0x0800000, CRC(001604f8) SHA1(615ec027d383d44d4aadb1175be6320e4139d7d1) ) |
| 4858 | 4819 | |
| 4859 | // 840-0041 2000 317-0286-COM Naomi | |
| 4860 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "081a66ca" ) | |
| 4820 | _315_5881_KEYFILE("slasho-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 4861 | 4821 | ROM_END |
| 4862 | 4822 | |
| 4863 | 4823 | |
| r243114 | r243115 | |
| 4914 | 4874 | ROM_LOAD( "mpr-23546.ic10", 0x9800000, 0x1000000, CRC(85db2248) SHA1(37845c269a2e65ee6181a8e7500c2e7dd9b2e343) ) |
| 4915 | 4875 | ROM_LOAD( "mpr-23547.ic11", 0xa800000, 0x1000000, CRC(18b369c7) SHA1(b61cb3fda8cc685865684f7afc7dad0b29d93ca5) ) |
| 4916 | 4876 | |
| 4917 | // 841-0015 2000 317-5065-COM Naomi | |
| 4918 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "000725d0" ) | |
| 4877 | _315_5881_KEYFILE("pjustic-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 4919 | 4878 | ROM_END |
| 4920 | 4879 | |
| 4921 | 4880 | /* |
| r243114 | r243115 | |
| 4956 | 4915 | ROM_LOAD("mpr-21595.ic7", 0x3800000, 0x0800000, CRC(7ab218f7) SHA1(c5c022e63f926cce09d49331647cde20e8e42ab3) ) |
| 4957 | 4916 | ROM_LOAD("mpr-21596.ic8", 0x4000000, 0x0800000, CRC(f27dbdc5) SHA1(d54717d62897546968de2f049239f68bee49bdd8) ) |
| 4958 | 4917 | |
| 4959 | // 841-0001 1999 317-5046-COM Naomi | |
| 4960 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "000e69c1" ) | |
| 4918 | _315_5881_KEYFILE("pston-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 4961 | 4919 | ROM_END |
| 4962 | 4920 | |
| 4963 | 4921 | /* |
| r243114 | r243115 | |
| 4999 | 4957 | ROM_LOAD("mpr-23125.ic8", 0x4000000, 0x0800000, CRC(b9938bbc) SHA1(d55d7adecb5a5a4a276a5a17c12808085d980fd9) ) |
| 5000 | 4958 | ROM_LOAD("mpr-23126.ic9", 0x4800000, 0x0800000, CRC(fbb0325b) SHA1(21b965519d7508d84344641d43e8af2c3ca29ba4) ) |
| 5001 | 4959 | |
| 5002 | // 841-0008 2000 317-5054-COM Naomi | |
| 5003 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "000b8dc0" ) | |
| 4960 | _315_5881_KEYFILE("pstone2-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 5004 | 4961 | ROM_END |
| 5005 | 4962 | |
| 5006 | 4963 | |
| r243114 | r243115 | |
| 5064 | 5021 | ROM_LOAD("mpr-22159.ic18s",0x9000000, 0x0800000, CRC(f8b5e99d) SHA1(bb174a6a80967d0ff05c3a7512e4f0f9c921d130) ) |
| 5065 | 5022 | ROM_LOAD("mpr-22160.ic19s",0x9800000, 0x0800000, CRC(579eef4e) SHA1(bfcabd57f623647053afcedcabfbc74e5736819f) ) |
| 5066 | 5023 | |
| 5067 | // 840-0017 1999 317-0266-COM Naomi | |
| 5068 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "080fea94" ) | |
| 5024 | _315_5881_KEYFILE("outrigger-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 5069 | 5025 | ROM_END |
| 5070 | 5026 | |
| 5071 | 5027 | /* |
| r243114 | r243115 | |
| 5156 | 5112 | ROM_LOAD("mpr-22964.ic15s",0x7800000, 0x0800000, CRC(f581d5a3) SHA1(8cf769f5b0a48951246bb60e9cf58232bcee7bc8) ) |
| 5157 | 5113 | ROM_LOAD("mpr-22965.ic16s",0x8000000, 0x0800000, CRC(8f7bfa8a) SHA1(19f137b1552978d232785c4408805b71835585c6) ) |
| 5158 | 5114 | |
| 5159 | // 840-0020 1999 317-0270-COM Naomi | |
| 5160 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "080a8b5d" ) | |
| 5115 | _315_5881_KEYFILE("samba-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 5161 | 5116 | ROM_END |
| 5162 | 5117 | |
| 5163 | 5118 | // prototype - only works with US BIOS |
| r243114 | r243115 | |
| 5184 | 5139 | ROM_LOAD("mpr-22964.ic15s",0x7800000, 0x0800000, CRC(f581d5a3) SHA1(8cf769f5b0a48951246bb60e9cf58232bcee7bc8) ) |
| 5185 | 5140 | ROM_LOAD("mpr-22965.ic16s",0x8000000, 0x0800000, CRC(8f7bfa8a) SHA1(19f137b1552978d232785c4408805b71835585c6) ) |
| 5186 | 5141 | |
| 5187 | // 840-0020 1999 317-0270-COM Naomi | |
| 5188 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "080a8b5d" ) | |
| 5142 | _315_5881_KEYFILE("samba-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 5189 | 5143 | ROM_END |
| 5190 | 5144 | |
| 5191 | 5145 | /* |
| r243114 | r243115 | |
| 5216 | 5170 | ROM_LOAD("mpr-22218.ic11", 0x5800000, 0x0800000, CRC(f9ca31b8) SHA1(ea3d0f38ca1a46c896c06f038a6362ad3c9f90b2) ) |
| 5217 | 5171 | ROM_LOAD("mpr-22219.ic12s", 0x6000000, 0x0800000, CRC(b3b45811) SHA1(045e7236b814f848d4c9767618ddcd4344d880ec) ) |
| 5218 | 5172 | |
| 5219 | | |
| 5173 | _315_5881_UNUSED_OR_UNKNOWN | |
| 5220 | 5174 | ROM_END |
| 5221 | 5175 | |
| 5222 | 5176 | // Shootout Pool |
| r243114 | r243115 | |
| 5283 | 5237 | ROM_LOAD( "mpr-24057.ic4", 0x3800000, 0x1000000, CRC(6dec3518) SHA1(3e65065df22680e2bbf2d3db22da413f347a1abe) ) |
| 5284 | 5238 | ROM_LOAD( "mpr-24058.ic5", 0x4800000, 0x1000000, CRC(0eba9049) SHA1(a71ca72aeaf17180cde59d7c7b42c97a1b4259ab) ) |
| 5285 | 5239 | |
| 5286 | | |
| 5240 | _315_5881_UNUSED_OR_UNKNOWN | |
| 5287 | 5241 | ROM_END |
| 5288 | 5242 | |
| 5289 | 5243 | /* |
| r243114 | r243115 | |
| 5327 | 5281 | ROM_LOAD("mpr-22975.ic9", 0x4800000, 0x0800000, CRC(0d3c70d1) SHA1(22920bc5fd1dda760b5cb17482e9181be899bc08) ) |
| 5328 | 5282 | ROM_LOAD("mpr-22976.ic10", 0x5000000, 0x0800000, CRC(092d8063) SHA1(14fafd3f4c4f2b37172453d1c815fb9b8f4814f4) ) |
| 5329 | 5283 | |
| 5330 | // 841-0005 1999 317-5051-COM Naomi | |
| 5331 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "00078d01" ) | |
| 5284 | _315_5881_KEYFILE("spawn-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 5332 | 5285 | ROM_END |
| 5333 | 5286 | |
| 5334 | 5287 | /* |
| r243114 | r243115 | |
| 5369 | 5322 | ROM_LOAD("mpr-23020.ic20s", 0xa000000, 0x0800000, CRC(b5943007) SHA1(d0e95084aec5e05027c21a6b4a3331408853781b) ) |
| 5370 | 5323 | //ic21 not populated |
| 5371 | 5324 | |
| 5372 | | |
| 5325 | _315_5881_UNUSED_OR_UNKNOWN | |
| 5373 | 5326 | ROM_END |
| 5374 | 5327 | |
| 5375 | 5328 | /* |
| r243114 | r243115 | |
| 5433 | 5386 | ROM_LOAD("mpr-22947.ic20s", 0xa000000, 0x0800000, CRC(5e5eb595) SHA1(401d4a11d436988d716bb014b36233f171dc576d) ) |
| 5434 | 5387 | ROM_LOAD("mpr-22948.ic21s", 0xa800000, 0x0800000, CRC(1b0de917) SHA1(fd1742ea9bb2f1ce871ee3266171f26634e1c8e7) ) |
| 5435 | 5388 | |
| 5436 | | |
| 5389 | _315_5881_UNUSED_OR_UNKNOWN | |
| 5437 | 5390 | ROM_END |
| 5438 | 5391 | |
| 5439 | 5392 | ROM_START( virnbao ) |
| r243114 | r243115 | |
| 5464 | 5417 | ROM_LOAD("mpr-22947.ic20s", 0xa000000, 0x0800000, CRC(5e5eb595) SHA1(401d4a11d436988d716bb014b36233f171dc576d) ) |
| 5465 | 5418 | ROM_LOAD("mpr-22948.ic21s", 0xa800000, 0x0800000, CRC(1b0de917) SHA1(fd1742ea9bb2f1ce871ee3266171f26634e1c8e7) ) |
| 5466 | 5419 | |
| 5467 | // 840-0021 2000 317-0271-COM Naomi | |
| 5468 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "08068b58" ) | |
| 5420 | _315_5881_KEYFILE("virnbao-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 5469 | 5421 | ROM_END |
| 5470 | 5422 | |
| 5471 | 5423 | ROM_START( virnbap ) |
| r243114 | r243115 | |
| 5496 | 5448 | ROM_LOAD("mpr-22947.ic20s", 0xa000000, 0x0800000, CRC(5e5eb595) SHA1(401d4a11d436988d716bb014b36233f171dc576d) ) |
| 5497 | 5449 | ROM_LOAD("mpr-22948.ic21s", 0xa800000, 0x0800000, CRC(1b0de917) SHA1(fd1742ea9bb2f1ce871ee3266171f26634e1c8e7) ) |
| 5498 | 5450 | |
| 5499 | // 840-0021 2000 317-0271-COM Naomi | |
| 5500 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "08068b58" ) | |
| 5451 | _315_5881_KEYFILE("virnbao-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 5501 | 5452 | ROM_END |
| 5502 | 5453 | |
| 5503 | 5454 | /* |
| r243114 | r243115 | |
| 5549 | 5500 | ROM_LOAD("mpr-21922.ic14s",0x7000000, 0x0800000, CRC(a1901e1e) SHA1(2281f91ac696cc14886bcdf4b0685ce2f5bb8117) ) |
| 5550 | 5501 | ROM_LOAD("mpr-21923.ic15s",0x7800000, 0x0400000, CRC(d127d9a5) SHA1(78c95357344ea15469b84fa8b1332e76521892cd) ) |
| 5551 | 5502 | |
| 5552 | // 840-0010 1999 317-0258-COM Naomi | |
| 5553 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "08088b08" ) | |
| 5503 | _315_5881_KEYFILE("vs2_2k-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 5554 | 5504 | ROM_END |
| 5555 | 5505 | |
| 5556 | 5506 | /* |
| r243114 | r243115 | |
| 5594 | 5544 | ROM_LOAD("mpr-22925.ic10",0x5000000, 0x0800000, CRC(81057e42) SHA1(d41137ae28c64dbdb50150db8cf25851bc0709c4) ) |
| 5595 | 5545 | ROM_LOAD("mpr-22926.ic11",0x5800000, 0x0800000, CRC(57eec89d) SHA1(dd8f9a9155e51ee5260f559449fb0ea245077952) ) |
| 5596 | 5546 | |
| 5597 | // 840-0015 1999 317-0263-COM Naomi | |
| 5598 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "0803eb15" ) | |
| 5547 | _315_5881_KEYFILE("vtennis-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 5599 | 5548 | ROM_END |
| 5600 | 5549 | |
| 5601 | 5550 | /* |
| r243114 | r243115 | |
| 5620 | 5569 | ROM_LOAD( "mpr-22268.ic7", 0x6800000, 0x1000000, CRC(536f5eea) SHA1(f1de8624f82595adf75693b604fb026bf3f778ee) ) |
| 5621 | 5570 | ROM_LOAD( "mpr-22269.ic8", 0x7800000, 0x1000000, CRC(6c0cf740) SHA1(da10b33a6e54afbe1d7e52801216e7119b0b33b1) ) |
| 5622 | 5571 | |
| 5623 | // 840-0040 2000 317-0285-COM Naomi | |
| 5624 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "081627c3" ) | |
| 5572 | _315_5881_KEYFILE("wwfroyal-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 5625 | 5573 | ROM_END |
| 5626 | 5574 | |
| 5627 | 5575 | ROM_START( mushik2e ) |
| r243114 | r243115 | |
| 5937 | 5885 | ROM_LOAD("mpr-21725.ic18s",0x9000000, 0x0800000, CRC(2202077b) SHA1(0893a85379f994277083c0bc5b178dd34508f816) ) |
| 5938 | 5886 | ROM_LOAD("mpr-21726.ic19s",0x9800000, 0x0800000, CRC(429bf290) SHA1(6733e1bcf100e73ab43273f6feedc187fcaa55d4) ) |
| 5939 | 5887 | |
| 5940 | // 840-0003 1999 317-0249-COM Naomi | |
| 5941 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "08012b41" ) | |
| 5888 | _315_5881_KEYFILE("zombrvn-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 5942 | 5889 | ROM_END |
| 5943 | 5890 | |
| 5944 | 5891 | ROM_START( gunsur2 ) |
| r243114 | r243115 | |
| 5962 | 5909 | ROM_LOAD( "bhf1ma14.6m", 0xe000000, 0x1000000, CRC(d06c9bd7) SHA1(54668a2fd31059976890da92709c18f308634887) ) |
| 5963 | 5910 | ROM_LOAD( "bhf1ma15.6l", 0xf000000, 0x1000000, CRC(db3c396b) SHA1(da0e125d627ce890906ca100081ab0685e11c0ef) ) |
| 5964 | 5911 | |
| 5965 | // 25709801 2001 317-5075-COM Naomi | |
| 5966 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "000680d0" ) | |
| 5912 | _315_5881_KEYFILE("bhf1-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 5967 | 5913 | ROM_END |
| 5968 | 5914 | |
| 5969 | 5915 | ROM_START( gunsur2e ) |
| r243114 | r243115 | |
| 5987 | 5933 | ROM_LOAD( "bhf1ma14.6m", 0xe000000, 0x1000000, CRC(d06c9bd7) SHA1(54668a2fd31059976890da92709c18f308634887) ) |
| 5988 | 5934 | ROM_LOAD( "bhf1ma15.6l", 0xf000000, 0x1000000, CRC(db3c396b) SHA1(da0e125d627ce890906ca100081ab0685e11c0ef) ) |
| 5989 | 5935 | |
| 5990 | // 25709801 2001 317-5075-COM Naomi | |
| 5991 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "000680d0" ) | |
| 5936 | _315_5881_KEYFILE("bhf1-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 5992 | 5937 | ROM_END |
| 5993 | 5938 | |
| 5994 | 5939 | ROM_START( wldkicks ) |
| r243114 | r243115 | |
| 6009 | 5954 | ROM_LOAD( "wk1ma9.4d", 0x9000000, 0x1000000, CRC(29635a54) SHA1(a3109d0f8f271e2183316846df2a6a819f6a9b20) ) |
| 6010 | 5955 | ROM_LOAD( "wk1ma10.4c", 0xa000000, 0x1000000, CRC(e96f312c) SHA1(0a92640277111aef5c6e9dab4218a8ae2196ce61) ) |
| 6011 | 5956 | |
| 6012 | // 25209801 2000 317-5040-COM Naomi | |
| 6013 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "052e2901" ) | |
| 5957 | _315_5881_KEYFILE("wldkicks-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 6014 | 5958 | ROM_END |
| 6015 | 5959 | |
| 6016 | 5960 | ROM_START( wldkicksa ) |
| r243114 | r243115 | |
| 6031 | 5975 | ROM_LOAD( "wk1ma9.4d", 0x9000000, 0x1000000, CRC(29635a54) SHA1(a3109d0f8f271e2183316846df2a6a819f6a9b20) ) |
| 6032 | 5976 | ROM_LOAD( "wk1ma10.4c", 0xa000000, 0x1000000, CRC(e96f312c) SHA1(0a92640277111aef5c6e9dab4218a8ae2196ce61) ) |
| 6033 | 5977 | |
| 6034 | // 25209801 2000 317-5040-COM Naomi | |
| 6035 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "052e2901" ) | |
| 5978 | _315_5881_KEYFILE("wldkicks-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 6036 | 5979 | ROM_END |
| 6037 | 5980 | |
| 6038 | 5981 | ROM_START( wldkicksb ) |
| r243114 | r243115 | |
| 6053 | 5996 | ROM_LOAD( "wk1ma9.4d", 0x9000000, 0x1000000, CRC(29635a54) SHA1(a3109d0f8f271e2183316846df2a6a819f6a9b20) ) |
| 6054 | 5997 | ROM_LOAD( "wk1ma10.4c", 0xa000000, 0x1000000, CRC(e96f312c) SHA1(0a92640277111aef5c6e9dab4218a8ae2196ce61) ) |
| 6055 | 5998 | |
| 6056 | // 25209801 2000 317-5040-COM Naomi | |
| 6057 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "052e2901" ) | |
| 5999 | _315_5881_KEYFILE("wldkicks-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 6058 | 6000 | ROM_END |
| 6059 | 6001 | |
| 6060 | 6002 | ROM_START( toukon4 ) |
| r243114 | r243115 | |
| 6080 | 6022 | ROM_LOAD( "trf1ma14.6m", 0xe000000, 0x1000000, CRC(87cb31a0) SHA1(27aef9ac571a0b5e3a76e4ee22f5bc5d0ae962f2) ) |
| 6081 | 6023 | ROM_LOAD( "trf1ma15.6l", 0xf000000, 0x1000000, CRC(42d318c5) SHA1(f9fe82ffbfc51fcb52333f94c55a7092e7124fb4) ) |
| 6082 | 6024 | |
| 6083 | // 25349801 2000 317-5040-COM Naomi | |
| 6084 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "052e2901" ) | |
| 6025 | _315_5881_KEYFILE("tr4a-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 6085 | 6026 | ROM_END |
| 6086 | 6027 | |
| 6087 | 6028 | ROM_START( ninjaslt ) |
| r243114 | r243115 | |
| 6102 | 6043 | ROM_LOAD( "nja1ma9.4c", 0x9000000, 0x1000000, CRC(8abed815) SHA1(5e1b208d23a17ba743d0507d963be42e7828755f) ) |
| 6103 | 6044 | ROM_LOAD( "nja1ma10.4b", 0xa000000, 0x1000000, CRC(f14d2073) SHA1(b4a8cd585794be149b616119df3f75c0fb30e2f0) ) |
| 6104 | 6045 | |
| 6105 | // 25469801 2000 317-5068-COM Naomi | |
| 6106 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "000ca510" ) | |
| 6046 | _315_5881_KEYFILE("nja3-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 6107 | 6047 | |
| 6108 | 6048 | ROM_REGION( 0x20000, "jyu_io", 0 ) // H8/3334-based I/O board ROM, eventually should be separated out |
| 6109 | 6049 | ROM_LOAD( "jyu1_prg0a.ic3", 0x000000, 0x020000, CRC(aec4dbc1) SHA1(bddd4f345baf7f594998a39c09da18b3834f0ac2) ) |
| r243114 | r243115 | |
| 6127 | 6067 | ROM_LOAD( "nja1ma9.4c", 0x9000000, 0x1000000, CRC(8abed815) SHA1(5e1b208d23a17ba743d0507d963be42e7828755f) ) |
| 6128 | 6068 | ROM_LOAD( "nja1ma10.4b", 0xa000000, 0x1000000, CRC(f14d2073) SHA1(b4a8cd585794be149b616119df3f75c0fb30e2f0) ) |
| 6129 | 6069 | |
| 6130 | // 25469801 2000 317-5068-COM Naomi | |
| 6131 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "000ca510" ) | |
| 6070 | _315_5881_KEYFILE("nja3-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 6132 | 6071 | |
| 6133 | 6072 | ROM_REGION( 0x20000, "jyu_io", 0 ) // H8/3334-based I/O board ROM, eventually should be separated out |
| 6134 | 6073 | ROM_LOAD( "jyu1_prg0a.ic3", 0x000000, 0x020000, CRC(aec4dbc1) SHA1(bddd4f345baf7f594998a39c09da18b3834f0ac2) ) |
| r243114 | r243115 | |
| 6152 | 6091 | ROM_LOAD( "nja1ma9.4c", 0x9000000, 0x1000000, CRC(8abed815) SHA1(5e1b208d23a17ba743d0507d963be42e7828755f) ) |
| 6153 | 6092 | ROM_LOAD( "nja1ma10.4b", 0xa000000, 0x1000000, CRC(f14d2073) SHA1(b4a8cd585794be149b616119df3f75c0fb30e2f0) ) |
| 6154 | 6093 | |
| 6155 | // 25469801 2000 317-5068-COM Naomi | |
| 6156 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "000ca510" ) | |
| 6094 | _315_5881_KEYFILE("nja3-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 6157 | 6095 | |
| 6158 | 6096 | ROM_REGION( 0x20000, "jyu_io", 0 ) // H8/3334-based I/O board ROM, eventually should be separated out |
| 6159 | 6097 | ROM_LOAD( "jyu1_prg0a.ic3", 0x000000, 0x020000, CRC(aec4dbc1) SHA1(bddd4f345baf7f594998a39c09da18b3834f0ac2) ) |
| r243114 | r243115 | |
| 6177 | 6115 | ROM_LOAD( "nja1ma9.4c", 0x9000000, 0x1000000, CRC(8abed815) SHA1(5e1b208d23a17ba743d0507d963be42e7828755f) ) |
| 6178 | 6116 | ROM_LOAD( "nja1ma10.4b", 0xa000000, 0x1000000, CRC(f14d2073) SHA1(b4a8cd585794be149b616119df3f75c0fb30e2f0) ) |
| 6179 | 6117 | |
| 6180 | // 25469801 2000 317-5068-COM Naomi | |
| 6181 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "000ca510" ) | |
| 6118 | _315_5881_KEYFILE("nja3-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 6182 | 6119 | |
| 6183 | 6120 | ROM_REGION( 0x20000, "jyu_io", 0 ) // H8/3334-based I/O board ROM, eventually should be separated out |
| 6184 | 6121 | ROM_LOAD( "jyu1_prg0a.ic3", 0x000000, 0x020000, CRC(aec4dbc1) SHA1(bddd4f345baf7f594998a39c09da18b3834f0ac2) ) |
| r243114 | r243115 | |
| 6199 | 6136 | ROM_LOAD( "maz1ma7.4e", 0x7000000, 0x1000000, CRC(6103ad9c) SHA1(e4abbb5867cae6a9bf9067ab3a091ef7b18fa0cd) ) |
| 6200 | 6137 | ROM_LOAD( "maz1ma8.4d", 0x8000000, 0x1000000, CRC(d46c9f40) SHA1(45eec7fa3d4261f12438e841254fa75d572331b3) ) |
| 6201 | 6138 | |
| 6202 | // 25869812 2002 317-0266-COM Naomi | |
| 6203 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "080fea94" ) | |
| 6139 | _315_5881_KEYFILE("maz1-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 6204 | 6140 | ROM_END |
| 6205 | 6141 | |
| 6206 | 6142 | ROM_START( mazana ) |
| r243114 | r243115 | |
| 6218 | 6154 | ROM_LOAD( "maz1ma7.4e", 0x7000000, 0x1000000, CRC(6103ad9c) SHA1(e4abbb5867cae6a9bf9067ab3a091ef7b18fa0cd) ) |
| 6219 | 6155 | ROM_LOAD( "maz1ma8.4d", 0x8000000, 0x1000000, CRC(d46c9f40) SHA1(45eec7fa3d4261f12438e841254fa75d572331b3) ) |
| 6220 | 6156 | |
| 6221 | // 25869812 2002 317-0266-COM Naomi | |
| 6222 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "080fea94" ) | |
| 6157 | _315_5881_KEYFILE("maz1-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 6223 | 6158 | ROM_END |
| 6224 | 6159 | |
| 6225 | 6160 | ROM_START( vtenis2c ) |
| r243114 | r243115 | |
| 6294 | 6229 | ROM_LOAD( "mpr-23723.ic5", 0x4800000, 0x1000000, CRC(651610eb) SHA1(4dfe4f876a5440bd1034f41a4d76e1d6bd3e0e32) ) |
| 6295 | 6230 | ROM_LOAD( "mpr-23724.ic6", 0x5800000, 0x1000000, CRC(c633c45a) SHA1(23b45140f965428d33e2424b0574715c0b952d05) ) |
| 6296 | 6231 | |
| 6297 | | |
| 6232 | _315_5881_UNUSED_OR_UNKNOWN | |
| 6298 | 6233 | ROM_END |
| 6299 | 6234 | |
| 6300 | 6235 | ROM_START( gundmct ) |
| r243114 | r243115 | |
| 6314 | 6249 | ROM_LOAD( "mpr-23636.ic9", 0x8800000, 0x1000000, CRC(57199e9f) SHA1(73a6f20ee7b3133ed4c6286e477e2ff9757106bd) ) |
| 6315 | 6250 | ROM_LOAD( "mpr-23637.ic10", 0x9800000, 0x1000000, CRC(737b5dff) SHA1(0a405b711ffb096a3e6d52ececed73a5f93ebf02) ) |
| 6316 | 6251 | |
| 6317 | // 841-0017 2001 317-5070-COM Naomi | |
| 6318 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "000e8010" ) | |
| 6252 | _315_5881_KEYFILE("gundmct-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 6319 | 6253 | ROM_END |
| 6320 | 6254 | |
| 6321 | 6255 | ROM_START( puyoda ) |
| r243114 | r243115 | |
| 6345 | 6279 | ROM_LOAD( "mpr-22204.ic19s", 0x9800000, 0x800000, CRC(2c5e5140) SHA1(7887fc19459dc85ca78256e0c50c762eea001e51) ) |
| 6346 | 6280 | ROM_LOAD( "mpr-22205.ic20s", 0xa000000, 0x800000, CRC(7d523ae5) SHA1(7495082b7e83b6ee8f47660baba4c604d8ba2ff1) ) |
| 6347 | 6281 | |
| 6348 | // 841-0006 1999 317-5052-COM Naomi | |
| 6349 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "000acd40" ) | |
| 6282 | _315_5881_KEYFILE("puyoda-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 6350 | 6283 | ROM_END |
| 6351 | 6284 | |
| 6352 | 6285 | ROM_START( zerogu2 ) |
| r243114 | r243115 | |
| 6361 | 6294 | ROM_LOAD( "mpr-23687.ic4", 0x3800000, 0x1000000, CRC(e125439a) SHA1(07e7339f3f53aeb0ebddf7a8ac3eb6d8f3fe9de6) ) |
| 6362 | 6295 | ROM_LOAD( "mpr-23688.ic5", 0x4800000, 0x1000000, CRC(38412edf) SHA1(9cae06cf46e134531f47e64deedace449664f69a) ) |
| 6363 | 6296 | |
| 6364 | // 841-0020 2001 317-5073-COM Naomi | |
| 6365 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "0007c010" ) | |
| 6297 | _315_5881_KEYFILE("zerogu2-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 6366 | 6298 | ROM_END |
| 6367 | 6299 | |
| 6368 | 6300 | ROM_START( inunoos ) |
| r243114 | r243115 | |
| 6389 | 6321 | ROM_LOAD( "ic15s.bin", 0x7800000, 0x800000, CRC(b85e13ef) SHA1(974f6b8f24efe79d72ea9d7a2cfccf479704243d) ) |
| 6390 | 6322 | ROM_LOAD( "ic16s.bin", 0x8000000, 0x800000, CRC(b8493dbe) SHA1(b641417e1bda49341e7ff86340072d74e3330665) ) |
| 6391 | 6323 | |
| 6392 | // 840-0073 2001 317-0316-JPN Naomi | |
| 6393 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "094bc3e3" ) | |
| 6324 | _315_5881_KEYFILE("inuoos-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 6394 | 6325 | ROM_END |
| 6395 | 6326 | |
| 6396 | 6327 | ROM_START( ringout ) |
| r243114 | r243115 | |
| 6410 | 6341 | ROM_LOAD( "mpr-21769.ic9", 0x4800000, 0x800000, CRC(6d22d29d) SHA1(382dcd62065437b34fe101144b1c047eb261f047) ) |
| 6411 | 6342 | ROM_LOAD( "mpr-21770.ic10", 0x5000000, 0x800000, CRC(c5308e61) SHA1(e51f8026351d5ffbda2a5bed39aeef543366febf) ) |
| 6412 | 6343 | |
| 6413 | // 840-0004 1999 317-0250-COM Naomi | |
| 6414 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "080b1e40" ) | |
| 6344 | _315_5881_KEYFILE("ringout-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 6415 | 6345 | ROM_END |
| 6416 | 6346 | |
| 6417 | 6347 | ROM_START( vonot ) |
| r243114 | r243115 | |
| 6434 | 6364 | ROM_LOAD( "mpr-23193.ic12s", 0x6000000, 0x800000, CRC(c86a5b9b) SHA1(4b8dda85003289e1464e12c3abf449bb8df20e3a) ) |
| 6435 | 6365 | ROM_LOAD( "mpr-23194.ic13s", 0x6800000, 0x800000, CRC(5adea0bd) SHA1(f8614ba83d5f61556c3db1a1796a02ed2c51ce2a) ) |
| 6436 | 6366 | |
| 6437 | // 840-0028 2000 317-0279-COM Naomi | |
| 6438 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "08010715" ) | |
| 6367 | _315_5881_KEYFILE("vonot-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 6439 | 6368 | ROM_END |
| 6440 | 6369 | |
| 6441 | 6370 | ROM_START( derbyo2k ) |
| r243114 | r243115 | |
| 6461 | 6390 | ROM_LOAD( "mpr-22237.ic15s", 0x7800000, 0x800000, CRC(718dd6bf) SHA1(6b71bb6970b582865f53d26e9579587fce86439e) ) |
| 6462 | 6391 | ROM_LOAD( "mpr-22238.ic16s", 0x8000000, 0x800000, CRC(fb3e55da) SHA1(d547ee5b47e6e6fec9e447460300c828fbff8f2e) ) |
| 6463 | 6392 | |
| 6464 | | |
| 6393 | _315_5881_UNUSED_OR_UNKNOWN | |
| 6465 | 6394 | ROM_END |
| 6466 | 6395 | |
| 6467 | 6396 | ROM_START( starhrse ) |
| r243114 | r243115 | |
| 6475 | 6404 | ROM_LOAD( "mpr-23233.ic3", 0x2800000, 0x1000000, CRC(d6451cab) SHA1(6508e27d0370b19df01150da7baf4875479c166a) ) |
| 6476 | 6405 | ROM_LOAD( "mpr-23234.ic4", 0x3800000, 0x1000000, CRC(44044c14) SHA1(4934cb8d5f9b4085ffb5ddc711343f488aae4c4d) ) |
| 6477 | 6406 | |
| 6478 | | |
| 6407 | _315_5881_UNUSED_OR_UNKNOWN | |
| 6479 | 6408 | |
| 6480 | 6409 | // this dump can't be used as main_eeprom, because that's exactly 0x80 bytes |
| 6481 | 6410 | ROM_REGION(0x84, "some_eeprom", 0) |
| r243114 | r243115 | |
| 6508 | 6437 | ROM_LOAD( "ic17s.bin", 0x8800000, 0x800000, CRC(b4c40606) SHA1(4f187dfe44bd89c90b6fa4b90f16222bc0a74d22) ) |
| 6509 | 6438 | // .18s chip is not present but is tested for an FF fill (pull-up resistors on the PCB's data bus presumably accomplish this) |
| 6510 | 6439 | |
| 6511 | | |
| 6440 | _315_5881_UNUSED_OR_UNKNOWN | |
| 6512 | 6441 | |
| 6513 | 6442 | // this dump can't be used as main_eeprom, because that's exactly 0x80 bytes |
| 6514 | 6443 | ROM_REGION(0x84, "some_eeprom", 0) |
| r243114 | r243115 | |
| 6529 | 6458 | ROM_LOAD( "mpr-23280.ic6", 0x5800000, 0x1000000, CRC(b1c8daa2) SHA1(a05fb374156ea013e35502abccc92f5117c39daa) ) |
| 6530 | 6459 | ROM_LOAD( "mpr-23281.ic7", 0x6800000, 0x0800000, CRC(c0378369) SHA1(c728a181eddb01b9f8574669d4550baed559a5a4) ) |
| 6531 | 6460 | |
| 6532 | | |
| 6461 | _315_5881_UNUSED_OR_UNKNOWN | |
| 6533 | 6462 | |
| 6534 | 6463 | // this dump can't be used as main_eeprom, because that's exactly 0x80 bytes |
| 6535 | 6464 | ROM_REGION(0x84, "some_eeprom", 0) |
| r243114 | r243115 | |
| 6551 | 6480 | ROM_LOAD( "mpr-24128.ic6", 0x5800000, 0x1000000, CRC(bfdbb853) SHA1(bfbeb6ab634201af68d1427dea4f50163673fc2c) ) |
| 6552 | 6481 | ROM_LOAD( "mpr-24129.ic7", 0x6800000, 0x1000000, CRC(c3f0f06a) SHA1(152324f2dbbde5560ae3adb1f9394a273fedbe9c) ) |
| 6553 | 6482 | |
| 6554 | | |
| 6483 | _315_5881_UNUSED_OR_UNKNOWN | |
| 6555 | 6484 | ROM_END |
| 6556 | 6485 | |
| 6557 | 6486 | /* prototype cartridges for games released on GD-ROM */ |
| r243114 | r243115 | |
| 7798 | 7727 | ROM_LOAD( "mpr-23661.ic10", 0x9800000, 0x1000000, CRC(7d44dc74) SHA1(cfd6253eab3c1a039629b4873946c9dbc7ed6872) ) |
| 7799 | 7728 | ROM_LOAD( "mpr-23662.ic11", 0xa800000, 0x0800000, CRC(d6ef7d68) SHA1(4ee396af6c5caf4c5af6e9ad0e03a7ac2c5039f4) ) |
| 7800 | 7729 | |
| 7801 | // 840-0061 2001 317-0310-COM Naomi 2 | |
| 7802 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "0cee834a" ) | |
| 7730 | _315_5881_KEYFILE("vstrik2c-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 7803 | 7731 | ROM_END |
| 7804 | 7732 | |
| 7805 | 7733 | ROM_START( vstrik3cb ) |
| r243114 | r243115 | |
| 7820 | 7748 | ROM_LOAD( "mpr-23661.ic10", 0x9800000, 0x1000000, CRC(7d44dc74) SHA1(cfd6253eab3c1a039629b4873946c9dbc7ed6872) ) |
| 7821 | 7749 | ROM_LOAD( "mpr-23662.ic11", 0xa800000, 0x0800000, CRC(d6ef7d68) SHA1(4ee396af6c5caf4c5af6e9ad0e03a7ac2c5039f4) ) |
| 7822 | 7750 | |
| 7823 | // 840-0061 2001 317-0310-COM Naomi 2 | |
| 7824 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "0cee834a" ) | |
| 7751 | _315_5881_KEYFILE("vstrik3c-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 7825 | 7752 | ROM_END |
| 7826 | 7753 | |
| 7827 | 7754 | ROM_START( wldrider ) |
| r243114 | r243115 | |
| 7841 | 7768 | ROM_LOAD( "mpr-23619.ic9", 0x8800000, 0x1000000, CRC(a5f4f6af) SHA1(bb89d3f0f5bbaf7c40fa43680c7e51ef93f7ed26) ) |
| 7842 | 7769 | ROM_LOAD( "mpr-23620.ic10", 0x9800000, 0x1000000, CRC(67aa15a9) SHA1(42c24cbf7069c27430a71509a872cd1c4224aaeb) ) |
| 7843 | 7770 | |
| 7844 | // 840-0046 2001 317-0301-COM Naomi 2 | |
| 7845 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "0ce7a703" ) | |
| 7771 | _315_5881_KEYFILE("wldridr-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 7846 | 7772 | ROM_END |
| 7847 | 7773 | |
| 7848 | 7774 | ROM_START( vf4cart ) |
| r243114 | r243115 | |
| 7863 | 7789 | ROM_LOAD( "mpr-23783.ic10", 0x9800000, 0x1000000, CRC(c8d4f6f9) SHA1(9e9df605c050b3780d7df34bd5041d30bc084d2d) ) |
| 7864 | 7790 | ROM_LOAD( "mpr-23784.ic11", 0xa800000, 0x1000000, CRC(f74f2fee) SHA1(84b07baa6d116727e66ef27e24ba6484c3393891) ) |
| 7865 | 7791 | |
| 7866 | // 840-0080 2002 317-0324-COM Naomi 2 | |
| 7867 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "0eef2f96" ) | |
| 7792 | _315_5881_KEYFILE("vf4cart-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 7868 | 7793 | ROM_END |
| 7869 | 7794 | |
| 7870 | 7795 | // There is also a development cart (171-7885A) with 20x 64Mb FlashROMs instead of 10x 128Mb MaskROMs. Content is the same. |
| r243114 | r243115 | |
| 7885 | 7810 | ROM_LOAD("mpr-23816.ic9", 0x08800000, 0x01000000, CRC(bbaf0765) SHA1(3b79a4eff504b2156bea8b86c6cdd8e41e7bf268) ) |
| 7886 | 7811 | ROM_LOAD("mpr-23817.ic10", 0x09800000, 0x01000000, CRC(e179cfb6) SHA1(1120036238439f8ac1041150396e4b60e4a243bc) ) |
| 7887 | 7812 | |
| 7888 | | |
| 7813 | _315_5881_UNUSED_OR_UNKNOWN | |
| 7889 | 7814 | ROM_END |
| 7890 | 7815 | |
| 7891 | 7816 | ROM_START( soulsurf ) |
| r243114 | r243115 | |
| 7917 | 7842 | ROM_LOAD( "ic20s.bin", 0xa000000, 0x800000, CRC(c90b960d) SHA1(66e9f09d1f7f6a991371574a2e095c0e22fb7031) ) |
| 7918 | 7843 | ROM_LOAD( "ic21s.bin", 0xa800000, 0x800000, CRC(1477c064) SHA1(87fb8d8a91d6bed70b246a8df88fa77fbf3db443) ) |
| 7919 | 7844 | |
| 7920 | | |
| 7845 | _315_5881_UNUSED_OR_UNKNOWN | |
| 7921 | 7846 | ROM_END |
| 7922 | 7847 | |
| 7923 | 7848 | ROM_START( vf4evoct ) |
| r243114 | r243115 | |
| 7949 | 7874 | |
| 7950 | 7875 | ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 ) |
| 7951 | 7876 | |
| 7952 | _ | |
| 7877 | _315_5881_KEYFILE("vf4evoct-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 7953 | 7878 | ROM_END |
| 7954 | 7879 | |
| 7955 | 7880 | ROM_START( hopper ) |
| r243114 | r243115 | |
| 7985 | 7910 | ROM_LOAD( "mpr-23702.ic10", 0x9800000, 0x1000000, CRC(e302b582) SHA1(787192ed9f9a08541eecc3128855485cad802a42) ) |
| 7986 | 7911 | ROM_LOAD( "mpr-23703.ic11", 0xa800000, 0x1000000, CRC(702b8b4a) SHA1(3a8dfde458f341e7db20664382b9fce2b6e5d462) ) |
| 7987 | 7912 | |
| 7988 | // 840-0062 2001 317-0313-COM Naomi 2 | |
| 7989 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "0ce7d742" ) | |
| 7913 | _315_5881_KEYFILE("clubkrte-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 7990 | 7914 | ROM_END |
| 7991 | 7915 | |
| 7992 | 7916 | ROM_START( clubkrtd ) |
| r243114 | r243115 | |
| 8007 | 7931 | ROM_LOAD( "mpr-23702.ic10", 0x9800000, 0x1000000, CRC(e302b582) SHA1(787192ed9f9a08541eecc3128855485cad802a42) ) |
| 8008 | 7932 | ROM_LOAD( "mpr-23703.ic11", 0xa800000, 0x1000000, CRC(702b8b4a) SHA1(3a8dfde458f341e7db20664382b9fce2b6e5d462) ) |
| 8009 | 7933 | |
| 8010 | // 840-0062 2001 317-0313-COM Naomi 2 | |
| 8011 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "0ce7d742" ) | |
| 7934 | _315_5881_KEYFILE("clubkrte-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 8012 | 7935 | ROM_END |
| 8013 | 7936 | |
| 8014 | 7937 | ROM_START( clubkrtc ) |
| r243114 | r243115 | |
| 8029 | 7952 | ROM_LOAD( "mpr-23702.ic10", 0x9800000, 0x1000000, CRC(e302b582) SHA1(787192ed9f9a08541eecc3128855485cad802a42) ) |
| 8030 | 7953 | ROM_LOAD( "mpr-23703.ic11", 0xa800000, 0x1000000, CRC(702b8b4a) SHA1(3a8dfde458f341e7db20664382b9fce2b6e5d462) ) |
| 8031 | 7954 | |
| 8032 | // 840-0062 2001 317-0313-COM Naomi 2 | |
| 8033 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "0ce7d742" ) | |
| 7955 | _315_5881_KEYFILE("clubkrte-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 8034 | 7956 | ROM_END |
| 8035 | 7957 | |
| 8036 | 7958 | ROM_START( clubkprz ) |
| r243114 | r243115 | |
| 8062 | 7984 | ROM_REGION(0x84, "some_eeprom", 0) |
| 8063 | 7985 | ROM_LOAD( "at25010.ic3s", 0x000000, 0x000084, CRC(0142d8be) SHA1(5922b6c47b12b19e1fa7bbe9aae391905038a7ff) ) |
| 8064 | 7986 | |
| 8065 | // 840-0062 2001 317-0313-COM Naomi 2 | |
| 8066 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "0ce7d742" ) | |
| 7987 | _315_5881_KEYFILE("clubkprz-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 8067 | 7988 | ROM_END |
| 8068 | 7989 | |
| 8069 | 7990 | ROM_START( clubkpzb ) |
| r243114 | r243115 | |
| 8091 | 8012 | |
| 8092 | 8013 | ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 ) |
| 8093 | 8014 | |
| 8094 | // 840-0062 2001 317-0313-COM Naomi 2 | |
| 8095 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "0ce7d742" ) | |
| 8015 | _315_5881_KEYFILE("clubkprz-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 8096 | 8016 | |
| 8097 | 8017 | // this dump can't be used as main_eeprom, because that's exactly 0x80 bytes |
| 8098 | 8018 | ROM_REGION(0x84, "some_eeprom", 0) |
| r243114 | r243115 | |
| 8126 | 8046 | |
| 8127 | 8047 | ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 ) |
| 8128 | 8048 | |
| 8129 | // 840-0062 2001 317-0313-COM Naomi 2 | |
| 8130 | ROM_PARAMETER( ":rom_board:segam2crypt:key", "0ce7d742" ) | |
| 8049 | _315_5881_KEYFILE("clubk2k3-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) | |
| 8131 | 8050 | ROM_END |
| 8132 | 8051 | |
| 8133 | 8052 | // uses the same mask roms data as clubk2k3, but not in 32bit dissected form, EPR doesn't have checksumms for them, so rom test shows all roms as BAD |
| r243114 | r243115 | |
|---|---|---|
| 368 | 368 | |
| 369 | 369 | void segajw_state::machine_start() |
| 370 | 370 | { |
| 371 | save_item(NAME(m_coin_start_cycles)); | |
| 372 | save_item(NAME(m_hopper_start_cycles)); | |
| 373 | save_item(NAME(m_coin_counter)); | |
| 374 | save_item(NAME(m_coin_lockout)); | |
| 375 | save_item(NAME(m_hopper_ctrl)); | |
| 376 | save_item(NAME(m_lamps)); | |
| 377 | 371 | } |
| 378 | 372 | |
| 379 | 373 | |
| r243114 | r243115 | |
| 444 | 438 | ROM_END |
| 445 | 439 | |
| 446 | 440 | |
| 447 | GAMEL( 1991, segajw, 0, segajw, segajw, driver_device, 0, ROT0, "Sega", "Golden Poker Series \"Joker's Wild\" (Rev. B)", GAME_NOT_WORKING | GAME_ | |
| 441 | GAMEL( 1991, segajw, 0, segajw, segajw, driver_device, 0, ROT0, "Sega", "Golden Poker Series \"Joker's Wild\" (Rev. B)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS, layout_segajw ) // TODO: correct title |
| r243114 | r243115 | |
|---|---|---|
| 1824 | 1824 | ROM_LOAD16_WORD_SWAP( "mpr20826.1", 0x1800000, 0x0400000, CRC(bdc4b941) SHA1(c5e8b1b186324c2ccab617915f7bdbfe6897ca9f) ) // good (was .17) |
| 1825 | 1825 | ROM_LOAD16_WORD_SWAP( "mpr20832.8", 0x1c00000, 0x0400000, CRC(af1b0985) SHA1(d7a0e4e0a8b0556915f924bdde8c3d14e5b3423e) ) // good (was .18s) |
| 1826 | 1826 | ROM_LOAD16_WORD_SWAP( "mpr20833.9", 0x2000000, 0x0400000, CRC(cb6af231) SHA1(4a2e5d7c2fd6179c19cdefa84a03f9a34fbb9e70) ) // good (was .19s) |
| 1827 | ||
| 1828 | // 25349801 1998 317-5040-COM ST-V (yes, the 317-5040-COM chip was reused for 3 different games and on both Naomi and ST-V!) | |
| 1829 | ROM_PARAMETER( ":315_5881:key", "052e2901" ) | |
| 1830 | 1827 | ROM_END |
| 1831 | 1828 | |
| 1832 | 1829 | ROM_START( bakubaku ) |
| r243114 | r243115 | |
| 1971 | 1968 | ROM_LOAD16_WORD_SWAP( "mpr21305.6", 0x1400000, 0x0400000, CRC(46cfc2a2) SHA1(8ca26bf8fa5ced040e815c125c13dd06d599e189) ) // good (was .16) |
| 1972 | 1969 | ROM_LOAD16_WORD_SWAP( "mpr21306.1", 0x1800000, 0x0400000, CRC(87a5929c) SHA1(b259341d7b0e1fa98959bf52d23db5c308a8efdd) ) // good (was .17) |
| 1973 | 1970 | ROM_LOAD16_WORD_SWAP( "mpr21308.8", 0x1c00000, 0x0400000, CRC(336ec1a4) SHA1(20d1fce050cf6132d284b91853a4dd5626372ef0) ) // good (was .18s) |
| 1974 | ||
| 1975 | // 1998 317-5043-COM ST-V | |
| 1976 | ROM_PARAMETER( ":315_5881:key", "05226d41" ) | |
| 1977 | 1971 | ROM_END |
| 1978 | 1972 | |
| 1979 | 1973 | ROM_START( ffreveng ) |
| r243114 | r243115 | |
| 1987 | 1981 | ROM_LOAD16_WORD_SWAP( "mpr21876.5", 0x1000000, 0x0400000, CRC(bb92a7fc) SHA1(d9e0fab1104a46adeb0a0cfc0d070d4c63a28d55) ) // good (was .15) |
| 1988 | 1982 | ROM_LOAD16_WORD_SWAP( "mpr21877.6", 0x1400000, 0x0400000, CRC(c22a4a75) SHA1(3276bc0628e71b432f21ba9a4f5ff7ccc8769cd9) ) // good (was .16) |
| 1989 | 1983 | ROM_LOAD16_WORD_SWAP( "opr21878.1", 0x1800000, 0x0200000, CRC(2ea4a64d) SHA1(928a973dce5eba0a1628d61ba56a530de990a946) ) // good (was .17) |
| 1990 | ||
| 1991 | // 1998 317-5049-COM ST-V | |
| 1992 | ROM_PARAMETER( ":315_5881:key", "0524ac01" ) | |
| 1993 | 1984 | ROM_END |
| 1994 | 1985 | |
| 1995 | 1986 | /* set system to 1 player to test rom */ |
| r243114 | r243115 | |
| 2246 | 2237 | ROM_LOAD16_WORD_SWAP( "mpr20960.3", 0x0800000, 0x0400000, CRC(b5ab9053) SHA1(87c5d077eb1219c35fa65b4e11d5b62e826f5236) ) // good (was .13) |
| 2247 | 2238 | ROM_LOAD16_WORD_SWAP( "mpr20961.4", 0x0c00000, 0x0400000, CRC(0e06295c) SHA1(0ec2842622f3e9dc5689abd58aeddc7e5603b97a) ) // good (was .14) |
| 2248 | 2239 | ROM_LOAD16_WORD_SWAP( "mpr20962.5", 0x1000000, 0x0400000, CRC(f1e6c7fc) SHA1(0ba0972f1bc7c56f4e0589d3e363523cea988bb0) ) // good (was .15) |
| 2249 | ||
| 2250 | // 1998 317-5041-COM ST-V | |
| 2251 | ROM_PARAMETER( ":315_5881:key", "05272d01" ) | |
| 2252 | 2240 | ROM_END |
| 2253 | 2241 | |
| 2254 | 2242 | ROM_START( sandor ) |
| r243114 | r243115 | |
| 2437 | 2425 | |
| 2438 | 2426 | ROM_REGION16_BE( 0x80, "eeprom", 0 ) // preconfigured to 1 player |
| 2439 | 2427 | ROM_LOAD( "sss.nv", 0x0000, 0x0080, CRC(3473b2f3) SHA1(6480b4b321af8ee6e967710e74f2556c17bfca97) ) |
| 2440 | ||
| 2441 | // 1998 317-5042-COM ST-V | |
| 2442 | ROM_PARAMETER( ":315_5881:key", "052b6901" ) | |
| 2443 | 2428 | ROM_END |
| 2444 | 2429 | |
| 2445 | 2430 | ROM_START( suikoenb ) |
| r243114 | r243115 | |
| 2470 | 2455 | ROM_LOAD16_WORD_SWAP( "mpr20822.3", 0x0800000, 0x0400000, CRC(8b33a5e2) SHA1(d5689ac8aad63509febe9aa4077351be09b2d8d4) ) // ic3 good (was .13) |
| 2471 | 2456 | ROM_LOAD16_WORD_SWAP( "mpr20823.4", 0x0c00000, 0x0400000, CRC(6e6d4e95) SHA1(c387d03ba27580c62ac0bf780915fdf41552df6f) ) // ic4 good (was .14) |
| 2472 | 2457 | ROM_LOAD16_WORD_SWAP( "mpr20824.5", 0x1000000, 0x0400000, CRC(4cf18a25) SHA1(310961a5f114fea8938a3f514dffd5231e910a5a) ) // ic5 good (was .15) |
| 2473 | ||
| 2474 | // 25209801 1998 317-5039-COM ST-V | |
| 2475 | ROM_PARAMETER( ":315_5881:key", "05200913" ) | |
| 2476 | 2458 | ROM_END |
| 2477 | 2459 | |
| 2478 | 2460 | ROM_START( vfkids ) |
| r243114 | r243115 | |
|---|---|---|
| 45 | 45 | save_item(NAME(line_buffer_pos)); |
| 46 | 46 | save_item(NAME(line_buffer_size)); |
| 47 | 47 | |
| 48 | astring skey = parameter("key"); | |
| 49 | if(skey) | |
| 50 | key = strtoll(skey.cstr(), 0, 16); | |
| 51 | else | |
| 52 | { | |
| 53 | logerror("%s: Warning: key not provided\n", tag()); | |
| 54 | key = 0; | |
| 55 | } | |
| 56 | 48 | } |
| 57 | 49 | |
| 58 | 50 | void sega_315_5881_crypt_device::device_reset() |
| r243114 | r243115 | |
| 120 | 112 | enc_ready = false; |
| 121 | 113 | } |
| 122 | 114 | |
| 115 | void sega_315_5881_crypt_device::set_key(UINT32 data) | |
| 116 | { | |
| 117 | key = data; | |
| 118 | enc_ready = false; | |
| 119 | } | |
| 120 | ||
| 123 | 121 | /*************************************************************************** |
| 124 | 122 | DECRYPTION EMULATION |
| 125 | 123 |
| r243114 | r243115 | |
|---|---|---|
| 4 | 4 | #ifndef __SEGA315_5881_CRYPT__ |
| 5 | 5 | #define __SEGA315_5881_CRYPT__ |
| 6 | 6 | |
| 7 | #include "315-5881_helper.h" | |
| 8 | ||
| 7 | 9 | typedef device_delegate<UINT16 (UINT32)> sega_m2_read_delegate; |
| 8 | 10 | |
| 9 | 11 | extern const device_type SEGA315_5881_CRYPT; |
| r243114 | r243115 | |
| 23 | 25 | void set_addr_low(UINT16 data); |
| 24 | 26 | void set_addr_high(UINT16 data); |
| 25 | 27 | void set_subkey(UINT16 data); |
| 28 | void set_key(UINT32 data); | |
| 26 | 29 | |
| 27 | 30 | sega_m2_read_delegate m_read; |
| 28 | 31 |
| r0 | r243115 | |
|---|---|---|
| 1 | ||
| 2 | /* Sega 315-5881 support file | |
| 3 | ||
| 4 | This encryption chip was used on various games running on | |
| 5 | ST-V | |
| 6 | Naomi | |
| 7 | Naomi 2 | |
| 8 | Hikaru | |
| 9 | Model 2 | |
| 10 | Model 3 | |
| 11 | (more?) | |
| 12 | ||
| 13 | As the encryption isn't fully understood yet this file holds the current keys, these are subject to change. | |
| 14 | */ | |
| 15 | ||
| 16 | ||
| 17 | #include "emu.h" | |
| 18 | #include "315-5881_helper.h" | |
| 19 | ||
| 20 | struct game_keys | |
| 21 | { | |
| 22 | const char *name; /* game driver name */ | |
| 23 | const INT64 key; // INT64 so we can use -1 for unknown keys | |
| 24 | ||
| 25 | }; | |
| 26 | ||
| 27 | // chip numbers based on Guru's list at | |
| 28 | // http://members.iinet.net.au/~lantra9jp1/gurudumps/sega-security/sega_security.html | |
| 29 | // (todo , complete it ) | |
| 30 | ||
| 31 | ||
| 32 | static const struct game_keys keys_table[] = | |
| 33 | { | |
| 34 | // name key gameid # year chip label platform | |
| 35 | { "twcup98", 0x05200913 }, // 25209801 1998 317-5039-COM ST-V | |
| 36 | { "astrass", 0x052e2901 }, // 25349801 1998 317-5040-COM ST-V (yes, the 317-5040-COM chip was reused for 3 different games and on both Naomi and ST-V!) | |
| 37 | { "rsgun", 0x05272d01 }, // 1998 317-5041-COM ST-V | |
| 38 | { "sss", 0x052b6901 }, // 1998 317-5042-COM ST-V | |
| 39 | { "elandore", 0x05226d41 }, // 1998 317-5043-COM ST-V | |
| 40 | { "ffreveng", 0x0524ac01 }, // 1998 317-5049-COM ST-V | |
| 41 | ||
| 42 | { "dybbnao", 0x080e6ae1 }, // 840-0001 1998 317-0246-JPN Naomi | |
| 43 | { "crzytaxi", 0x080d2f45 }, // 840-0002 1999 317-0248-COM Naomi | |
| 44 | { "zombrvn", 0x08012b41 }, // 840-0003 1999 317-0249-COM Naomi | |
| 45 | { "ringout", 0x080b1e40 }, // 840-0004 1999 317-0250-COM Naomi | |
| 46 | { "alpilota", 0x08070e41 }, // 840-0005 1999 317-0251-COM Naomi | |
| 47 | { "alpiltdx", 0x08070e41 }, // 834-????? 1999 317-0251-COM Naomi | |
| 48 | { "ggram2", 0x08074a61 }, // 840-0007 1999 317-0253-JPN Naomi | |
| 49 | { "f355", 0x080e8f84 }, // 834-13842 1999 317-0254-COM Naomi | |
| 50 | { "tduno", 0x08028ea5 }, // 840-0008 1999 317-0255-JPN Naomi | |
| 51 | { "toyfight", 0x0802ca85 }, // 840-0011 1999 317-0257-COM Naomi | |
| 52 | { "vs2_2k", 0x08088b08 }, // 840-0010 1999 317-0258-COM Naomi | |
| 53 | { "smlg99", 0x08048a01 }, // 840-0012 1999 317-0259-COM Naomi | |
| 54 | { "derbyoc", 0x080fee35 }, // 840-0016 1999 317-0262-JPN Naomi | |
| 55 | { "vtennis", 0x0803eb15 }, // 840-0015 1999 317-0263-COM Naomi | |
| 56 | { "jambo", 0x080fab95 }, // 840-0013 1999 317-0264-COM Naomi | |
| 57 | { "mazan", 0x080fea94 }, // 25869812 2002 317-0266-COM Naomi | |
| 58 | { "mazana", 0x080fea94 }, // 25869812 2002 317-0266-COM Naomi | |
| 59 | { "otrigger", 0x080fea94 }, // 840-0017 1999 317-0266-COM Naomi | |
| 60 | { "f355twin", 0x0806efd4 }, // 834-13950 1999 317-0267-COM Naomi | |
| 61 | { "sgtetris", 0x0808ae51 }, // 840-0018 1999 317-0268-COM Naomi | |
| 62 | { "dybb99", 0x0804ae71 }, // 840-0019 1999 317-0269-JPN Naomi | |
| 63 | { "samba", 0x080a8b5d }, // 840-0020 1999 317-0270-COM Naomi | |
| 64 | { "sambap", 0x080a8b5d }, // 840-0020 1999 317-0270-COM Naomi | |
| 65 | { "virnbao", 0x08068b58 }, // 840-0021 2000 317-0271-COM Naomi | |
| 66 | { "virnbap", 0x08068b58 }, // 840-0021 2000 317-0271-COM Naomi | |
| 67 | { "18wheelr", 0x0807cf54 }, // 840-0023 2000 317-0273-COM Naomi | |
| 68 | { "18wheels", 0x0807cf54 }, // 840-0036 2000 317-0273-COM Naomi | |
| 69 | { "18wheelu", 0x0807cf54 }, // 840-0037 2000 317-0273-COM Naomi | |
| 70 | { "marstv", 0x080b8ef5 }, // 840-0025 1999 317-0274-JPN Naomi | |
| 71 | { "vonot", 0x08010715 }, // 840-0028 2000 317-0279-COM Naomi | |
| 72 | { "sstrkfgt", 0x08132303 }, // 840-0035 2000 317-0281-COM Naomi | |
| 73 | { "sstrkfgta", 0x08132303 }, // 840-0035 2000 317-0281-COM Naomi | |
| 74 | { "wwfroyal", 0x081627c3 }, // 840-0040 2000 317-0285-COM Naomi | |
| 75 | { "slasho", 0x081a66ca }, // 840-0041 2000 317-0286-COM Naomi | |
| 76 | { "f355twn2", 0x081666c6 }, // 840-0042 2001 317-0287-COM Naomi | |
| 77 | { "crackndj", 0x081c2347 }, // 840-0043 2000 317-0288-COM Naomi | |
| 78 | { "csmash", 0x08103347 }, // 840-0044 2000 317-0289-COM Naomi | |
| 79 | { "csmasho", 0x08103347 }, // 840-0044 2000 317-0289-COM Naomi | |
| 80 | { "alienfnt", 0x08174343 }, // 840-0048 2001 317-0293-COM Naomi | |
| 81 | { "alienfnta", 0x08174343 }, // 840-0048 2001 317-0293-COM Naomi | |
| 82 | { "samba2k", 0x081702cf }, // 840-0047 2000 317-0295-COM Naomi | |
| 83 | { "wldrider", 0x0ce7a703 }, // 840-0046 2001 317-0301-COM Naomi 2 | |
| 84 | { "vstrik3c", 0x0cee834a }, // 840-0061 2001 317-0310-COM Naomi 2 | |
| 85 | { "vstrik3cb", 0x0cee834a }, // 840-0061 2001 317-0310-COM Naomi 2 | |
| 86 | { "crackdj2", 0x08428247 }, // 840-0068 2001 317-0311-COM Naomi | |
| 87 | { "clubkrtc", 0x0ce7d742 }, // 840-0062 2001 317-0313-COM Naomi 2 | |
| 88 | { "clubkrtd", 0x0ce7d742 }, // 840-0062 2001 317-0313-COM Naomi 2 | |
| 89 | { "clubkrte", 0x0ce7d742 }, // 840-0062 2001 317-0313-COM Naomi 2 | |
| 90 | { "inunoos", 0x094bc3e3 }, // 840-0073 2001 317-0316-JPN Naomi | |
| 91 | { "vf4cart", 0x0eef2f96 }, // 840-0080 2002 317-0324-COM Naomi 2 | |
| 92 | { "toukon4", 0x052e2901 }, // 25349801 2000 317-5040-COM Naomi | |
| 93 | { "wldkicks", 0x052e2901 }, // 25209801 2000 317-5040-COM Naomi | |
| 94 | { "wldkicksa", 0x052e2901 }, // 25209801 2000 317-5040-COM Naomi | |
| 95 | { "wldkicksb", 0x052e2901 }, // 25209801 2000 317-5040-COM Naomi | |
| 96 | { "pstone", 0x000e69c1 }, // 841-0001 1999 317-5046-COM Naomi | |
| 97 | { "suchie3", 0x000368e1 }, // 841-0002 1999 317-5047-JPN Naomi | |
| 98 | { "doa2", 0x0008ad01 }, // 841-0003 1999 317-5048-COM Naomi | |
| 99 | { "doa2m", 0x0008ad01 }, // 841-0003 1999 317-5048-COM Naomi | |
| 100 | { "shangril", -1 }, // 841-0004 1999 317-5050-JPN Naomi seems not used by game | |
| 101 | { "spawn", 0x00078d01 }, // 841-0005 1999 317-5051-COM Naomi | |
| 102 | { "puyoda", 0x000acd40 }, // 841-0006 1999 317-5052-COM Naomi | |
| 103 | { "pstone2", 0x000b8dc0 }, // 841-0008 2000 317-5054-COM Naomi | |
| 104 | { "capsnk", 0x00000000 }, // 841-0011 2000 317-5059-COM Naomi | |
| 105 | { "capsnka", 0x00000000 }, // 841-0011 2000 317-5059-COM Naomi | |
| 106 | { "capsnkb", 0x00000000 }, // 841-0011 2000 317-5059-COM Naomi | |
| 107 | { "cspike", 0x000e2010 }, // 841-0012 2000 317-5060-COM Naomi | |
| 108 | { "ggx", 0x00076110 }, // 841-0013 2000 317-5063-COM Naomi | |
| 109 | { "gwing2", 0x000b25d0 }, // 841-0014 2000 317-5064-COM Naomi | |
| 110 | { "pjustic", 0x000725d0 }, // 841-0015 2000 317-5065-COM Naomi | |
| 111 | { "deathcox", 0x000b64d0 }, // 841-0016 2000 317-5066-COM Naomi | |
| 112 | { "ninjaslt", 0x000ca510 }, // 25469801 2000 317-5068-COM Naomi | |
| 113 | { "ninjaslt1", 0x000ca510 }, // 25469801 2000 317-5068-COM Naomi | |
| 114 | { "ninjaslt2", 0x000ca510 }, // 25469801 2000 317-5068-COM Naomi | |
| 115 | { "ninjaslt4", 0x000ca510 }, // 25469801 2000 317-5068-COM Naomi | |
| 116 | { "gundmct", 0x000e8010 }, // 841-0017 2001 317-5070-COM Naomi | |
| 117 | { "hmgeo", 0x00038510 }, // HMG016007 2001 317-5071-COM Naomi | |
| 118 | { "zerogu2", 0x0007c010 }, // 841-0020 2001 317-5073-COM Naomi | |
| 119 | { "gunsur2", 0x000680d0 }, // 25709801 2001 317-5075-COM Naomi | |
| 120 | { "gunsur2e", 0x000680d0 }, // 25709801 2001 317-5075-COM Naomi | |
| 121 | ||
| 122 | { "podrace", 0x0903dad5 }, // 834-14002 2001 317-0277-COM Hikaru | |
| 123 | { "airtrix", 0x091b02c7 }, // 834-14149 2000 317-0294-COM Hikaru | |
| 124 | { "pharrier", 0x0912c68a }, // 834-14144 2001 317-0297-COM Hikaru | |
| 125 | ||
| 126 | { "dynamcop", 0x0c2a4a93 }, // 1998 317-0236-COM Model 2 | |
| 127 | { "dyndeka2", 0x0c2a4a93 }, // 1998 317-0236-COM Model 2 | |
| 128 | { "dynamcopb", 0x0c2a4a93 }, // 1998 317-0236-COM Model 2 | |
| 129 | { "dyndeka2b", 0x0c2a4a93 }, // 1998 317-0236-COM Model 2 | |
| 130 | { "dynamcopc", 0x0c2a4a93 }, // 1998 317-0236-COM Model 2 | |
| 131 | { "zerogun", 0x042c0d13 }, // 1997 317-5038-COM Model 2 | |
| 132 | { "zerogunj", 0x042c0d13 }, // 1997 317-5038-COM Model 2 | |
| 133 | { "zeroguna", 0x042c0d13 }, // 1997 317-5038-COM Model 2 | |
| 134 | { "zerogunaj", 0x042c0d13 }, // 1997 317-5038-COM Model 2 | |
| 135 | { "pltkids", 0x042e2dc1 }, // 1998 317-5044-COM Model 2 | |
| 136 | { "pltkidsa", 0x042e2dc1 }, // 1998 317-5044-COM Model 2 | |
| 137 | ||
| 138 | { "von2", 0x092a0e97 }, // ???? 317-0234-COM Model 3 | |
| 139 | { "von254g", 0x092a0e97 }, // ???? 317-0234-COM Model 3 | |
| 140 | { "fvipers2", 0x09260e96 }, // ???? 317-0235-COM Model 3 | |
| 141 | { "vs298", 0x09234e96 }, // ???? 317-0237-COM Model 3 | |
| 142 | { "dirtdvls", 0x09290f17 }, // ???? 317-0238-COM Model 3 | |
| 143 | { "dirtdvlsa", 0x09290f17 }, // ???? 317-0238-COM Model 3 | |
| 144 | { "daytona2", 0x09250e16 }, // ???? 317-0239-COM Model 3 | |
| 145 | { "spikeout", 0x092f2b04 }, // ???? 317-0240-COM Model 3 | |
| 146 | { "swtrilgy", 0x11272a01 }, // ???? 317-0241-COM Model 3 | |
| 147 | { "swtrilgya", 0x11272a01 }, // ???? 317-0241-COM Model 3 | |
| 148 | { "oceanhun", 0x092b6a01 }, // ???? 317-0242-COM Model 3 | |
| 149 | { "magtruck", 0x09266e45 }, // ???? 317-0243-COM Model 3 | |
| 150 | { "lamachin", 0x092a2bc5 }, // ???? 317-0244-COM Model 3 | |
| 151 | { "vs299", 0x09222ac8 }, // ???? 317-0245-COM Model 3 | |
| 152 | { "vs2v991", 0x09222ac8 }, // ???? 317-0245-COM Model 3 | |
| 153 | { "vs299b", 0x09222ac8 }, // ???? 317-0245-COM Model 3 | |
| 154 | { "vs299a", 0x09222ac8 }, // ???? 317-0245-COM Model 3 | |
| 155 | { "spikeofe", 0x09236fc8 }, // ???? 317-0247-COM Model 3 | |
| 156 | { "eca", 0x0923aa91 }, // ???? 317-0265-COM Model 3 | |
| 157 | { "ecax", 0x0923aa91 }, // ???? 317-0265-COM Model 3 | |
| 158 | { "ecap", 0x0923aa91 }, // ???? 317-0265-COM Model 3 | |
| 159 | { "dayto2pe", -1 }, // ???? 317-5045-COM Model 3 | |
| 160 | ||
| 161 | { NULL, 0 } // end of table | |
| 162 | }; | |
| 163 | ||
| 164 | ||
| 165 | INT64 get_315_5881_key(running_machine &machine) | |
| 166 | { | |
| 167 | const char *gamename = machine.system().name; | |
| 168 | const struct game_keys *k = &keys_table[0]; | |
| 169 | ||
| 170 | while (k->name) | |
| 171 | { | |
| 172 | if (strcmp(k->name, gamename) == 0) | |
| 173 | { | |
| 174 | // we have a proper key so return it | |
| 175 | return k->key; | |
| 176 | } | |
| 177 | ++k; | |
| 178 | } | |
| 179 | ||
| 180 | printf("get_naomi_key : KEY NOT FOUND\n"); | |
| 181 | ||
| 182 | return 0; | |
| 183 | } |
| r0 | r243115 | |
|---|---|---|
| 1 | ||
| 2 | // use the internal key list, or external files? | |
| 3 | #define USE_315_5881_HELPER 1 | |
| 4 | ||
| 5 | INT64 get_315_5881_key(running_machine &machine); | |
| 6 | ||
| 7 | #if USE_315_5881_HELPER | |
| 8 | ||
| 9 | #define _315_5881_KEYFILE(name,hash) \ | |
| 10 | /* nothing */ | |
| 11 | ||
| 12 | #define _315_5881_UNUSED_OR_UNKNOWN \ | |
| 13 | /* nothing */ | |
| 14 | ||
| 15 | #define _315_5881_UNUSED \ | |
| 16 | /* nothing */ | |
| 17 | ||
| 18 | ||
| 19 | #else | |
| 20 | ||
| 21 | #define _315_5881_KEYFILE(name,hash) \ | |
| 22 | ROM_REGION( 4, "315_5881key", 0 ) \ | |
| 23 | ROM_LOAD( name, 0, 4, hash ) | |
| 24 | ||
| 25 | #define _315_5881_UNUSED_OR_UNKNOWN \ | |
| 26 | ROM_REGION( 4, "315_5881key", ROMREGION_ERASE00 ) | |
| 27 | ||
| 28 | #define _315_5881_UNUSED \ | |
| 29 | ROM_REGION( 4, "315_5881key", ROMREGION_ERASE00 ) | |
| 30 | ||
| 31 | ||
| 32 | ||
| 33 | #endif | |
| No newline at end of file |
| r243114 | r243115 | |
|---|---|---|
| 108 | 108 | : naomi_board(mconfig, NAOMI_M2_BOARD, "Sega NAOMI M2 Board", tag, owner, clock, "naomi_m2_board", __FILE__), |
| 109 | 109 | m_cryptdevice(*this, "segam2crypt") |
| 110 | 110 | { |
| 111 | key_tag = 0; | |
| 111 | 112 | } |
| 112 | 113 | |
| 114 | void naomi_m2_board::static_set_tags(device_t &device, const char *_key_tag) | |
| 115 | { | |
| 116 | naomi_m2_board &dev = downcast<naomi_m2_board &>(device); | |
| 117 | dev.key_tag = _key_tag; | |
| 118 | } | |
| 119 | ||
| 113 | 120 | void naomi_m2_board::device_start() |
| 114 | 121 | { |
| 115 | 122 | naomi_board::device_start(); |
| r243114 | r243115 | |
| 127 | 134 | memset(ram, 0, RAM_SIZE); |
| 128 | 135 | |
| 129 | 136 | rom_cur_address = 0; |
| 137 | ||
| 138 | #if USE_315_5881_HELPER | |
| 139 | m_cryptdevice->set_key(get_315_5881_key(machine())); | |
| 140 | #else | |
| 141 | const UINT8 *key_data = memregion(key_tag)->base(); | |
| 142 | m_cryptdevice->set_key((key_data[0] << 24) | (key_data[1] << 16) | (key_data[2] << 8) | key_data[3]); | |
| 143 | #endif | |
| 130 | 144 | } |
| 131 | 145 | |
| 132 | 146 | void naomi_m2_board::board_setup_address(UINT32 address, bool is_dma) |
| r243114 | r243115 | |
|---|---|---|
| 5 | 5 | #include "315-5881_crypt.h" |
| 6 | 6 | |
| 7 | 7 | |
| 8 | #define MCFG_NAOMI_M2_BOARD_ADD(_tag, _eeprom_tag, _actel_tag, _irq_cb) \ | |
| 9 | MCFG_NAOMI_BOARD_ADD(_tag, NAOMI_M2_BOARD, _eeprom_tag, _actel_tag, _irq_cb) | |
| 8 | #define MCFG_NAOMI_M2_BOARD_ADD(_tag, _key_tag, _eeprom_tag, _actel_tag, _irq_cb) \ | |
| 9 | MCFG_NAOMI_BOARD_ADD(_tag, NAOMI_M2_BOARD, _eeprom_tag, _actel_tag, _irq_cb) \ | |
| 10 | naomi_m2_board::static_set_tags(*device, _key_tag); | |
| 10 | 11 | |
| 11 | 12 | class naomi_m2_board : public naomi_board |
| 12 | 13 | { |
| r243114 | r243115 | |
| 16 | 17 | static const int RAM_SIZE = 65536; |
| 17 | 18 | UINT8* ram; |
| 18 | 19 | |
| 20 | static void static_set_tags(device_t &device, const char *_key_tag); | |
| 19 | 21 | UINT16 read_callback(UINT32 addr); |
| 20 | 22 | |
| 21 | 23 | protected: |
| r243114 | r243115 | |
| 29 | 31 | virtual void board_write(offs_t offset, UINT16 data); |
| 30 | 32 | |
| 31 | 33 | private: |
| 34 | ||
| 35 | ||
| 36 | const char *key_tag; | |
| 37 | ||
| 38 | ||
| 32 | 39 | required_device<sega_315_5881_crypt_device> m_cryptdevice; |
| 33 | 40 | }; |
| 34 | 41 |
| r243114 | r243115 | |
|---|---|---|
| 83 | 83 | void stv_state::install_common_protection() |
| 84 | 84 | { |
| 85 | 85 | m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x4fffff0, 0x4ffffff, read32_delegate(FUNC(stv_state::common_prot_r), this), write32_delegate(FUNC(stv_state::common_prot_w), this)); |
| 86 | ||
| 87 | INT64 key = get_315_5881_key(machine()); | |
| 88 | m_cryptdevice->set_key(key); | |
| 86 | 89 | } |
| 87 | 90 | |
| 88 | 91 | void stv_state::stv_register_protection_savestates() |
| r243114 | r243115 | |
|---|---|---|
| 1723 | 1723 | $(MACHINE)/naomig1.o $(MACHINE)/naomibd.o $(MACHINE)/naomirom.o $(MACHINE)/naomigd.o \ |
| 1724 | 1724 | $(MACHINE)/naomicrypt.o $(MACHINE)/naomim1.o $(MACHINE)/naomim2.o $(MACHINE)/naomim4.o \ |
| 1725 | 1725 | $(MACHINE)/315-5881_crypt.o \ |
| 1726 | $(MACHINE)/315-5881_helper.o \ | |
| 1726 | 1727 | $(MACHINE)/awboard.o \ |
| 1727 | 1728 | $(MACHINE)/mie.o $(MACHINE)/maple-dc.o $(MACHINE)/mapledev.o $(MACHINE)/dc-ctrl.o $(MACHINE)/jvs13551.o \ |
| 1728 | 1729 | $(DRIVERS)/triforce.o \ |
| r243114 | r243115 | |
|---|---|---|
| 1 | // Slicer Computers Slicer 80186 SBC | |
| 2 | // The bios makefile refers to a "exe3bin" utility, this can be substituted with FreeDOS exe2bin and the /l=0xf800 option | |
| 3 | // which will fixup the relocations | |
| 4 | ||
| 5 | #include "emu.h" | |
| 6 | #include "cpu/i86/i186.h" | |
| 7 | #include "machine/wd_fdc.h" | |
| 8 | #include "machine/mc68681.h" | |
| 9 | #include "bus/rs232/rs232.h" | |
| 10 | #include "bus/isa/isa.h" | |
| 11 | #include "bus/scsi/scsi.h" | |
| 12 | ||
| 13 | class slicer_state : public driver_device | |
| 14 | { | |
| 15 | public: | |
| 16 | slicer_state(const machine_config &mconfig, device_type type, const char *tag) : | |
| 17 | driver_device(mconfig, type, tag), | |
| 18 | m_fdc(*this, "fdc"), | |
| 19 | m_sasi(*this, "sasi") | |
| 20 | {} | |
| 21 | ||
| 22 | required_device<fd1797_t> m_fdc; | |
| 23 | required_device<SCSI_PORT_DEVICE> m_sasi; | |
| 24 | ||
| 25 | DECLARE_WRITE8_MEMBER(sio_out_w); | |
| 26 | DECLARE_WRITE8_MEMBER(drive_sel_w); | |
| 27 | }; | |
| 28 | ||
| 29 | WRITE8_MEMBER(slicer_state::sio_out_w) | |
| 30 | { | |
| 31 | floppy_image_device *floppy; | |
| 32 | int state = (data & 0x80) ? 0 : 1; | |
| 33 | char devname[8]; | |
| 34 | ||
| 35 | for(int i = 0; i < 4; i++) | |
| 36 | { | |
| 37 | sprintf(devname, "%d", i); | |
| 38 | floppy = m_fdc->subdevice<floppy_connector>(devname)->get_device(); | |
| 39 | if(floppy) | |
| 40 | floppy->mon_w(state); | |
| 41 | } | |
| 42 | } | |
| 43 | ||
| 44 | WRITE8_MEMBER(slicer_state::drive_sel_w) | |
| 45 | { | |
| 46 | data &= 1; | |
| 47 | switch(offset) | |
| 48 | { | |
| 49 | case 0: | |
| 50 | m_sasi->write_sel(data); | |
| 51 | break; | |
| 52 | case 1: | |
| 53 | m_sasi->write_rst(data); | |
| 54 | break; | |
| 55 | case 7: | |
| 56 | m_fdc->dden_w(data); | |
| 57 | break; | |
| 58 | ||
| 59 | default: | |
| 60 | { | |
| 61 | floppy_image_device *floppy; | |
| 62 | char devname[8]; | |
| 63 | unsigned int drive = 3 - (offset - 2); | |
| 64 | if((drive > 3) || !data) | |
| 65 | break; | |
| 66 | ||
| 67 | sprintf(devname, "%d", drive); | |
| 68 | floppy = m_fdc->subdevice<floppy_connector>(devname)->get_device(); | |
| 69 | m_fdc->set_floppy(floppy); | |
| 70 | break; | |
| 71 | } | |
| 72 | } | |
| 73 | } | |
| 74 | ||
| 75 | static ADDRESS_MAP_START( slicer_map, AS_PROGRAM, 16, slicer_state ) | |
| 76 | AM_RANGE(0x00000, 0x3ffff) AM_RAM // fixed 256k for now | |
| 77 | AM_RANGE(0xf8000, 0xfffff) AM_ROM AM_REGION("bios", 0) | |
| 78 | ADDRESS_MAP_END | |
| 79 | ||
| 80 | static ADDRESS_MAP_START( slicer_io, AS_IO, 16, slicer_state ) | |
| 81 | ADDRESS_MAP_UNMAP_HIGH | |
| 82 | AM_RANGE(0x0000, 0x007f) AM_DEVREADWRITE8("fdc", fd1797_t, read, write, 0x00ff) //PCS0 | |
| 83 | AM_RANGE(0x0080, 0x00ff) AM_DEVREADWRITE8("sc2681", mc68681_device, read, write, 0x00ff) //PCS1 | |
| 84 | AM_RANGE(0x0100, 0x017f) AM_WRITE8(drive_sel_w, 0x00ff) //PCS2 | |
| 85 | // TODO: 0x180 sets ack | |
| 86 | AM_RANGE(0x0180, 0x0181) AM_DEVREAD8("sasi_data_in", input_buffer_device, read, 0x00ff) AM_DEVWRITE8("sasi_data_out", output_latch_device, write, 0x00ff) //PCS3 | |
| 87 | AM_RANGE(0x0180, 0x0181) AM_DEVREAD8("sasi_ctrl_in", input_buffer_device, read, 0xff00) | |
| 88 | AM_RANGE(0x0184, 0x0185) AM_DEVREAD8("sasi_data_in", input_buffer_device, read, 0x00ff) AM_DEVWRITE8("sasi_data_out", output_latch_device, write, 0x00ff) | |
| 89 | AM_RANGE(0x0184, 0x0185) AM_DEVREAD8("sasi_ctrl_in", input_buffer_device, read, 0xff00) | |
| 90 | ADDRESS_MAP_END | |
| 91 | ||
| 92 | static SLOT_INTERFACE_START( slicer_floppies ) | |
| 93 | SLOT_INTERFACE("525dd", FLOPPY_525_DD) | |
| 94 | SLOT_INTERFACE("8dsdd", FLOPPY_8_DSDD) | |
| 95 | SLOT_INTERFACE_END | |
| 96 | ||
| 97 | static MACHINE_CONFIG_START( slicer, slicer_state ) | |
| 98 | MCFG_CPU_ADD("maincpu", I80186, XTAL_16MHz / 2) | |
| 99 | MCFG_CPU_PROGRAM_MAP(slicer_map) | |
| 100 | MCFG_CPU_IO_MAP(slicer_io) | |
| 101 | ||
| 102 | MCFG_MC68681_ADD("sc2681", XTAL_3_6864MHz) | |
| 103 | MCFG_MC68681_IRQ_CALLBACK(DEVWRITELINE("maincpu", i80186_cpu_device, int0_w)) | |
| 104 | MCFG_MC68681_A_TX_CALLBACK(DEVWRITELINE("rs232_1", rs232_port_device, write_txd)) | |
| 105 | MCFG_MC68681_B_TX_CALLBACK(DEVWRITELINE("rs232_2", rs232_port_device, write_txd)) | |
| 106 | MCFG_MC68681_OUTPORT_CALLBACK(WRITE8(slicer_state, sio_out_w)) | |
| 107 | ||
| 108 | MCFG_RS232_PORT_ADD("rs232_1", default_rs232_devices, "terminal") | |
| 109 | MCFG_RS232_RXD_HANDLER(DEVWRITELINE("sc2681", mc68681_device, rx_a_w)) | |
| 110 | MCFG_RS232_PORT_ADD("rs232_2", default_rs232_devices, NULL) | |
| 111 | MCFG_RS232_RXD_HANDLER(DEVWRITELINE("sc2681", mc68681_device, rx_b_w)) | |
| 112 | ||
| 113 | MCFG_FD1797x_ADD("fdc", XTAL_16MHz/2/8) | |
| 114 | MCFG_WD_FDC_INTRQ_CALLBACK(DEVWRITELINE("maincpu", i80186_cpu_device, int1_w)) | |
| 115 | MCFG_WD_FDC_DRQ_CALLBACK(DEVWRITELINE("maincpu", i80186_cpu_device, drq0_w)) | |
| 116 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", slicer_floppies, "525dd", floppy_image_device::default_floppy_formats) | |
| 117 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", slicer_floppies, NULL, floppy_image_device::default_floppy_formats) | |
| 118 | MCFG_FLOPPY_DRIVE_ADD("fdc:2", slicer_floppies, NULL, floppy_image_device::default_floppy_formats) | |
| 119 | MCFG_FLOPPY_DRIVE_ADD("fdc:3", slicer_floppies, NULL, floppy_image_device::default_floppy_formats) | |
| 120 | ||
| 121 | MCFG_DEVICE_ADD("sasi", SCSI_PORT, 0) | |
| 122 | MCFG_SCSI_DATA_INPUT_BUFFER("sasi_data_in") | |
| 123 | MCFG_SCSI_BSY_HANDLER(DEVWRITELINE("sasi_ctrl_in", input_buffer_device, write_bit3)) | |
| 124 | MCFG_SCSI_MSG_HANDLER(DEVWRITELINE("sasi_ctrl_in", input_buffer_device, write_bit4)) | |
| 125 | MCFG_SCSI_CD_HANDLER(DEVWRITELINE("sasi_ctrl_in", input_buffer_device, write_bit5)) | |
| 126 | MCFG_SCSI_REQ_HANDLER(DEVWRITELINE("sasi_ctrl_in", input_buffer_device, write_bit6)) | |
| 127 | MCFG_SCSI_IO_HANDLER(DEVWRITELINE("sasi_ctrl_in", input_buffer_device, write_bit7)) | |
| 128 | ||
| 129 | MCFG_SCSI_OUTPUT_LATCH_ADD("sasi_data_out", "sasi") | |
| 130 | MCFG_DEVICE_ADD("sasi_data_in", INPUT_BUFFER, 0) | |
| 131 | MCFG_DEVICE_ADD("sasi_ctrl_in", INPUT_BUFFER, 0) | |
| 132 | MACHINE_CONFIG_END | |
| 133 | ||
| 134 | ROM_START( slicer ) | |
| 135 | ROM_REGION(0x8001, "bios", 0) | |
| 136 | // built from sources, reset.asm adds an extra byte | |
| 137 | ROM_LOAD("epbios.bin", 0x0000, 0x8001, CRC(96fe9dd4) SHA1(5fc43454fe7d51f2ae97aef822155dcd28eb7f23)) | |
| 138 | ROM_END | |
| 139 | ||
| 140 | COMP( 1983, slicer, 0, 0, slicer, 0, driver_device, 0, "Slicer Computers", "Slicer", GAME_NOT_WORKING | GAME_NO_SOUND) |
| r243114 | r243115 | |
|---|---|---|
| 771 | 771 | compc1 // 1984 Commodore PC-1 |
| 772 | 772 | pc10iii // 1987 Commodore PC-10 III |
| 773 | 773 | pc7000 // 1985 Sharp PC-7000 |
| 774 | pcd // Siemens PC-D | |
| 774 | 775 | olypeopl // Olympia People PC |
| 775 | 776 | sx16 // Sanyo SX-16 |
| 776 | 777 | mbc16 // Sanyo MBC-16 |
| 777 | 778 | ataripc3 |
| 778 | 779 | ssam88s |
| 779 | 780 | |
| 780 | // Non-PC msdos | |
| 781 | pcd // Siemens PC-D | |
| 782 | slicer // 1983 Slicer Computers | |
| 783 | ||
| 784 | 781 | // PC Junior |
| 785 | 782 | ibmpcjr // 1984 IBM PC Jr |
| 786 | 783 | ibmpcjx // 1985 IBM PC JX |
| r243114 | r243115 | |
|---|---|---|
| 796 | 796 | $(MESSOBJ)/siemens.a \ |
| 797 | 797 | $(MESSOBJ)/sinclair.a \ |
| 798 | 798 | $(MESSOBJ)/skeleton.a \ |
| 799 | $(MESSOBJ)/slicer.a \ | |
| 800 | 799 | $(MESSOBJ)/snk.a \ |
| 801 | 800 | $(MESSOBJ)/sony.a \ |
| 802 | 801 | $(MESSOBJ)/sord.a \ |
| r243114 | r243115 | |
| 1649 | 1648 | $(MESSOBJ)/siemens.a: \ |
| 1650 | 1649 | $(MESS_DRIVERS)/pcd.o \ |
| 1651 | 1650 | |
| 1652 | $(MESSOBJ)/slicer.a: \ | |
| 1653 | $(MESS_DRIVERS)/slicer.o \ | |
| 1654 | ||
| 1655 | 1651 | $(MESSOBJ)/snk.a: \ |
| 1656 | 1652 | $(MESS_DRIVERS)/ng_aes.o \ |
| 1657 | 1653 | $(MESS_DRIVERS)/ngp.o $(MESS_VIDEO)/k1ge.o \ |
| r243114 | r243115 | |
|---|---|---|
| 1 | // This file is a placeholder. | |
| 1 | //============================================================ | |
| 2 | // | |
| 3 | // sdlos_*.c - OS specific low level code | |
| 4 | // | |
| 5 | // Copyright (c) 1996-2010, Nicola Salmoria and the MAME Team. | |
| 6 | // Visit http://mamedev.org for licensing and usage restrictions. | |
| 7 | // | |
| 8 | // SDLMAME by Olivier Galibert and R. Belmont | |
| 9 | // | |
| 10 | //============================================================ | |
| 2 | 11 | |
| 3 | 12 | #include <sys/types.h> |
| 4 | 13 | #include <signal.h> |
| r243114 | r243115 | |
| 18 | 27 | #include "sdlinc.h" |
| 19 | 28 | |
| 20 | 29 | //============================================================ |
| 30 | // osd_getenv | |
| 31 | //============================================================ | |
| 32 | ||
| 33 | char *osd_getenv(const char *name) | |
| 34 | { | |
| 35 | return getenv(name); | |
| 36 | } | |
| 37 | ||
| 38 | //============================================================ | |
| 39 | // osd_setenv | |
| 40 | //============================================================ | |
| 41 | ||
| 42 | int osd_setenv(const char *name, const char *value, int overwrite) | |
| 43 | { | |
| 44 | return setenv(name, value, overwrite); | |
| 45 | } | |
| 46 | ||
| 47 | //============================================================ | |
| 21 | 48 | // osd_process_kill |
| 22 | 49 | //============================================================ |
| 23 | 50 | |
| r243114 | r243115 | |
| 91 | 118 | #endif |
| 92 | 119 | } |
| 93 | 120 | |
| 121 | ||
| 94 | 122 | //============================================================ |
| 95 | // osd_getenv | |
| 123 | // osd_alloc_executable | |
| 124 | // | |
| 125 | // allocates "size" bytes of executable memory. this must take | |
| 126 | // things like NX support into account. | |
| 96 | 127 | //============================================================ |
| 97 | 128 | |
| 98 | ||
| 129 | void *osd_alloc_executable(size_t size) | |
| 99 | 130 | { |
| 100 | return getenv(name); | |
| 131 | #if defined(SDLMAME_BSD) || defined(SDLMAME_MACOSX) | |
| 132 | return (void *)mmap(0, size, PROT_EXEC|PROT_READ|PROT_WRITE, MAP_ANON|MAP_SHARED, -1, 0); | |
| 133 | #elif defined(SDLMAME_UNIX) | |
| 134 | return (void *)mmap(0, size, PROT_EXEC|PROT_READ|PROT_WRITE, MAP_ANON|MAP_SHARED, 0, 0); | |
| 135 | #endif | |
| 101 | 136 | } |
| 102 | 137 | |
| 103 | 138 | //============================================================ |
| 104 | // osd_setenv | |
| 139 | // osd_free_executable | |
| 140 | // | |
| 141 | // frees memory allocated with osd_alloc_executable | |
| 105 | 142 | //============================================================ |
| 106 | 143 | |
| 107 | i | |
| 144 | void osd_free_executable(void *ptr, size_t size) | |
| 108 | 145 | { |
| 109 | return setenv(name, value, overwrite); | |
| 146 | #ifdef SDLMAME_SOLARIS | |
| 147 | munmap((char *)ptr, size); | |
| 148 | #else | |
| 149 | munmap(ptr, size); | |
| 150 | #endif | |
| 110 | 151 | } |
| 111 | 152 | |
| 112 | 153 | //============================================================ |
| 154 | // osd_break_into_debugger | |
| 155 | //============================================================ | |
| 156 | ||
| 157 | void osd_break_into_debugger(const char *message) | |
| 158 | { | |
| 159 | #ifdef MAME_DEBUG | |
| 160 | printf("MAME exception: %s\n", message); | |
| 161 | printf("Attempting to fall into debugger\n"); | |
| 162 | kill(getpid(), SIGTRAP); | |
| 163 | #else | |
| 164 | printf("Ignoring MAME exception: %s\n", message); | |
| 165 | #endif | |
| 166 | } | |
| 167 | ||
| 168 | ||
| 169 | //============================================================ | |
| 113 | 170 | // PROTOTYPES |
| 114 | 171 | //============================================================ |
| 115 | 172 | |
| r243114 | r243115 | |
| 177 | 234 | } |
| 178 | 235 | |
| 179 | 236 | //============================================================ |
| 180 | // osd_c | |
| 237 | // osd_ticks | |
| 181 | 238 | //============================================================ |
| 182 | 239 | |
| 183 | 240 | osd_ticks_t osd_ticks(void) |
| r243114 | r243115 | |
| 225 | 282 | usleep(msec*1000); |
| 226 | 283 | } |
| 227 | 284 | } |
| 228 |
| r243114 | r243115 | |
|---|---|---|
| 1 | // This file is a placeholder. | |
| 1 | //============================================================ | |
| 2 | // | |
| 3 | // sdlos_*.c - OS specific low level code | |
| 4 | // | |
| 5 | // Copyright (c) 1996-2010, Nicola Salmoria and the MAME Team. | |
| 6 | // Visit http://mamedev.org for licensing and usage restrictions. | |
| 7 | // | |
| 8 | // SDLMAME by Olivier Galibert and R. Belmont | |
| 9 | // | |
| 10 | //============================================================ | |
| 2 | 11 | |
| 12 | // standard sdl header | |
| 13 | #include "sdlinc.h" | |
| 14 | #include <unistd.h> | |
| 15 | #include <stdio.h> | |
| 16 | #include <string.h> | |
| 17 | #include <ctype.h> | |
| 18 | #include <stdlib.h> | |
| 19 | #include <sys/stat.h> | |
| 20 | ||
| 21 | #define INCL_DOS | |
| 22 | #include <os2.h> | |
| 23 | ||
| 3 | 24 | // MAME headers |
| 25 | #include "osdcore.h" | |
| 4 | 26 | #include "osdlib.h" |
| 27 | ||
| 28 | //============================================================ | |
| 29 | // osd_getenv | |
| 30 | //============================================================ | |
| 31 | ||
| 32 | char *osd_getenv(const char *name) | |
| 33 | { | |
| 34 | return getenv(name); | |
| 35 | } | |
| 36 | ||
| 37 | //============================================================ | |
| 38 | // osd_setenv | |
| 39 | //============================================================ | |
| 40 | ||
| 41 | int osd_setenv(const char *name, const char *value, int overwrite) | |
| 42 | { | |
| 43 | return setenv(name, value, overwrite); | |
| 44 | } | |
| 45 | ||
| 46 | //============================================================ | |
| 47 | // osd_process_kill | |
| 48 | //============================================================ | |
| 49 | ||
| 50 | void osd_process_kill(void) | |
| 51 | { | |
| 52 | fprintf(stderr,"osd_process_kill missing in OS/2 build\n"); | |
| 53 | } | |
| 54 | ||
| 55 | //============================================================ | |
| 56 | // osd_num_processors | |
| 57 | //============================================================ | |
| 58 | ||
| 59 | int osd_get_num_processors(void) | |
| 60 | { | |
| 61 | ULONG numprocs = 1; | |
| 62 | ||
| 63 | DosQuerySysInfo(QSV_NUMPROCESSORS, QSV_NUMPROCESSORS, &numprocs, sizeof(numprocs)); | |
| 64 | ||
| 65 | return numprocs; | |
| 66 | } | |
| 67 | ||
| 68 | //============================================================ | |
| 69 | // osd_malloc | |
| 70 | //============================================================ | |
| 71 | ||
| 72 | void *osd_malloc(size_t size) | |
| 73 | { | |
| 74 | #ifndef MALLOC_DEBUG | |
| 75 | return malloc(size); | |
| 76 | #else | |
| 77 | #error "MALLOC_DEBUG not yet supported" | |
| 78 | #endif | |
| 79 | } | |
| 80 | ||
| 81 | ||
| 82 | //============================================================ | |
| 83 | // osd_malloc_array | |
| 84 | //============================================================ | |
| 85 | ||
| 86 | void *osd_malloc_array(size_t size) | |
| 87 | { | |
| 88 | #ifndef MALLOC_DEBUG | |
| 89 | return malloc(size); | |
| 90 | #else | |
| 91 | #error "MALLOC_DEBUG not yet supported" | |
| 92 | #endif | |
| 93 | } | |
| 94 | ||
| 95 | ||
| 96 | //============================================================ | |
| 97 | // osd_free | |
| 98 | //============================================================ | |
| 99 | ||
| 100 | void osd_free(void *ptr) | |
| 101 | { | |
| 102 | #ifndef MALLOC_DEBUG | |
| 103 | free(ptr); | |
| 104 | #else | |
| 105 | #error "MALLOC_DEBUG not yet supported" | |
| 106 | #endif | |
| 107 | } | |
| 108 | ||
| 109 | ||
| 110 | //============================================================ | |
| 111 | // osd_alloc_executable | |
| 112 | // | |
| 113 | // allocates "size" bytes of executable memory. this must take | |
| 114 | // things like NX support into account. | |
| 115 | //============================================================ | |
| 116 | ||
| 117 | void *osd_alloc_executable(size_t size) | |
| 118 | { | |
| 119 | void *p; | |
| 120 | ||
| 121 | DosAllocMem( &p, size, fALLOC ); | |
| 122 | return p; | |
| 123 | } | |
| 124 | ||
| 125 | //============================================================ | |
| 126 | // osd_free_executable | |
| 127 | // | |
| 128 | // frees memory allocated with osd_alloc_executable | |
| 129 | //============================================================ | |
| 130 | ||
| 131 | void osd_free_executable(void *ptr, size_t size) | |
| 132 | { | |
| 133 | DosFreeMem( ptr ); | |
| 134 | } | |
| 135 | ||
| 136 | //============================================================ | |
| 137 | // osd_break_into_debugger | |
| 138 | //============================================================ | |
| 139 | ||
| 140 | void osd_break_into_debugger(const char *message) | |
| 141 | { | |
| 142 | printf("Ignoring MAME exception: %s\n", message); | |
| 143 | } | |
| 144 | ||
| 145 | //============================================================ | |
| 146 | // PROTOTYPES | |
| 147 | //============================================================ | |
| 148 | ||
| 149 | ||
| 150 | static osd_ticks_t init_cycle_counter(void); | |
| 151 | static osd_ticks_t performance_cycle_counter(void); | |
| 152 | ||
| 153 | //============================================================ | |
| 154 | // STATIC VARIABLES | |
| 155 | //============================================================ | |
| 156 | ||
| 157 | // global cycle_counter function and divider | |
| 158 | static osd_ticks_t (*cycle_counter)(void) = init_cycle_counter; | |
| 159 | static osd_ticks_t (*ticks_counter)(void) = init_cycle_counter; | |
| 160 | static osd_ticks_t ticks_per_second; | |
| 161 | ||
| 162 | //============================================================ | |
| 163 | // init_cycle_counter | |
| 164 | // | |
| 165 | // to avoid total grossness, this function is split by subarch | |
| 166 | //============================================================ | |
| 167 | ||
| 168 | static osd_ticks_t init_cycle_counter(void) | |
| 169 | { | |
| 170 | osd_ticks_t start, end; | |
| 171 | osd_ticks_t a, b; | |
| 172 | ||
| 173 | ULONG frequency; | |
| 174 | PTIB ptib; | |
| 175 | ULONG ulClass; | |
| 176 | ULONG ulDelta; | |
| 177 | ||
| 178 | DosGetInfoBlocks( &ptib, NULL ); | |
| 179 | ulClass = HIBYTE( ptib->tib_ptib2->tib2_ulpri ); | |
| 180 | ulDelta = LOBYTE( ptib->tib_ptib2->tib2_ulpri ); | |
| 181 | ||
| 182 | if ( DosTmrQueryFreq( &frequency ) == 0 ) | |
| 183 | { | |
| 184 | // use performance counter if available as it is constant | |
| 185 | cycle_counter = performance_cycle_counter; | |
| 186 | ticks_counter = performance_cycle_counter; | |
| 187 | ||
| 188 | ticks_per_second = frequency; | |
| 189 | ||
| 190 | // return the current cycle count | |
| 191 | return (*cycle_counter)(); | |
| 192 | } | |
| 193 | else | |
| 194 | { | |
| 195 | fprintf(stderr, "No Timer available!\n"); | |
| 196 | exit(-1); | |
| 197 | } | |
| 198 | ||
| 199 | // temporarily set our priority higher | |
| 200 | DosSetPriority( PRTYS_THREAD, PRTYC_TIMECRITICAL, PRTYD_MAXIMUM, 0 ); | |
| 201 | ||
| 202 | // wait for an edge on the timeGetTime call | |
| 203 | a = SDL_GetTicks(); | |
| 204 | do | |
| 205 | { | |
| 206 | b = SDL_GetTicks(); | |
| 207 | } while (a == b); | |
| 208 | ||
| 209 | // get the starting cycle count | |
| 210 | start = (*cycle_counter)(); | |
| 211 | ||
| 212 | // now wait for 1/4 second total | |
| 213 | do | |
| 214 | { | |
| 215 | a = SDL_GetTicks(); | |
| 216 | } while (a - b < 250); | |
| 217 | ||
| 218 | // get the ending cycle count | |
| 219 | end = (*cycle_counter)(); | |
| 220 | ||
| 221 | // compute ticks_per_sec | |
| 222 | ticks_per_second = (end - start) * 4; | |
| 223 | ||
| 224 | // restore our priority | |
| 225 | DosSetPriority( PRTYS_THREAD, ulClass, ulDelta, 0 ); | |
| 226 | ||
| 227 | // return the current cycle count | |
| 228 | return (*cycle_counter)(); | |
| 229 | } | |
| 230 | ||
| 231 | //============================================================ | |
| 232 | // performance_cycle_counter | |
| 233 | //============================================================ | |
| 234 | ||
| 235 | static osd_ticks_t performance_cycle_counter(void) | |
| 236 | { | |
| 237 | QWORD qwTime; | |
| 238 | ||
| 239 | DosTmrQueryTime( &qwTime ); | |
| 240 | return (osd_ticks_t)qwTime.ulLo; | |
| 241 | } | |
| 242 | ||
| 243 | //============================================================ | |
| 244 | // osd_ticks | |
| 245 | //============================================================ | |
| 246 | ||
| 247 | osd_ticks_t osd_ticks(void) | |
| 248 | { | |
| 249 | return (*cycle_counter)(); | |
| 250 | } | |
| 251 | ||
| 252 | ||
| 253 | //============================================================ | |
| 254 | // osd_ticks_per_second | |
| 255 | //============================================================ | |
| 256 | ||
| 257 | osd_ticks_t osd_ticks_per_second(void) | |
| 258 | { | |
| 259 | if (ticks_per_second == 0) | |
| 260 | { | |
| 261 | // if we haven't computed the value yet, there's no time like the present | |
| 262 | init_cycle_counter(); | |
| 263 | } | |
| 264 | return ticks_per_second; | |
| 265 | } | |
| 266 | ||
| 267 | ||
| 268 | //============================================================ | |
| 269 | // osd_sleep | |
| 270 | //============================================================ | |
| 271 | ||
| 272 | void osd_sleep(osd_ticks_t duration) | |
| 273 | { | |
| 274 | UINT32 msec; | |
| 275 | ||
| 276 | // make sure we've computed ticks_per_second | |
| 277 | if (ticks_per_second == 0) | |
| 278 | (void)osd_ticks(); | |
| 279 | ||
| 280 | // convert to milliseconds, rounding down | |
| 281 | msec = (UINT32)(duration * 1000 / ticks_per_second); | |
| 282 | ||
| 283 | // only sleep if at least 2 full milliseconds | |
| 284 | if (msec >= 2) | |
| 285 | { | |
| 286 | // take a couple of msecs off the top for good measure | |
| 287 | msec -= 2; | |
| 288 | usleep(msec*1000); | |
| 289 | } | |
| 290 | } | |
| 291 |
| r243114 | r243115 | |
|---|---|---|
| 1 | //============================================================ | |
| 2 | // | |
| 3 | // sdlos_*.c - OS specific low level code | |
| 4 | // | |
| 5 | // Copyright (c) 1996-2010, Nicola Salmoria and the MAME Team. | |
| 6 | // Visit http://mamedev.org for licensing and usage restrictions. | |
| 7 | // | |
| 8 | // SDLMAME by Olivier Galibert and R. Belmont | |
| 9 | // | |
| 10 | //============================================================ | |
| 1 | 11 | |
| 2 | 12 | #include <stdlib.h> |
| 3 | 13 | #include <unistd.h> |
| r243114 | r243115 | |
| 33 | 43 | } |
| 34 | 44 | |
| 35 | 45 | //============================================================ |
| 46 | // osd_process_kill | |
| 47 | //============================================================ | |
| 48 | ||
| 49 | void osd_process_kill(void) | |
| 50 | { | |
| 51 | kill(getpid(), SIGKILL); | |
| 52 | } | |
| 53 | ||
| 54 | //============================================================ | |
| 36 | 55 | // osd_num_processors |
| 37 | 56 | //============================================================ |
| 38 | 57 | |
| r243114 | r243115 | |
| 47 | 66 | } |
| 48 | 67 | |
| 49 | 68 | //============================================================ |
| 50 | // osd_process_kill | |
| 51 | //============================================================ | |
| 52 | ||
| 53 | void osd_process_kill(void) | |
| 54 | { | |
| 55 | kill(getpid(), SIGKILL); | |
| 56 | } | |
| 57 | ||
| 58 | //============================================================ | |
| 59 | 69 | // osd_malloc |
| 60 | 70 | //============================================================ |
| 61 | 71 | |
| r243114 | r243115 | |
| 97 | 107 | } |
| 98 | 108 | |
| 99 | 109 | //============================================================ |
| 100 | // osd_cycles | |
| 110 | // osd_alloc_executable | |
| 111 | // | |
| 112 | // allocates "size" bytes of executable memory. this must take | |
| 113 | // things like NX support into account. | |
| 101 | 114 | //============================================================ |
| 102 | 115 | |
| 116 | void *osd_alloc_executable(size_t size) | |
| 117 | { | |
| 118 | #if defined(SDLMAME_BSD) || defined(SDLMAME_MACOSX) | |
| 119 | return (void *)mmap(0, size, PROT_EXEC|PROT_READ|PROT_WRITE, MAP_ANON|MAP_SHARED, -1, 0); | |
| 120 | #elif defined(SDLMAME_UNIX) | |
| 121 | return (void *)mmap(0, size, PROT_EXEC|PROT_READ|PROT_WRITE, MAP_ANON|MAP_SHARED, 0, 0); | |
| 122 | #endif | |
| 123 | } | |
| 124 | ||
| 125 | //============================================================ | |
| 126 | // osd_free_executable | |
| 127 | // | |
| 128 | // frees memory allocated with osd_alloc_executable | |
| 129 | //============================================================ | |
| 130 | ||
| 131 | void osd_free_executable(void *ptr, size_t size) | |
| 132 | { | |
| 133 | #ifdef SDLMAME_SOLARIS | |
| 134 | munmap((char *)ptr, size); | |
| 135 | #else | |
| 136 | munmap(ptr, size); | |
| 137 | #endif | |
| 138 | } | |
| 139 | ||
| 140 | //============================================================ | |
| 141 | // osd_break_into_debugger | |
| 142 | //============================================================ | |
| 143 | ||
| 144 | void osd_break_into_debugger(const char *message) | |
| 145 | { | |
| 146 | #ifdef MAME_DEBUG | |
| 147 | printf("MAME exception: %s\n", message); | |
| 148 | printf("Attempting to fall into debugger\n"); | |
| 149 | kill(getpid(), SIGTRAP); | |
| 150 | #else | |
| 151 | printf("Ignoring MAME exception: %s\n", message); | |
| 152 | #endif | |
| 153 | } | |
| 154 | ||
| 155 | ||
| 156 | //============================================================ | |
| 157 | // osd_ticks | |
| 158 | //============================================================ | |
| 159 | ||
| 103 | 160 | osd_ticks_t osd_ticks(void) |
| 104 | 161 | { |
| 105 | 162 | #ifdef SDLMAME_EMSCRIPTEN |
| r243114 | r243115 | |
| 115 | 172 | #endif |
| 116 | 173 | } |
| 117 | 174 | |
| 175 | ||
| 176 | //============================================================ | |
| 177 | // osd_ticks_per_second | |
| 178 | //============================================================ | |
| 179 | ||
| 118 | 180 | osd_ticks_t osd_ticks_per_second(void) |
| 119 | 181 | { |
| 120 | 182 | return (osd_ticks_t) 1000000; |
| r243114 | r243115 | |
|---|---|---|
| 1 | 1 | //============================================================ |
| 2 | 2 | // |
| 3 | // | |
| 3 | // sdlos_*.c - OS specific low level code | |
| 4 | 4 | // |
| 5 | // Copyright (c) 1996-2010, Nicola Salmoria and the MAME Team. | |
| 6 | // Visit http://mamedev.org for licensing and usage restrictions. | |
| 7 | // | |
| 8 | // SDLMAME by Olivier Galibert and R. Belmont | |
| 9 | // | |
| 5 | 10 | //============================================================ |
| 6 | 11 | |
| 7 | 12 | #define WIN32_LEAN_AND_MEAN |
| r243114 | r243115 | |
| 18 | 23 | #include "osdcomm.h" |
| 19 | 24 | #include "osdcore.h" |
| 20 | 25 | |
| 26 | #include "winutf8.h" | |
| 27 | ||
| 21 | 28 | //============================================================ |
| 22 | 29 | // MACROS |
| 23 | 30 | //============================================================ |
| r243114 | r243115 | |
| 28 | 35 | // align allocations to start or end of the page? |
| 29 | 36 | #define GUARD_ALIGN_START 0 |
| 30 | 37 | |
| 38 | ||
| 31 | 39 | //============================================================ |
| 32 | // | |
| 40 | // GLOBAL VARIABLES | |
| 33 | 41 | //============================================================ |
| 34 | 42 | |
| 35 | int osd_get_num_processors(void) | |
| 36 | { | |
| 37 | SYSTEM_INFO info; | |
| 43 | #ifdef OSD_WINDOWS | |
| 44 | void (*s_debugger_stack_crawler)() = NULL; | |
| 45 | #endif | |
| 38 | 46 | |
| 39 | // otherwise, fetch the info from the system | |
| 40 | GetSystemInfo(&info); | |
| 41 | 47 | |
| 42 | // max out at 4 for now since scaling above that seems to do poorly | |
| 43 | return MIN(info.dwNumberOfProcessors, 4); | |
| 44 | } | |
| 45 | ||
| 46 | 48 | //============================================================ |
| 47 | 49 | // osd_getenv |
| 48 | 50 | //============================================================ |
| r243114 | r243115 | |
| 52 | 54 | return getenv(name); |
| 53 | 55 | } |
| 54 | 56 | |
| 57 | ||
| 55 | 58 | //============================================================ |
| 56 | 59 | // osd_setenv |
| 57 | 60 | //============================================================ |
| r243114 | r243115 | |
| 87 | 90 | } |
| 88 | 91 | |
| 89 | 92 | //============================================================ |
| 93 | // osd_num_processors | |
| 94 | //============================================================ | |
| 95 | ||
| 96 | int osd_get_num_processors(void) | |
| 97 | { | |
| 98 | SYSTEM_INFO info; | |
| 99 | ||
| 100 | // otherwise, fetch the info from the system | |
| 101 | GetSystemInfo(&info); | |
| 102 | ||
| 103 | // max out at 4 for now since scaling above that seems to do poorly | |
| 104 | return MIN(info.dwNumberOfProcessors, 4); | |
| 105 | } | |
| 106 | ||
| 107 | //============================================================ | |
| 90 | 108 | // osd_malloc |
| 91 | 109 | //============================================================ |
| 92 | 110 | |
| r243114 | r243115 | |
| 169 | 187 | |
| 170 | 188 | |
| 171 | 189 | //============================================================ |
| 190 | // osd_alloc_executable | |
| 191 | // | |
| 192 | // allocates "size" bytes of executable memory. this must take | |
| 193 | // things like NX support into account. | |
| 194 | //============================================================ | |
| 195 | ||
| 196 | void *osd_alloc_executable(size_t size) | |
| 197 | { | |
| 198 | return VirtualAlloc(NULL, size, MEM_COMMIT, PAGE_EXECUTE_READWRITE); | |
| 199 | } | |
| 200 | ||
| 201 | ||
| 202 | //============================================================ | |
| 203 | // osd_free_executable | |
| 204 | // | |
| 205 | // frees memory allocated with osd_alloc_executable | |
| 206 | //============================================================ | |
| 207 | ||
| 208 | void osd_free_executable(void *ptr, size_t size) | |
| 209 | { | |
| 210 | VirtualFree(ptr, 0, MEM_RELEASE); | |
| 211 | } | |
| 212 | ||
| 213 | ||
| 214 | //============================================================ | |
| 215 | // osd_break_into_debugger | |
| 216 | //============================================================ | |
| 217 | ||
| 218 | void osd_break_into_debugger(const char *message) | |
| 219 | { | |
| 220 | #ifdef OSD_WINDOWS | |
| 221 | if (IsDebuggerPresent()) | |
| 222 | { | |
| 223 | win_output_debug_string_utf8(message); | |
| 224 | DebugBreak(); | |
| 225 | } | |
| 226 | else if (s_debugger_stack_crawler != NULL) | |
| 227 | (*s_debugger_stack_crawler)(); | |
| 228 | #else | |
| 229 | if (IsDebuggerPresent()) | |
| 230 | { | |
| 231 | OutputDebugStringA(message); | |
| 232 | DebugBreak(); | |
| 233 | } | |
| 234 | #endif | |
| 235 | } | |
| 236 | ||
| 237 | //============================================================ | |
| 172 | 238 | // GLOBAL VARIABLES |
| 173 | 239 | //============================================================ |
| 174 | 240 | |
| r243114 | r243115 | |
| 228 | 294 | return ticks_per_second; |
| 229 | 295 | } |
| 230 | 296 | |
| 231 | ||
| 232 | 297 | //============================================================ |
| 233 | 298 | // osd_sleep |
| 234 | 299 | //============================================================ |
| r243114 | r243115 | |
|---|---|---|
| 411 | 411 | $(SDLOBJ)/sdlfile.o \ |
| 412 | 412 | $(SDLOBJ)/sdlptty_$(BASE_TARGETOS).o \ |
| 413 | 413 | $(SDLOBJ)/sdlsocket.o \ |
| 414 | $(SDLOBJ)/sdlmisc_$(BASE_TARGETOS).o \ | |
| 415 | 414 | $(SDLOBJ)/sdlos_$(SDLOS_TARGETOS).o \ |
| 416 | 415 | $(OSDOBJ)/modules/lib/osdlib_$(SDLOS_TARGETOS).o \ |
| 417 | 416 | $(OSDOBJ)/modules/sync/sync_$(SYNC_IMPLEMENTATION).o \ |
| r243114 | r243115 | |
|---|---|---|
| 1 | //============================================================ | |
| 2 | // | |
| 3 | // sdlos_*.c - OS specific low level code | |
| 4 | // | |
| 5 | // Copyright (c) 1996-2010, Nicola Salmoria and the MAME Team. | |
| 6 | // Visit http://mamedev.org for licensing and usage restrictions. | |
| 7 | // | |
| 8 | // SDLMAME by Olivier Galibert and R. Belmont | |
| 9 | // | |
| 10 | //============================================================ | |
| 11 | ||
| 12 | // standard sdl header | |
| 13 | #include "sdlinc.h" | |
| 14 | #include <unistd.h> | |
| 15 | #include <stdio.h> | |
| 16 | #include <string.h> | |
| 17 | #include <ctype.h> | |
| 18 | #include <stdlib.h> | |
| 19 | ||
| 20 | #define INCL_DOS | |
| 21 | #include <os2.h> | |
| 22 | ||
| 23 | // MAME headers | |
| 24 | #include "osdcore.h" | |
| 25 | ||
| 26 | //============================================================ | |
| 27 | // osd_alloc_executable | |
| 28 | // | |
| 29 | // allocates "size" bytes of executable memory. this must take | |
| 30 | // things like NX support into account. | |
| 31 | //============================================================ | |
| 32 | ||
| 33 | void *osd_alloc_executable(size_t size) | |
| 34 | { | |
| 35 | void *p; | |
| 36 | ||
| 37 | DosAllocMem( &p, size, fALLOC ); | |
| 38 | return p; | |
| 39 | } | |
| 40 | ||
| 41 | //============================================================ | |
| 42 | // osd_free_executable | |
| 43 | // | |
| 44 | // frees memory allocated with osd_alloc_executable | |
| 45 | //============================================================ | |
| 46 | ||
| 47 | void osd_free_executable(void *ptr, size_t size) | |
| 48 | { | |
| 49 | DosFreeMem( ptr ); | |
| 50 | } | |
| 51 | ||
| 52 | //============================================================ | |
| 53 | // osd_break_into_debugger | |
| 54 | //============================================================ | |
| 55 | ||
| 56 | void osd_break_into_debugger(const char *message) | |
| 57 | { | |
| 58 | printf("Ignoring MAME exception: %s\n", message); | |
| 59 | } |
| r243114 | r243115 | |
|---|---|---|
| 1 | //============================================================ | |
| 2 | // | |
| 3 | // sdlos_*.c - OS specific low level code | |
| 4 | // | |
| 5 | // Copyright (c) 1996-2010, Nicola Salmoria and the MAME Team. | |
| 6 | // Visit http://mamedev.org for licensing and usage restrictions. | |
| 7 | // | |
| 8 | // SDLMAME by Olivier Galibert and R. Belmont | |
| 9 | // | |
| 10 | //============================================================ | |
| 11 | ||
| 12 | #include <sys/mman.h> | |
| 13 | #include <signal.h> | |
| 14 | #ifdef MAME_DEBUG | |
| 15 | #include <unistd.h> | |
| 16 | #endif | |
| 17 | ||
| 18 | // MAME headers | |
| 19 | #include "osdcore.h" | |
| 20 | ||
| 21 | ||
| 22 | //============================================================ | |
| 23 | // osd_alloc_executable | |
| 24 | // | |
| 25 | // allocates "size" bytes of executable memory. this must take | |
| 26 | // things like NX support into account. | |
| 27 | //============================================================ | |
| 28 | ||
| 29 | void *osd_alloc_executable(size_t size) | |
| 30 | { | |
| 31 | #if defined(SDLMAME_BSD) || defined(SDLMAME_MACOSX) | |
| 32 | return (void *)mmap(0, size, PROT_EXEC|PROT_READ|PROT_WRITE, MAP_ANON|MAP_SHARED, -1, 0); | |
| 33 | #elif defined(SDLMAME_UNIX) | |
| 34 | return (void *)mmap(0, size, PROT_EXEC|PROT_READ|PROT_WRITE, MAP_ANON|MAP_SHARED, 0, 0); | |
| 35 | #endif | |
| 36 | } | |
| 37 | ||
| 38 | //============================================================ | |
| 39 | // osd_free_executable | |
| 40 | // | |
| 41 | // frees memory allocated with osd_alloc_executable | |
| 42 | //============================================================ | |
| 43 | ||
| 44 | void osd_free_executable(void *ptr, size_t size) | |
| 45 | { | |
| 46 | #ifdef SDLMAME_SOLARIS | |
| 47 | munmap((char *)ptr, size); | |
| 48 | #else | |
| 49 | munmap(ptr, size); | |
| 50 | #endif | |
| 51 | } | |
| 52 | ||
| 53 | //============================================================ | |
| 54 | // osd_break_into_debugger | |
| 55 | //============================================================ | |
| 56 | ||
| 57 | void osd_break_into_debugger(const char *message) | |
| 58 | { | |
| 59 | #ifdef MAME_DEBUG | |
| 60 | printf("MAME exception: %s\n", message); | |
| 61 | printf("Attempting to fall into debugger\n"); | |
| 62 | kill(getpid(), SIGTRAP); | |
| 63 | #else | |
| 64 | printf("Ignoring MAME exception: %s\n", message); | |
| 65 | #endif | |
| 66 | } |
| r243114 | r243115 | |
|---|---|---|
| 1 | //============================================================ | |
| 2 | // | |
| 3 | // sdlos_*.c - OS specific low level code | |
| 4 | // | |
| 5 | // Copyright (c) 1996-2010, Nicola Salmoria and the MAME Team. | |
| 6 | // Visit http://mamedev.org for licensing and usage restrictions. | |
| 7 | // | |
| 8 | // SDLMAME by Olivier Galibert and R. Belmont | |
| 9 | // | |
| 10 | //============================================================ | |
| 11 | ||
| 12 | // standard sdl header | |
| 13 | #include "sdlinc.h" | |
| 14 | ||
| 15 | ||
| 16 | #define WIN32_LEAN_AND_MEAN | |
| 17 | #include <windows.h> | |
| 18 | ||
| 19 | // MAME headers | |
| 20 | #include "osdcore.h" | |
| 21 | ||
| 22 | //============================================================ | |
| 23 | // osd_alloc_executable | |
| 24 | // | |
| 25 | // allocates "size" bytes of executable memory. this must take | |
| 26 | // things like NX support into account. | |
| 27 | //============================================================ | |
| 28 | ||
| 29 | void *osd_alloc_executable(size_t size) | |
| 30 | { | |
| 31 | return VirtualAlloc(NULL, size, MEM_COMMIT, PAGE_EXECUTE_READWRITE); | |
| 32 | } | |
| 33 | ||
| 34 | //============================================================ | |
| 35 | // osd_free_executable | |
| 36 | // | |
| 37 | // frees memory allocated with osd_alloc_executable | |
| 38 | //============================================================ | |
| 39 | ||
| 40 | void osd_free_executable(void *ptr, size_t size) | |
| 41 | { | |
| 42 | VirtualFree(ptr, 0, MEM_RELEASE); | |
| 43 | } | |
| 44 | ||
| 45 | //============================================================ | |
| 46 | // osd_break_into_debugger | |
| 47 | //============================================================ | |
| 48 | ||
| 49 | void osd_break_into_debugger(const char *message) | |
| 50 | { | |
| 51 | if (IsDebuggerPresent()) | |
| 52 | { | |
| 53 | OutputDebugStringA(message); | |
| 54 | DebugBreak(); | |
| 55 | } | |
| 56 | } |
| r243114 | r243115 | |
|---|---|---|
| 23 | 23 | |
| 24 | 24 | // MAME headers |
| 25 | 25 | #include "osdcore.h" |
| 26 | #include "osdlib.h" | |
| 26 | 27 | |
| 27 | ||
| 28 | 28 | //============================================================ |
| 29 | // PROTOTYPES | |
| 30 | //============================================================ | |
| 31 | ||
| 32 | ||
| 33 | static osd_ticks_t init_cycle_counter(void); | |
| 34 | static osd_ticks_t performance_cycle_counter(void); | |
| 35 | ||
| 36 | //============================================================ | |
| 37 | // STATIC VARIABLES | |
| 38 | //============================================================ | |
| 39 | ||
| 40 | // global cycle_counter function and divider | |
| 41 | static osd_ticks_t (*cycle_counter)(void) = init_cycle_counter; | |
| 42 | static osd_ticks_t (*ticks_counter)(void) = init_cycle_counter; | |
| 43 | static osd_ticks_t ticks_per_second; | |
| 44 | ||
| 45 | //============================================================ | |
| 46 | // init_cycle_counter | |
| 47 | // | |
| 48 | // to avoid total grossness, this function is split by subarch | |
| 49 | //============================================================ | |
| 50 | ||
| 51 | static osd_ticks_t init_cycle_counter(void) | |
| 52 | { | |
| 53 | osd_ticks_t start, end; | |
| 54 | osd_ticks_t a, b; | |
| 55 | ||
| 56 | ULONG frequency; | |
| 57 | PTIB ptib; | |
| 58 | ULONG ulClass; | |
| 59 | ULONG ulDelta; | |
| 60 | ||
| 61 | DosGetInfoBlocks( &ptib, NULL ); | |
| 62 | ulClass = HIBYTE( ptib->tib_ptib2->tib2_ulpri ); | |
| 63 | ulDelta = LOBYTE( ptib->tib_ptib2->tib2_ulpri ); | |
| 64 | ||
| 65 | if ( DosTmrQueryFreq( &frequency ) == 0 ) | |
| 66 | { | |
| 67 | // use performance counter if available as it is constant | |
| 68 | cycle_counter = performance_cycle_counter; | |
| 69 | ticks_counter = performance_cycle_counter; | |
| 70 | ||
| 71 | ticks_per_second = frequency; | |
| 72 | ||
| 73 | // return the current cycle count | |
| 74 | return (*cycle_counter)(); | |
| 75 | } | |
| 76 | else | |
| 77 | { | |
| 78 | fprintf(stderr, "No Timer available!\n"); | |
| 79 | exit(-1); | |
| 80 | } | |
| 81 | ||
| 82 | // temporarily set our priority higher | |
| 83 | DosSetPriority( PRTYS_THREAD, PRTYC_TIMECRITICAL, PRTYD_MAXIMUM, 0 ); | |
| 84 | ||
| 85 | // wait for an edge on the timeGetTime call | |
| 86 | a = SDL_GetTicks(); | |
| 87 | do | |
| 88 | { | |
| 89 | b = SDL_GetTicks(); | |
| 90 | } while (a == b); | |
| 91 | ||
| 92 | // get the starting cycle count | |
| 93 | start = (*cycle_counter)(); | |
| 94 | ||
| 95 | // now wait for 1/4 second total | |
| 96 | do | |
| 97 | { | |
| 98 | a = SDL_GetTicks(); | |
| 99 | } while (a - b < 250); | |
| 100 | ||
| 101 | // get the ending cycle count | |
| 102 | end = (*cycle_counter)(); | |
| 103 | ||
| 104 | // compute ticks_per_sec | |
| 105 | ticks_per_second = (end - start) * 4; | |
| 106 | ||
| 107 | // restore our priority | |
| 108 | DosSetPriority( PRTYS_THREAD, ulClass, ulDelta, 0 ); | |
| 109 | ||
| 110 | // return the current cycle count | |
| 111 | return (*cycle_counter)(); | |
| 112 | } | |
| 113 | ||
| 114 | //============================================================ | |
| 115 | // performance_cycle_counter | |
| 116 | //============================================================ | |
| 117 | ||
| 118 | static osd_ticks_t performance_cycle_counter(void) | |
| 119 | { | |
| 120 | QWORD qwTime; | |
| 121 | ||
| 122 | DosTmrQueryTime( &qwTime ); | |
| 123 | return (osd_ticks_t)qwTime.ulLo; | |
| 124 | } | |
| 125 | ||
| 126 | //============================================================ | |
| 127 | // osd_cycles | |
| 128 | //============================================================ | |
| 129 | ||
| 130 | osd_ticks_t osd_ticks(void) | |
| 131 | { | |
| 132 | return (*cycle_counter)(); | |
| 133 | } | |
| 134 | ||
| 135 | ||
| 136 | //============================================================ | |
| 137 | // osd_ticks_per_second | |
| 138 | //============================================================ | |
| 139 | ||
| 140 | osd_ticks_t osd_ticks_per_second(void) | |
| 141 | { | |
| 142 | if (ticks_per_second == 0) | |
| 143 | { | |
| 144 | // if we haven't computed the value yet, there's no time like the present | |
| 145 | init_cycle_counter(); | |
| 146 | } | |
| 147 | return ticks_per_second; | |
| 148 | } | |
| 149 | ||
| 150 | ||
| 151 | //============================================================ | |
| 152 | // osd_sleep | |
| 153 | //============================================================ | |
| 154 | ||
| 155 | void osd_sleep(osd_ticks_t duration) | |
| 156 | { | |
| 157 | UINT32 msec; | |
| 158 | ||
| 159 | // make sure we've computed ticks_per_second | |
| 160 | if (ticks_per_second == 0) | |
| 161 | (void)osd_ticks(); | |
| 162 | ||
| 163 | // convert to milliseconds, rounding down | |
| 164 | msec = (UINT32)(duration * 1000 / ticks_per_second); | |
| 165 | ||
| 166 | // only sleep if at least 2 full milliseconds | |
| 167 | if (msec >= 2) | |
| 168 | { | |
| 169 | // take a couple of msecs off the top for good measure | |
| 170 | msec -= 2; | |
| 171 | usleep(msec*1000); | |
| 172 | } | |
| 173 | } | |
| 174 | ||
| 175 | //============================================================ | |
| 176 | // osd_num_processors | |
| 177 | //============================================================ | |
| 178 | ||
| 179 | int osd_get_num_processors(void) | |
| 180 | { | |
| 181 | ULONG numprocs = 1; | |
| 182 | ||
| 183 | DosQuerySysInfo(QSV_NUMPROCESSORS, QSV_NUMPROCESSORS, &numprocs, sizeof(numprocs)); | |
| 184 | ||
| 185 | return numprocs; | |
| 186 | } | |
| 187 | ||
| 188 | //============================================================ | |
| 189 | // osd_malloc | |
| 190 | //============================================================ | |
| 191 | ||
| 192 | void *osd_malloc(size_t size) | |
| 193 | { | |
| 194 | #ifndef MALLOC_DEBUG | |
| 195 | return malloc(size); | |
| 196 | #else | |
| 197 | #error "MALLOC_DEBUG not yet supported" | |
| 198 | #endif | |
| 199 | } | |
| 200 | ||
| 201 | ||
| 202 | //============================================================ | |
| 203 | // osd_malloc_array | |
| 204 | //============================================================ | |
| 205 | ||
| 206 | void *osd_malloc_array(size_t size) | |
| 207 | { | |
| 208 | #ifndef MALLOC_DEBUG | |
| 209 | return malloc(size); | |
| 210 | #else | |
| 211 | #error "MALLOC_DEBUG not yet supported" | |
| 212 | #endif | |
| 213 | } | |
| 214 | ||
| 215 | ||
| 216 | //============================================================ | |
| 217 | // osd_free | |
| 218 | //============================================================ | |
| 219 | ||
| 220 | void osd_free(void *ptr) | |
| 221 | { | |
| 222 | #ifndef MALLOC_DEBUG | |
| 223 | free(ptr); | |
| 224 | #else | |
| 225 | #error "MALLOC_DEBUG not yet supported" | |
| 226 | #endif | |
| 227 | } | |
| 228 | ||
| 229 | //============================================================ | |
| 230 | // osd_getenv | |
| 231 | //============================================================ | |
| 232 | ||
| 233 | char *osd_getenv(const char *name) | |
| 234 | { | |
| 235 | return getenv(name); | |
| 236 | } | |
| 237 | ||
| 238 | //============================================================ | |
| 239 | // osd_setenv | |
| 240 | //============================================================ | |
| 241 | ||
| 242 | int osd_setenv(const char *name, const char *value, int overwrite) | |
| 243 | { | |
| 244 | return setenv(name, value, overwrite); | |
| 245 | } | |
| 246 | ||
| 247 | ||
| 248 | //============================================================ | |
| 249 | 29 | // osd_get_clipboard_text |
| 250 | 30 | // - used in MESS |
| 251 | 31 | //============================================================ |
| r243114 | r243115 | |
|---|---|---|
| 349 | 349 | $(WINOBJ)/strconv.o \ |
| 350 | 350 | $(WINOBJ)/windir.o \ |
| 351 | 351 | $(WINOBJ)/winfile.o \ |
| 352 | $(WINOBJ)/winmisc.o \ | |
| 353 | 352 | $(OSDOBJ)/modules/sync/sync_windows.o \ |
| 354 | 353 | $(WINOBJ)/winutf8.o \ |
| 355 | 354 | $(WINOBJ)/winutil.o \ |
| r243114 | r243115 | |
|---|---|---|
| 1 | // license:BSD-3-Clause | |
| 2 | // copyright-holders:Aaron Giles | |
| 3 | //============================================================ | |
| 4 | // | |
| 5 | // winmisc.c - Win32 OSD core miscellaneous functions | |
| 6 | // | |
| 7 | //============================================================ | |
| 8 | ||
| 9 | // standard windows headers | |
| 10 | #define WIN32_LEAN_AND_MEAN | |
| 11 | #include <windows.h> | |
| 12 | #include <tchar.h> | |
| 13 | ||
| 14 | // MAME headers | |
| 15 | #include "osdcore.h" | |
| 16 | ||
| 17 | // MAMEOS headers | |
| 18 | #include "winutf8.h" | |
| 19 | #include "strconv.h" | |
| 20 | #include "strconv.h" | |
| 21 | ||
| 22 | ||
| 23 | //============================================================ | |
| 24 | // GLOBAL VARIABLES | |
| 25 | //============================================================ | |
| 26 | ||
| 27 | void (*s_debugger_stack_crawler)() = NULL; | |
| 28 | ||
| 29 | ||
| 30 | //============================================================ | |
| 31 | // osd_alloc_executable | |
| 32 | //============================================================ | |
| 33 | ||
| 34 | void *osd_alloc_executable(size_t size) | |
| 35 | { | |
| 36 | return VirtualAlloc(NULL, size, MEM_COMMIT, PAGE_EXECUTE_READWRITE); | |
| 37 | } | |
| 38 | ||
| 39 | ||
| 40 | //============================================================ | |
| 41 | // osd_free_executable | |
| 42 | //============================================================ | |
| 43 | ||
| 44 | void osd_free_executable(void *ptr, size_t size) | |
| 45 | { | |
| 46 | VirtualFree(ptr, 0, MEM_RELEASE); | |
| 47 | } | |
| 48 | ||
| 49 | ||
| 50 | //============================================================ | |
| 51 | // osd_break_into_debugger | |
| 52 | //============================================================ | |
| 53 | ||
| 54 | void osd_break_into_debugger(const char *message) | |
| 55 | { | |
| 56 | if (IsDebuggerPresent()) | |
| 57 | { | |
| 58 | win_output_debug_string_utf8(message); | |
| 59 | DebugBreak(); | |
| 60 | } | |
| 61 | else if (s_debugger_stack_crawler != NULL) | |
| 62 | (*s_debugger_stack_crawler)(); | |
| 63 | } |
| https://github.com/mamedev/mame/commit/e8233100c2010e76418a005cf6c7a6071886273b |
| Previous | 199869 Revisions | Next |