--- np2/sound/soundrom.c 2003/10/16 17:58:08 1.1.1.1 +++ 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,22 +10,24 @@ 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; - milstr_ncpy(romname, file_sound, sizeof(romname)); + file_cpyname(romname, file_sound, sizeof(romname)); if (name) { - milstr_ncat(romname, name, sizeof(romname)); + file_catname(romname, name, sizeof(romname)); } - milstr_ncat(romname, file_extrom, sizeof(romname)); - fh = file_open_c(romname); + file_catname(romname, file_extrom, sizeof(romname)); + getbiospath(path, romname, sizeof(path)); + fh = file_open_rb(path); if (fh == FILEH_INVALID) { goto lsr_err; } @@ -33,8 +36,14 @@ static BOOL loadsoundrom(UINT address, c if (rsize != 0x4000) { goto lsr_err; } - milstr_ncpy(soundrom.name, romname, sizeof(soundrom.name)); + 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);