Previous 199869 Revisions Next

r21748 Saturday 9th March, 2013 at 08:25:27 UTC by Fabio Priuli
got rid of a redundant variable. nw.
[src/mame/includes]snes.h
[src/mess/machine]snes7110.c snescart.c

trunk/src/mame/includes/snes.h
r21747r21748
649649
650650   /* cart related */
651651   UINT8 m_has_addon_chip;
652   UINT32 m_cart_size;
653652   snes_cart_info m_cart[2];   // the second one is used by MESS for Sufami Turbo and, eventually, BS-X
654653   void rom_map_setup(UINT32 size);
655654
trunk/src/mess/machine/snes7110.c
r21747r21748
921921   snes_spc7110.r4841 = 0x00;
922922   snes_spc7110.r4842 = 0x00;
923923
924   snes_spc7110.size = state->m_cart_size;
924   snes_spc7110.size = state->m_cart[0].m_rom_size;
925925
926926   snes_spc7110.decomp = auto_alloc(machine, SPC7110Decomp(machine, snes_spc7110.size));
927927}
trunk/src/mess/machine/snescart.c
r21747r21748
330330/* This determines if a cart is in Mode 20, 21, 22 or 25; sets state->m_cart[0].mode and
331331 state->m_cart[0].sram_max accordingly; and returns the offset of the internal header
332332 (needed to detect BSX and ST carts) */
333static UINT32 snes_find_hilo_mode( device_image_interface &image, UINT8 *buffer, UINT32 len, UINT32 offset, int cartid )
333static UINT32 snes_find_hilo_mode( device_image_interface &image, UINT8 *buffer, UINT32 len, int cartid )
334334{
335335   snes_state *state = image.device().machine().driver_data<snes_state>();
336336   UINT8 valid_mode20, valid_mode21, valid_mode25;
r21747r21748
347347
348348   if ((valid_mode20 >= valid_mode21) && (valid_mode20 >= valid_mode25))
349349   {
350      if ((buffer[0x007fd5] == 0x32) || ((state->m_cart_size - offset) > 0x401000))
350      if (buffer[0x007fd5] == 0x32 || len > 0x401000)
351351         state->m_cart[cartid].mode = SNES_MODE_22;  // ExLoRom
352352      else
353353         state->m_cart[cartid].mode = SNES_MODE_20;  // LoRom
r21747r21748
567567   device_image_interface *image = dynamic_cast<device_image_interface *>(machine.device("cart"));
568568   char title[21], rom_id[4], company_id[2];
569569   int i, company, has_ram = 0, has_sram = 0;
570   UINT32 offset = snes_skip_header(*image, state->m_cart_size);
571   UINT32 hilo_mode = snes_find_hilo_mode(*image, ROM, len, offset, 0);
570   UINT32 hilo_mode = snes_find_hilo_mode(*image, ROM, len, 0);
572571
573572   /* Company */
574573   for (i = 0; i < 2; i++)
r21747r21748
598597      ((ROM[hilo_mode + 0x16] & 0xf) == 6))
599598      has_sram = 1;
600599
601   int total_blocks = (state->m_cart[0].m_rom_size - offset) / (state->m_cart[0].mode & 0xa5 ? 0x8000 : 0x10000);
600   int total_blocks = len / (state->m_cart[0].mode & 0xa5 ? 0x8000 : 0x10000);
602601
603602   logerror( "ROM DETAILS\n" );
604603   logerror( "===========\n\n" );
r21747r21748
647646   UINT32 offset, int_header_offs;
648647
649648   if (image.software_entry() == NULL)
650      m_cart_size = image.length();
649      m_cart[0].m_rom_size = image.length();
651650   else
652      m_cart_size = image.get_software_region_length("rom");
651      m_cart[0].m_rom_size = image.get_software_region_length("rom");
653652
654653   // Check for a header (512 bytes), and skip it if found
655   offset = snes_skip_header(image, m_cart_size);
654   offset = snes_skip_header(image, m_cart[0].m_rom_size);
655   m_cart[0].m_rom_size -= offset;
656656
657657   // Allocate rom pointer
658   m_cart[0].m_rom_size = m_cart_size - offset;
659658   m_cart[0].m_rom = auto_alloc_array_clear(machine(), UINT8, m_cart[0].m_rom_size);
660659
661660   if (image.software_entry() == NULL)
662661   {
663662      image.fseek(offset, SEEK_SET);
664      image.fread(m_cart[0].m_rom, m_cart_size - offset);
663      image.fread(m_cart[0].m_rom, m_cart[0].m_rom_size);
665664   }
666665   else
667      memcpy(m_cart[0].m_rom, image.get_software_region("rom") + offset, m_cart_size - offset);
666      memcpy(m_cart[0].m_rom, image.get_software_region("rom") + offset, m_cart[0].m_rom_size);
668667
669   if (SNES_CART_DEBUG) mame_printf_error("size %08X\n", m_cart_size - offset);
668   if (SNES_CART_DEBUG) mame_printf_error("size %08X\n", m_cart[0].m_rom_size);
670669
671670   // Setup the bank map to handle mirroring of ROM up to 8MB of accessible memory
672671   rom_map_setup(m_cart[0].m_rom_size);
673672
674673   // Check if the cart is HiROM or LoROM (and set variables accordingly)
675   int_header_offs = snes_find_hilo_mode(image, m_cart[0].m_rom, m_cart[0].m_rom_size, offset, 0);
674   int_header_offs = snes_find_hilo_mode(image, m_cart[0].m_rom, m_cart[0].m_rom_size, 0);
676675
677676   // Detect BS-X carts:
678677   // 1. Detect BS-X Flash Cart
r21747r21748
803802      slot_id = 1;
804803
805804   if (image.software_entry() == NULL)
806      m_cart_size = image.length();
805      m_cart[slot_id].m_rom_size = image.length();
807806   else
808      m_cart_size = image.get_software_region_length("rom");
807      m_cart[slot_id].m_rom_size = image.get_software_region_length("rom");
809808
810809   // Check for a header (512 bytes), and skip it if found
811   offset = snes_skip_header(image, m_cart_size);
810   offset = snes_skip_header(image, m_cart[slot_id].m_rom_size);
811   m_cart[slot_id].m_rom_size -= offset;
812812
813813   // Allocate rom pointer
814   m_cart[slot_id].m_rom_size = m_cart_size;
815814   m_cart[slot_id].m_rom = auto_alloc_array_clear(machine(), UINT8, m_cart[slot_id].m_rom_size);
816815
817816   if (image.software_entry() == NULL)
818817   {
819818      image.fseek(offset, SEEK_SET);
820      image.fread(m_cart[slot_id].m_rom, m_cart_size - offset);
819      image.fread(m_cart[slot_id].m_rom, m_cart[slot_id].m_rom_size);
821820   }
822821   else
823      memcpy(m_cart[slot_id].m_rom, image.get_software_region("rom") + offset, m_cart_size - offset);
822      memcpy(m_cart[slot_id].m_rom, image.get_software_region("rom") + offset, m_cart[slot_id].m_rom_size);
824823
825   if (SNES_CART_DEBUG) mame_printf_error("size %08X\n", m_cart_size - offset);
824   if (SNES_CART_DEBUG) mame_printf_error("size %08X\n", m_cart[slot_id].m_rom_size);
826825
827826   // Setup the bank map to handle mirroring of ROM
828827   rom_map_setup(m_cart[slot_id].m_rom_size);

Previous 199869 Revisions Next


© 1997-2024 The MAME Team