VOGONS


Yamaha XG emulation at last

Topic actions

Reply 21 of 54, by sherman

User metadata
Rank Newbie
Rank
Newbie

Ok, so the 0.260 release does not include the latest changes, despite the commit history seeming to indicate otherwise.

I downloaded the windows build artifact from https://github.com/mamedev/mame/actions/runs/6630559183 and am giving it a spin. It's sounding way better. It definitely seems to have a different sound profile to it compared to the S-YXG50 softsynth, I'm not sure how close they are actually meant to be, it could just be a consequence of the much higher sample quality in the MU50 emulation.

Reply 22 of 54, by sherman

User metadata
Rank Newbie
Rank
Newbie

Comparing the current MAME emulation against the excellent MU80 and S-YXG50 recordings made by John Novak at https://archive.org/details/DOS-Gaming-Genera … MIDI-Comparison shows the MAME emulation still has quite a way to go. I know the MU80 and MU50 are different devices, but they're from the same family, so I'm pretty sure they should sound fairly similar. Also the MU80 and S-YXG50 sound very similar in those recordings.

The Sam & Max intro "A pleasantly understated credit sequence" highlights the issues quite well.

Reply 23 of 54, by mattw

User metadata
Rank Oldbie
Rank
Oldbie
sherman wrote on 2023-10-27, 20:33:

It definitely seems to have a different sound profile to it compared to the S-YXG50 softsynth, I'm not sure how close they are actually meant to be, it could just be a consequence of the much higher sample quality in the MU50 emulation.

back to the 1st post in this thread plus I guess here my end notes here:

Re: Heads Up: Roland Sound Canvas VA VSTi Plugin!

so, S-YXG50 has 8-bit samples, i.e. 4MB of WaveROM of 8-bit uncompressed samples and they are 22050Hz. MU50/DB50XG/DB60XG/XR385/SW60XG has 4MB WaveROM, but of compressed samples. Further more, as I cited in my 1st post "Yamaha are truly masters at sound design and compression". So, the Compressed 4MB WaveROM on the real hardware contains 16-bit, 12-bit, 8-bit (linear samples) and 8-bit logarithmic ones - what Algorithm Yamaha chose was with the sole purpose to preserve the quality of each particular sample best. So, on real hardware (and read now in MAME as well), the Compressed 4MB WaveROM uncompresses to tens of MBs of 16-bit and 44100Hz samples. So, just based on that S-YXG50 is 8bit/22050Hz compared to 16-bit/44100Hz of the real Hardware and MAME - it's night and day difference in terms of WaveTable sounds quality.

Last edited by mattw on 2023-10-27, 21:16. Edited 3 times in total.

Reply 24 of 54, by mattw

User metadata
Rank Oldbie
Rank
Oldbie
sherman wrote on 2023-10-27, 21:02:

Comparing the current MAME emulation against the excellent MU80 and S-YXG50 recordings made by John Novak at https://archive.org/details/DOS-Gaming-Genera … MIDI-Comparison shows the MAME emulation still has quite a way to go. I know the MU80 and MU50 are different devices, but they're from the same family, so I'm pretty sure they should sound fairly similar. Also the MU80 and S-YXG50 sound very similar in those recordings.

The Sam & Max intro "A pleasantly understated credit sequence" highlights the issues quite well.

MU-80 has double the size of MU-50 WaveROM, i.e. 4MB Compressed vs. 8MB Compressed. How something that is even better than MU-50 can sound similar to very crappy S-YXG50 beats me, unless it's not the S-YXG50, which is 16-bit/44.1kHz hacked?! (see the link in my previous post or here:

Re: About Roland Virtual Sound Canvas 3

what I mean by "16-bit hacked"). so, I guess my question is what exact S-YXG50 version was used for those recordings?

Reply 25 of 54, by sherman

User metadata
Rank Newbie
Rank
Newbie

I'm pretty sure he's using the portable S-YXG50 VSTi from ~2016. Same one I'm using. And the MU80 recordings sound very similar to my version of the softsynth, although the MU80 is a bit better sounding. But the emulated MU50 sound significantly different.

Reply 26 of 54, by AppleSauce

User metadata
Rank Oldbie
Rank
Oldbie

Rad so potentially we could be looking at a munt alike for yammaha XG.

I guess once EmuSC gets done for roland sc55 emulation is that mostly it for mainstream dos era sound device emulation?

Seems like most sound cards like gravis , ad lib gold etc and other sound devices have been emulated.

Reply 27 of 54, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
mattw wrote on 2023-10-27, 21:13:

