trunk/src/mame/drivers/megasys1.c
| r18832 | r18833 | |
| 3375 | 3375 | ROM_LOAD( "prom.14m", 0x0000, 0x0200, CRC(1d877538) SHA1(a5be0dc65dcfc36fbba10d1fddbe155e24b6122f) ) |
| 3376 | 3376 | ROM_END |
| 3377 | 3377 | |
| 3378 | /*************************************************************************** |
| 3378 | 3379 | |
| 3380 | Saint Dragon alternate set |
| 3381 | |
| 3382 | This romset comes from an original pcb. Game differences are: none. |
| 3383 | |
| 3384 | Hardware info: |
| 3385 | Jaleco Mega System 1-A |
| 3386 | |
| 3387 | Rom definition: |
| 3388 | jsda-01,jsda-02 main program |
| 3389 | E71-14 (jsd-11,jsd-12,jsd-13,jsd-14)* background |
| 3390 | E72-18 (jsd-15,jsd-16,jsd-17,jsd-18)* foreground |
| 3391 | E73-23 (jsd-20,jsd-21,jsd-22,jsd-23)* sprites |
| 3392 | |
| 3393 | *The 128k gfx roms were merged into 512k roms. |
| 3394 | Rest of roms are identical to existing set |
| 3395 | Roms are 27c101,62304 |
| 3396 | |
| 3397 | Dumped by tirino73 |
| 3398 | |
| 3399 | ***************************************************************************/ |
| 3400 | |
| 3379 | 3401 | ROM_START( stdragona ) |
| 3380 | 3402 | ROM_REGION( 0x60000, "maincpu", 0 ) /* Main CPU Code */ |
| 3381 | 3403 | ROM_LOAD16_BYTE( "jsda-02.bin", 0x000000, 0x020000, CRC(d65d4154) SHA1(f77886590a092743c829fb52b5de0ca8ef51c122) ) |
| r18832 | r18833 | |
| 3412 | 3434 | ROM_LOAD( "prom.14m", 0x0000, 0x0200, CRC(1d877538) SHA1(a5be0dc65dcfc36fbba10d1fddbe155e24b6122f) ) |
| 3413 | 3435 | ROM_END |
| 3414 | 3436 | |
| 3437 | |
| 3415 | 3438 | /*************************************************************************** |
| 3416 | 3439 | |
| 3417 | 3440 | [ Soldam ] |
| r18832 | r18833 | |
| 3647 | 3670 | |
| 3648 | 3671 | static void stdragona_gfx_unmangle(running_machine &machine, const char *region) |
| 3649 | 3672 | { |
| 3650 | | /* todo */ |
| 3673 | UINT8 *rom = machine.root_device().memregion(region)->base(); |
| 3674 | int size = machine.root_device().memregion(region)->bytes(); |
| 3675 | UINT8 *buffer; |
| 3676 | int i; |
| 3677 | |
| 3678 | /* data lines swap: 76543210 -> 37564210 */ |
| 3679 | for (i = 0;i < size;i++) |
| 3680 | rom[i] = BITSWAP8(rom[i],3,7,5,6,4,2,1,0); |
| 3681 | |
| 3682 | buffer = auto_alloc_array(machine, UINT8, size); |
| 3683 | |
| 3684 | memcpy(buffer,rom,size); |
| 3685 | |
| 3686 | /* address lines swap: fedcba9876543210 -> fe3cbd9a76548210 */ |
| 3687 | for (i = 0;i < size;i++) |
| 3688 | { |
| 3689 | int a = (i & ~0xffff) | |
| 3690 | BITSWAP16(i,0xf,0xe,0x3,0xc,0xb,0xd,0x9,0xa,0x7,0x6,0x5,0x4,0x8,0x2,0x1,0x0); |
| 3691 | |
| 3692 | rom[i] = buffer[a]; |
| 3693 | } |
| 3694 | |
| 3695 | auto_free(machine, buffer); |
| 3651 | 3696 | } |
| 3652 | 3697 | |
| 3653 | 3698 | /************************************* |
| r18832 | r18833 | |
| 3658 | 3703 | |
| 3659 | 3704 | /* |
| 3660 | 3705 | MCU handshake sequence: |
| 3661 | | the M50747 MCU can overlay 0x20 bytes of data inside the ROM space. |
| 3706 | the M50747 MCU can overlay 0x40 bytes of data inside the ROM space. |
| 3662 | 3707 | The offset where this happens is given by m68k to MCU write [0x8/2] << 6. |
| 3663 | 3708 | For example stdragon writes 0x33e -> maps at 0xcf80-0xcfbf while stdragona writes 0x33f -> maps at 0xcfc0-0xcfff. |
| 3709 | Note: stdragona forgets to turn off the overlay before the ROM check in service mode (hence it reports an error). |
| 3664 | 3710 | */ |
| 3665 | 3711 | |
| 3666 | 3712 | #define MCU_HS_LOG 0 |
| r18832 | r18833 | |
| 3983 | 4029 | |
| 3984 | 4030 | stdragona_gfx_unmangle(machine(), "gfx1"); |
| 3985 | 4031 | stdragona_gfx_unmangle(machine(), "gfx4"); |
| 4032 | |
| 3986 | 4033 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x00000, 0x3ffff, read16_delegate(FUNC(megasys1_state::stdragon_mcu_hs_r),this)); |
| 3987 | 4034 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x23ff0, 0x23ff9, write16_delegate(FUNC(megasys1_state::stdragon_mcu_hs_w),this)); |
| 3988 | 4035 | } |
| r18832 | r18833 | |
| 4022 | 4069 | * |
| 4023 | 4070 | *************************************/ |
| 4024 | 4071 | |
| 4025 | | GAME( 1988, lomakai, 0, system_Z, lomakai, driver_device, 0, ROT0, "Jaleco", "Legend of Makai (World)", 0 ) |
| 4026 | | GAME( 1988, makaiden, lomakai, system_Z, lomakai, driver_device, 0, ROT0, "Jaleco", "Makai Densetsu (Japan)", 0 ) |
| 4027 | | GAME( 1988, p47, 0, system_A, p47, driver_device, 0, ROT0, "Jaleco", "P-47 - The Phantom Fighter (World)", 0 ) |
| 4028 | | GAME( 1988, p47j, p47, system_A, p47, driver_device, 0, ROT0, "Jaleco", "P-47 - The Freedom Fighter (Japan)", 0 ) |
| 4029 | | GAME( 1988, kickoff, 0, system_A, kickoff, driver_device, 0, ROT0, "Jaleco", "Kick Off (Japan)", 0 ) |
| 4072 | GAME( 1988, lomakai, 0, system_Z, lomakai, driver_device, 0, ROT0, "Jaleco", "Legend of Makai (World)", 0 ) |
| 4073 | GAME( 1988, makaiden, lomakai, system_Z, lomakai, driver_device, 0, ROT0, "Jaleco", "Makai Densetsu (Japan)", 0 ) |
| 4074 | GAME( 1988, p47, 0, system_A, p47, driver_device, 0, ROT0, "Jaleco", "P-47 - The Phantom Fighter (World)", 0 ) |
| 4075 | GAME( 1988, p47j, p47, system_A, p47, driver_device, 0, ROT0, "Jaleco", "P-47 - The Freedom Fighter (Japan)", 0 ) |
| 4076 | GAME( 1988, kickoff, 0, system_A, kickoff, driver_device, 0, ROT0, "Jaleco", "Kick Off (Japan)", 0 ) |
| 4030 | 4077 | GAME( 1988, tshingen, 0, system_A, tshingen, megasys1_state, phantasm, ROT0, "Jaleco", "Shingen Samurai-Fighter (Japan, English)", 0 ) |
| 4031 | 4078 | GAME( 1988, tshingena,tshingen, system_A, tshingen, megasys1_state, phantasm, ROT0, "Jaleco", "Takeda Shingen (Japan, Japanese)", 0 ) |
| 4032 | | GAME( 1988, kazan, 0, system_A, kazan, megasys1_state, iganinju, ROT0, "Jaleco", "Ninja Kazan (World)", 0 ) |
| 4033 | | GAME( 1988, iganinju, kazan, system_A, kazan, megasys1_state, iganinju, ROT0, "Jaleco", "Iga Ninjyutsuden (Japan)", 0 ) |
| 4079 | GAME( 1988, kazan, 0, system_A, kazan, megasys1_state, iganinju, ROT0, "Jaleco", "Ninja Kazan (World)", 0 ) |
| 4080 | GAME( 1988, iganinju, kazan, system_A, kazan, megasys1_state, iganinju, ROT0, "Jaleco", "Iga Ninjyutsuden (Japan)", 0 ) |
| 4034 | 4081 | GAME( 1989, astyanax, 0, system_A, astyanax, megasys1_state, astyanax, ROT0, "Jaleco", "The Astyanax", 0 ) |
| 4035 | 4082 | GAME( 1989, lordofk, astyanax, system_A, astyanax, megasys1_state, astyanax, ROT0, "Jaleco", "The Lord of King (Japan)", 0 ) |
| 4036 | | GAME( 1989, hachoo, 0, system_A_hachoo, hachoo, megasys1_state, astyanax, ROT0, "Jaleco", "Hachoo!", 0 ) |
| 4083 | GAME( 1989, hachoo, 0, system_A_hachoo, hachoo, megasys1_state, astyanax, ROT0, "Jaleco", "Hachoo!", 0 ) |
| 4037 | 4084 | GAME( 1989, jitsupro, 0, system_A, jitsupro, megasys1_state, jitsupro, ROT0, "Jaleco", "Jitsuryoku!! Pro Yakyuu (Japan)", 0 ) |
| 4038 | 4085 | GAME( 1989, plusalph, 0, system_A, plusalph, megasys1_state, astyanax, ROT270, "Jaleco", "Plus Alpha", 0 ) |
| 4039 | 4086 | GAME( 1989, stdragon, 0, system_A, stdragon, megasys1_state, stdragon, ROT0, "Jaleco", "Saint Dragon (set 1)", 0 ) |
| 4040 | | GAME( 1989, stdragona,stdragon, system_A, stdragon, megasys1_state, stdragona,ROT0, "Jaleco", "Saint Dragon (set 2)", GAME_NOT_WORKING ) // gfx scramble |
| 4041 | | GAME( 1990, rodland, 0, system_A, rodland, megasys1_state, rodland, ROT0, "Jaleco", "Rod-Land (World)", 0 ) |
| 4042 | | GAME( 1990, rodlandj, rodland, system_A, rodland, megasys1_state, rodlandj, ROT0, "Jaleco", "Rod-Land (Japan)", 0 ) |
| 4043 | | GAME( 1990, rodlandjb,rodland, system_A, rodland, driver_device, 0, ROT0, "bootleg","Rod-Land (Japan bootleg)", 0 ) |
| 4087 | GAME( 1989, stdragona,stdragon, system_A, stdragon, megasys1_state, stdragona,ROT0, "Jaleco", "Saint Dragon (set 2)", 0 ) |
| 4088 | GAME( 1990, rodland, 0, system_A, rodland, megasys1_state, rodland, ROT0, "Jaleco", "Rod-Land (World)", 0 ) |
| 4089 | GAME( 1990, rodlandj, rodland, system_A, rodland, megasys1_state, rodlandj, ROT0, "Jaleco", "Rod-Land (Japan)", 0 ) |
| 4090 | GAME( 1990, rodlandjb,rodland, system_A, rodland, driver_device, 0, ROT0, "bootleg","Rod-Land (Japan bootleg)", 0 ) |
| 4044 | 4091 | GAME( 1991, avspirit, 0, system_B, avspirit, megasys1_state, avspirit, ROT0, "Jaleco", "Avenging Spirit", 0 ) |
| 4045 | 4092 | GAME( 1990, phantasm, avspirit, system_A, phantasm, megasys1_state, phantasm, ROT0, "Jaleco", "Phantasm (Japan)", 0 ) |
| 4046 | 4093 | GAME( 1990, monkelf, avspirit, system_B, avspirit, megasys1_state, monkelf, ROT0, "bootleg","Monky Elf (Korean bootleg of Avenging Spirit)", GAME_NOT_WORKING ) |
| 4047 | | GAME( 1991, edf, 0, system_B, edf, megasys1_state, edf, ROT0, "Jaleco", "E.D.F. : Earth Defense Force", 0 ) |
| 4048 | | GAME( 1991, edfu, edf, system_B, edf, megasys1_state, edf, ROT0, "Jaleco", "E.D.F. : Earth Defense Force (North America)", 0 ) |
| 4049 | | GAME( 1991, edfbl, edf, system_Bbl, edf, megasys1_state, edfbl, ROT0, "bootleg","E.D.F. : Earth Defense Force (bootleg)", GAME_NO_SOUND ) |
| 4094 | GAME( 1991, edf, 0, system_B, edf, megasys1_state, edf, ROT0, "Jaleco", "E.D.F. : Earth Defense Force", 0 ) |
| 4095 | GAME( 1991, edfu, edf, system_B, edf, megasys1_state, edf, ROT0, "Jaleco", "E.D.F. : Earth Defense Force (North America)", 0 ) |
| 4096 | GAME( 1991, edfbl, edf, system_Bbl, edf, megasys1_state, edfbl, ROT0, "bootleg","E.D.F. : Earth Defense Force (bootleg)", GAME_NO_SOUND ) |
| 4050 | 4097 | GAME( 1991, 64street, 0, system_C, 64street, megasys1_state, 64street, ROT0, "Jaleco", "64th. Street - A Detective Story (World)", 0 ) |
| 4051 | 4098 | GAME( 1991, 64streetj,64street, system_C, 64street, megasys1_state, 64street, ROT0, "Jaleco", "64th. Street - A Detective Story (Japan)", 0 ) |
| 4052 | | GAME( 1992, soldam, 0, system_A, soldam, megasys1_state, soldam, ROT0, "Jaleco", "Soldam", 0 ) |
| 4053 | | GAME( 1992, soldamj, soldam, system_A, soldam, megasys1_state, soldamj, ROT0, "Jaleco", "Soldam (Japan)", 0 ) |
| 4099 | GAME( 1992, soldam, 0, system_A, soldam, megasys1_state, soldam, ROT0, "Jaleco", "Soldam", 0 ) |
| 4100 | GAME( 1992, soldamj, soldam, system_A, soldam, megasys1_state, soldamj, ROT0, "Jaleco", "Soldam (Japan)", 0 ) |
| 4054 | 4101 | GAME( 1992, bigstrik, 0, system_C, bigstrik, megasys1_state, bigstrik, ROT0, "Jaleco", "Big Striker", 0 ) |
| 4055 | 4102 | GAME( 1993, chimerab, 0, system_C, chimerab, megasys1_state, chimerab, ROT0, "Jaleco", "Chimera Beast (prototype)", 0 ) |
| 4056 | 4103 | GAME( 1993, cybattlr, 0, system_C, cybattlr, megasys1_state, cybattlr, ROT90, "Jaleco", "Cybattler", 0 ) |