Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Phantasmagoria: A Puzzle of Flesh (DOS version) - Mouse does not work #5275

Closed
2 tasks done
fire-lizard opened this issue Nov 8, 2024 · 2 comments
Closed
2 tasks done
Labels

Comments

@fire-lizard
Copy link

Describe the bug

Mouse does not work in Phantasmagoria: A Puzzle of Flesh (DOS version of the game)

Steps to reproduce the behaviour

  1. Install DOS version of Phantasmagoria: A Puzzle of Flesh
  2. Run the game
  3. See that mouse does not work inside the game (working just fine in DOSBox Staging, DOSBOX ECE and SCUMMVM)

Expected behavior

Mouse works in the game

What operating system(s) this bug have occurred on?

Windows 10

What version(s) of DOSBox-X have this bug?

2024.10.01 SDL2

Used configuration

# This is the configuration file for DOSBox ECE. (Please use the latest version of DOSBox)
# Lines starting with a # are comment lines and are ignored by DOSBox.
# They are used to (briefly) document the effect of each option.

[sdl]
#       fullscreen: Start dosbox directly in fullscreen. (Press ALT-Enter to go back)
#       fulldouble: Use double buffering in fullscreen. It can reduce screen flickering, but it can also result in a slow DOSBox.
#   fullresolution: What resolution to use for fullscreen: original, desktop or a fixed size (e.g. 1024x768).
#                     Using your monitor's native resolution with aspect=true might give the best results.
#                     If you end up with small window on a large screen, try an output different from surface.
#                     On Windows 10 with display scaling (Scale and layout) set to a value above 100%, it is recommended
#                     to use a lower full/windowresolution, in order to avoid window size problems.
# windowresolution: Scale the window to this size IF the output device supports hardware scaling.
#                     (output=surface does not!)
#           output: What video system to use for output.
#                     Possible values: surface, overlay, opengl, openglnb, ddraw.
#         autolock: Mouse will automatically lock, if you click on the screen. (Press CTRL-F10 to unlock)
#      sensitivity: Mouse sensitivity. The optional second parameter specifies vertical sensitivity (e.g. 100,-50).
#      waitonerror: Wait before closing the console if dosbox has an error.
#         priority: Priority levels for dosbox. Second entry behind the comma is for when dosbox is not focused/minimized.
#                     pause is only valid for the second entry.
#                     Possible values: lowest, lower, normal, higher, highest, pause.
#       mapperfile: File used to load/save the key/event mappings from. Resetmapper only works with the default value.
#     usescancodes: Avoid usage of symkeys, might not work on all operating systems.

fullscreen       = false
fulldouble       = false
fullresolution   = desktop
windowresolution = original
output           = opengl
autolock         = true
sensitivity      = 100
waitonerror      = true
priority         = higher,normal
mapperfile       = mapper-ECE.map
usescancodes     = true

[dosbox]
# language: Select another language file.
#  machine: The type of machine DOSBox tries to emulate.
#             Possible values: hercules, cga, tandy, pcjr, ega, vgaonly, svga_s3, svga_et3000, svga_et4000, svga_paradise, vesa_nolfb, vesa_oldvbe.
# captures: Directory where things like wave, midi, screenshot get captured.
#  memsize: Amount of memory DOSBox has in megabytes.
#             This value is best left at its default to avoid problems with some games,
#             though few games might require a higher value.
#             There is generally no speed advantage when raising this value.

language = 
machine  = svga_s3
captures = capture
memsize  = 16

[render]
# frameskip: How many frames DOSBox skips before drawing one.
#    aspect: Do aspect correction, if your output method doesn't support scaling this can slow things down!
#    scaler: Scaler used to enlarge/enhance low resolution modes. If 'forced' is appended,
#              then the scaler will be used even if the result might not be desired.
#              To fit a scaler in the resolution used at full screen may require a border or side bars,
#              to fill the screen entirely, depending on your hardware, a different scaler/fullresolution might work.
#              Possible values: none, normal2x, normal3x, advmame2x, advmame3x, advinterp2x, advinterp3x, hq2x, hq3x, 2xsai, super2xsai, supereagle, tv2x, tv3x, rgb2x, rgb3x, scan2x, scan3x.
#  glshader: Path to GLSL shader source to use with OpenGL output ("none" to disable).
#              Can be either an absolute path, a file in the "glshaders" subdirectory
#              of the DOSBox configuration directory, or one of the built-in shaders:
#              advinterp2x, advinterp3x, advmame2x, advmame3x, rgb2x, rgb3x, scan2x,
#              scan3x, tv2x, tv3x, sharp.

