|
Post by tascodlx on Jul 6, 2010 21:22:55 GMT -5
Is it quiet on the title screen?
|
|
|
Post by evildragon on Jul 6, 2010 21:26:45 GMT -5
Is it quiet on the title screen? Yes, it is quiet.
|
|
|
Post by tomaitheous on Jul 6, 2010 22:43:51 GMT -5
Not sure if this is what might be causing some problems: Some NES music engines where known to use the highest frequency setting to turn off channels ( like square channels), instead of the real way through the proper register. On a real nes, this is filtered out and you don't hear it (it's too high to hear anyway). Does SMB do this? If so, did you take this into account? I have APU emulation running for SMB currently, but I don't have any debug code at the moment to check ( and I'm lazy ). Might be worth checking out. This tripped me up early on, a few of years back.
|
|
|
Post by Mairtrus on Jul 7, 2010 16:24:05 GMT -5
Nope. It set the master reg to 0 to silence all the channel. Also, is strange in the title screen is quiet, since here all the channels are muted using the same routine that silence the channels when the game is paused...
|
|
|
Post by evildragon on Jul 7, 2010 16:59:21 GMT -5
Well maybe 0 on real hardware isn't really as muted as everyone thinks it is.
Because the sound is definitely coming from the YM2612 (attached headphones directly to the 2612 output pins.)
It can be reproduced easily, just pause the game during the overworld theme.. And plug headphones into model 1 headphone jack at full volume.. You'll hear it.
|
|
|
Post by jlf65 on Jul 8, 2010 0:45:15 GMT -5
Shutting down the YM2612 is a real pain. I had a few versions on code on my Neo Myth menu before I got it right (the menu needs to turn off the sound when you reset back to the menu)... seriously, reseting the 32X was easier than muting the YM2612. Here's my code for that:
| reset YM2612 lea FMReset(pc),a5 lea 0x00A00000,a0 move.w #0x4000,d1 moveq #26,d2 0: move.b (a5)+,d1 /* FM reg */ move.b (a5)+,0(a0,d1.w) /* FM data */ nop nop dbra d2,0b
FMReset: /* disable LFO */ .byte 0,0x22 .byte 1,0x00 /* disable timer & set channel 6 to normal mode */ .byte 0,0x27 .byte 1,0x00 /* all KEY_OFF */ .byte 0,0x28 .byte 1,0x00 .byte 1,0x04 .byte 1,0x01 .byte 1,0x05 .byte 1,0x02 .byte 1,0x06 .byte 1,0x03 .byte 1,0x07 /* disable DAC */ .byte 0,0x2B .byte 1,0x00 /* turn off channels */ .byte 0,0xB4 .byte 1,0x00 .byte 0,0xB5 .byte 1,0x00 .byte 0,0xB6 .byte 1,0x00 .byte 2,0xB4 .byte 3,0x00 .byte 2,0xB5 .byte 3,0x00 .byte 2,0xB6 .byte 3,0x00
|
|
|
Post by Tiido on Jul 8, 2010 22:41:12 GMT -5
One way to mute the YM is by asserting Z80 reset for a moment. But yes, YM is a PITA when it comes to muting. I had to create a huge workaround to get channels quiet on real YM2612 as in some conditions you got trailing noise that just did not silence out. No such problems on MD2 YM or emulators.
|
|
|
Post by Mairtrus on Jul 9, 2010 19:25:19 GMT -5
That's strange, since it is the same what the SMPS engine does. Maybe SEGA never knew what was doing?
|
|
|
Post by TheMVRules on Jul 10, 2010 7:07:04 GMT -5
Off topic: Holy shit, this thread has over 4.000 views!
|
|
|
Post by Mairtrus on Jul 10, 2010 10:09:46 GMT -5
Off topic: Holy shit, this thread has over 4.000 views! And that's not all: Acording to the FileDen bandwith usage, was downloaded 94.5 MB, and since there is no chance other shit was being downloaded from my account, seems like more that 6000 people have downloaded it!! EDIT: I hate doubleposting, so check the first post to download the new version.
|
|
|
Post by LocalH on Jul 11, 2010 5:04:01 GMT -5
For the record, Mairtrus, in the new version world 36 (the minus world) "works", but instead of being a looping version of 2-2, it's instead an underwater version of 3-4 that acts like the FDS version when beating -3 - it acts like you've beat the game, setting the hard mode flag and enabling the world select. Any chance you might special case world 36-1 to provide a looping 2-2?
Also, it seems like near the end of the X-4 completion music (when you're walking up to the Mushroom Retainer or Peach), there are still some out-of-tune notes. I can't go into greater detail as I'm not musically adept, but something sounds off. Someone else might be able to go into greater detail.
|
|
|
Post by tascodlx on Jul 11, 2010 5:15:25 GMT -5
Nice work, Mairtrus... except for TopScoreCheck. 1) You slipped up when loading the address of TopScoreDisplay. Kinda nasty, actually -- you're trampling some other variables. But, just a typo, no doubt. 2) Your flag handling is still off. It's almost there, but you need to reload the X carry when looping back to GetScoreDiff. Very simple fix. Also, very minor but the flying cheep-cheep 'bug' is still alive. For your convenience, here's the original data (starting at PRandomSubtracter): $F8, $A0, $70, $BD, $00, $20, $20, $20, $00, $00, $B5, $1E, $29, $20, $F0, $08. Other than that, it's still awesome.
|
|
|
Post by Mairtrus on Jul 11, 2010 17:39:25 GMT -5
|
|
|
Post by LocalH on Jul 12, 2010 1:31:29 GMT -5
And now, for the record, world 36-1 is 6-1. When you beat it, 36-2 is the nighttime coin heaven, but with no time on the timer apparently, as Mario dies the instant the game gives you control (can't even move him one pixel).
|
|
|
Post by lordnightmare on Jul 12, 2010 4:06:07 GMT -5
My only current quip with smb4md is that the A and B buttons are reversed as compared to how they would be mapped, positionally, on the NES. Otherwise, this is an awesome job!
LN
|
|