summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Couriersud <couriersud@users.noreply.github.com>2009-01-25 16:17:31 +0000
committer Couriersud <couriersud@users.noreply.github.com>2009-01-25 16:17:31 +0000
commit6c653b943e2fe046dca39cdec32318ac8d96889b (patch)
treebde97e4b66e39232121bda2b5cbe1a2af054da3a
parentceb0c0ac4a1f950e3b83b22489ef9d9d79437764 (diff)
Spectrum of generated sounds getting near samples.
Still issues with LS123 durations For skip, samples are twice as short For run, samples are twice as long
-rw-r--r--src/emu/sound/disc_dev.c6
-rw-r--r--src/mame/audio/mario.c15
2 files changed, 13 insertions, 8 deletions
diff --git a/src/emu/sound/disc_dev.c b/src/emu/sound/disc_dev.c
index 4e2ef3c865d..508df9b1296 100644
--- a/src/emu/sound/disc_dev.c
+++ b/src/emu/sound/disc_dev.c
@@ -1629,7 +1629,11 @@ static DISCRETE_STEP(dsd_ls624)
node->output[0] = ((double)lst) * (1.0 + context->remain / sample_t) - ((double)context->state) * context->remain / sample_t;
break;
case DISC_LS624_OUT_LOGIC:
- node->output[0] = context->state;
+ /* filter out randomness */
+ if (cntf + cntr > 1)
+ node->output[0] = 1;
+ else
+ node->output[0] = context->state;
break;
case DISC_LS624_OUT_COUNT_F:
node->output[0] = cntf;
diff --git a/src/mame/audio/mario.c b/src/mame/audio/mario.c
index cbf5c4def2a..c869d7cc873 100644
--- a/src/mame/audio/mario.c
+++ b/src/mame/audio/mario.c
@@ -163,8 +163,8 @@ static DISCRETE_SOUND_START(mario)
DISCRETE_LS123(NODE_10, DS_SOUND0_INV, MR_R17, MR_C14)
DISCRETE_RCFILTER(NODE_11, 1, NODE_10, MR_R6, MR_C3)
- DISCRETE_74LS624( NODE_12, 1, NODE_11, VSS, MR_C6, DISC_LS624_OUT_ENERGY)
- DISCRETE_74LS624( NODE_13, 1, NODE_11, VSS, MR_C17, DISC_LS624_OUT_ENERGY)
+ DISCRETE_74LS624( NODE_12, 1, NODE_11, VSS, MR_C6, DISC_LS624_OUT_LOGIC)
+ DISCRETE_74LS624( NODE_13, 1, NODE_11, VSS, MR_C17, DISC_LS624_OUT_LOGIC)
DISCRETE_LOGIC_XOR(NODE_14, 1, NODE_12, NODE_13)
DISCRETE_LOGIC_AND(NODE_15, 1, NODE_14, NODE_10)
@@ -176,8 +176,8 @@ static DISCRETE_SOUND_START(mario)
DISCRETE_LS123(NODE_20, DS_SOUND1_INV, MR_R18, MR_C15)
DISCRETE_RCFILTER(NODE_21, 1, NODE_20, MR_R7, MR_C4)
- DISCRETE_74LS624( NODE_22, 1, NODE_21, VSS, MR_C5, DISC_LS624_OUT_ENERGY)
- DISCRETE_74LS624( NODE_23, 1, NODE_21, VSS, MR_C16, DISC_LS624_OUT_ENERGY)
+ DISCRETE_74LS624( NODE_22, 1, NODE_21, VSS, MR_C5, DISC_LS624_OUT_LOGIC)
+ DISCRETE_74LS624( NODE_23, 1, NODE_21, VSS, MR_C16, DISC_LS624_OUT_LOGIC)
DISCRETE_LOGIC_XOR(NODE_24, 1, NODE_22, NODE_23)
DISCRETE_LOGIC_AND(NODE_25, 1, NODE_24, NODE_20)
@@ -195,7 +195,7 @@ static DISCRETE_SOUND_START(mario)
DISCRETE_LS123(NODE_110, DS_SOUND7_INV, MR_R61, MR_C41)
DISCRETE_TRANSFORM2(NODE_111, NODE_110, TTL_HIGH, "0!1*")
DISCRETE_RCFILTER(NODE_112, 1, NODE_111, MR_R65, MR_C44)
- DISCRETE_74LS624(NODE_113, 1, NODE_112, VSS, MR_C40, DISC_LS624_OUT_ENERGY)
+ DISCRETE_74LS624(NODE_113, 1, NODE_112, VSS, MR_C40, DISC_LS624_OUT_LOGIC)
DISCRETE_LOGIC_XOR(NODE_115, 1, NODE_102, NODE_113)
@@ -228,8 +228,9 @@ static DISCRETE_SOUND_START(mario)
*/
// EZV20 equivalent filter circuit ...
DISCRETE_CRFILTER(NODE_296,1,NODE_295, RES_K(1), CAP_U(4.7))
- DISCRETE_OUTPUT(NODE_296, 32767.0/5.0 * 3 )
- //DISCRETE_WAVELOG1(DS_OUT_DAC, 32767/5.0)
+ DISCRETE_OUTPUT(NODE_296, 32767.0/5.0 * 2)
+ //DISCRETE_WAVELOG2(NODE_296, 32767/5.0 * 2, DS_SOUND0_INV, 10000)
+ //DISCRETE_WAVELOG2(NODE_296, 32767/5.0 * 2, DS_SOUND7_INV, 10000)
DISCRETE_SOUND_END