VOGONS


HardMPU, anyone?

Topic actions

Reply 100 of 608, by PhilsComputerLab

User metadata
Rank l33t++
Rank
l33t++

Ok. I do recommend, for older games, to set the FSB to 66 MHz, multiplier to 2x and disable all caches! CPU cache and internal cache.

Ideally though, a real 386 or 486DX would be better suited. There are games that will only sound correctly under these circumstances. Monkey Island is an example.

Just to avoid that you think it's the board when the issue lies elsewhere 😀

YouTube, Facebook, Website

Reply 101 of 608, by ab0tj

User metadata
Rank Member
Rank
Member
philscomputerlab wrote:

Ok. I do recommend, for older games, to set the FSB to 66 MHz, multiplier to 2x and disable all caches! CPU cache and internal cache.

Ideally though, a real 386 or 486DX would be better suited. There are games that will only sound correctly under these circumstances. Monkey Island is an example.

Just to avoid that you think it's the board when the issue lies elsewhere 😀

I might have to try that. Though, Monkey Island sounds fine on this machine when using a YMF719 card and SetMul to disable the cache. I did notice last night, Monkey Island didn't sound quite right with this board. Obviously there are still some issues to be worked out.

Reply 102 of 608, by keropi

User metadata
Rank l33t++
Rank
l33t++

Monkey island does not have speed issues in music when you use a midi interface. It's the adlib and sb drivers that crap put. With my 200mmx build I can play MI without any slowdown needed when I use my mpu401at

🎵 🎧 PCMIDI MPU , OrpheusII , Action Rewind , Megacard and 🎶GoldLib soundcard website

Reply 103 of 608, by jesolo

User metadata
Rank l33t
Rank
l33t
philscomputerlab wrote:

I'd prefer this card to stay minimalistic / clean and do one purpose well. There are so many sound cards with wavetable headers. You can also get wavetable devices like this one: http://www.serdashop.com/MIDIBOARDCHILL

Also there are no LA synthesis wavetable modules, which this intelligent mode interface is really geared towards.

But that's just me.

Tend to agree. The main goal of this exercise is to produce an intelligent mode MPU-401 MIDI interface.
Once there is a final product, then one can always look at adding on other features in later revisions (or produce a "plus" version that has additonal features).

Reply 104 of 608, by dogchainx

User metadata
Rank Member
Rank
Member
jesolo wrote:
philscomputerlab wrote:

I'd prefer this card to stay minimalistic / clean and do one purpose well. There are so many sound cards with wavetable headers. You can also get wavetable devices like this one: http://www.serdashop.com/MIDIBOARDCHILL

Also there are no LA synthesis wavetable modules, which this intelligent mode interface is really geared towards.

But that's just me.

Tend to agree. The main goal of this exercise is to produce an intelligent mode MPU-401 MIDI interface.
Once there is a final product, then one can always look at adding on other features in later revisions (or produce a "plus" version that has additonal features).

Understandable, and I agree. I was just asking what it would take to add it to this project, since the MPU401-AT is such a highly prized possession and is very scarce. But having another option for an MPU401 (no AT) is no small matter either. Having something inexpensive one can add an MT32, SC55, etc to for vintage setups is more than welcome.

Bring on the card. 😎

386DX-40MHz-8MB-540MB+428MB+Speedstar64@2MB+SoundBlaster Pro+MT-32/MKII
486DX2-66Mhz-16MB-4.3GB+SpeedStar64 VLB DRAM 2MB+AWE32/SB16+SCB-55
MY BLOG RETRO PC BLOG: https://bitbyted.wordpress.com/

Reply 105 of 608, by PhilsComputerLab

User metadata
Rank l33t++
Rank
l33t++
keropi wrote:

Monkey island does not have speed issues in music when you use a midi interface. It's the adlib and sb drivers that crap put. With my 200mmx build I can play MI without any slowdown needed when I use my mpu401at

Interesting. I had this issue a few times with instruments sounding off and putting the machine in "386 mode" usually fixes it. But because I work with so many different systems, please don't ask me what system I was using 😊

On my main SS7 machine I use a Pentium 200, but clocked at 100 MHz. I haven't found a MT-32 game that doesn't run on that machine. I'm using a Roland MIID interface though.

YouTube, Facebook, Website

Reply 106 of 608, by ab0tj

User metadata
Rank Member
Rank
Member

Fixed the issue by adding a buffer for outgoing MIDI data instead of blocking the entire program while a whole MIDI message is sent. Git has been updated. Silpheed, KQ4, KQ5, and Monkey Island all tested successfully. More testing later.

Reply 107 of 608, by alexanrs

User metadata
Rank l33t
Rank
l33t

