barotto / IBMulator

The IBM PS/1 emulator.
https://barotto.github.io/IBMulator
GNU General Public License v3.0
112 stars 4 forks source link

MIDI doesn't work in v0.17 #83

Closed Froakiein2022 closed 6 months ago

Froakiein2022 commented 6 months ago

MIDI in DOS games used to work in IBMulator v0.16. However, when I upgraded to IBMulator v0.17, DOS games started refusing to detect a MIDI device, regardless of whether or not the MPU401 is enabled.

Here's the screenshots of the issue: image image

Here are the options that I've tried in ibmulator.ini:

[midi]
;     enabled: Enable MIDI output.
;      device: MIDI device to use. See the README for more info.
; sysex_delay: Minimum amount of delay in milliseconds for SysEx messages. See the README for more info.
;              Possible values: auto, or an integer number (0 to disable all delays).
enabled=yes
device=3
sysex_delay=auto

[pcspeaker]
;  volume: Audio volume.
; balance: Audio balance.
; filters: DSP filters (see README for more info).
;  reverb: Reverb effect (see README for more info).
;  chorus: Chorus effect (see README for more info).
volume=100
balance=0
filters=pc-speaker-1
reverb=no
chorus=no

[ps1audio]
;        enabled: Install the PS/1 Audio/Joystick Card.
;     dac_volume: Audio volume of the DAC.
;    dac_balance: Audio balance of the DAC.
;    dac_filters: DSP filters for the DAC.
;                 Possible values: auto, a preset name, or a list of filter definitions (see the README for more info).
;     dac_reverb: Reverb effect for the DAC.
;     dac_chorus: Chorus effect for the DAC (see README for more info).
; dac_resampling: The resampling method used.
;                 Possible values: sinc, linear, hold (default)
;                    sinc: a bandlimited interpolator derived from the sinc function (SNR of 97dB, bandwidth of 90%).
;                  linear: linear converter.
;                    hold: Zero Order Hold converter (interpolated value is equal to the last value).
;     psg_volume: Audio volume of the PSG.
;    psg_balance: Audio balance of the PSG.
;    psg_filters: DSP filters for the PSG.
;                 Possible values: auto, a preset name, or a list of filter definitions (see the README for more info).
;     psg_reverb: Reverb effect for the PSG (see README for more info).
;     psg_chorus: Chorus effect for the PSG (see README for more info).
enabled=yes
dac_volume=100
dac_balance=0
dac_filters=auto
dac_reverb=auto
dac_chorus=no
dac_resampling=hold
psg_volume=100
psg_balance=0
psg_filters=auto
psg_reverb=auto
psg_chorus=no

[adlib]
; enabled: Install the AdLib Audio Card (cannot be installed with Sound Blaster).
;  volume: Audio volume.
; balance: Audio balance.
; filters: DSP filters (see README for more info).
;  reverb: Reverb effect (see README for more info).
;  chorus: Chorus effect (see README for more info).
enabled=no
filters=
volume=100
balance=0
reverb=no
chorus=no

[sblaster]
;        enabled: Install the Sound Blaster audio card.
;          model: The type of the Sound Blaster card.
;                 Possible values: sb2, sbpro, sbpro2
;                     sb2: Sound Blaster 2.0 (DSP 2.01)
;                   sbpro: Sound Blaster Pro (DSP 3.00)
;                  sbpro2: Sound Blaster Pro 2 (DSP 3.02)
;         iobase: The I/O base address, as an hexadecimal number.
;                 Possible values: 0x220, 0x240.
;            irq: The IRQ line number.
;                 Possible values: 3, 5, 7.
;            dma: The DMA channel number.
;                 Possible values: 0, 1, 3.
; dac_resampling: The resampling method used.
;                 Possible values: auto, sinc, linear, hold
;                    auto: the method depends on the Sound Blaster model.
;                    sinc: a bandlimited interpolator derived from the sinc function (SNR of 97dB, bandwidth of 90%).
;                  linear: linear converter.
;                    hold: Zero Order Hold converter (interpolated value is equal to the last value).
;     dac_volume: DAC's MASTER audio volume.
;                 Possible values: auto, or a positive real number.
;                  auto: let the Sound Blater's Mixer adjust the level (SBPro+ only).
;    dac_balance: DAC's audio balance.
;    dac_filters: DAC's audio filters.
;                 Possible values: auto, a preset, or a list of filter definitions (see the README for more info).
;     dac_reverb: Reverb effect for PCM audio (see README for more info).
;     dac_chorus: Chorus effect for PCM audio (see README for more info).
;  dac_crossfeed: Crossfeed for PCM audio (see README for more info).
;     opl_volume: The OPL chip(s) MASTER audio volume.
;                 Possible values: auto, or a positive real number.
;                  auto: let the Sound Blater's Mixer adjust the level (SBPro or later only).
;    opl_balance: The OPL chip(s) audio balance.
;    opl_filters: Audio filters for the OPL chip(s)
;                 Possible values: auto, a preset, or a list of filter definitions (see the README for more info).
;     opl_reverb: Reverb effect for FM audio (see README for more info).
;     opl_chorus: Chorus effect for FM audio (see README for more info).
;  opl_crossfeed: Crossfeed for FM audio (see README for more info).
enabled=yes
model=sbpro2
iobase=0x220
dma=1
irq=7
dac_resampling=auto
dac_filters=auto
dac_volume=auto
dac_balance=0
dac_reverb=no
dac_chorus=no
dac_crossfeed=no
opl_filters=auto
opl_volume=auto
opl_balance=0
opl_reverb=no
opl_chorus=no
opl_crossfeed=no

[mpu401]
; enabled: Install the MPU-401 interface card.
;  iobase: The I/O base address, as an hexadecimal number.
;          Possible values: 0x330, 0x300
;     irq: The IRQ line number.
;          Possible values: 3, 5, 7
;    mode: Mode of operation.
;          Possible values: intelligent, uart.
enabled=yes
iobase=0x330
irq=3
mode=intelligent
barotto commented 6 months ago

Thank you for reporting. I can confirm, the MPU-401 interface is not working properly in v0.17. I will do a 0.17.1 version to fix this problem (already fixed in unstable).