PDA

View Full Version : LAPC-I Issues



per
April 11th, 2011, 04:01 PM
Some time ago I bought a LAPC-I with a MCB-1 box, however, it wasn't in the best condition one could expect. most of it was just costmetic issues, but there were one other major issue: Quitcky after I removed the card from it's box, the 4MHz clock in the MPU-401 cirquits fell right off, as a result of a terrible soldering job done by one of the previous owners. I mannaged to solder it at least partally back on, and since it worked just fine when I tested the card in the host PC; I just left it as it was.

However, now I recently received an USB MIDI adapter (Edirol brand), which seems to have certain issues with the card. I have used the adapter to connect the LAPC-I to my recent PC, and I have been trying to run it through DosBox (MPU-401 intelligent mode emulation active). For some reason custom patches and many sys-ex messages fails to transmitt, but note On/Off messages seems to pass just fine.

It's not the adapter as it is able to comunicate with my FB-01 synth just fine, including sys-ex messages, custom patches and everything. Also, the LAPC-I seems to work just fine when accessed from it's host computer, which means that the issus may be isolated to the serial I/O part of the MPU-401. I have a feeling that the 4 MHz clock mentioned in the first pharagraph has something to do with it, as the soldering job I did was certainly not perfect either.

Does anybody have an idea what the 4MHz clock actually does? If it is used at all when the host PC comunicates with the card? And, can a bad soldering on a clock's terminal cause the signal to glitch?

Maverick1978
April 11th, 2011, 04:41 PM
I'm far from an authority on these cards, but from what my limited research has provided, the 4mhz clock is timed for a standard PC 8-bit ISA slot - but it's been used and tested in a myriad of other systems up to 450mhz, at least from what I've read about.

My first suggestion would be to try a different midi cable - from the forums at Vogons, many people have ran into problems with intermittent sysex/sounds and either disabling cache on the CPU or changing cables (or both) solved the problem. Some info on the PC you're using, other cards installed, etc, might help with the diagnosis.

Cloudschatze
April 11th, 2011, 05:11 PM
http://queststudios.com/smf/index.php?topic=2001.0

:)

per
April 12th, 2011, 12:24 AM
http://queststudios.com/smf/index.php?topic=2001.0

:)

Splendid, that may be the solution! I'll try it out later today.

As for the clock; the MPU-401 schematics states that it is directly connected to the MIDI Microcontroller, which I believe also does the processing of MIDI from the host computer.

In the cases where the cable/adapter is the issue; it's a cheap $5 über-low-end no-brand device in 95% of the cases. The adapter I have is a mid-end device made by Edirol, which is a daugther-company of Roland.

per
April 12th, 2011, 12:52 PM
A quick "o 331 37" and "o 331 89" in debug solved the problem. Thanks for pointing this out.

Now the only problem is that the Sierra SCI MT-32 driver completely kills the master volume on exit, which effectively disables playback from any program that does not digitally alter this setting on initialization (assumes it to be manually ajustable as on a real MT-32/CM-32L or fully on as on a freshly initialized LAPC-I).

*Edit*
A second problem is that the MPU-401 in the LAPC-I is incapable of forwarding messages to the LA sound generator without forwarding them to the external MIDI output. This can create certain feedback issues, and it makes it in general difficult to do external data-dumps from the card.

Maverick1978
April 12th, 2011, 01:42 PM
Reading some of these experiences, I can tell that I'm in for some fun when I go to use mine :)

I'm curious - what's the general consensus on the optimal machine to use with an LAPC-I? Their "generation" puts them at the 286/386 level, but do they work well in more advanced machines?

My thinking for my Rolands is this :

1. LAPC-I in my 486DX4-100 gaming machine
2. SB-16/Roland daughter boards in the P2/P3 machines
3. Roland SMU-AT with an MT-32 in the XT (or model 25)
4. leftover Roland SCC-1a left over to play with (most probably going into a more modern P4)

Of course when I actually get around to setting up my office and getting these machines configured, this could all change.. the key for me will be the LAPC-I. If I can't put that into my 486, I'll probably have to put the SCC-1a/MT-32 combo on that one, leaving the LAPC-I for a 286 or 386. Maybe throw it in my PS/2 Model 30, really maximize the old girl :)

per
April 12th, 2011, 02:03 PM
It all depends on what games/programs you plan to use. I have mine in my XT/286, which heavily limits the number of games I can play.

Generally speaking of games with MT-32 support, you will need either a very fast 286 or a 386 in order to play Sierra SCI0/SCI1-based games. Some other games by sierra from that time only uses the SCI audio interface with a custom engine, and these will generally work fine on slower 286 machines too (For an example; Silpheed). Later games even need a better 486 in order to play well.