MU-80 has double the size of MU-50 WaveROM, i.e. 4MB Compressed vs. 8MB Compressed. How something that is even better than MU-50 can sound similar to very crappy S-YXG50 beats me, unless it's not the S-YXG50, which is 16-bit/44.1kHz hacked?! (see the link in my previous post or here:

Re: About Roland Virtual Sound Canvas 3

what I mean by "16-bit hacked"). so, I guess my question is what exact S-YXG50 version was used for those recordings?

I do not think that S-YXG50 is that much "crappy". Actually I have just checked and the default portable S-YXG50 version by Veg sounds exactly like the recordings on that General-MIDI-Comparison page (I have checked Descent, Doom, Warcraft2 , Duke 3d).
Maybe the statement that "Yamaha are truly masters at sound design and compression" also applies to good quality 8-bit 22kHz samples 😀. Compared to VSC and MS GS Soft synth I have never felt the 8-bitness and sample rate limitation disturbing in case of S-YXG50.
Sincerely listening to S-YXG50's hi-hats and cymbals makes it hard to believe that the samples are 22kHz/8-bit...

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 28 of 54, by sherman

User metadata
Rank Newbie
Rank
Newbie
Falcosoft wrote on 2023-10-28, 01:28:
I do not think that S-YXG50 is that much "crappy". Actually I have just checked and the default portable S-YXG50 version by V […]
Show full quote
mattw wrote on 2023-10-27, 21:13:

MU-80 has double the size of MU-50 WaveROM, i.e. 4MB Compressed vs. 8MB Compressed. How something that is even better than MU-50 can sound similar to very crappy S-YXG50 beats me, unless it's not the S-YXG50, which is 16-bit/44.1kHz hacked?! (see the link in my previous post or here:

Re: About Roland Virtual Sound Canvas 3

what I mean by "16-bit hacked"). so, I guess my question is what exact S-YXG50 version was used for those recordings?

I do not think that S-YXG50 is that much "crappy". Actually I have just checked and the default portable S-YXG50 version by Veg sounds exactly like the recordings on that General-MIDI-Comparison page (I have checked Descent, Doom, Warcraft2 , Duke 3d).
Maybe the statement that "Yamaha are truly masters at sound design and compression" also applies to good quality 8-bit 22kHz samples 😀. Compared to VSC and MS GS Soft synth I have never felt the 8-bitness and sample rate limitation disturbing in case of S-YXG50.
Sincerely listening to S-YXG50's hi-hats and cymbals makes it hard to believe that the samples are 22kHz/8-bit...

I'm pretty sure the samples that come with that portable S-YXG50 are not the ones that were originally shipped with the softsynth. It is a 4mb sound bank, not sure where from, but potentially one of the MU devices.

Reply 29 of 54, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
sherman wrote on 2023-10-28, 02:16:
Falcosoft wrote on 2023-10-28, 01:28:
I do not think that S-YXG50 is that much "crappy". Actually I have just checked and the default portable S-YXG50 version by V […]
Show full quote
mattw wrote on 2023-10-27, 21:13:

MU-80 has double the size of MU-50 WaveROM, i.e. 4MB Compressed vs. 8MB Compressed. How something that is even better than MU-50 can sound similar to very crappy S-YXG50 beats me, unless it's not the S-YXG50, which is 16-bit/44.1kHz hacked?! (see the link in my previous post or here:

Re: About Roland Virtual Sound Canvas 3

what I mean by "16-bit hacked"). so, I guess my question is what exact S-YXG50 version was used for those recordings?

I do not think that S-YXG50 is that much "crappy". Actually I have just checked and the default portable S-YXG50 version by Veg sounds exactly like the recordings on that General-MIDI-Comparison page (I have checked Descent, Doom, Warcraft2 , Duke 3d).
Maybe the statement that "Yamaha are truly masters at sound design and compression" also applies to good quality 8-bit 22kHz samples 😀. Compared to VSC and MS GS Soft synth I have never felt the 8-bitness and sample rate limitation disturbing in case of S-YXG50.
Sincerely listening to S-YXG50's hi-hats and cymbals makes it hard to believe that the samples are 22kHz/8-bit...

I'm pretty sure the samples that come with that portable S-YXG50 are not the ones that were originally shipped with the softsynth. It is a 4mb sound bank, not sure where from, but potentially one of the MU devices.

