aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgameblabla2019-03-07 20:47:17 +0100
committergameblabla2019-03-07 20:54:58 +0100
commit210476c77ec6d0160e66ab6e9a45ad64fe5e50ce (patch)
tree31cc5c66894565def02e861c227ca5c3960987c4
parentbebe989ba22f0bac230a0b8a75617ae895ea274f (diff)
downloadpcsx_rearmed-210476c77ec6d0160e66ab6e9a45ad64fe5e50ce.tar.gz
pcsx_rearmed-210476c77ec6d0160e66ab6e9a45ad64fe5e50ce.tar.bz2
pcsx_rearmed-210476c77ec6d0160e66ab6e9a45ad64fe5e50ce.zip
Diablo Music fix for PCSX Rearmed. (optional hack)
Let's also allow it to be changed from the menu. Set to off by default as it could cause issues in some other games.
-rw-r--r--frontend/main.c1
-rw-r--r--frontend/menu.c2
-rw-r--r--maemo/main.c2
-rw-r--r--plugins/dfsound/registers.c2
-rw-r--r--plugins/dfsound/spu_config.h1
5 files changed, 6 insertions, 2 deletions
diff --git a/frontend/main.c b/frontend/main.c
index a824fdc..43a5548 100644
--- a/frontend/main.c
+++ b/frontend/main.c
@@ -138,6 +138,7 @@ void emu_set_default_config(void)
pl_rearmed_cbs.gpu_peopsgl.iTexGarbageCollection = 1;
spu_config.iUseReverb = 1;
+ spu_config.idiablofix = 0;
spu_config.iUseInterpolation = 1;
spu_config.iXAPitch = 0;
spu_config.iVolume = 768;
diff --git a/frontend/menu.c b/frontend/menu.c
index cf9382a..0b3f553 100644
--- a/frontend/menu.c
+++ b/frontend/menu.c
@@ -443,6 +443,7 @@ static const struct {
CE_INTVAL_P(gpu_peopsgl.iTexGarbageCollection),
CE_INTVAL_P(gpu_peopsgl.dwActFixes),
CE_INTVAL(spu_config.iUseReverb),
+ CE_INTVAL(spu_config.idiablofix),
CE_INTVAL(spu_config.iXAPitch),
CE_INTVAL(spu_config.iUseInterpolation),
CE_INTVAL(spu_config.iTempo),
@@ -1454,6 +1455,7 @@ static menu_entry e_menu_plugin_spu[] =
mee_range_h ("Volume boost", 0, volume_boost, -5, 30, h_spu_volboost),
mee_onoff ("Reverb", 0, spu_config.iUseReverb, 1),
mee_enum ("Interpolation", 0, spu_config.iUseInterpolation, men_spu_interp),
+ mee_onoff ("Diablo Music fix", 0, spu_config.idiablofix, 1),
mee_onoff ("Adjust XA pitch", 0, spu_config.iXAPitch, 1),
mee_onoff_h ("Adjust tempo", 0, spu_config.iTempo, 1, h_spu_tempo),
mee_end,
diff --git a/maemo/main.c b/maemo/main.c
index 85db400..c382c51 100644
--- a/maemo/main.c
+++ b/maemo/main.c
@@ -197,7 +197,7 @@ int main(int argc, char **argv)
strcpy(Config.Bios, "HLE");
spu_config.iUseReverb = 1;
spu_config.iUseInterpolation = 1;
-
+ spu_config.idiablofix = 0;
in_type1 = PSE_PAD_TYPE_STANDARD;
in_type2 = PSE_PAD_TYPE_STANDARD;
diff --git a/plugins/dfsound/registers.c b/plugins/dfsound/registers.c
index 91bcaf8..bb64658 100644
--- a/plugins/dfsound/registers.c
+++ b/plugins/dfsound/registers.c
@@ -352,7 +352,7 @@ static void SoundOn(int start,int end,unsigned short val)
if((val&1) && regAreaGet(ch,6)) // mmm... start has to be set before key on !?!
{
spu.s_chan[ch].pCurr=spu.spuMemC+((regAreaGet(ch,6)&~1)<<3); // must be block aligned
- spu.s_chan[ch].pLoop=spu.spuMemC+((regAreaGet(ch,14)&~1)<<3);
+ if (spu_config.idiablofix == 0) spu.s_chan[ch].pLoop=spu.spuMemC+((regAreaGet(ch,14)&~1)<<3);
spu.dwNewChannel|=(1<<ch);
}
}
diff --git a/plugins/dfsound/spu_config.h b/plugins/dfsound/spu_config.h
index 3e88a2c..6b46bf3 100644
--- a/plugins/dfsound/spu_config.h
+++ b/plugins/dfsound/spu_config.h
@@ -7,6 +7,7 @@ typedef struct
int iUseReverb;
int iUseInterpolation;
int iTempo;
+ int idiablofix;
int iUseThread;
int iUseFixedUpdates; // output fixed number of samples/frame