In other words, you should in general try the games you plan to use with the target-system's given peformance-speed in DOSBox first. For the 4.77MHz XT this is around 340 KIPS, and for the XT/286 (6MHz zero wait-states) it's around 1 MIPS (these numbers are NOT based on the CPU clock speed, but on comparative experiments observing how much the audio playback of certain games deviate at different DOSBox speeds versus the actual system in question).

The SCC-1 should generally go into a fast 486, Pentium or more recent machine, as many games which uses it uses extensive graphics and requires much CPU power.

Maverick1978
April 12th, 2011, 02:14 PM
Oh, I'm quite familiar with Sierra's games and the type of machines they run best on :) I keep systems from each generation around for gaming and play - also the reason why I have collected so many Roland pieces, as I want what I consider to be the best midi implementation on these machines so that I can enjoy the games as I always wanted to years past.

I was predominantly concerned about the LAPC's hardware limitations with respect to the timing and speeds of systems that were made after its lifespan. Of course, I'm looking to have Intelligent-Mode MIDI implemented on the older XT/286 class machines so that I can experience the early MIDI and Sysex messages on the MT-32 for the first time :) To my understanding, much, if not all of this ceased with the SCI0/1-based games, so that's where I was hoping to use my LAPC-I, as these will run at proper speed even on a fast DX4-100. That and honestly, it's probably the machine that will gain permanent hook-up, whereas the others will probably only be hooked up as needed. We'll see how much room/space I have once I can get the office finished....

With that said, I guess it all comes down to this: try it and see! :)

I appreciate the input, Per - hope you're enjoying your LAPC!

per
April 13th, 2011, 10:16 AM
Just for instance, here is a small piece of code that will enable the "Sys-Ex thru" switch and thereon print the MPU-401 version number if successfull. I'm just thinking that many people may not be too familiar with debug. This program is just the start of a more advanced interface program I am planning to write.

What's interesting is that the ZIP file is almost twice the size of the actual program.

Hurin
May 22nd, 2013, 08:42 PM
Just for instance, here is a small piece of code that will enable the "Sys-Ex thru" switch and thereon print the MPU-401 version number if successfull. I'm just thinking that many people may not be too familiar with debug. This program is just the start of a more advanced interface program I am planning to write.

What's interesting is that the ZIP file is almost twice the size of the actual program.
Hi Per,

New user here. I was wondering if you'd be willing to help a fellow LAPC-I owner. I found this thread through google. I've got a Roland LAPC-I and an MCB-1 break-out box. I need to enable my LAPC-I's ability to receive sysex commands over the MIDI-in interface (which is receiving MIDI from a USB-to-MIDI cable and DOSBox). I downloaded and tried your linked utility (enablese.com). Unfortunately, it only outputs: "MPU-401 Version: ?.>@" and then there is no sound heard from the LAPC-I until I reboot the computer.

The computer housing the LAPC-I is running Dos 6.22. I'm in the U.S.

Any help would be appreciated. Even if it's a quick recipe in Dos debug!

Thanks!

Hurin

per
May 23rd, 2013, 03:35 AM
Hi Per,

New user here. I was wondering if you'd be willing to help a fellow LAPC-I owner. I found this thread through google. I've got a Roland LAPC-I and an MCB-1 break-out box. I need to enable my LAPC-I's ability to receive sysex commands over the MIDI-in interface (which is receiving MIDI from a USB-to-MIDI cable and DOSBox). I downloaded and tried your linked utility (enablese.com). Unfortunately, it only outputs: "MPU-401 Version: ?.>@" and then there is no sound heard from the LAPC-I until I reboot the computer.

The computer housing the LAPC-I is running Dos 6.22. I'm in the U.S.

Any help would be appreciated. Even if it's a quick recipe in Dos debug!

Thanks!

Hurin

If I remember correctly, the program is hardcoded to use the default settings of the card. Make sure you have it set to those. (J07/J08 should both be jumpered at 1, J01 of the IRQ jumpers should be jumpered)

Hurin
May 23rd, 2013, 08:18 AM
If I remember correctly, the program is hardcoded to use the default settings of the card. Make sure you have it set to those. (J07/J08 should both be jumpered at 1, J01 of the IRQ jumpers should be jumpered)
Hi Per,

Thank you for replying! I certainly need the help!

I just confirmed that my LAPC-I is set to the defaults (even took a snapshot so I can refer back to it). Old DOS games that I run directly on the computer hosting the LAPC-I do function correctly (including custom sounds so sysex is working there). So that would also seem to indicate that the card is at the proper default I/O and IRQ since almost all DOS games just assume I/O of 330 and do not allow the user to change it.

I can't think of any reason why your program wouldn't work in a simple DOS environment for me when it works for you. Does it refer to some other file I might not have? I am simply putting it in the root of the hard drive and executing it. Is it possibly a language/encoding thing since I'm from the U.S. and according to the forums you're in Norway?