And I'm pretty sure that they are the same. If you open the syxg50.dll in a resource editor then under the "RC Data" section you can find SXGWAVE4.TBL and also the SXGBIN41.TBL. If you compare the bin file to the SOL2 version or even to the XP driver version they seem to be pretty much identical (1 byte difference) and the wave file is the decrypted version of the original with the same size.
Also VEG himself has written:

The patch doesn't affect sound synthesis of the original VSTi. It was tested on hundreds of MIDI files to ensure that the output is bit-identical to the original S-YXG50 VSTi with the same settings.

https://veg.by/en/projects/syxg50/
and

also it uses embedded into the DLL resources the 4MB official wavetable files, which is the best version of wavetable files for the S-YXG50.

Yamaha S-YXG50 Portable VSTi (a software MIDI synth)

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 31 of 54, by Joseph_Joestar

User metadata
Rank l33t
Rank
l33t
AppleSauce wrote on 2023-10-28, 00:31:

Seems like most sound cards like gravis , ad lib gold etc and other sound devices have been emulated.

I don't think anything currently emulates Windows Sound System (WSS). Probably because there's little demand for it.

There are a couple of edge cases where WSS does provide superior sound to the SB16. Aladdin and Turrican 2 are two such games.

PC#1: Pentium MMX 166 / Soyo SY-5BT / S3 Trio64V+ / Voodoo1 / YMF719 / AWE64 Gold / SC-155
PC#2: AthlonXP 2100+ / ECS K7VTA3 / Voodoo3 / Audigy2 / Vortex2
PC#3: Athlon64 3400+ / Asus K8V-MX / 5900XT / Audigy2
PC#4: i5-3570K / MSI Z77A-G43 / GTX 970 / X-Fi

Reply 32 of 54, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
mattw wrote on 2023-10-27, 21:13:

...How something that is even better than MU-50 can sound similar to very crappy S-YXG50 beats me, unless it's not the S-YXG50, which is 16-bit/44.1kHz hacked?! (see the link in my previous post or here:
what I mean by "16-bit hacked"). so, I guess my question is what exact S-YXG50 version was used for those recordings?

It seems the used exact version is Veg's version of S-YXG50. At least John Novak explicitly mentioned Veg's version of S-YXG50 in the blog post where he shared the details about his recording process of Grand MS-DOS gaming General MIDI showdown (also he and Veg talked about it in the comment section):
https://blog.johnnovak.net/2023/03/05/grand-m … #yamaha-s-yxg50
So overall I think that calling the regular/non-pumped version of S-YXG50 crappy and extremely crippled is a little bit exaggerated.

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 33 of 54, by Trelokk

User metadata
Rank Member
Rank
Member

Once I am able to tell an actual difference/quality improvement between the S-YXG50 and this emulator, I'm going to be sold on the general concept. However, as Falco has pointed out above, the VSTi plugin sounds anything but "crappy" to me, I must say. In fact it's amazing how much sound quality this small dll file holds in store for the average user.

Reply 34 of 54, by RetroGamer4Ever

User metadata
Rank Oldbie
Rank
Oldbie

I'm very happy with the XG VST and have no complaints, as it takes whatever I throw at it, especially since Falco hammered down a proper VSTi driver for everyone to use. What we really need though, is a hacked XG soft-synth, with the primo soundset lifted from the SW1000XG - and it's add-in cards - and incorporating the PVL stuff as well. That would be the absolute pinnacle of XG playback tech.

Reply 35 of 54, by gerwin

User metadata
Rank l33t
Rank
l33t
mattw wrote on 2023-10-25, 04:01:
gerwin wrote on 2023-10-25, 02:55:

Hope that this synthesizer code also appears elsewhere in a .. more portable way.

I hope the same, but I am not optimistic, because MAME made us Intelligent mode MPU-401 emulator and even dumped the real Roland ROM over 10 years ago:

In the weekend I investigated some build options for Mame. For some older versions and the current v0.260.
Was hoping to see two differences compared to regular Mame releases:
- WIN32 build (officially the last 32-bit build was v0.217 of Dec 25, 2019)
- Shave-off unused components.

After several failed approaches I got a workflow for building what I aimed for. It actually worked best with the recent v0.260.
One can build Mame with SUBTARGET=mu50 and some SOURCES= commands.
Then by additional tweaks in the source and the compiler one gets a 45MB Win32 executable, nearly NT5 compatible, which seems to work well. It can be started as a midi server to interface with other programs like WinAmp or DosBox.
The current SVN state of Mu50 emulation sounds a bit rough though, for certain midi files. AFAIK it is not quite ready for prime time, like what others already mentioned here.

