VOGONS


First post, by nsputnik

User metadata
Rank Newbie
Rank
Newbie

I am trying to run DOS-based sequencers Texture and Voyetra Sequencer Plus Gold 4.11 (not yet teste) with hardware MIDI input and output on Raspberry Pi 4. My experiments have been conducted on macOS 10.13 using MAME 0.226 (64-bit), with the intent to migrate this setup (files and command) to Raspberry Pi OS. If MAME proves unworkable, I may explore alternatives such as patched DOSBox with MIDI in support or Running on Box86 and Wine on a Pi4. DOSBox and DOSBox-X do not feature MIDI in as a standard feature or I would use that, it would be much easier.

Steps Taken
1. Disk Image Creation and Configuration
• Disk Creation with CHDMAN:
◦ Used dd to create a raw disk image and converted it to a .chd using chdman.
◦ Set standard drive geometry (e.g., 512 cylinders, 16 heads, 63 sectors) to create a 250 MB virtual hard disk image.

• Booting with DOS Images:
◦ Tried multiple DOS boot images, including MS-DOS 6.22 and FreeDOS.
◦ Encountered challenges with the system recognizing the hard disk initially. After dozens failed of launches MAME Eventually booted into on of the MS-DOS 6.22 images and the at586 ROM.

• Formatting the Hard Drive:
◦ After successfully connecting the hard disk after many failures, formatted it using fdisk and format c: /s.
◦ Transferred system files and copied additional files from the boot floppy to make the disk bootable with COPY A:\*.* C:\ /-Y and SYS C:

2. ROM and Emulation Experiments
• Systems Tried:
◦ Tested ibm5170, ct486, and finally settled on at586 MAME since it was the only one that would recognize the HD image.
◦ I had to add roland__6801v0b55p__15179222.bin to the zipped ROMs. It came from the mpu401.zip file. I didn't try just placing mpu401.zip ROMs directory but maybe that would have worked. I based that descion on the error message about MAME not finding the Roland .bin file.

• MIDI Device Integration:
◦ Assigned the MPU-401 interface to isa2 in the MAME slot configuration with -isa2 mpu401 when launching the MAME instance.
◦ Verified the MPU-401 initialization via verbose logs but faced issues with IRQ and I/O port detection in DOS applications like Textures.

3. IRQ and I/O Challenges
◦ Once Texture is booted, it is frozen (as it does on the hardware when there is no MIDI interface) when it does not see the virtual MIDI interface. MPU-401 should default to I/O port 0x330 and IRQ 2 or 9 but I have no way to set it or know how it is auto setting in MAME, or do I?
◦ No options in MAME to explicitly configure IRQs or I/O ports, leading to compatibility issues with DOS software.
◦ With DOSBox for MacOS (not patched for Midi in) I can get hardware MID out to a USB midi interface if I first run this in terminal: address=220 irq=7 dma=1 But it does not seem to work in MAME.

Any suggestions on how to get this running?

Reply 1 of 1, by randomtestsubject

User metadata
Rank Newbie
Rank
Newbie

I have successfully installed Voyetra's Sequencer Plus Gold with MIDI In and Out in both MAME and 86Box, on both MacOS and Windows. Besides the trial and error of making it work in the first place, the biggest issue I've faced is MIDI jitter - MacOS seems to do better with this, and for MIDI Out, from best to worst, I'd say 86Box performs the best, MAME performs borderline acceptably, and DOSBox and variants are abysmal. In my experience, the way around it with any emulator is to run the fastest emulated CPU that your hardware will allow.

86Box is probably the easiest to set up, while the MAME configuration I ended up getting to work was surprisingly complex and counterintuitive. For MAME, at586 had the least jitter, and for machine configuration, only sound blasters worked for MIDI, and only on particular ISA slots with particular IRQs, as follows:

isa4 sblaster_16 irq 7 dma 1 dma16 5
isa5 sblaster1_5 irq 5 dma 3

Using command line switches:

mame64 at586 -hard1 2gb.chd -isa4 sblaster_16 -midiout "" -isa5 sblaster1_5 -midiin2 "" -midiout2 "" -lowlatency -window

You'll notice this provides two MIDI Outs for SPG, probably the only real advantage of using MAME for this. It's actually the sblaster1_5 that is the primary VAPI MIDI In/Out, while sblaster_16 provides an extra MIDI Out using a SAPI MPU driver.

In 86Box, I ended up virtualizing a slower version of my real DOS machine, a VIA Apollo Pro 133 Pro with ECS P6BAT-A+ mobo and VIA Cyrix III cpu emulated at 550mhz on a Mac Mini M4, and the jitter with this is mostly all within plus/minus 1 millisecond. There's only one MIDI In/Out in 86Box, an MPU-401, so using SPG's VAPI MPU driver works just fine for that.

I'm not familiar with Texture or Raspberry Pi OS, but if I can be of further help setting up SPG with 86Box or MAME on MacOS let me know.