VOGONS


HardMPU, anyone?

Topic actions

Reply 540 of 557, by Pierre32

User metadata
Rank Oldbie
Rank
Oldbie
yyzkevin wrote on 2021-03-13, 03:35:

I found a schematic from 1987 of a roland ISA card for interfacing the MPU-401 and it showed the interrupt connection how I thought it should be so I implemented that change and I was also able to assign my card 330h and IRQ9 on a normal laptop with regular card services and I am able to open the sierra games LSL2, LSL3 etc but I am not sure if they are okay or not because the midi music is pretty gibberish, but I assume that is because it is a ridiculous VSLI 1052 chip taking what is meant for an MT-32

I am trying to get my hands on an MT-32 to do some testing before finalizing the pcb.

If you were in Australia we could organise a loan. But I suspect you are not!

Reply 541 of 557, by yyzkevin

User metadata
Rank Newbie
Rank
Newbie
Pierre32 wrote on 2021-03-13, 04:04:
yyzkevin wrote on 2021-03-13, 03:35:

I found a schematic from 1987 of a roland ISA card for interfacing the MPU-401 and it showed the interrupt connection how I thought it should be so I implemented that change and I was also able to assign my card 330h and IRQ9 on a normal laptop with regular card services and I am able to open the sierra games LSL2, LSL3 etc but I am not sure if they are okay or not because the midi music is pretty gibberish, but I assume that is because it is a ridiculous VSLI 1052 chip taking what is meant for an MT-32

I am trying to get my hands on an MT-32 to do some testing before finalizing the pcb.

If you were in Australia we could organise a loan. But I suspect you are not!

Of course not that would be too easy! I am in Canada. There is a local guy that has a couple of them, but he ended his ebay listing and is now asking what I think is a bit high.

I was wondering, if there is a way for me to run Munt on a windows machine and have it accept the midi messages over a serial port, I am reading about that as a way to maybe do a preliminary test soon as it will take some time to get the MT-32.

I have the appropriate serial cables (ftdi chips....) that I can feed in the ttl level signal from my card, and they should be able to handle 31250 (would need to verify), so it is a matter of finding some kind of driver for windows that presents the serial port as a midi interface I assume?

edit: "Hairless Midi" appears to be what I am looking for, going to try this out shortly.

so it looks like I have an issue somewhere, but I am not sure what. Nothing sounds right, and many things just sound so far off they make no sense. I see the messages come up on the MT-32 emulator, at boot it said HardMPU, when I open various sierra games some messages pop up, but nothing musical can be heard all just random, more than just wrong instruments...

need to relook at every piece now.

https://youtu.be/3ImOsjjED5Y

Reply 544 of 557, by yyzkevin

User metadata
Rank Newbie
Rank
Newbie

sorry to reply to myself.

So I think I have taken this as far as needed for now, I did notice what I think you call a "hung note" during playback. I will look at rebuilding the hardmpu software this week so I can extend the width of the /IDW signal, currently I think I measured it at around 250ns but I need at least 500ns to use it for pcmcia in pulse mode.

i test this game on this computer, as I think this should be a worst case scenario on dependence of intelligent mode.
https://www.youtube.com/watch?v=SX59Uvb-qk4

I will start to put this design into a MPU-401 PCMCIA card with the external connection. And then will continue on trying to implement a few more things on the card.
1. the OPL3, which actually I have working, just not the analog output
2. gameport, I have been looking at schematics for the classic way to implement this
3. the onboard midi chip, which I am certain will work I just do not have a breakout board for that dream.fr chip
4. the big one is sound blaster compatibility.

maybe I should start a thread about it as it becomes off topic from mpu.

Last edited by Stiletto on 2021-03-15, 20:01. Edited 1 time in total.

Reply 545 of 557, by kolderman

User metadata
Rank Oldbie
Rank
Oldbie

I recently got hung note using HardMPU and a midi score (SamnMax Hit the Road), using multiple external midi devices. Switching to the MT32 score and MUNT and the issue went away. No idea if HardMPU is the problem, have used it without issues on many other games.

Reply 546 of 557, by yyzkevin

User metadata
Rank Newbie
Rank
Newbie
kolderman wrote on 2021-03-15, 17:32:

I recently got hung note using HardMPU and a midi score (SamnMax Hit the Road), using multiple external midi devices. Switching to the MT32 score and MUNT and the issue went away. No idea if HardMPU is the problem, have used it without issues on many other games.

The creator of HardMPU would need to comment on his choice because he knows more than I do, however I do feel the way he implemented the interrupt is not correct.

The only way an interrupt is raised to the host is if the host is reading the status port the moment the mpu is writting the data register. same goes for the reset, the hardmpu would only see the isa_rst during a read to the status register, unless I am missing something but in practice this seems to be the case.

i found that with certain older games on really slow systems, this can be an issue sometimes where the MPU raised an interrupt but the host/game did not see it it was doing about its business waiting for an interrupt, and only see's the interrupt and dsr when it eventually gets around to reading the status register. it seems to not matter at all on games that switch to uart mode because they do not wait for an interrupt they just keep polling the status register, and even intelligent mode games some of them seem to poll the status register enough they can keep up mostly in the absence of their isr getting triggered.

this kind of goes along with what somebody else had said, they had a situation where they had a hardmpu in their system but they also had another mpu-401 on the same port they forgot to remove, but they noticed it worked better. I assume this is because the host was getting the interrupts each time the other unused mpu had an ack ready to be read.

