Previous 15994 Revisions Next

r784 Thursday 2nd August, 2007 at 17:32:36 UTC by Wilbert Pol
[SMS] Added support for Jang Pung II (Korean) to the codemasters mapper code.
[src/mess/machine]sms.c

src/mess/machine/sms.c
r783r784
702702   return retval;
703703}
704704
705/* Check for Codemasters mapper
706  0x7FE3 - 93 - sms Cosmis Spacehead
707              - sms Dinobasher
708              - sms The Excellent Dizzy Collection
709              - sms Fantastic Dizzy
710              - sms Micro Machines
711              - gamegear Cosmic Spacehead
712              - gamegear Micro Machines
713         - 94 - gamegear Dropzone
714              - gamegear Ernie Els Golf (also has 64KB additional RAM on the cartridge)
715              - gamegear Pete Sampras Tennis
716              - gamegear S.S. Lucifer
717         - 95 - gamegear Micro Machines 2 - Turbo Tournament
718
719The Korean game Jang Pung II also seems to use a codemasters style mapper.
720 */
721static int detect_codemasters_mapper( UINT8 *rom ) {
722   UINT8   jang_pung2[16] = { 0x00, 0xBA, 0x38, 0x0D, 0x00, 0xB8, 0x38, 0x0C, 0x00, 0xB6, 0x38, 0x0B, 0x00, 0xB4, 0x38, 0x0A };
723
724   if ( ( ( rom[0x7fe0] & 0x0F ) <= 9 ) &&
725        ( rom[0x7fe3] == 0x93 || rom[0x7fe3] == 0x94 || rom[0x7fe3] == 0x95 ) &&
726        rom[0x7fef] == 0x00 ) {
727      return 1;
728   }
729
730   if ( ! memcmp( &rom[0x7ff0], jang_pung2, 16 ) ) {
731      return 1;
732   }
733
734   return 0;
735}
736
737static int detect_korean_mapper( UINT8 *rom ) {
738   UINT8   signatures[2][16] = {
739      { 0x3E, 0x11, 0x32, 0x00, 0xA0, 0x78, 0xCD, 0x84, 0x85, 0x3E, 0x02, 0x32, 0x00, 0xA0, 0xC9, 0xFF }, /* Dodgeball King */
740      { 0x41, 0x48, 0x37, 0x37, 0x44, 0x37, 0x4E, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20 },   /* Sangokushi 3 */
741   };
742   int i;
743
744   for( i = 0; i < 2; i++ ) {
745      if ( !memcmp( &rom[0x7ff0], signatures[i], 16 ) ) {
746         return 1;
747      }
748   }
749   return 0;
750}
751
705752DEVICE_INIT( sms_cart ) {
706753   int i;
707754
r783r784
800847      /* If no extrainfo information is available try to find special information out on our own */
801848      /* Check for special cartridge features */
802849      if ( size >= 0x8000 ) {
803         /* Check for Codemasters mapper
804           0x7FE3 - 93 - sms Cosmis Spacehead
805                       - sms Dinobasher
806                       - sms The Excellent Dizzy Collection
807                       - sms Fantastic Dizzy
808                       - sms Micro Machines
809                       - gamegear Cosmic Spacehead
810                       - gamegear Micro Machines
811                  - 94 - gamegear Dropzone
812                       - gamegear Ernie Els Golf (also has 64KB additional RAM on the cartridge)
813                       - gamegear Pete Sampras Tennis
814                       - gamegear S.S. Lucifer
815                  - 95 - gamegear Micro Machines 2 - Turbo Tournament
816          */
817         if ( ( ( sms_cartridge[index].ROM[0x7fe0] & 0x0F ) <= 9 ) &&
818              ( sms_cartridge[index].ROM[0x7fe3] == 0x93 || sms_cartridge[index].ROM[0x7fe3] == 0x94 || sms_cartridge[index].ROM[0x7fe3] == 0x95 ) &&
819              sms_cartridge[index].ROM[0x7fef] == 0x00 ) {
850         /* Check for special mappers */
851         if ( detect_codemasters_mapper( sms_cartridge[index].ROM ) ) {
820852            sms_cartridge[index].features |= CF_CODEMASTERS_MAPPER;
821853         }
822         /* Check for special Korean games mapper used by:
823            - Dodgeball King/Dallyeora Pigu-Wang
824            - Sangokushi 3
825          */
826         if ( ( sms_cartridge[index].ROM[0x7ff0] == 0x3e && sms_cartridge[index].ROM[0x7ff1] == 0x11 ) ||  /* Dodgeball King */
827              ( sms_cartridge[index].ROM[0x7ff0] == 0x41 && sms_cartridge[index].ROM[0x7ff1] == 0x48 ) ) { /* Sangokushi 3 */
854         if ( detect_korean_mapper( sms_cartridge[index].ROM ) ) {
828855            sms_cartridge[index].features |= CF_KOREAN_MAPPER;
829856         }
830857      }

Previous 15994 Revisions Next


© 1998-2018 The MESS Team