aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornotaz2019-03-13 00:56:19 +0200
committerGitHub2019-03-13 00:56:19 +0200
commit8a55ebcc07d4f860633db8c77bb9e16bcfa03313 (patch)
tree44014f43d1464c981448e374e7d02bff3bdf615e
parent3de7d67356c1db36689ae53156944426d77f418f (diff)
parent210476c77ec6d0160e66ab6e9a45ad64fe5e50ce (diff)
downloadpcsx_rearmed-8a55ebcc07d4f860633db8c77bb9e16bcfa03313.tar.gz
pcsx_rearmed-8a55ebcc07d4f860633db8c77bb9e16bcfa03313.tar.bz2
pcsx_rearmed-8a55ebcc07d4f860633db8c77bb9e16bcfa03313.zip
Merge pull request #123 from gameblabla/diablofix_hack
Diablo Music fix for PCSX Rearmed. (optional hack)
-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