frameskip = 0
aspect    = false
scaler    = normal2x
glshader  = none

[cpu]
#      core: CPU Core used in emulation. auto will switch to dynamic if available and
#              appropriate.
#              Possible values: auto, dynamic, normal, simple.
#   cputype: CPU Type used in emulation. auto is the fastest choice.
#              Possible values: auto, 386, 386_slow, 486_slow, pentium_slow, 386_prefetch.
#    cycles: Number of instructions DOSBox tries to emulate each millisecond.
#              Setting this value too high results in sound dropouts and lags.
#              Cycles can be set in 3 ways:
#                'auto'          tries to guess what a game needs.
#                                It usually works, but can fail for certain games.
#                'fixed #number' will set a fixed number of cycles. This is what you usually
#                                need if 'auto' fails (Example: fixed 4000).
#                'max'           will allocate as much cycles as your computer is able to
#                                handle.
#              Possible values: auto, fixed, max.
#   cycleup: Amount of cycles to decrease/increase with keycombos.(CTRL-F11/CTRL-F12)
# cycledown: Setting it lower than 100 will be a percentage.

core      = auto
cputype   = auto
cycles    = auto
cycleup   = 10
cycledown = 20

[pci]
#    voodoo: Enable VOODOO support.
#              Possible values: false, software, opengl, auto.
# voodoomem: Specify VOODOO card memory size.
#                'standard'      4MB card (2MB front buffer + 1x2MB texture unit)
#                'max'           12MB card (4MB front buffer + 2x4MB texture units)
#              Possible values: standard, max.

voodoo    = auto
voodoomem = standard

[mixer]
#   nosound: Enable silent mode, sound is still emulated though.
#      rate: Mixer sample rate, setting any device's rate higher than this will probably lower their sound quality.
#              Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# blocksize: Mixer block size, larger blocks might help sound stuttering but sound will also be more lagged.
#              Possible values: 1024, 2048, 4096, 8192, 512, 256.
# prebuffer: How many milliseconds of data to keep on top of the blocksize.

nosound   = false
rate      = 44100
blocksize = 1024
prebuffer = 25

