@@ -665,7 +665,7 @@ u32 function_cc read_eeprom(void)
665665 \
666666 case 0x03: \
667667 /* internal work RAM */ \
668- value = readaddress ##type (iwram, (address & 0x7FFF) + 0x8000); \
668+ value = readaddress ##type (iwram, (address & 0x7FFF) + ( 0x8000 * SMC_DETECTION)); \
669669 break; \
670670 \
671671 case 0x04: \
@@ -1418,7 +1418,7 @@ void function_cc write_gpio(u32 address, u32 value) {
14181418 \
14191419 case 0x03: \
14201420 /* internal work RAM */ \
1421- address ##type (iwram, (address & 0x7FFF) + 0x8000) = eswap##type(value); \
1421+ address ##type (iwram, (address & 0x7FFF) + ( 0x8000 * SMC_DETECTION) ) = eswap##type(value); \
14221422 break; \
14231423 \
14241424 case 0x04: \
@@ -1730,7 +1730,7 @@ const dma_region_type dma_region_map[17] =
17301730 } \
17311731
17321732#define dma_read_iwram (type , tfsize ) \
1733- read_value = readaddress##tfsize(iwram + 0x8000, type##_ptr & 0x7FFF) \
1733+ read_value = readaddress##tfsize(iwram + ( 0x8000 * SMC_DETECTION) , type##_ptr & 0x7FFF) \
17341734
17351735#define dma_read_vram (type , tfsize ) { \
17361736 u32 rdaddr = type##_ptr & 0x1FFFF; \
@@ -1763,9 +1763,9 @@ const dma_region_type dma_region_map[17] =
17631763 read_value = read_memory##tfsize(type##_ptr) \
17641764
17651765#define dma_write_iwram (type , tfsize ) \
1766- address##tfsize(iwram + 0x8000, type##_ptr & 0x7FFF) = \
1766+ address##tfsize(iwram + ( 0x8000 * SMC_DETECTION) , type##_ptr & 0x7FFF) = \
17671767 eswap##tfsize(read_value); \
1768- if (address##tfsize(iwram, type##_ptr & 0x7FFF)) \
1768+ if (SMC_DETECTION && address##tfsize(iwram, type##_ptr & 0x7FFF)) \
17691769 alerts |= CPU_ALERT_SMC; \
17701770
17711771#define dma_write_vram (type , tfsize ) { \
@@ -1788,7 +1788,7 @@ const dma_region_type dma_region_map[17] =
17881788
17891789#define dma_write_ewram (type , tfsize ) \
17901790 address##tfsize(ewram, type##_ptr & 0x3FFFF) = eswap##tfsize(read_value); \
1791- if (address##tfsize(ewram, (type##_ptr & 0x3FFFF) + 0x40000)) \
1791+ if (SMC_DETECTION && address##tfsize(ewram, (type##_ptr & 0x3FFFF) + 0x40000)) \
17921792 alerts |= CPU_ALERT_SMC; \
17931793
17941794#define print_line () \
@@ -2261,7 +2261,7 @@ void init_memory(void)
22612261 map_region (read , 0x0000000 , 0x1000000 , 1 , bios_rom );
22622262 map_null (read , 0x1000000 , 0x2000000 );
22632263 map_region (read , 0x2000000 , 0x3000000 , 8 , ewram );
2264- map_region (read , 0x3000000 , 0x4000000 , 1 , & iwram [0x8000 ]);
2264+ map_region (read , 0x3000000 , 0x4000000 , 1 , & iwram [0x8000 * SMC_DETECTION ]);
22652265 map_region (read , 0x4000000 , 0x5000000 , 1 , io_registers );
22662266 map_null (read , 0x5000000 , 0x6000000 );
22672267 map_null (read , 0x6000000 , 0x7000000 );
@@ -2381,7 +2381,7 @@ bool memory_read_savestate(const u8 *src)
23812381 return false;
23822382
23832383 if (!(
2384- bson_read_bytes (memdoc , "iwram" , & iwram [0x8000 ], 0x8000 ) &&
2384+ bson_read_bytes (memdoc , "iwram" , & iwram [0x8000 * SMC_DETECTION ], 0x8000 ) &&
23852385 bson_read_bytes (memdoc , "ewram" , ewram , 0x40000 ) &&
23862386 bson_read_bytes (memdoc , "vram" , vram , sizeof (vram )) &&
23872387 bson_read_bytes (memdoc , "oamram" , oam_ram , sizeof (oam_ram )) &&
@@ -2443,7 +2443,7 @@ unsigned memory_write_savestate(u8 *dst)
24432443 u32 rtc_data_array [2 ] = { (u32 )rtc_data , (u32 )(rtc_data >> 32 ) };
24442444
24452445 bson_start_document (dst , "memory" , wbptr );
2446- bson_write_bytes (dst , "iwram" , & iwram [0x8000 ], 0x8000 );
2446+ bson_write_bytes (dst , "iwram" , & iwram [0x8000 * SMC_DETECTION ], 0x8000 );
24472447 bson_write_bytes (dst , "ewram" , ewram , 0x40000 );
24482448 bson_write_bytes (dst , "vram" , vram , sizeof (vram ));
24492449 bson_write_bytes (dst , "oamram" , oam_ram , sizeof (oam_ram ));
0 commit comments