Previous 199869 Revisions Next

r40664 Thursday 10th September, 2015 at 17:26:38 UTC by Felipe CorrĂȘa da Silva Sanches
new nw: IGS 027A: Amazonia King V104BR
[src/mame]arcade.lst
[src/mame/drivers]igs_m027.c
[src/mame/machine]pgmcrypt.c pgmcrypt.h

trunk/src/mame/arcade.lst
r249175r249176
99139913
99149914// IGS027A Cpu Games
99159915slqz3           // (c) 1999
9916amazonia        // (c) 1999
99169917fruitpar        // (c) 200?
99179918zhongguo        // (c) 2000
99189919sdwx            // (c) 2002
trunk/src/mame/drivers/igs_m027.c
r249175r249176
6868   DECLARE_DRIVER_INIT(fearless);
6969   DECLARE_DRIVER_INIT(slqz3);
7070   DECLARE_DRIVER_INIT(fruitpar);
71   DECLARE_DRIVER_INIT(amazonia);
7172   TILE_GET_INFO_MEMBER(get_tx_tilemap_tile_info);
7273   TILE_GET_INFO_MEMBER(get_bg_tilemap_tile_info);
7374   virtual void video_start();
r249175r249176
538539
539540
540541
542/***************************************************************************
541543
544Amazonia King
545IGS
546
547IGS PCB-0367-00-FG-1
548
549  - IGS 027A
550  - IGS 031
551  - IGS A2107
552  - IGS T2105
553  - K668 (qfp44) == OKI6225
554  - 82C55
555
556***************************************************************************/
557
558ROM_START( amazonia )
559   ROM_REGION( 0x04000, "maincpu", 0 )
560   /* Internal rom of IGS027A type G ARM based MCU */
561   ROM_LOAD( "amazonia_igs027a", 0x00000, 0x4000, NO_DUMP )
562
563   ROM_REGION( 0x80000, "user1", 0 ) // external ARM data / prg
564   ROM_LOAD( "amazonia_v-104br.u23", 0x00000, 0x80000, CRC(c203f875) SHA1(e8465ac74b873cc4d372a656bb50994bffed8406) )
565
566   ROM_REGION( 0x480000, "gfx1", 0 )
567   ROM_LOAD( "amazonia_cg.u11", 0x000000, 0x80000, CRC(2ac2cfd1) SHA1(f8750a4727ddabf1415dab6eaa4a72e60e86e7f1) )
568
569   ROM_REGION( 0x80000, "oki", 0 )
570   ROM_LOAD( "igs_s2102.u28", 0x00000, 0x80000, CRC(90dda82d) SHA1(67fbc1e8d76b85e124136e2f1df09c8b6c5a8f97) )
571ROM_END
572
573
542574ROM_START( sdwx )
543575   ROM_REGION( 0x04000, "maincpu", 0 )
544576   /* Internal rom of IGS027A ARM based MCU */
r249175r249176
10641096   pgm_create_dummy_internal_arm_region();
10651097}
10661098
1099DRIVER_INIT_MEMBER(igs_m027_state,amazonia)
1100{
1101   amazonia_decrypt(machine());
1102   //sdwx_gfx_decrypt(machine());
1103   pgm_create_dummy_internal_arm_region();
1104}
1105
10671106/***************************************************************************
10681107
10691108    Game Drivers
r249175r249176
10711110***************************************************************************/
10721111
10731112GAME( 1999,  slqz3,     0, igs_majhong, sdwx, igs_m027_state, slqz3,       ROT0, "IGS", "Mahjong Shuang Long Qiang Zhu 3 (China, VS107C)", MACHINE_IS_SKELETON )
1113GAME( 1999,  amazonia,  0, igs_majhong, sdwx, igs_m027_state, amazonia,    ROT0, "IGS", "Amazonia King (V104BR)", MACHINE_IS_SKELETON )
10741114GAME( 200?,  fruitpar,  0, igs_majhong, sdwx, igs_m027_state, fruitpar,    ROT0, "IGS", "Fruit Paradise (V214)", MACHINE_IS_SKELETON )
10751115GAME( 2002,  sdwx,      0, igs_majhong, sdwx, igs_m027_state, sdwx,        ROT0, "IGS", "Sheng Dan Wu Xian", MACHINE_IS_SKELETON ) // aka Christmas 5 Line?
10761116GAME( 200?,  sddz,      0, igs_majhong, sdwx, igs_m027_state, sddz,        ROT0, "IGS", "Super Dou Di Zhu",  MACHINE_IS_SKELETON )
trunk/src/mame/machine/pgmcrypt.c
r249175r249176
15711571      src[i] = x;
15721572   }
15731573}
1574
1575/*FIXME: This is incorrect. Was simply copied from fruitpar as an initial boilerplate code: */
1576static const UINT8 amazonia_tab[0x100] = {
1577   0xe9, 0x0b, 0x95, 0x7e, 0x0d, 0x7d, 0x5c, 0x1e, 0x81, 0x0e, 0xa6, 0xd4, 0x8e, 0x90, 0xd8, 0x54,
1578   0x27, 0x65, 0x51, 0x08, 0x1c, 0xa0, 0x3b, 0x51, 0x83, 0x60, 0x93, 0x02, 0x64, 0x69, 0x77, 0x1a,
1579   0xa4, 0x03, 0xb0, 0xc2, 0x34, 0x18, 0x80, 0x87, 0x7a, 0x88, 0xad, 0xd9, 0xff, 0xd0, 0xce, 0xc4,
1580   0x5b, 0xdc, 0xd5, 0xed, 0x5e, 0x29, 0xdd, 0xcf, 0x80, 0x1f, 0x36, 0x38, 0x8b, 0xae, 0xae, 0xfe,
1581   0x87, 0x27, 0x22, 0x07, 0xe6, 0x5d, 0x46, 0x79, 0xf1, 0xfc, 0xb1, 0x3d, 0x72, 0x29, 0x2c, 0xba,
1582   0xa3, 0x5b, 0x3c, 0xcf, 0x57, 0x79, 0xed, 0x12, 0x67, 0x34, 0xe1, 0x48, 0x5f, 0xa7, 0x9a, 0x24,
1583   0x6a, 0x2e, 0x04, 0x44, 0x7b, 0x84, 0x46, 0x6a, 0xbd, 0x20, 0xca, 0xf7, 0x3e, 0xd1, 0x8b, 0xad,
1584   0xd7, 0x98, 0x9e, 0xa6, 0x5e, 0xc6, 0x04, 0x90, 0x0f, 0x57, 0xae, 0x2b, 0x38, 0x8d, 0xd2, 0x0c,
1585   0x25, 0xd1, 0x6d, 0x73, 0x4b, 0xc6, 0x19, 0xd3, 0xb8, 0xae, 0x11, 0x01, 0xba, 0x02, 0x82, 0x17,
1586   0xcf, 0x4d, 0x14, 0x6a, 0xcd, 0x4a, 0xb9, 0xc1, 0x52, 0x3e, 0xb5, 0xd8, 0x6f, 0x98, 0xee, 0x16,
1587   0x90, 0xc6, 0x76, 0x8a, 0xaf, 0x5a, 0x56, 0x2b, 0xb9, 0x5e, 0x9e, 0x51, 0x40, 0xf4, 0xaa, 0x6e,
1588   0x63, 0x32, 0xb6, 0x12, 0xfb, 0x3c, 0xa5, 0x1f, 0x07, 0xa3, 0x0d, 0x49, 0x5a, 0xfe, 0x88, 0xd1,
1589   0x83, 0xc7, 0x37, 0x82, 0xfd, 0x78, 0x97, 0xec, 0x98, 0xe6, 0x88, 0xe0, 0x27, 0xde, 0x9a, 0x2c,
1590   0x6b, 0xfd, 0x9b, 0x98, 0x40, 0xd5, 0x5f, 0x20, 0x06, 0x3e, 0xcf, 0x74, 0x52, 0xf9, 0x35, 0xae,
1591   0xd6, 0x8c, 0xc7, 0x53, 0x8e, 0x59, 0x71, 0x8c, 0x2d, 0x00, 0xe7, 0xa5, 0xc7, 0xf8, 0xeb, 0xc7,
1592   0xbf, 0x68, 0xdc, 0xf2, 0xf4, 0x4c, 0x80, 0x3e, 0x27, 0xc5, 0x13, 0x52, 0xb0, 0xc0, 0x90, 0x2d
1593};
1594
1595void amazonia_decrypt(running_machine &machine)
1596{
1597   int i;
1598   UINT16 *src = (UINT16 *) machine.root_device().memregion("user1")->base();
1599
1600   int rom_size = 0x80000;
1601
1602   // not 100% verified
1603   for(i=0; i<rom_size/2; i++)
1604   {
1605      UINT16 x = src[i];
1606
1607      IGS27_CRYPT1
1608//      IGS27_CRYPT2
1609//      IGS27_CRYPT3
1610      IGS27_CRYPT4_ALT
1611      IGS27_CRYPT5
1612      IGS27_CRYPT6_ALT
1613      IGS27_CRYPT7
1614      IGS27_CRYPT8
1615
1616      x ^= amazonia_tab[(i>> 1) & 0xff] << 8;
1617
1618      src[i] = x;
1619   }
1620}
trunk/src/mame/machine/pgmcrypt.h
r249175r249176
3636void pgm_decrypt_pgm3in1(running_machine &machine);
3737void slqz3_decrypt(running_machine &machine);
3838void fruitpar_decrypt(running_machine &machine);
39void amazonia_decrypt(running_machine &machine);


Previous 199869 Revisions Next


© 1997-2024 The MAME Team