[midi]
#                  mpu401: Type of MPU-401 to emulate.
#                            Possible values: intelligent, uart, none.
#              mididevice: Device that will receive the MIDI data from MPU-401.
#                            Possible values: default, win32, alsa, oss, coreaudio, coremidi, mt32, fluidsynth, none.
#              midiconfig: Special configuration options for the device driver. This is usually the id or part of the name of the device you want to use
#                            (find the id/name with mixer/listmidi).
#                            Or in the case of coreaudio, you can specify a soundfont here.
#                            When using a Roland MT-32 rev. 0 as midi output device, some games may require a delay in order to prevent 'buffer overflow' issues.
#                            In that case, add 'delaysysex', for example: midiconfig=2 delaysysex
#                            See the README/Manual for more details.
#            fluid.driver: Driver to use with Fluidsynth, not needed under Windows. Available drivers depend on what Fluidsynth was compiled with
#                            Possible values: pulseaudio, alsa, oss, coreaudio, dsound, portaudio, sndman, jack, file, default.
#         fluid.soundfont: Soundfont to use with Fluidsynth. One must be specified.
#        fluid.samplerate: Sample rate to use with Fluidsynth.
#              fluid.gain: Fluidsynth gain.
#         fluid.polyphony: Fluidsynth polyphony.
#             fluid.cores: Fluidsynth CPU cores to use, default.
#           fluid.periods: Fluidsynth periods.
#        fluid.periodsize: Fluidsynth period size.
#            fluid.reverb: Fluidsynth use reverb.
#                            Possible values: no, yes.
#            fluid.chorus: Fluidsynth use chorus.
#                            Possible values: no, yes.
#   fluid.reverb,roomsize: Fluidsynth reverb room size.
#    fluid.reverb.damping: Fluidsynth reverb damping.
#      fluid.reverb.width: Fluidsynth reverb width.
#      fluid.reverb.level: Fluidsynth reverb level.
#     fluid.chorus.number: Fluidsynth chorus voices
#      fluid.chorus.level: Fluidsynth chorus level.
#      fluid.chorus.speed: Fluidsynth chorus speed.
#      fluid.chorus.depth: Fluidsynth chorus depth.
#       fluid.chorus.type: Fluidsynth chorus type. 0 is sine wave, 1 is triangle wave.
#                            Possible values: 0, 1.
#             mt32.romdir: Name of the directory where MT-32 Control and PCM ROM files can be found. Emulation requires these files to work.
#                              Accepted file names are as follows:
#                                MT32_CONTROL.ROM or CM32L_CONTROL.ROM - control ROM file.
#                                MT32_PCM.ROM or CM32L_PCM.ROM - PCM ROM file.
#     mt32.reverse.stereo: Reverse stereo channels for MT-32 output
#            mt32.verbose: MT-32 debug logging
#             mt32.thread: MT-32 rendering in separate thread
#              mt32.chunk: Minimum milliseconds of data to render at once. (min 2, max 100)
#                            Increasing this value reduces rendering overhead which may improve performance but also increases audio lag.
#                            Valid for rendering in separate thread only.
#                            Possible values: 2, 3, 16, 99, 100.
#          mt32.prebuffer: How many milliseconds of data to render ahead. (min 3, max 200)
#                            Increasing this value may help to avoid underruns but also increases audio lag.
#                            Cannot be set less than or equal to mt32.chunk value.
#                            Valid for rendering in separate thread only.
#                            Possible values: 3, 4, 32, 199, 200.
#           mt32.partials: The maximum number of partials playing simultaneously. (min 8, max 256)
#                            Possible values: 8, 9, 32, 255, 256.
#                mt32.dac: MT-32 DAC input emulation mode
#                            Nice = 0 - default
#                            Produces samples at double the volume, without tricks.
#                            Higher quality than the real devices
#                            
#                            Pure = 1
#                            Produces samples that exactly match the bits output from the emulated LA32.
#                            Nicer overdrive characteristics than the DAC hacks (it simply clips samples within range)
#                            Much less likely to overdrive than any other mode.
#                            Half the volume of any of the other modes.
#                            Perfect for developers while debugging :)
#                            
#                            GENERATION1 = 2
#                            Re-orders the LA32 output bits as in early generation MT-32s (according to Wikipedia).
#                            Bit order at DAC (where each number represents the original LA32 output bit number, and XX means the bit is always low):
#                            15 13 12 11 10 09 08 07 06 05 04 03 02 01 00 XX
#                            
#                            GENERATION2 = 3
#                            Re-orders the LA32 output bits as in later generations (personally confirmed on my CM-32L - KG).
#                            Bit order at DAC (where each number represents the original LA32 output bit number):
#                            15 13 12 11 10 09 08 07 06 05 04 03 02 01 00 14
#                            Possible values: 0, 1, 2, 3.
#             mt32.analog: MT-32 analogue output emulation mode
#                            Digital = 0
#                            Only digital path is emulated. The output samples correspond to the digital output signal appeared at the DAC entrance.
#                            Fastest mode.
#                            
#                            Coarse = 1
#                            Coarse emulation of LPF circuit. High frequencies are boosted, sample rate remains unchanged.
#                            A bit better sounding but also a bit slower.
#                            
#                            Accurate = 2 - default
#                            Finer emulation of LPF circuit. Output signal is upsampled to 48 kHz to allow emulation of audible mirror spectra above 16 kHz,
#                            which is passed through the LPF circuit without significant attenuation.
#                            Sounding is closer to the analog output from real hardware but also slower than the modes 0 and 1.
#                            
#                            Oversampled = 3
#                            Same as the default mode 2 but the output signal is 2x oversampled, i.e. the output sample rate is 96 kHz.
#                            Even slower than all the other modes but better retains highest frequencies while further resampled in DOSBox mixer.
#                            Possible values: 0, 1, 2, 3.
#        mt32.output.gain: Output gain of MT-32 emulation in percent, 100 is the default value, the allowed maximum is 1000.
#        mt32.reverb.mode: MT-32 reverb mode
#                            Possible values: 0, 1, 2, 3, auto.
# mt32.reverb.output.gain: Reverb output gain of MT-32 emulation in percent, 100 is the default value, the allowed maximum is 1000.
#        mt32.reverb.time: MT-32 reverb decaying time
#                            Possible values: 0, 1, 2, 3, 4, 5, 6, 7.
#       mt32.reverb.level: MT-32 reverb level
#                            Possible values: 0, 1, 2, 3, 4, 5, 6, 7.
#               mt32.rate: Sample rate of MT-32 emulation.
#                            Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
#        mt32.src.quality: MT-32 sample rate conversion quality
#                            Value '0' is for the fastest conversion, value '3' provides for the best conversion quality. Default is 2.
#                            Possible values: 0, 1, 2, 3.
#        mt32.niceampramp: Toggles "Nice Amp Ramp" mode that improves amplitude ramp for sustaining instruments.
#                            Quick changes of volume or expression on a MIDI channel may result in amp jumps on real hardware.
#                            When "Nice Amp Ramp" mode is enabled, amp changes gradually instead.
#                            Otherwise, the emulation accuracy is preserved.
#                            Default is true.

