Out of curiousity I tried the latest stable release of wine (6.0 as I write this).
On a brand new Debian 10.7 install in a VM, I was able to get the game running with a critical step.
Install stable wine by following these steps https://wiki.winehq.org/Debian
WINEARCH=win32 winecfg to initialize the ~/.wine directory and choose Windows Version to be Windows 98 as before https://i.imgur.com/kj1lNJQ.png
The critical step here is to also check the Emulate a virtual desktop flag. Without this, wine with maplestory won't work https://i.imgur.com/5QTOKf4.png
Copy ws2help.dll and ws2_32.dll into ~/.wine/drive_c/windows/system32/
Execute the exe with WINEARCH=win32 wine <your exe> <server ip> <server port>. In my case, I had a localhost v62 server running on a LAN server. https://i.imgur.com/lVD0D3u.png
I tried to replicate these VM steps in a docker container and although the C++ runtime error doesn't happen anymore, the game still doesn't work.
Dockerfile:
Code:
FROM debian:buster
ARG USER_UID
ARG USER_GID
ARG USER_NAME
RUN apt-get update \
&& apt-get install -y --install-recommends curl \
ca-certificates \
libgtk-3-0 \
libx11-xcb-dev \
libdbus-glib-1-dev \
libxt-dev \
pulseaudio \
libcanberra-gtk3-module \
gnupg2 \
&& dpkg --add-architecture i386 \
&& curl -fsSLO https://dl.winehq.org/wine-builds/winehq.key \
&& apt-key add winehq.key \
&& rm winehq.key \
&& echo "deb https://dl.winehq.org/wine-builds/debian/ buster main" >> /etc/apt/sources.list \
&& apt-get update \
&& apt-get install -y --install-recommends \
libavcodec58:i386 \
libsdl2-2.0-0:i386 \
libstb0:i386 \
libavcodec58 \
libsdl2-2.0-0 \
libstb0 \
&& curl -fsSLO https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/Debian_10/i386/libfaudio0_20.01-0~buster_i386.deb \
&& dpkg -i libfaudio0_20.01-0~buster_i386.deb \
&& rm libfaudio0_20.01-0~buster_i386.deb \
&& curl -fsSLO https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/Debian_10/amd64/libfaudio0_20.01-0~buster_amd64.deb \
&& dpkg -i libfaudio0_20.01-0~buster_amd64.deb \
&& rm libfaudio0_20.01-0~buster_amd64.deb \
&& apt-get install -y --install-recommends \
wine-stable-i386 \
wine-stable-amd64 \
wine-stable \
winehq-stable \
&& rm -rf /var/lib/apt/lists/*
RUN groupadd --gid $USER_GID $USER_NAME \
&& useradd --uid $USER_UID --gid $USER_GID --shell /bin/bash --create-home $USER_NAME
USER $USER_NAME
WORKDIR /home/$USER_NAME
To build it, populate the 3 args
Code:
docker build \
--build-arg USER_UID=`id -u` \
--build-arg USER_GID=`id -g` \
--build-arg USER_NAME=`whoami` \
-t wine .
And to run the image
Code:
#!/usr/bin/env bash
USER_NAME=`whoami`
USER_UID=`id -u`
docker run -it \
-e DISPLAY=$DISPLAY \
-e PULSE_SERVER=/run/pulse/native \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v /run/user/$USER_UID/pulse:/run/pulse \
-v `pwd`/MapleStory:/home/$USER_NAME/MapleStory \
--rm wine bash
Once inside the container, do the same setup as in the VM
Code:
WINEARCH=win32 winecfg
Choose Windows 98, and Emulate a virtual desktop
Copy the 2 dlls into the container path ~/.wine/drive_c/windows/system32/ using docker cp
WINEARCH=win32 wine <your exe> <server ip> <server port>
I was hopeful that this would work, as it finally gets past the C++ runtime error, but there is still an error in the docker container https://i.imgur.com/7XDNyfM.png
Code:
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 151 (GLX)
Minor opcode of failed request: 3 (X_GLXCreateContext)
Value in failed request: 0x0
Serial number of failed request: 250
Current serial number in output stream: 254
Bookmarks