Thank you for your time. Win or lose, I am immensely grateful!

Best Regards,

Hurin

P.S. The link to the vogons (edit: oops, I meant queststudios) thread made reference to another utility ("mputhru") but the link on that forum was deleted. I'd dearly love to get my hands on that utility as well if anyone has it. Googling came up empty. I have PMed Great Hierophant since he was a participant in that thread. But if anyone else knows where I can get it, please let me know!

per
May 23rd, 2013, 08:46 AM
It may be some conflicts (are you using a Soundblaster card with MPU-401 "compability"?), or there has been timing things I haven't taken into account when writing the program. It was basically just thrown together, and it worked on my 286.

Try to enter Debug, write "o 331 37", press enter, write "o 331 89", press enter again, and at last "q" and enter.

Hurin
May 23rd, 2013, 09:09 AM
Per,

Again, thanks for helping.

Prior to writing, I removed all other (extraneous) cards from the old DOS computer. So it's only currently running a VGA card (Matrox, I believe) and the Roland LAPC-I.

It's an Abit BH6 motherboard and Pentium II 450 CPU. It has no problem with the LAPC-I nor my SCC-1 when running them natively (not just hosting them as external devices). So the cards themselves don't seem to freak out due to the somewhat more modern CPU/system itself.

When trying the debug recipe, the LAPC-I appears to just go silent (Great Hierophant noticed something similar). When I then try to fire up DOSBox with my preferred test game (Ultima 7, it has customized sounds right at the outset), the LAPC-I is completely dormant (no sound/music). Without rebooting the LAPC-I-hosting computer, if I then close DOSBox on the modern computer, and then fire up Ultima 7 natively on LAPC-I host, it does then seem to initialize as normal and play.

Incidentally, if I first fire up Ultima 7 natively on the LAPC-I-hosting computer, exit Ultima7, then fire up DOSBox and play Ultima 7, everything sounds great (the custom sounds are intact, the sysex having been accomplished prior via the ISA MPU interface).

So. . . I hate to make assumptions and this is a bit of a leap, but I wonder if the debug command is putting the LAPC-I into a "wait for sysex state". . . and then it never comes out of that state because perhaps my USB-->MIDI adapter doesn't correctly pass sysex? I see the adapter's lights flash for several seconds before the game starts though. So this is perhaps a longshot. I have a name-brand (Roland UM-One Mk2) USB Midi interface on the way and it's due next week. But I think I'm probably grasping at straws.

If you can think of anything else that might be the issue, or if anyone can please pass along info about that other utility ("mputhru?") mentioned on that other forums, I'd be immensely grateful. I'd like to continue troubleshooting this since I doubt I'm correct about the USB>MIDI cable also being a factor.

--H

Cloudschatze
May 23rd, 2013, 10:14 AM
Try to enter Debug, write "o 331 37", press enter, write "o 331 89", press enter again, and at last "q" and enter.

I believe the ACKs need to be cleared.

debug
o 331 37
i 330
o 331 89
i 330
q

Hurin
May 23rd, 2013, 10:40 AM
I believe the ACKs need to be cleared.

debug
o 331 37
i 330
o 331 89
i 330
q
Thank you for this! It represents progress! The LAPC-I is no longer rendered silent by the debug procedure. However, the sysex command is still apparently not being received.

Incidentally, it responds "FE" after each "i 330" command in Debug.

So, at this point, I think I'm either sending it "the wrong bits" to enable sysex over MIDI (unlikely), or my USB MIDI interface isn't sending it correctly (seeming more likely).

Thoughts? Cloudschatze, do you still have a copy of mputhru that you seem to have tried years ago (according to thread on other forum)? At some point, I'd like to get the proper setting do-able via a single line for a bootable autoexec.bat.

Best,

H

Cloudschatze
May 23rd, 2013, 03:23 PM
Thoughts?

You might try a MIDI loopback configuration to see if the SysEx data is being correctly sent to the LAPC-I, or run a MIDI monitoring program/utility on LAPC-hosting system itself.

You'll need to contact NewRisingSun about the MPUTHRU utility.

per
May 23rd, 2013, 03:37 PM
You might try a MIDI loopback configuration to see if the SysEx data is being correctly sent to the LAPC-I, or run a MIDI monitoring program/utility on LAPC-hosting system itself.

You'll need to contact NewRisingSun about the MPUTHRU utility.
This is a good idea. I've heard that a lot of the cheaper USB/MIDI controllers can be quite inaccurate at times, which is why I went for a slightly more expensive Edirol USB/MIDI controller.

Hurin
May 23rd, 2013, 04:01 PM
Thanks guys. I won't trouble you for further info about setting up the test loop or obtaining a recommended MIDI monitoring utility. I'm off to google! ;)