mpu401                  = intelligent
mididevice              = default
midiconfig              = 
fluid.driver            = default
fluid.soundfont         = 
fluid.samplerate        = 48000
fluid.gain              = .6
fluid.polyphony         = 256
fluid.cores             = default
fluid.periods           = 8
fluid.periodsize        = 512
fluid.reverb            = yes
fluid.chorus            = yes
fluid.reverb,roomsize   = .61
fluid.reverb.damping    = .23
fluid.reverb.width      = .76
fluid.reverb.level      = .57
fluid.chorus.number     = 3
fluid.chorus.level      = 1.2
fluid.chorus.speed      = .3
fluid.chorus.depth      = 8.0
fluid.chorus.type       = 0
mt32.romdir             = 
mt32.reverse.stereo     = false
mt32.verbose            = false
mt32.thread             = false
mt32.chunk              = 16
mt32.prebuffer          = 32
mt32.partials           = 32
mt32.dac                = 0
mt32.analog             = 2
mt32.output.gain        = 100
mt32.reverb.mode        = auto
mt32.reverb.output.gain = 100
mt32.reverb.time        = 5
mt32.reverb.level       = 3
mt32.rate               = 44100
mt32.src.quality        = 2
mt32.niceampramp        = true

[sblaster]
#     sbtype: Type of Soundblaster to emulate. gb is Gameblaster.
#               Possible values: sb1, sb2, sbpro1, sbpro2, sb16, gb, none.
#     sbbase: The IO address of the soundblaster.
#               Possible values: 220, 240, 260, 280, 2a0, 2c0, 2e0, 300.
#        irq: The IRQ number of the soundblaster.
#               Possible values: 7, 5, 3, 9, 10, 11, 12.
#        dma: The DMA number of the soundblaster.
#               Possible values: 1, 5, 0, 3, 6, 7.
#       hdma: The High DMA number of the soundblaster.
#               Possible values: 1, 5, 0, 3, 6, 7.
#    sbmixer: Allow the soundblaster mixer to modify the DOSBox mixer.
#    oplmode: Type of OPL emulation. On 'auto' the mode is determined by sblaster type. All OPL modes are Adlib-compatible, except for 'cms'.
#               Possible values: auto, cms, opl2, dualopl2, opl3, opl3gold, none.
#     oplemu: Provider for the OPL emulation. compat might provide better quality (see oplrate as well).
#               Possible values: default, compat, fast, mame, nuked.
#    oplrate: Sample rate of OPL music emulation. Use 49716 for highest quality (set the mixer rate accordingly).
#               Possible values: 44100, 49716, 48000, 32000, 22050, 16000, 11025, 8000.
# fmstrength: Strength of the FM playback volume in percent, in relation to PCM playback volume. Default is 150.
#               Possible Values: 1 to 1000 (0.01x to 10x)

sbtype     = sb16
sbbase     = 220
irq        = 7
dma        = 1
hdma       = 5
sbmixer    = true
oplmode    = auto
oplemu     = default
oplrate    = 44100
fmstrength = 150

[gus]
#      gus: Enable the Gravis Ultrasound emulation.
#  gusbase: The IO base address of the Gravis Ultrasound.
#             Possible values: 240, 220, 260, 280, 2a0, 2c0, 2e0, 300.
#   gusirq: The IRQ number of the Gravis Ultrasound.
#             Possible values: 5, 3, 7, 9, 10, 11, 12.
#   gusdma: The DMA channel of the Gravis Ultrasound.
#             Possible values: 3, 0, 1, 5, 6, 7.
# ultradir: Path to Ultrasound directory. In this directory
#             there should be a MIDI directory that contains
#             the patch files for GUS playback. Patch sets used
#             with Timidity should work fine.

gus      = false
gusbase  = 240
gusirq   = 5
gusdma   = 3
ultradir = C:\ULTRASND

[speaker]
# pcspeaker: Enable PC-Speaker emulation.
#    pcrate: Sample rate of the PC-Speaker sound generation.
#              Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
#     tandy: Enable Tandy Sound System emulation. For 'auto', emulation is present only if machine is set to 'tandy'.
#              Possible values: auto, on, off.
# tandyrate: Sample rate of the Tandy 3-Voice generation.
#              Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
#    disney: Enable Disney Sound Source emulation. (Covox Voice Master and Speech Thing compatible).

