#pragma once

enum class MemoryType
{
	SnesMemory,
	SpcMemory,
	Sa1Memory,
	NecDspMemory,
	GsuMemory,
	Cx4Memory,
	GameboyMemory,
	NesMemory,
	NesPpuMemory,
	PceMemory,
	SmsMemory,
	GbaMemory,
	WsMemory,

	SnesPrgRom,
	SnesWorkRam,
	SnesSaveRam,
	SnesVideoRam,
	SnesSpriteRam,
	SnesCgRam,
	SnesRegister,
	SpcRam,
	SpcRom,
	SpcDspRegisters,
	DspProgramRom,
	DspDataRom,
	DspDataRam,
	Sa1InternalRam,
	GsuWorkRam,
	Cx4DataRam,
	BsxPsRam,
	BsxMemoryPack,

	GbPrgRom,
	GbWorkRam,
	GbCartRam,
	GbHighRam,
	GbBootRom,
	GbVideoRam,
	GbSpriteRam,

	NesPrgRom,
	NesInternalRam,
	NesWorkRam,
	NesSaveRam,
	NesNametableRam,
	NesMapperRam,
	NesSpriteRam,
	NesSecondarySpriteRam,
	NesPaletteRam,
	NesChrRam,
	NesChrRom,

	PcePrgRom,
	PceWorkRam,
	PceSaveRam,
	PceCdromRam,
	PceCardRam,
	PceAdpcmRam,
	PceArcadeCardRam,
	PceVideoRam,
	PceVideoRamVdc2,
	PceSpriteRam,
	PceSpriteRamVdc2,
	PcePaletteRam,

	SmsPrgRom,
	SmsWorkRam,
	SmsCartRam,
	SmsBootRom,
	SmsVideoRam,
	SmsPaletteRam,
	SmsPort,

	GbaPrgRom,
	GbaBootRom,
	GbaSaveRam,
	GbaIntWorkRam,
	GbaExtWorkRam,
	GbaVideoRam,
	GbaSpriteRam,
	GbaPaletteRam,
	
	WsPrgRom,
	WsWorkRam,
	WsCartRam,
	WsCartEeprom,
	WsBootRom,
	WsInternalEeprom,
	WsPort,

	None
};