--- np2/sound/soundrom.c 2003/10/18 01:21:58 1.2 +++ np2/sound/soundrom.c 2005/02/07 14:46:12 1.9 @@ -1,6 +1,7 @@ #include "compiler.h" #include "dosio.h" -#include "memory.h" +#include "cpucore.h" +#include "pccore.h" #include "soundrom.h" @@ -9,13 +10,14 @@ static const char file_sound[] = "sound"; static const char file_extrom[] = ".rom"; -static const BYTE defsoundrom[9] = { +static const UINT8 defsoundrom[9] = { 0x01,0x00,0x00,0x00,0xd2,0x00,0x08,0x00,0xcb}; static BOOL loadsoundrom(UINT address, const char *name) { char romname[24]; + char path[MAX_PATH]; FILEH fh; UINT rsize; @@ -24,7 +26,8 @@ static BOOL loadsoundrom(UINT address, c file_catname(romname, name, sizeof(romname)); } file_catname(romname, file_extrom, sizeof(romname)); - fh = file_open_c(romname); + getbiospath(path, romname, sizeof(path)); + fh = file_open_rb(path); if (fh == FILEH_INVALID) { goto lsr_err; } @@ -35,6 +38,12 @@ static BOOL loadsoundrom(UINT address, c } file_cpyname(soundrom.name, romname, sizeof(soundrom.name)); soundrom.address = address; + if (address == 0xd0000) { + CPU_RAM_D000 &= ~(0x0f << 0); + } + else if (address == 0xd4000) { + CPU_RAM_D000 &= ~(0x0f << 4); + } return(SUCCESS); lsr_err: @@ -64,7 +73,7 @@ void soundrom_load(UINT32 address, const soundrom.address = address; } -void soundrom_loadex(BYTE sw, const char *primary) { +void soundrom_loadex(UINT sw, const char *primary) { if (sw < 4) { soundrom_load((0xc8000 + ((UINT32)sw << 14)), primary);