--> ISA Soundcard Overview // Doom MBF 2.04 // SetMul

Reply 36 of 54, by mattw

User metadata
Rank Oldbie
Rank
Oldbie
sherman wrote on 2023-10-28, 02:16:

I'm pretty sure the samples that come with that portable S-YXG50 are not the ones that were originally shipped with the softsynth. It is a 4mb sound bank, not sure where from, but potentially one of the MU devices.

Falcosoft wrote on 2023-10-28, 06:29:

And I'm pretty sure that they are the same.

and how many times I explained and proved in this very thread that is neither true, nor the case. What I don't understand is why @Falcosoft is making such statements when he can program much better than I can, i.e. I cannot do anything even close to his MIDI Player (and thank you for it!), when he can just open the MAME source code where the decompression algorithms of the real hardware Device WaveROM are documented:

https://github.com/mamedev/mame/blob/master/s … sound/swp00.cpp

So, for, I don't know, at least, 10th time, S-YXG50 4MB bank comes from SOL2:

Yamaha Sequence Object Linking (SOL) 2

it's 8-bit Uncompressed. All real hardware devices have 16-bit, 12-bit, 8-bit logarithmic (Delta-packed PCM compression) compressed PCM samples - as such all real hardware devices have SoundBank not 4MB, but many tens of MBytes, when it's Uncompressed. Yes, their bank is 4MB as size, but 4MB Compressed, not 4MB Uncompressed as the S-YXG50 bank and I even gave you the Hashes of the 4MB ROMs on the real devices:

Re: Yamaha XG emulation at last

as you can see all: MU50, DB50XG, DB60XG, SW60XG, NEC XR385 use the exact same WavROM and it's nothing even close to the S-YXG50 4MB bank.

Also, when I am talking about "hacked S-YXG50" I don't mean Veg's work, I explicitly stated that in "P.S." note here:

Re: About Roland Virtual Sound Canvas 3

it's what I started to work on it here:

Re: Yamaha Sequence Object Linking (SOL) 2

but abandoned due to lack of interest (I mean by the community, i.e. I was doing essentially monologues with myself there). So, S-YXG50 by default (including Veg's one) is crippled in a sense that internally it's restricted to 8-bit, even if the Soundbank is replaced with 16-bit one and you can read the DLL Assembler code to see that, if you don't believe me. ([EDIT] actually just to give even further proof for people that are going to read the S-YXG50 DLL Assembler code -the function is at '1001A6E0' where it's decided if the sample is 8-bit or 16-bit and then the corresponding function to process it is assigned - but even in 16-bit case Yamaha restricted the processing function to 8-bit - that way prevent even if someone replaces the Soundbank with 16-bit one to actually that work).

AppleSauce wrote on 2023-10-28, 00:31:

I guess once EmuSC gets done for roland sc55 emulation

I don't see it will ever be done with the current approaches, because no one seems to work or make anything close to the real sound processing algorithms - I tried to explain that also many times:

Re: Heads Up: Roland Sound Canvas VA VSTi Plugin!

and that "RIAA IIR filtering"question I am talking about is one proof of the problems. So, you cannot do it like that - the only way is to read the Assembler code of "Roland Sound Canvas VST" DLL and reverse-engineer the sound processing from there, as it uses the real WaveROM:

Re: About Roland Virtual Sound Canvas 3

So, I am in support of projects like EmuSC, but currently it's in a fantasy-state that it emulates Roland, but I don't want to go even further off-topic here.

RetroGamer4Ever wrote on 2023-10-29, 16:24:

is a hacked XG soft-synth, with the primo soundset lifted from the SW1000XG