Incidentally, I have an old PCI x-fi with a front drive bay with MIDI out on it. I wonder if perhaps installing that in my wife's computer, and using that as the DOSBox MIDI out (if possible) would be a good test since it would bypass the possibly problematic USB MIDI cable.

--H

Hurin
May 23rd, 2013, 07:04 PM
Okay, major progress and/or solution. . .

I didn't have a F/F MIDI cable adapter to create a loop for my USB MIDI adapter. And I wasn't sure that a utility running on the DOS computer housing the LAPC-I would be a good test since if I didn't see the sysex come through, I still wouldn't know if it was the LAPC-I blocking it or the USB MIDI adapter (or maybe I'm wrong there).

But, regardless. . . it's now almost certainly the cable. Which is good to know because we could have kept banging our heads against the LAPC-I thinking it wasn't allowing for sysex when in fact we were initializing it properly.

Here's how I came to that conclusion. . .

I only have one computer with ISA slots.
I have an SCC-1.
So long as I set the SCC-1 to its I/O 330 and IRQ 2/9 defaults, Ultima 7 with send the MIDI intended for the LAPC-I to it.
I then needed to set the LAPC-I to I/O 336 and IRQ 5 so that it wouldn't conflict with the freshly installed SCC-1.
I connected the MIDI out of the SCC-1 to the MIDI in of the MCB-1/LAPC-I.
Upon booting, I modified the debug lines appropriately for the new LAPC-I I/O. . . 330-->336 and 331-->337.
Ultima 7 then played all the custom sounds. It sounded perfect with MIDI coming in externally from the SCC-1.

So, the culprit is most likely my USB MIDI interface. Thankfully, I already have a Roland one on the way (UM One Mk2).

Thank you all for your help. . . Per, when I have my new USB MIDI interface, I'll try your utility again. Maybe it was working all along despite the odd output at the command line for MPU-401 version and we just couldn't tell because my USB MIDI interface wasn't passing sysex. Then again, it was causing the LAPC-I to go silent, so I guess that's unlikely. But I'll try it.

One last question: In case Per's utility doesn't work though, is there any way for me to include all those debug lines in a batch file so that I can execute them via autoexec.bat at boot? I'll especially need this if Per's utility doesn't work and I can't find a copy of mputhru (I have a PM out to its author, I believe).

Best,

H

Hurin
May 23rd, 2013, 07:42 PM
is there any way for me to include all those debug lines in a batch file so that I can execute them via autoexec.bat at boot?
I think I can adapt the instructions here to my purpose. . .

http://support.microsoft.com/kb/105940

. . . and that should take care of everything. Thanks for the help everyone! Especially the proper debug code. I'll report back after my new USB MIDI adapter arrives. Hopefully with good news!

--H

P.S. All of this when I could just use MUNT! :P

per
May 23rd, 2013, 08:52 PM
I think I can adapt the instructions here to my purpose. . .

http://support.microsoft.com/kb/105940

. . . and that should take care of everything. Thanks for the help everyone! Especially the proper debug code. I'll report back after my new USB MIDI adapter arrives. Hopefully with good news!

--H

P.S. All of this when I could just use MUNT! :P

You basically put the lines in a text file and feed it to Debug, yeah.

In DOS:

echo o 337 37 > sysex.scr
echo i 336 >> sysex.scr
echo o 337 89 >> sysex.scr
echo i 336 >> sysex.scr
echo q >> sysex.scr
and then

debug < sysex.scr

Hurin
May 24th, 2013, 08:47 AM
My Roland-branded USB MIDI interface should be here today (was scheduled for Tuesday). Can't wait to see if everything finally comes together. I spent last night installing a fresh install of DOS 6.22 on the LAPC-I and SCC-1 hosting machine so it's clean and pristine. Then I wrote the batch file that will initialize the LAPC-I. And finally, I tested to make sure the machine will boot fully in "headless" mode (no keyboard or monitor). It's all ready to go!

--H

Hurin
May 24th, 2013, 07:01 PM
New USB MIDI interface (Roland UM-ONE Mk2) arrived. And now everything is working perfectly. All issues are resolved. A hearty "thank you" to all.

One final non-critical question: Is it worthwhile to also send the same bits to the SCC-1 (with the debug lines modified appropriately for the SCC-1 now being at I/O 336. . . I moved the LAPC-I back to the 330 default)?

I haven't noticed any real need to do so and no odd sounding songs or instruments on the SCC-1. But if it won't hurt and might help, I don't see any harm in sending the bits to the SCC-1.

I haven't decided if I'll just use two USB MIDI interfaces or put the SCC-1 and LAPC-I in a MIDI chain yet. I'm leaning towards the former. But seeing as how I no longer trust the cheapo generic USB MIDI interfaces, that's another $39 + shipping I'd just as soon not spend.

Anyways, again. . . thank you all very much!

--H