I'm taking a quick look at the code and you might want to change recv_isa_byte(). Unless the version in GitHub is outdated, you put sei() AFTER the return statement, so it will never be called.

Reply 108 of 608, by ab0tj

User metadata
Rank Member
Rank
Member
alexanrs wrote:

I'm taking a quick look at the code and you might want to change recv_isa_byte(). Unless the version in GitHub is outdated, you put sei() AFTER the return statement, so it will never be called.

Wow. You're right. I had actually fixed that once, but reverted the changes trying to track down why KQ5 was broken. I bet that is why it got stuck in the reset state. Thanks for pointing that out.

Reply 109 of 608, by alexanrs

User metadata
Rank l33t
Rank
l33t

Glad I could be helpful. I finished my quick read now and I didn't really find anything else wrong. I'm glad this project is evolving so fast and coming along so nicely =)

Reply 110 of 608, by ab0tj

User metadata
Rank Member
Rank
Member
alexanrs wrote:

Glad I could be helpful. I finished my quick read now and I didn't really find anything else wrong. I'm glad this project is evolving so fast and coming along so nicely =)

Fixed and tested. Reset works correctly now.

Now I can start on the ability to enable and disable special features, as well as some code cleanup.

Reply 111 of 608, by stamasd

User metadata
Rank l33t
Rank
l33t

That's great news. There's plenty of space left for code in the 1284's memory, the current code compiles to just below 5kB, or 4% of the available flash memory.

I'm still waiting for parts to replicate it.

I/O, I/O,
It's off to disk I go,
With a bit and a byte
And a read and a write,
I/O, I/O

Reply 112 of 608, by ab0tj

User metadata
Rank Member
Rank
Member

Update: There is now a DOS utility to enable and disable the special features like SysEx delay. Downloads are at https://github.com/ab0tj/HardMPU

SysEx delay, however, seems to be broken at the moment. When enabled it causes tons of errors on the MT32. More debugging to follow.

Reply 113 of 608, by ab0tj

User metadata
Rank Member
Rank
Member

I have changed how SysEx delay is implemented, and it seems to work much better now. Games that make very large SysEx transfers don't work well with this, but they also don't seem to need the delay anyway. As always, more testing and debugging to come, but at this point it seems to be working fairly well.

Reply 114 of 608, by bjt

User metadata
Rank Oldbie
Rank
Oldbie

For testing purposes, the most demanding games seem to be those that use interrupt-driven playback, e.g. Laser Squad, Gateway, Innocent Until Caught. If those work, everything should.

Reply 115 of 608, by jesolo

User metadata
Rank l33t
Rank
l33t
bjt wrote:

For testing purposes, the most demanding games seem to be those that use interrupt-driven playback, e.g. Laser Squad, Gateway, Innocent Until Caught. If those work, everything should.

I can attest to that.
When I tested my Voyetra V-22m MIDI interface on my 486DX4-100, all my intelligent mode games worked fine, except for Innocent Until Caught. I later realised it was a speed/hardware related issue, since the same card worked fine with this game in my 486DLC-40.

Last edited by jesolo on 2015-10-02, 20:51. Edited 2 times in total.

Reply 116 of 608, by ab0tj

User metadata
Rank Member
Rank
Member
bjt wrote:

For testing purposes, the most demanding games seem to be those that use interrupt-driven playback, e.g. Laser Squad, Gateway, Innocent Until Caught. If those work, everything should.

It seems Gateway works - after re-enabling the ACK sent after switching to UART mode. But it sounds really bad. Back to debugging!

Reply 117 of 608, by bjt

User metadata
Rank Oldbie
Rank
Oldbie

I should also mention that SoftMPU has an open issue with Gateway: https://github.com/bjt42/softmpu/issues/13
Hopefully it won't affect you, but something to be aware of.

Reply 118 of 608, by ab0tj

User metadata
Rank Member
Rank
Member
bjt wrote:

I should also mention that SoftMPU has an open issue with Gateway: https://github.com/bjt42/softmpu/issues/13
Hopefully it won't affect you, but something to be aware of.

Thanks. This is where the position of the Version and ACK bytes get swapped, correct? I did actually implement this in my version as well, and it can be enabled and disabled with the config utility. I'm curious as to how you implemented enabling or disabling this, as I must have missed that part in the code somewhere.

At any rate, in my testing, the music has occasional stuck notes and sounds a little different every time I try it. I'll try and post a video later.

Reply 119 of 608, by ab0tj

User metadata
Rank Member
Rank
Member
ab0tj wrote:

I'm curious as to how you implemented enabling or disabling this, as I must have missed that part in the code somewhere.

Nevermind on that part, found it. Looks like identifying the running app that way won't be a possibility with a hardware approach, so I'll just have to leave it to the user to enable/disable.