Skip to content

Commit

Permalink
Map OSROM to physical 600000h to 67ffffh if machine type is Marty. Th…
Browse files Browse the repository at this point in the history
…anks aochan for finding it!
  • Loading branch information
captainys committed Dec 10, 2024
1 parent 187132f commit 2923e6b
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 3 deletions.
6 changes: 5 additions & 1 deletion src/towns/memory/physmem.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -695,6 +695,7 @@ void TownsPhysicalMemory::SetUpMemoryAccess(unsigned int townsType,unsigned int

if(TOWNSTYPE_MARTY==townsType)
{
mem.AddAccess(&osROMAccess,TOWNSADDR_MARTY_OSROM_BASE,TOWNSADDR_MARTY_OSROM_END-1);
mem.AddAccess(&martyROMAccess,TOWNSADDR_MARTY_ROM0_BASE,TOWNSADDR_MARTY_ROM3_END-1);
}

Expand All @@ -721,7 +722,10 @@ void TownsPhysicalMemory::SetUpMemoryAccess(unsigned int townsType,unsigned int
mem.AddAccess(&nativeCMOSRAMAccess,TOWNSADDR_386SX_NATIVE_CMOSRAM_BASE,TOWNSADDR_386SX_NATIVE_CMOSRAM_END-1);
mem.AddAccess(&spriteRAMAccess,TOWNSADDR_386SX_SPRITERAM_BASE,TOWNSADDR_386SX_SPRITERAM_END-1);
mem.AddAccess(&oldMemCardAccess,TOWNSADDR_386SX_MEMCARD_BASE,TOWNSADDR_386SX_MEMCARD_END-1);
mem.AddAccess(&osROMAccess,TOWNSADDR_386SX_OSROM_BASE,TOWNSADDR_386SX_OSROM_END-1);
if(TOWNSTYPE_MARTY!=townsType)
{
mem.AddAccess(&osROMAccess,TOWNSADDR_386SX_OSROM_BASE,TOWNSADDR_386SX_OSROM_END-1);
}
mem.AddAccess(&fontROMAccess,TOWNSADDR_386SX_FONT_BASE,TOWNSADDR_386SX_FONT_END-1);
mem.AddAccess(&waveRAMAccess,TOWNSADDR_386SX_WAVERAM_WINDOW_BASE,TOWNSADDR_386SX_WAVERAM_WINDOW_END-1);
mem.AddAccess(&sysROMAccess,TOWNSADDR_386SX_SYSROM_BASE,TOWNSADDR_386SX_SYSROM_END-1);
Expand Down
4 changes: 2 additions & 2 deletions src/towns/towns.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1159,8 +1159,8 @@ void FMTownsCommon::SetMainRAMSize(long long int size)
uint64_t RAMEnd=0x7FFFFFFF;
if(TOWNSTYPE_MARTY==townsType)
{
size=std::min<uint64_t>(size,TOWNSADDR_MARTY_ROM0_BASE);
RAMEnd=TOWNSADDR_MARTY_ROM0_BASE-1;
size=std::min<uint64_t>(size,TOWNSADDR_MARTY_OSROM_BASE);
RAMEnd=TOWNSADDR_MARTY_OSROM_BASE-1;
}
else if(TOWNSCPU_80386SX==TownsTypeToCPUType(townsType))
{
Expand Down
3 changes: 3 additions & 0 deletions src/towns/townsdef/townsdef.h
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,9 @@ enum
#define TOWNSADDR_SYSROM_AND 0x0003FFFF


// Marty has OSROM from 0x600000. Thanks aochan for checking!
#define TOWNSADDR_MARTY_OSROM_BASE 0x600000 ; If something else is found before 0x600000, update also FMTowns::SetRAMSize function.
#define TOWNSADDR_MARTY_OSROM_END 0x680000

#define TOWNSADDR_MARTY_ROM0_BASE 0x680000
#define TOWNSADDR_MARTY_ROM0_END 0x700000
Expand Down

0 comments on commit 2923e6b

Please sign in to comment.