pcspeaker = true
pcrate    = 44100
tandy     = auto
tandyrate = 44100
disney    = true

[joystick]
#  joysticktype: Type of joystick to emulate: auto (default),
#                  none (disables joystick emulation),
#                  2axis (supports two joysticks),
#                  4axis (supports one joystick, first joystick used),
#                  4axis_2 (supports one joystick, second joystick used),
#                  fcs (Thrustmaster), ch (CH Flightstick).
#                  auto chooses emulation depending on real joystick(s).
#                  (Remember to reset DOSBox's mapperfile if you saved it earlier)
#                  Possible values: auto, 2axis, 4axis, 4axis_2, fcs, ch, none.
#         timed: enable timed intervals for axis. Experiment with this option, if your joystick drifts (away).
#      autofire: continuously fires as long as you keep the button pressed.
#        swap34: swap the 3rd and the 4th axis. Can be useful for certain joysticks.
#    buttonwrap: enable button wrapping at the number of emulated buttons.
# circularinput: enable translation of circular input to square output.
#                  Try enabling this if your left analog stick can only move in a circle.
#      deadzone: the percentage of motion to ignore. 100 turns the stick into a digital one.

joysticktype  = auto
timed         = true
autofire      = false
swap34        = false
buttonwrap    = false
circularinput = false
deadzone      = 10

[serial]
# serial1: set type of device connected to com port.
#            Can be disabled, dummy, modem, nullmodem, directserial.
#            Additional parameters must be in the same line in the form of
#            parameter:value. Parameter for all types is irq (optional).
#            for directserial: realport (required), rxdelay (optional).
#                             (realport:COM1 realport:ttyS0).
#            for modem: listenport (optional).
#            for nullmodem: server, rxdelay, txdelay, telnet, usedtr,
#                           transparent, port, inhsocket (all optional).
#            Example: serial1=modem listenport:5000
#            Possible values: dummy, disabled, modem, nullmodem, directserial.
# serial2: see serial1
#            Possible values: dummy, disabled, modem, nullmodem, directserial.
# serial3: see serial1
#            Possible values: dummy, disabled, modem, nullmodem, directserial.
# serial4: see serial1
#            Possible values: dummy, disabled, modem, nullmodem, directserial.

serial1 = dummy
serial2 = dummy
serial3 = disabled
serial4 = disabled

[glide]
#  glide: Enable glide emulation: true,false.
#    lfb: LFB access: full,full_noaux,read,read_noaux,write,write_noaux,none.
#           OpenGlide does not support locking aux buffer, please use _noaux modes.
# splash: Show 3dfx splash screen (requires 3dfxSpl2.dll).

glide  = false
lfb    = full_noaux
splash = true

[dos]
#            xms: Enable XMS support.
#            ems: Enable EMS support. The default (=true) provides the best
#                   compatibility but certain applications may run better with
#                   other choices, or require EMS support to be disabled (=false)
#                   to work at all.
#                   Possible values: true, emsboard, emm386, false.
#            umb: Enable UMB support.
# keyboardlayout: Language code of the keyboard layout (or none).

xms            = true
ems            = true
umb            = true
keyboardlayout = auto

[ipx]
# ipx: Enable ipx over UDP/IP emulation.

ipx = false

[autoexec]
# Lines in this section will be run at startup.
# You can put your MOUNT lines here.

mount C C:\DOS
keyb ru441 866
MIXER MASTER 50:50
PATH %PATH%;C:\VC\
C:
rem C:\QB\qbherc.com
# C:\VC\ruskey.com
C:\VC\vc.com

Output log

No response

Additional information

No response

Have you checked that no similar bug report(s) exist?

  • I have searched and didn't find any similar bug report.

Code of Conduct & Contributing Guidelines

  • I agree to follow the code of conduct and the contributing guidelines.
@fire-lizard fire-lizard added the bug label Nov 8, 2024
@maron2000
Copy link
Contributor

Your mouse didn't work because you didn't capture mouse by pressing CTRL+F10.
Consult the wiki page for details.
https://github.com/joncampbell123/dosbox-x/wiki/Guide%3AMouse-support-in-DOSBox%E2%80%90X#capturing-mouse

Some fixes regarding drop-down menu and middle button handling was fixed in PR #5270 so you may want to try the nightly builds for better experience.

Sierra.000-1.mp4

@fire-lizard
Copy link
Author

Thank you so much, the bug should be closed now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants