VOGONS


HardMPU, anyone?

Topic actions

Reply 500 of 608, by Thermalwrong

User metadata
Rank Oldbie
Rank
Oldbie

And now it works! Excellent 😀

IT's a shame that all 5 PCBs are messed up like this, but it's been very educational 😀

Attachments

Reply 501 of 608, by Thermalwrong

User metadata
Rank Oldbie
Rank
Oldbie

And now the bracket along with the adapter for the ECHO MIA MIDI breakout cable is all done, it's so nice 😁
Doing this in Eagle meant that the PCB could be easily put into Fusion 360 so I could make up the bracket. I think I used the wrong gender of connector for the pinout, I had more of the wrong direction DB9 connectors on hand and it resulted in this nice plastic adapter for the midi breakout.

IMG_0633 (Custom).jpeg
Filename
IMG_0633 (Custom).jpeg
File size
553.63 KiB
Views
2210 views
File license
CC-BY-4.0
IMG_0634 (Custom).jpeg
Filename
IMG_0634 (Custom).jpeg
File size
282.49 KiB
Views
2210 views
File license
CC-BY-4.0
IMG_0635 (Custom).jpeg
Filename
IMG_0635 (Custom).jpeg
File size
379.53 KiB
Views
2210 views
File license
CC-BY-4.0
IMG_0637 (Custom).jpeg
Filename
IMG_0637 (Custom).jpeg
File size
429.8 KiB
Views
2210 views
File license
CC-BY-4.0
IMG_0638 (Custom).jpeg
Filename
IMG_0638 (Custom).jpeg
File size
479.83 KiB
Views
2210 views
File license
CC-BY-4.0

Reply 502 of 608, by Muren

User metadata
Rank Newbie
Rank
Newbie

One more HardMPU. 😀
It's a pity, but it doesn't work well. Deep in debug.
HardMPU utility is waiting for DRR. /DRR is 4.4V (not 5V) and it seems that U6 sends DB6 as logical 1.

IMG_20200726_041039_sm.jpg
Filename
IMG_20200726_041039_sm.jpg
File size
193.82 KiB
Views
2151 views
File license
GPL-2.0-or-later
IMG_20200726_041052_sm.jpg
Filename
IMG_20200726_041052_sm.jpg
File size
182.09 KiB
Views
2151 views
File license
GPL-2.0-or-later
IMG_20200722_174853_sm.jpg
Filename
IMG_20200722_174853_sm.jpg
File size
282.7 KiB
Views
2151 views
File license
GPL-2.0-or-later

Finally fixed it!

Reply 503 of 608, by MiGee

