VOGONS

Common searches


Reply 180 of 419, by bjwil1991

User metadata
Rank l33t
Rank
l33t
carlostex wrote:
Hi again bjt!! […]
Show full quote

Hi again bjt!!

One question:

I took a look into the source code in the MIDI.C file and i'm wondering if you could add a new switch for better compatibility for the Yamaha FB-01. The only thing the switch needs to do is to chande the constant SYSEX_SIZE to something like 8192. From what i could understand from this thread: IBM Music Feature Card/Yamaha FB-01 such value should give SoftMPU better compatibility for the FB-01. Maybe just throw an if else type condition to define the SISEX_SYZE.

I would try this myself but i would have to download the proper compilers to build SoftMPU. Let me know if it's a viable option to include such an option for a new SoftMPU version, or maybe you can give me some proper links to download all necessary stuff to compile, and i'll change the source code myself.

Here's the compiled SoftMPU version with the updated SYSEX_SIZE from 1024 to 8192

Hope this helps. Plus, when I updated the SYSEX_SIZE from 1024 to 8192, EA Sports NHL Hockey 95 works with the MT-32. For some odd reason, the game requires a higher SYSEX_SIZE. In DOSBox, it works, but in SoftMPU, it doesn't work, unless your running Windows 3.11 and in the MS-DOS menu.

Edit: File removed: changing the build version for less confusion.

Last edited by bjwil1991 on 2014-05-31, 00:54. Edited 1 time in total.

Discord: https://discord.gg/U5dJw7x
Systems from the Compaq Portable 1 to Ryzen 9 5950X
Twitch: https://twitch.tv/retropcuser

Reply 181 of 419, by bjt

User metadata
Rank Oldbie
Rank
Oldbie

Hi bjwil1991

Please could you recompile with a version number that makes it clear it's a customised build, to avoid future confusion.

This change nearly doubles SoftMPU's memory footprint, so it would be nice to get it working as a command-line option.

Reply 182 of 419, by bjwil1991

User metadata
Rank l33t
Rank
l33t
bjt wrote:

Hi bjwil1991

Please could you recompile with a version number that makes it clear it's a customised build, to avoid future confusion.

This change nearly doubles SoftMPU's memory footprint, so it would be nice to get it working as a command-line option.

Darn, I knew I forgot something...

Discord: https://discord.gg/U5dJw7x
Systems from the Compaq Portable 1 to Ryzen 9 5950X
Twitch: https://twitch.tv/retropcuser

Reply 185 of 419, by carlostex

User metadata
Rank l33t
Rank
l33t
bjt wrote:

Had a quick look yesterday and it should be possible.

Cool, i thought so too! I'll be waiting for the next release and provide some feedback!

Reply 187 of 419, by bjt

User metadata
Rank Oldbie
Rank
Oldbie

If anyone would like to test this I've attached a version below. Please don't distribute this, an official release will follow shortly 😎

The new command-line switch is /LARGESYSEX.

Reply 188 of 419, by Cloudschatze

User metadata
Rank Oldbie
Rank
Oldbie

Why not just remove the SysEx string-size limitation from SoftMPU entirely? It's my understanding that DOSBOX' self-imposed limit is arbitrary to begin with (corresponding to the buffer size), and isn't reflective of an actual MPU-401 besides.

Reply 191 of 419, by carlostex

User metadata
Rank l33t
Rank
l33t

I tested with a FB01 and now Silpheed plays the music correctly. I tested Space Quest III and besides only the first SYSEX getting fucked up, the rest goes very well and plays correctly. Awesome.

I'll try to test more games.

Reply 192 of 419, by Great Hierophant

User metadata
Rank l33t
Rank
l33t
carlostex wrote:

I tested Space Quest III and besides only the first SYSEX getting fucked up, the rest goes very well and plays correctly.

In DOSBox compiled with an 8,192 byte sysex buffer size, you have to send the sysex twice (by starting the game, exiting and restarting the game) to only get dump/received! on the second attempt. Is it the same with the game you tried?

http://nerdlypleasures.blogspot.com/ - Nerdly Pleasures - My Retro Gaming, Computing & Tech Blog

Reply 194 of 419, by carlostex

User metadata
Rank l33t
Rank
l33t
Great Hierophant wrote:
carlostex wrote:

I tested Space Quest III and besides only the first SYSEX getting fucked up, the rest goes very well and plays correctly.

In DOSBox compiled with an 8,192 byte sysex buffer size, you have to send the sysex twice (by starting the game, exiting and restarting the game) to only get dump/received! on the second attempt. Is it the same with the game you tried?

I didn't need to exit and start the game again.The first MIDI message does make a dump/error but a dump/received will follow immediately. If you don't mind
the first couple of garbled notes before the sierra logo shows up, the rest of the music plays fine and polyphony seems to be quite correct.

Reply 195 of 419, by bjt

User metadata
Rank Oldbie
Rank
Oldbie
Cloudschatze wrote:

This is going to sound ignorant, but is the I/O such that a larger buffer is really needed though? The MPU-401 itself only has a 1700-byte buffer.

Not at all 😀 DOSBox's MIDI code works by buffering each message in its entirety before sending it. In the case of SYSEX this means a buffer large enough for the largest SYSEX message.

This allows some cool stuff like discarding invalid SYSEX and the MT-32 SYSEX delay feature. In the case of the delay feature SYSEX can be buffered (transparently to the game) while any delay is counting down. This is good because we don't want to pause the game or cause it to give up sending.

However, it gives rise to this problem with FB-01 SYSEX (how come they're so big anyway?)

How about we keep the 1KB buffer, but just flush it out to the hardware when it becomes full? That would allow arbitrary-length SYSEX without too many changes to the existing code.

Reply 196 of 419, by Great Hierophant

User metadata
Rank l33t
Rank
l33t

I tried it with the SYSEXFLUSH version of SoftMPU and the new /largesysex parameter. The first time I start a Sierra game with the FB-01 driver, the unit reports dump/error then dump/received. If I exit the game and restart it, all I get is dump/received. This behavior coincides with the behavior described years ago : IBM Music Feature Card/Yamaha FB-01 (post 8 on that page)

Thus the workaround continues to work, but it would really be nice for SoftMPU and DOSBox to get it right the first time, like a real MPU-401. There must be some data the driver is sending that causes some issue the emulated MPU-401 .

http://nerdlypleasures.blogspot.com/ - Nerdly Pleasures - My Retro Gaming, Computing & Tech Blog

Reply 198 of 419, by Great Hierophant

User metadata
Rank l33t
Rank
l33t
bjt wrote:

Just to confirm, does the workaround behaviour you describe above still happen with the DUMPSYSEX version without using /LARGESYSEX?

I never tried the DUMPSYSEX version, which I believe you may have posted and removed. If DUMPSYSEX just increases the sysex buffer size to 8,192 bytes, then it probably will behave exactly the same. The sysex transfer to the FB-01 will never complete without the /LARGESYSEX option.

http://nerdlypleasures.blogspot.com/ - Nerdly Pleasures - My Retro Gaming, Computing & Tech Blog