diff --git a/libretro/libretro.h b/libretro/libretro.h index 6de87836..c6ac4c62 100755 --- a/libretro/libretro.h +++ b/libretro/libretro.h @@ -651,9 +651,14 @@ enum retro_mod // Can be called from retro_init and retro_load_game. // -#define RETRO_MEMDESC_CONST (1 << 0) // The frontend will never change this memory area once retro_load_game has returned. -#define RETRO_MEMDESC_BIGENDIAN (1 << 1) // The memory area contains big endian data. Default is little endian. -#define RETRO_MEMDESC_ALIGNED (1 << 2) // All memory access in this area is aligned to their own size, and no non-power-of-two sized data exists. +#define RETRO_MEMDESC_CONST (1 << 0) // The frontend will never change this memory area once retro_load_game has returned. +#define RETRO_MEMDESC_BIGENDIAN (1 << 1) // The memory area contains big endian data. Default is little endian. +#define RETRO_MEMDESC_ALIGN_2 (1 << 16) // All memory access in this area is aligned to their own size, or 2, whichever is smaller. +#define RETRO_MEMDESC_ALIGN_4 (2 << 16) +#define RETRO_MEMDESC_ALIGN_8 (3 << 16) +#define RETRO_MEMDESC_MINSIZE_2 (1 << 24) // All memory in this region is accessed at least 2 bytes at the time. +#define RETRO_MEMDESC_MINSIZE_4 (2 << 24) +#define RETRO_MEMDESC_MINSIZE_8 (3 << 24) struct retro_memory_descriptor { uint64_t flags; diff --git a/memmap.cpp b/memmap.cpp index ce8165d3..911c6182 100644 --- a/memmap.cpp +++ b/memmap.cpp @@ -3330,6 +3330,7 @@ void CMemory::Map_SA1LoROMMap (void) desc.start=0x400000; desc.select=0xC00000; desc.disconnect=0xFE0000; + desc.len=0x20000; S9xAppendMapping(&desc); #endif