Reply 547 of 557, by kolderman

User metadata
Rank Oldbie
Rank
Oldbie

Hi,

Today I tried Sam'n'Max on a different PC with a MusicQuest clone (connected to the same midi stack).

I can confirm that no hanging notes are observed using the GM score, whereas the HardMPU quite quickly experienced them.

The PCs are somewhat different, the HardMPU in a ViaC3 and the MusicQuest in a K6-3+, however both were slowed down to similar speeds using setmul. And just to recap, the HardMPU was fine with the MT32 score, it was only the GM score that was hanging.

Not sure if this means there is definitely a bug in HardMPU, but thought this might be a useful result.

Cheers

Reply 548 of 557, by kolderman

User metadata
Rank Oldbie
Rank
Oldbie

Hmm so an unexpected turn of events.

I tried using the midi out of the AWE64 in the same PC as the HardMPU. And I get the same stuck not in S&M, so it can't be due to the HardMPU. Not sure what else could be causing it, but it seems specific to this PC somehow.

Reply 549 of 557, by nathanieltolbert

User metadata
Rank Newbie
Rank
Newbie

Sorry to bring this up, but I have been looking for projects to do over the summer and I came across this. I was wondering if there are bare PCBs still available to purchase? I understand if not. I am just curious. I have been wanting to do some build projects, and I thought that maybe with my limited soldering skills that this is a project I could do.

Reply 551 of 557, by nathanieltolbert

User metadata
Rank Newbie
Rank
Newbie
mistermister wrote on 2021-05-30, 17:13:

Along these lines, I'd like to ask if there is anywhere to purchase a fully assembled and tested hardmpu these days? I am interested in purchasing one .

I would totally build you one if I can get the PCBs for the project mistermister. But I haven't heard anything. My guess is that life is taking precedence right now and the maker of the project doesn't have time to respond. As long as we are patient they will get to us and let us know when they can.

Reply 553 of 557, by ab0tj

User metadata
Rank Member
Rank
Member
yyzkevin wrote on 2021-03-15, 19:34:
The creator of HardMPU would need to comment on his choice because he knows more than I do, however I do feel the way he imple […]
Show full quote
kolderman wrote on 2021-03-15, 17:32:

I recently got hung note using HardMPU and a midi score (SamnMax Hit the Road), using multiple external midi devices. Switching to the MT32 score and MUNT and the issue went away. No idea if HardMPU is the problem, have used it without issues on many other games.

The creator of HardMPU would need to comment on his choice because he knows more than I do, however I do feel the way he implemented the interrupt is not correct.

The only way an interrupt is raised to the host is if the host is reading the status port the moment the mpu is writting the data register. same goes for the reset, the hardmpu would only see the isa_rst during a read to the status register, unless I am missing something but in practice this seems to be the case.

i found that with certain older games on really slow systems, this can be an issue sometimes where the MPU raised an interrupt but the host/game did not see it it was doing about its business waiting for an interrupt, and only see's the interrupt and dsr when it eventually gets around to reading the status register. it seems to not matter at all on games that switch to uart mode because they do not wait for an interrupt they just keep polling the status register, and even intelligent mode games some of them seem to poll the status register enough they can keep up mostly in the absence of their isr getting triggered.

this kind of goes along with what somebody else had said, they had a situation where they had a hardmpu in their system but they also had another mpu-401 on the same port they forgot to remove, but they noticed it worked better. I assume this is because the host was getting the interrupts each time the other unused mpu had an ack ready to be read.

I'm not sure I follow... The reset and interrupt should happen independently of any reads or writes. The IRQ line is raised as soon as the Atmega writes to the data latch (which can happen at any time that there isn't something waiting in the latch), and the ISA reset line is inverted and fed directly to the Atmega. The half of the 74LS240 that does the inversion of both signals is wired to be always active.

That said, I have had a couple of reports of the card not being reset on powerup. This seems to be bad motherboard design, as the reset line should be asserted on powerup.

Reply 554 of 557, by yyzkevin

User metadata
Rank Newbie
Rank
Newbie

I think at the time of that reply I did not realize the chip was split in half with two different OE's, as I have learned a little bit more since and that part is pretty obvious now when I look at it.

ab0tj wrote on 2021-07-10, 16:11:

I'm not sure I follow... The reset and interrupt should happen independently of any reads or writes. The IRQ line is raised as soon as the Atmega writes to the data latch (which can happen at any time that there isn't something waiting in the latch), and the ISA reset line is inverted and fed directly to the Atmega. The half of the 74LS240 that does the inversion of both signals is wired to be always active.

That said, I have had a couple of reports of the card not being reset on powerup. This seems to be bad motherboard design, as the reset line should be asserted on powerup.

Reply 556 of 557, by ab0tj

User metadata
Rank Member
Rank
Member
Jager wrote on 2021-07-19, 20:56:

That "reset problem" probably needs only slight delay on reset pulse. I had 2 HardMPU boards with different capacitors - this was enough for one to work reliably, while other was glitchy.

Hm, ok. Which capacitor? There isn't a RC delay on the reset line as the reset signal comes from the ISA bus, so now I'm interested 😁

Reply 557 of 557, by Jager

User metadata
Rank Newbie
Rank
Newbie

All components are identical, except for 100nF ceramic capacitors (murata vs generic chinese), electrolytic capacitor (22uF polymer vs 47uF low-esr) & slightly different board.

Attachments