User metadata
Rank Newbie
Rank
Newbie
Muren wrote on 2020-07-26, 01:20:
One more HardMPU. :) It's a pity, but it doesn't work well. Deep in debug. HardMPU utility is waiting for DRR. /DRR is 4.4V (not […]
Show full quote

One more HardMPU. 😀
It's a pity, but it doesn't work well. Deep in debug.
HardMPU utility is waiting for DRR. /DRR is 4.4V (not 5V) and it seems that U6 sends DB6 as logical 1.
Finally fixed it!

Do you have working ones for sale?

Reply 504 of 608, by ab0tj

User metadata
Rank Member
Rank
Member
Thermalwrong wrote on 2020-07-15, 21:49:
And now the bracket along with the adapter for the ECHO MIA MIDI breakout cable is all done, it's so nice :D Doing this in Eagle […]
Show full quote

And now the bracket along with the adapter for the ECHO MIA MIDI breakout cable is all done, it's so nice 😁
Doing this in Eagle meant that the PCB could be easily put into Fusion 360 so I could make up the bracket. I think I used the wrong gender of connector for the pinout, I had more of the wrong direction DB9 connectors on hand and it resulted in this nice plastic adapter for the midi breakout.

IMG_0633 (Custom).jpeg

IMG_0634 (Custom).jpeg

IMG_0635 (Custom).jpeg

IMG_0637 (Custom).jpeg

IMG_0638 (Custom).jpeg

I really like the DE9 to Mini-DIN adapter you made. That is cool.

Reply 505 of 608, by Jager

User metadata
Rank Newbie
Rank
Newbie

Greetings.
I've encountered a small problem with HardMPU - some of the boards I've made only work after a soft-reset. Otherwise it is not detected by configuration and games + no HardMPU line on MT-32 screen.
As far as I understood that depends on the host system and board itself - currently I've got one board that works fine, and one that exhibits this problem. All boards are nearly identical with 74F series logic, only electrolytic capacitor is different, but I don't think that's the problem.

Reply 506 of 608, by pentiumspeed

User metadata
Rank l33t
Rank
l33t

Look again and review your datasheets on implementing the reset circuit properly in warm mode reset cycle, if the host is not designed properly, might need to modify your card and the motherboard also.

Cheers,

Great Northern aka Canada.

Reply 507 of 608, by Thermalwrong

User metadata
Rank Oldbie
Rank
Oldbie
ab0tj wrote on 2020-10-29, 22:38:

I really like the DE9 to Mini-DIN adapter you made. That is cool.

Thank you 😀 The adapters are fancy looking but in use they're a bit pointless and not as convenient as a regular DB9 > DIN5 cable - still, I bought them with the intention of making them each into a hardMPU's midi cable adapter and I achieved it so that's great 😁
Again, thank you very much for putting your schematic and firmware out there, the utility of the hardMPU on my 386 PC is wonderful, it just *works* without any setup hassle needed, so long as the soundblaster isn't trying to use 330 for its midi port.

Jager wrote on 2020-11-01, 07:31:

Greetings.
I've encountered a small problem with HardMPU - some of the boards I've made only work after a soft-reset. Otherwise it is not detected by configuration and games + no HardMPU line on MT-32 screen.
As far as I understood that depends on the host system and board itself - currently I've got one board that works fine, and one that exhibits this problem. All boards are nearly identical with 74F series logic, only electrolytic capacitor is different, but I don't think that's the problem.

Have you tried a lower CPU speed? Most of my tests have been done with 40-100mhz PCs and it's worked excellently with those, maybe a faster PC could affect something. If it works after a reset, the schematic is probably not at fault.

Reply 508 of 608, by christal87

User metadata
Rank Newbie
Rank
Newbie

Hi
I've also designed a 2 layer PCB and built one. It works fine in gsplay, Doom and Monkey Island. Unfortunately the config utility doesn't work . It quits after an ACK timeout. I traced it back to the same waiting for *DRR signal problem as Muren. I'm not using any CMOS type gates, just the original schematic's low power schottky (74LSxxx) ones. Is that normal or I just did a bad design choice on signal integrity? I've just had some time to try a few games with it. It's a bummer that Duke 3D doesn't work. It quits with MPU-401 not found message on music init. Anyone experiencing the same errors with a HardMPU card?

Reply 509 of 608, by christal87

User metadata
Rank Newbie
Rank
Newbie

My case is closed, finally it works! TL;DR 😀

Didn't want to bring home the scope from the office so I've used the DOS utility's source code to understand what was happening. The 'wait_for_ack' function simply gets the current timestamp using the C time library and checks for 0xFE to be shifted in from the card through those 74LS374 D-type flip-flops until 4 seconds elapse. Then a timeout occurs and the utility returns with the printed ACK timeout and quits with exit condition 1. It also happens if the input shifted in from the card bitwise AND matches the MPU_DSR (0x80 macro representing data bit #8 on the bus) and 4 seconds has elapsed. If you got 0xFE then the for loop breaks, returning void, letting the code continue to the next statement in the main function. I used the good old DEBUG command in DOS to read IO port 330 (jumpered the card to it). In my case 0xFE was there, so I came to the conclusion that I need to check what's up with DSR. Realized it was a typo, I've hooked up DSR to *DSR somewhere along the way and my card only worked with some UART (passive) MPU mode games, but not with intelligent mode ones.
After like 10yrs of Cadsoft Eagle (and like 3-3yrs of NI traxxmaker and Orcad I switched to Kicad now. Still have to get used to it! 😀 I've broken the wrong trace and wired it up to the correct pin.
It's finished and damn it feels good! The funny thing is: I've enjoyed perfecting this 486 more than playing on it. It wasn't like this when I was a kid. I've never- ever worked on an ISA card in my life before. Never used the conio library before (merely saw it in an old Turbo C book) because I'm more like a linux guy and it's different in that way. Nice to know how to handle it in C and how to debug in DOS. Nice work ab0tj and a big thumbs up! Thanks for the advanture! 😀 Nice going on the test jig LED blink in the Atmel source code too! Saved me some time of testing when I've forgot to program the MCU fuses.
I'm going to try and move the 74xx logic chips into a CPLD in the near future. I've read that 5V TTL CPLDs are not really made and being supported anymore but first I'm going to use one from the XC9500 series. Followed by something more modern stuff and logic level translation. I might as well port the MCU code to an STM32F103C8T6.

Reply 511 of 608, by christal87

User metadata
Rank Newbie
Rank
Newbie
pentiumspeed wrote on 2020-11-24, 23:29:

Good work!

But 4 second is very long time in hardware? Do you mean millisecond?

Cheers,

Thank you!
Could be my bad. Not long for a timeout. If you think about it: the code expects the right event before this timeout ever happens. For example a default tcp connection keepalive timeout is 7200sec (2hours) in the linux tcp stack. I believe time(NULL) returns a seconds based timestamp ("Epoch time") since 1-1-1970 (M-D-YYYY), but I know this from the unix world. I'm not really sure how much MSDOS is POSIX compliant and counts from 1970, but I think they use something like 1900. Other functions like 'send_byte' and 'get_byte use' use less 1-2 (sec?) timeout. Why I truly believe it's seconds is that there is this short pause after starting the utility and it printing the error, then exiting with 1.

Reply 512 of 608, by Kamerat

User metadata
Rank Oldbie
Rank
Oldbie

Would it be possible with the right software on the microcontroller of HardMPU to be a MPU-401 hardware "bridge" to non MPU-401 capable synths like the EMU8000 or GF1, like a hardware version of AWEUTIL?

DOS Sound Blaster compatibility: PCI sound cards vs. PCI chipsets
YouTube channel

Reply 513 of 608, by gdjacobs

User metadata
Rank l33t++
Rank
l33t++

For MIDI synths, it would require an audio circuit, but that's about it. Ideally, it would be available in a nice handy form factor that plugs into a standard pin header. Ideally, most sound card models would have this standard pin header.

All hail the Great Capacitor Brand Finder

Reply 514 of 608, by Kamerat

User metadata
Rank Oldbie
Rank
Oldbie

Was thinking that the HardMPU/"HardAWEUTIL" receives the MIDI data at port 330h over the ISA bus and then the HardMPU talks to the AWE32/64 sound card at port 620h over the same ISA bus in EMU8000 "language". Sound banks could be loaded directly to the AWE32/64 and then the HardMPU could receive the information for how to handle the specific sound bank via SysEx messages. Can some of you gurus tell me if this is even possible?

This would have been very nice for the AWE64 Legacy as it already contains a MCU for HardMPU.

DOS Sound Blaster compatibility: PCI sound cards vs. PCI chipsets
YouTube channel

Reply 515 of 608, by Tiido

User metadata
Rank l33t
Rank
l33t

It is not impossible but there are many gotchas. The card that then talks to the AWE will need to be bus mastering capable and this brings chipset incompatibilites into the matter most probably.

Other problem is someone willing to make a MIDI engine that will work with the EMU8000 chip. The chip doesn't have great documentation available and supporting various sound banks is a whole can of worms too because the sound engine running on that card will need to be aware of them and their structure to support them. AVR isn't gonna have enough storage in it to support all the bank definitions and whatnot.

It will require all new hardware design and a much bigger MCU to do the task. Things get less hard if the device sits directly between ISA and the AWE card/EMU8000.

T-04YBSC, a new YMF71x based sound card & Official VOGONS thread about it
Newly made 4MB 60ns 30pin SIMMs ~
mida sa loed ? nagunii aru ei saa 😜

Reply 516 of 608, by Kamerat

User metadata
Rank Oldbie
Rank
Oldbie

Thanks for your answer Tiido, much appreciated.

Tiido wrote on 2021-01-30, 10:16:

It is not impossible but there are many gotchas. The card that then talks to the AWE will need to be bus mastering capable and this brings chipset incompatibilites into the matter most probably.

This really sounds like the biggest obstacle to get my idea working.

Other problem is someone willing to make a MIDI engine that will work with the EMU8000 chip. The chip doesn't have great documentation available and supporting various sound banks is a whole can of worms too because the sound engine running on that card will need to be aware of them and their structure to support them. AVR isn't gonna have enough storage in it to support all the bank definitions and whatnot.

It will require all new hardware design and a much bigger MCU to do the task. Things get less hard if the device sits directly between ISA and the AWE card/EMU8000.

There are open source drivers in Linux for the EMU8000 that could be a source of information. The AWEUTIL itself takes up 40 kB when loaded as a TSR and the ATmega 1284 got 16 kB RAM and 128 kB flash but I don't know much about how you can address the memory of the MCU and which parts that can be static in the flash memory. Talking directly to the EMU8000 needs hardware modifications and will perhaps exclude the AWE64 as it's a more integrated solution.

DOS Sound Blaster compatibility: PCI sound cards vs. PCI chipsets
YouTube channel

Reply 517 of 608, by yyzkevin

User metadata
Rank Member
Rank
Member

Sorry if this has already been repeated, but has anybody put this hardmpu into a pcmcia card? I saw it contemplated but no follow up.

I am about to do this but I do not want to reinvent the wheel. My plan is the HardMPU and the dream.dr SAM2695 on a 16bit pccard.

www.yyzkevin.com

Reply 518 of 608, by Warlord

User metadata
Rank l33t
Rank
l33t

declaring interest in a pcmcia hardmpu wavetable card The only thing I know though unless you are going to build the driver yourself you need card services like card soft or somthing to initialize pcmcia cards under dos.

Reply 519 of 608, by yyzkevin

User metadata
Rank Member
Rank
Member

It just needs a proper CIS so the host knows what it is and what resources it needs. I would copy the functionality of an existing card i.e. scp-55 to avoid having to write my own drivers/enablers for different platforms, or patch games to use non-standard i/o addresses etc.

www.yyzkevin.com