I agree on both those 2 points: by "hacked" - you can read what I mean - above or on other threads (because MAME doesn't fully reversed-engineered all the algorithms - at some point probably MAME will be as good as "hacked" with 16-bit support S-YXG50), i.e. that is SOL2 VST hacked with all Yamaha restrictions removed, i.e. 16-bit up to 96KHz processing. I am myself already planning to attempt dumping SW1000XG ROMs.

[EDIT2]

Falcosoft wrote on 2023-10-28, 06:29:

and even that link gives fake information that:

on the trial version from the Yamaha SOL2 package. The full version of this VSTi had never been released

when here:

Yamaha Sequence Object Linking (SOL) 2

I even showed you Pictures of the Retail CDs of SOL2 (I guess

seeing is believing

is no longer the case) actually there is even more than 1 Retail release of SOL2 - the different colors of CDs I posted there, and all those Retail releases of SOL2 Contains the Full Retail Version of the VSTi not the Trial one - I even have check in my source code "syxg50g0.c" I attached here:

Re: Yamaha Sequence Object Linking (SOL) 2

if it's Retail or Trail version of the VSTi DLL. I guess it's like Mark Twain says:

It's easier to fool people than to convince them that they have been fooled

and in this case you're not fooled, but just the same Wrong information, i.e. fake news as someone says, is circulating for years and is regurgitated over and over again in Goebbels' style:

Repeat a lie often enough and it becomes the truth

Last edited by mattw on 2023-10-30, 23:01. Edited 4 times in total.

Reply 37 of 54, by mattw

User metadata
Rank Oldbie
Rank
Oldbie
gerwin wrote on 2023-10-30, 16:34:

gets a 45MB Win32 executable, nearly NT5 compatible, which seems to work well. It can be started as a midi server to interface with other programs like

thank you for giving details about such a build. something running on older Windows versions is much appreciated. I am using small Fujitsu thin-client with WinXP as my high-end audio player, it's perfect for that, because it's fanless, has PCI slot to install high-end sound card (like Onkyo SE90) and the CPU is not that weak: AMD G-T56N, which is 1.6GHz 2-core SoC - it's powerful enough to even run Roland SoundCanvas VSTi (and yes it works in WinXP, I don't recall at the moment which version though 1.03 or 1.07 was WinXP compatible).

Reply 38 of 54, by gerwin

User metadata
Rank l33t
Rank
l33t
mattw wrote on 2023-10-30, 22:51:
gerwin wrote on 2023-10-30, 16:34:

gets a 45MB Win32 executable, nearly NT5 compatible, which seems to work well. It can be started as a midi server to interface with other programs like

thank you for giving details about such a build. something running on older Windows versions is much appreciated. I am using small Fujitsu thin-client with WinXP as my high-end audio player, it's perfect for that, because it's fanless, has PCI slot to install high-end sound card (like Onkyo SE90) and the CPU is not that weak: AMD G-T56N, which is 1.6GHz 2-core SoC - it's powerful enough to even run Roland SoundCanvas VSTi (and yes it works in WinXP, I don't recall at the moment which version though 1.03 or 1.07 was WinXP compatible).

I uploaded the package to my website for download. Without ROM files. It is kernel-exed to run under Windows XP. I haven't tested it on a slow system yet.
http://www.gb-homepage.nl
back-ports section.

In the future I would like to make a build with more then one synthesizer, but for that a lua build configuration file has to be prepared, in the "scripts\target\mame" folder.
The build process was a bit complicated because Mame's luaengine requires 2,5GB of RAM to compile under GCC 10.3. So I had to use the /3GB PAE +LargeAddressAware trick on the OS and compiler.

There are now two control-ROMs for the MU50, as select-able in the GUI starter: v1.04 or v1.05. The GUI starter wants them both to be present, but I don't know how to actually use the MU50 with music when started from there. In the command-line startup mode it does not mention v1.04 or v1.05.

--> ISA Soundcard Overview // Doom MBF 2.04 // SetMul

Reply 39 of 54, by mattw

User metadata
Rank Oldbie
Rank
Oldbie
gerwin wrote on 2023-10-30, 23:48:

...
There are now two control-ROMs for the MU50, as select-able in the GUI: v1.04 or v1.05.

one more time - thank you for your work, it's really something very useful for the community!

So, about the Control ROMs - besides those 2 version of MU-50, currently there are dumps of DB50XG and NEC XR385 (OEM of DB60XG). What is still missing is dump of Retail DB60XG and SW60XG card. Now, for me more interesting is dump of Retail DB60XG, because it was said in the past, that XR385 initializes (defaults) to TG300-mode contrary to Retail DB60XG (which means the control rom between those 2 versions of db60 maybe are different). So, until there is dump of Retail DB60XG - we cannot confirm if that is true or not, i.e. if Retail DB60XG inits in TG300-mode or no.

BTW, for people that want to do such dumps - you don't need to dump the WaveROMs (you can do it, but it's pointless, because 1st they are the same, 2nd we can tell if they are the same or not, because of the Wave-Data-Tables inside the Control ROM, i.e. always the 1st step is to dump and analyze the Control ROM before do more work). So, you just need to dump the Control ROM, which is 'OKI MSM534002' ROM chip, in case you have Retail DB60XG (or SW60XG card) and have the skills, i.e. you can solder, de-solder and use a programmer capable to read 'OKI MSM534002' ROM chip.