Previous 199869 Revisions Next

r18833 Saturday 3rd November, 2012 at 17:09:38 UTC by Luca Elia
Decrypted graphics in "Saint Dragon (set 2)" [Luca Elia]
[src/mame/drivers]megasys1.c

trunk/src/mame/drivers/megasys1.c
r18832r18833
33753375   ROM_LOAD( "prom.14m",    0x0000, 0x0200, CRC(1d877538) SHA1(a5be0dc65dcfc36fbba10d1fddbe155e24b6122f) )
33763376ROM_END
33773377
3378/***************************************************************************
33783379
3380Saint Dragon alternate set
3381
3382This romset comes from an original pcb. Game differences are: none.
3383
3384Hardware info:
3385Jaleco Mega System 1-A
3386
3387Rom definition:
3388jsda-01,jsda-02 main program
3389E71-14 (jsd-11,jsd-12,jsd-13,jsd-14)* background
3390E72-18 (jsd-15,jsd-16,jsd-17,jsd-18)* foreground
3391E73-23 (jsd-20,jsd-21,jsd-22,jsd-23)* sprites
3392
3393*The 128k gfx roms were merged into 512k roms.
3394Rest of roms are identical to existing set
3395Roms are 27c101,62304
3396
3397Dumped by tirino73
3398
3399***************************************************************************/
3400
33793401ROM_START( stdragona )
33803402   ROM_REGION( 0x60000, "maincpu", 0 )      /* Main CPU Code */
33813403   ROM_LOAD16_BYTE( "jsda-02.bin", 0x000000, 0x020000, CRC(d65d4154) SHA1(f77886590a092743c829fb52b5de0ca8ef51c122) )
r18832r18833
34123434   ROM_LOAD( "prom.14m",    0x0000, 0x0200, CRC(1d877538) SHA1(a5be0dc65dcfc36fbba10d1fddbe155e24b6122f) )
34133435ROM_END
34143436
3437
34153438/***************************************************************************
34163439
34173440                                [ Soldam ]
r18832r18833
36473670
36483671static void stdragona_gfx_unmangle(running_machine &machine, const char *region)
36493672{
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);
36513696}
36523697
36533698/*************************************
r18832r18833
36583703
36593704/*
36603705    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.
36623707    The offset where this happens is given by m68k to MCU write [0x8/2] << 6.
36633708    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).
36643710*/
36653711
36663712#define MCU_HS_LOG 0
r18832r18833
39834029
39844030   stdragona_gfx_unmangle(machine(), "gfx1");
39854031   stdragona_gfx_unmangle(machine(), "gfx4");
4032
39864033   machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x00000, 0x3ffff, read16_delegate(FUNC(megasys1_state::stdragon_mcu_hs_r),this));
39874034   machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x23ff0, 0x23ff9, write16_delegate(FUNC(megasys1_state::stdragon_mcu_hs_w),this));
39884035}
r18832r18833
40224069 *
40234070 *************************************/
40244071
4025GAME( 1988, lomakai,  0,        system_Z,          lomakai, driver_device,  0,        ROT0,   "Jaleco", "Legend of Makai (World)", 0 )
4026GAME( 1988, makaiden, lomakai,  system_Z,          lomakai, driver_device,  0,        ROT0,   "Jaleco", "Makai Densetsu (Japan)", 0 )
4027GAME( 1988, p47,      0,        system_A,          p47, driver_device,      0,        ROT0,   "Jaleco", "P-47 - The Phantom Fighter (World)", 0 )
4028GAME( 1988, p47j,     p47,      system_A,          p47, driver_device,      0,        ROT0,   "Jaleco", "P-47 - The Freedom Fighter (Japan)", 0 )
4029GAME( 1988, kickoff,  0,        system_A,          kickoff, driver_device,  0,        ROT0,   "Jaleco", "Kick Off (Japan)", 0 )
4072GAME( 1988, lomakai,  0,        system_Z,          lomakai,  driver_device,  0,        ROT0,   "Jaleco", "Legend of Makai (World)", 0 )
4073GAME( 1988, makaiden, lomakai,  system_Z,          lomakai,  driver_device,  0,        ROT0,   "Jaleco", "Makai Densetsu (Japan)", 0 )
4074GAME( 1988, p47,      0,        system_A,          p47,      driver_device,  0,        ROT0,   "Jaleco", "P-47 - The Phantom Fighter (World)", 0 )
4075GAME( 1988, p47j,     p47,      system_A,          p47,      driver_device,  0,        ROT0,   "Jaleco", "P-47 - The Freedom Fighter (Japan)", 0 )
4076GAME( 1988, kickoff,  0,        system_A,          kickoff,  driver_device,  0,        ROT0,   "Jaleco", "Kick Off (Japan)", 0 )
40304077GAME( 1988, tshingen, 0,        system_A,          tshingen, megasys1_state, phantasm, ROT0,   "Jaleco", "Shingen Samurai-Fighter (Japan, English)", 0 )
40314078GAME( 1988, tshingena,tshingen, system_A,          tshingen, megasys1_state, phantasm, ROT0,   "Jaleco", "Takeda Shingen (Japan, Japanese)", 0 )
4032GAME( 1988, kazan,    0,        system_A,          kazan, megasys1_state,    iganinju, ROT0,   "Jaleco", "Ninja Kazan (World)", 0 )
4033GAME( 1988, iganinju, kazan,    system_A,          kazan, megasys1_state,    iganinju, ROT0,   "Jaleco", "Iga Ninjyutsuden (Japan)", 0 )
4079GAME( 1988, kazan,    0,        system_A,          kazan,    megasys1_state, iganinju, ROT0,   "Jaleco", "Ninja Kazan (World)", 0 )
4080GAME( 1988, iganinju, kazan,    system_A,          kazan,    megasys1_state, iganinju, ROT0,   "Jaleco", "Iga Ninjyutsuden (Japan)", 0 )
40344081GAME( 1989, astyanax, 0,        system_A,          astyanax, megasys1_state, astyanax, ROT0,   "Jaleco", "The Astyanax", 0 )
40354082GAME( 1989, lordofk,  astyanax, system_A,          astyanax, megasys1_state, astyanax, ROT0,   "Jaleco", "The Lord of King (Japan)", 0 )
4036GAME( 1989, hachoo,   0,        system_A_hachoo,   hachoo, megasys1_state,  astyanax, ROT0,   "Jaleco", "Hachoo!", 0 )
4083GAME( 1989, hachoo,   0,        system_A_hachoo,   hachoo,   megasys1_state, astyanax, ROT0,   "Jaleco", "Hachoo!", 0 )
40374084GAME( 1989, jitsupro, 0,        system_A,          jitsupro, megasys1_state, jitsupro, ROT0,   "Jaleco", "Jitsuryoku!! Pro Yakyuu (Japan)", 0 )
40384085GAME( 1989, plusalph, 0,        system_A,          plusalph, megasys1_state, astyanax, ROT270, "Jaleco", "Plus Alpha", 0 )
40394086GAME( 1989, stdragon, 0,        system_A,          stdragon, megasys1_state, stdragon, ROT0,   "Jaleco", "Saint Dragon (set 1)", 0 )
4040GAME( 1989, stdragona,stdragon, system_A,          stdragon, megasys1_state, stdragona,ROT0,   "Jaleco", "Saint Dragon (set 2)", GAME_NOT_WORKING ) // gfx scramble
4041GAME( 1990, rodland,  0,        system_A,          rodland, megasys1_state,  rodland,  ROT0,   "Jaleco", "Rod-Land (World)", 0 )
4042GAME( 1990, rodlandj, rodland,  system_A,          rodland, megasys1_state,  rodlandj, ROT0,   "Jaleco", "Rod-Land (Japan)", 0 )
4043GAME( 1990, rodlandjb,rodland,  system_A,          rodland, driver_device,  0,        ROT0,   "bootleg","Rod-Land (Japan bootleg)", 0 )
4087GAME( 1989, stdragona,stdragon, system_A,          stdragon, megasys1_state, stdragona,ROT0,   "Jaleco", "Saint Dragon (set 2)", 0 )
4088GAME( 1990, rodland,  0,        system_A,          rodland,  megasys1_state, rodland,  ROT0,   "Jaleco", "Rod-Land (World)", 0 )
4089GAME( 1990, rodlandj, rodland,  system_A,          rodland,  megasys1_state, rodlandj, ROT0,   "Jaleco", "Rod-Land (Japan)", 0 )
4090GAME( 1990, rodlandjb,rodland,  system_A,          rodland,  driver_device,  0,        ROT0,   "bootleg","Rod-Land (Japan bootleg)", 0 )
40444091GAME( 1991, avspirit, 0,        system_B,          avspirit, megasys1_state, avspirit, ROT0,   "Jaleco", "Avenging Spirit", 0 )
40454092GAME( 1990, phantasm, avspirit, system_A,          phantasm, megasys1_state, phantasm, ROT0,   "Jaleco", "Phantasm (Japan)", 0 )
40464093GAME( 1990, monkelf,  avspirit, system_B,          avspirit, megasys1_state, monkelf,  ROT0,   "bootleg","Monky Elf (Korean bootleg of Avenging Spirit)", GAME_NOT_WORKING )
4047GAME( 1991, edf,      0,        system_B,          edf, megasys1_state,      edf,      ROT0,   "Jaleco", "E.D.F. : Earth Defense Force", 0 )
4048GAME( 1991, edfu,     edf,      system_B,          edf, megasys1_state,      edf,      ROT0,   "Jaleco", "E.D.F. : Earth Defense Force (North America)", 0 )
4049GAME( 1991, edfbl,    edf,      system_Bbl,        edf, megasys1_state,      edfbl,    ROT0,   "bootleg","E.D.F. : Earth Defense Force (bootleg)", GAME_NO_SOUND )
4094GAME( 1991, edf,      0,        system_B,          edf,      megasys1_state, edf,      ROT0,   "Jaleco", "E.D.F. : Earth Defense Force", 0 )
4095GAME( 1991, edfu,     edf,      system_B,          edf,      megasys1_state, edf,      ROT0,   "Jaleco", "E.D.F. : Earth Defense Force (North America)", 0 )
4096GAME( 1991, edfbl,    edf,      system_Bbl,        edf,      megasys1_state, edfbl,    ROT0,   "bootleg","E.D.F. : Earth Defense Force (bootleg)", GAME_NO_SOUND )
40504097GAME( 1991, 64street, 0,        system_C,          64street, megasys1_state, 64street, ROT0,   "Jaleco", "64th. Street - A Detective Story (World)", 0 )
40514098GAME( 1991, 64streetj,64street, system_C,          64street, megasys1_state, 64street, ROT0,   "Jaleco", "64th. Street - A Detective Story (Japan)", 0 )
4052GAME( 1992, soldam,   0,        system_A,          soldam, megasys1_state,   soldam,   ROT0,   "Jaleco", "Soldam", 0 )
4053GAME( 1992, soldamj,  soldam,   system_A,          soldam, megasys1_state,   soldamj,  ROT0,   "Jaleco", "Soldam (Japan)", 0 )
4099GAME( 1992, soldam,   0,        system_A,          soldam,   megasys1_state, soldam,   ROT0,   "Jaleco", "Soldam", 0 )
4100GAME( 1992, soldamj,  soldam,   system_A,          soldam,   megasys1_state, soldamj,  ROT0,   "Jaleco", "Soldam (Japan)", 0 )
40544101GAME( 1992, bigstrik, 0,        system_C,          bigstrik, megasys1_state, bigstrik, ROT0,   "Jaleco", "Big Striker", 0 )
40554102GAME( 1993, chimerab, 0,        system_C,          chimerab, megasys1_state, chimerab, ROT0,   "Jaleco", "Chimera Beast (prototype)", 0 )
40564103GAME( 1993, cybattlr, 0,        system_C,          cybattlr, megasys1_state, cybattlr, ROT90,  "Jaleco", "Cybattler", 0 )

Previous 199869 Revisions Next


© 1997-2024 The MAME Team