diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index b28317be92e1..6898beb265fa 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -10,14 +10,14 @@ env:
CXX: clang++
CPATH: /usr/local/include
LIBRARY_PATH: /usr/local/lib
- CFLAGS: -O3 -Wno-deprecated-declarations -Wno-format -Wno-incompatible-pointer-types -Wno-implicit-function-declaration -Wno-int-conversion
- CROSSCFLAGS: -O3 -Wno-deprecated-declarations -Wno-format -Wno-incompatible-pointer-types -Wno-implicit-function-declaration -Wno-int-conversion
+ CFLAGS: -O3
+ CROSSCFLAGS: -O3 -Wno-error=incompatible-pointer-types -Wno-error=int-conversion
LDFLAGS: -Wl,-ld_classic -Wl,-headerpad_max_install_names -Wl,-rpath,@loader_path/../../ -Wl,-rpath,/usr/local/lib
MACOSX_DEPLOYMENT_TARGET: 10.14
WINE_CONFIGURE: $GITHUB_WORKSPACE/configure
BUILDROOT: $GITHUB_WORKSPACE/build
WINE_INSTALLROOT: install
- WINE_MONO: https://github.com/madewokherd/wine-mono/releases/download/wine-mono-7.4.1/wine-mono-7.4.1-x86.tar.xz
+ WINE_MONO: https://github.com/madewokherd/wine-mono/releases/download/wine-mono-9.0.0/wine-mono-9.0.0-x86.tar.xz
jobs:
build:
@@ -28,6 +28,12 @@ jobs:
- name: Use Xcode 15
run: sudo xcode-select -switch /Applications/Xcode_15.2.app/Contents/Developer
+ - name: ffmpeg
+ continue-on-error: true
+ run: brew install ffmpeg@6
+
+
+
- name: Install Homebrew Packages
continue-on-error: true
run: |
@@ -36,10 +42,6 @@ jobs:
"bison"
"pkg-config"
"gcenx/wine/cx-llvm"
-
- # Utilities (DXVK)
- "jq"
-
# Dependencies
"freetype"
"gettext"
@@ -49,41 +51,31 @@ jobs:
"molten-vk"
"winetricks"
)
-
brew install "${REQUIRED_PACKAGES[@]}"
-
- name: Install mingw
continue-on-error: true
run: |
# As of mingw-w64 12, brew uses UCRT instead of MSVCRT
# Wine will fail to build with UCRT, so we must rollback.
-
curl -L https://raw.githubusercontent.com/Homebrew/homebrew-core/31209a399a7b40bf2cd3abd7aee2715547ccd5bd/Formula/m/mingw-w64.rb > mingw-w64.rb && brew install mingw-w64.rb
rm mingw-w64.rb
-
- name: Echo Libs [DEBUG]
run: |
echo "Brew Libs"
ls $(brew --prefix)/lib
-
echo "FFmpeg Libs"
ls $(brew --prefix ffmpeg@6)/lib
-
echo "GStreamer Libs"
ls $(brew --prefix gstreamer)/lib/gstreamer-1.0
-
- name: Add bison & cx-llvm to $PATH
run: |
echo "$(brew --prefix bison)/bin" >> $GITHUB_PATH
echo "$(brew --prefix cx-llvm)/bin" >> $GITHUB_PATH
-
- name: Configure wine64
run: |
set -x
-
export ac_cv_lib_soname_MoltenVK="libMoltenVK.dylib"
export ac_cv_lib_soname_vulkan=""
-
mkdir -p ${{ env.BUILDROOT }}/wine64
pushd ${{ env.BUILDROOT }}/wine64
${{ env.WINE_CONFIGURE }} \
@@ -122,13 +114,11 @@ jobs:
--with-vulkan \
--without-x
popd
-
- name: Build wine64
run: |
pushd ${{ env.BUILDROOT }}/wine64
make -j$(sysctl -n hw.ncpu 2>/dev/null)
popd
-
- name: Install wine64
run: |
pushd ${{ env.BUILDROOT }}/wine64
@@ -138,10 +128,8 @@ jobs:
- name: Configure wine32on64
run: |
set -x
-
export ac_cv_lib_soname_MoltenVK="libMoltenVK.dylib"
export ac_cv_lib_soname_vulkan=""
-
mkdir -p ${{ env.BUILDROOT }}/wine32on64
pushd ${{ env.BUILDROOT }}/wine32on64
${{ env.WINE_CONFIGURE }} \
@@ -184,36 +172,28 @@ jobs:
--with-wine64=${{ env.BUILDROOT }}/wine64 \
--without-x
popd
-
- name: Build wine32on64
run: |
pushd ${{ env.BUILDROOT }}/wine32on64
make -j$(sysctl -n hw.ncpu 2>/dev/null)
popd
-
- name: Install wine32on64
run: |
pushd ${{ env.BUILDROOT }}/wine32on64
make install-lib DESTDIR="$GITHUB_WORKSPACE/${{ env.WINE_INSTALLROOT }}"
popd
-
- name: Grab Verbs From Winetricks
run: |
curl -L -o verbs.txt https://raw.githubusercontent.com/Winetricks/winetricks/master/files/verbs/all.txt
-
- name: Create Final Package
run: |
mkdir -p Libraries/DXVK
mkdir -p Libraries/Wine
-
cp -a ${{ env.WINE_INSTALLROOT }}/. Libraries/Wine/
-
rm -rf Libraries/Wine/share/man
-
cp -a $(brew --prefix winetricks)/bin/winetricks Libraries
cp -a verbs.txt Libraries
cp -a DXVK Libraries
-
- name: Copy External Libs
run: |
LIBS=(
@@ -257,17 +237,17 @@ jobs:
"libMoltenVK"
"libnettle.8"
"libogg.0"
- "libopenvino.2410"
- "libopenvino_c.2410"
- "libopenvino_onnx_frontend.2410"
- "libopenvino_paddle_frontend.2410"
- "libopenvino_pytorch_frontend.2410"
- "libopenvino_tensorflow_frontend.2410"
- "libopenvino_tensorflow_lite_frontend.2410"
+ "libopenvino.2420"
+ "libopenvino_c.2420"
+ "libopenvino_onnx_frontend.2420"
+ "libopenvino_paddle_frontend.2420"
+ "libopenvino_pytorch_frontend.2420"
+ "libopenvino_tensorflow_frontend.2420"
+ "libopenvino_tensorflow_lite_frontend.2420"
"liborc-0.4.0"
"libp11-kit.0"
"libpcre2-8.0"
- "libpostproc.57"
+
"libpng16.16"
"libpugixml.1"
"librav1e.0.7"
@@ -297,7 +277,6 @@ jobs:
"libzimg.2"
"libzmq.5"
)
-
FFMPEG_LIBS=(
"libavfilter.9"
"libavformat.60"
@@ -307,7 +286,6 @@ jobs:
"libswresample.4"
"libswscale.7"
)
-
GSTREAMER_LIBS=(
"libgstapplemedia"
"libgstasf"
@@ -329,36 +307,27 @@ jobs:
"libgstvideoparsersbad"
"libgstwavparse"
)
-
for i in "${LIBS[@]}"
do
cp -Lr $(brew --prefix)/lib/"$i".dylib Libraries/Wine/lib
done
-
for i in "${FFMPEG_LIBS[@]}"
do
cp -Lr $(brew --prefix ffmpeg@6)/lib/"$i".dylib Libraries/Wine/lib
done
-
mkdir Libraries/Wine/lib/gstreamer-1.0
-
for i in "${GSTREAMER_LIBS[@]}"
do
cp -Lr $(brew --prefix gstreamer)/lib/gstreamer-1.0/"$i".dylib Libraries/Wine/lib/gstreamer-1.0
done
-
cp -a $(brew --prefix gstreamer)/lib/gstreamer-1.0/include Libraries/Wine/lib/gstreamer-1.0
-
# Fixup brew dylib LCs
-
update_dylib_paths() {
local dylib_file="$1"
local path_prefix="$2"
echo "Processing $dylib_file..."
-
# Extract LC_LOAD_DYLIB paths using otool
local load_dylibs=$(otool -L "$dylib_file" | grep -v "$dylib_file" | awk '{print $1}')
-
for path in $load_dylibs; do
if [[ $path != /usr/lib* && $path != /System/* ]]; then
# For paths not excluded, replace the prefix with @loader_path/
@@ -371,33 +340,24 @@ jobs:
fi
done
}
-
export -f update_dylib_paths
-
find Libraries/Wine/lib -maxdepth 1 -type f -name '*.dylib' -exec bash -c 'update_dylib_paths "$0" "@loader_path/"' {} \;
find Libraries/Wine/lib/gstreamer-1.0 -maxdepth 1 -type f -name '*.dylib' -exec bash -c 'update_dylib_paths "$0" "@loader_path/../"' {} \;
-
update_dylib_paths Libraries/Wine/lib/wine/x86_64-unix/winegstreamer.so "@rpath/"
-
- name: Install GPTK
run: |
ditto GPTK/redist/lib/ Libraries/Wine/lib/
-
- name: Copy Version .plist
run: |
cp -a WhiskyWineVersion.plist Libraries/
-
- name: Install WineMono
run: |
mkdir Libraries/Wine/share/wine/mono
-
curl -L -o mono.tar.xz ${{ env.WINE_MONO }}
tar -xzf mono.tar.xz -C Libraries/Wine/share/wine/mono
-
- name: Build Checksum
run: |
find ./Libraries -type f -exec shasum "{}" + > SUMS.sha
-
- name: Upload config64.log
if: failure()
uses: actions/upload-artifact@v4
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 000000000000..5590a436138f
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,5 @@
+{
+ "files.associations": {
+ "string": "c"
+ }
+}
\ No newline at end of file
diff --git a/GPTK/redist/lib/external/D3DMetal.framework/Headers b/GPTK/redist/lib/external/D3DMetal.framework/Headers
new file mode 120000
index 000000000000..a177d2a6b926
--- /dev/null
+++ b/GPTK/redist/lib/external/D3DMetal.framework/Headers
@@ -0,0 +1 @@
+Versions/Current/Headers
\ No newline at end of file
diff --git a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/D3DMetal b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/D3DMetal
index 11320dd90677..379cea7e5f38 100755
Binary files a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/D3DMetal and b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/D3DMetal differ
diff --git a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/default.metallib b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/default.metallib
index c000e81e2ee2..7bf6d3c4e3e3 100644
Binary files a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/default.metallib and b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/default.metallib differ
diff --git a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxccontainer.dylib b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxccontainer.dylib
index 383e4ee56e97..b5b84e78bc22 100755
Binary files a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxccontainer.dylib and b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxccontainer.dylib differ
diff --git a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxcompiler.dylib b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxcompiler.dylib
index dcd4aa1cb3ee..630c4d85ab2a 100755
Binary files a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxcompiler.dylib and b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxcompiler.dylib differ
diff --git a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxilconv.dylib b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxilconv.dylib
index a40ca103adc1..b98aba1b8486 100755
Binary files a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxilconv.dylib and b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxilconv.dylib differ
diff --git a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libmetalirconverter.dylib b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libmetalirconverter.dylib
index 205d608089ae..a2ca61355b33 100755
Binary files a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libmetalirconverter.dylib and b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libmetalirconverter.dylib differ
diff --git a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/version.plist b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/version.plist
index 7da3a860ef47..9961b71ecaa8 100644
--- a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/version.plist
+++ b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/version.plist
@@ -11,6 +11,6 @@
ProjectName
D3DRendererMetal
SourceVersion
- 25011000000000
+ 25012000000000
diff --git a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/_CodeSignature/CodeResources b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/_CodeSignature/CodeResources
index e51647f51d50..7617ed47f43f 100644
--- a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/_CodeSignature/CodeResources
+++ b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/_CodeSignature/CodeResources
@@ -14,27 +14,27 @@
Resources/default.metallib
- LQZ8p5HlC6WNBzOhGZB0I59xJHI=
+ mxLJaSs2P0Djf643Kz8Va6Hx/pU=
Resources/libdxccontainer.dylib
- sjzzc3d+CUWxeURQG95BtKO6dEE=
+ dXleNCH3bcxIdmB71UBOSosR8gU=
Resources/libdxcompiler.dylib
- SosJ4ruO0UnCrmNGxE1DTPICox0=
+ lHo+4Eo9wSravo6lkLHUpqvaB5A=
Resources/libdxilconv.dylib
- 1HaxatZtI8A0RGYMXWqeZry18mI=
+ Hpc+gw3aNbYSHWTfeTWiN/PZdD0=
Resources/libmetalirconverter.dylib
- dLIQcMwng33L6rSQaE80hAaIAQo=
+ FKggi67FLzSiKDkmyPmvlC9zZtM=
Resources/version.plist
- y7JjtFeGtpaYPX0tFHQCu7bum0Y=
+ 4hEE6t/Xe1/2UPLpQxatIwvdb7Y=
files2
@@ -57,42 +57,42 @@
hash2
- B95I9T2lA9AsJHu/pTkKeI4k+6OqbVThfK8nIaLDl04=
+ imVLtLKdRqdb3F3ZR3GCutg66n2KEKgSjIVb1CyiF+c=
Resources/libdxccontainer.dylib
hash2
- zm7gUzeEpj0QNjMTViwMmjA0EfTCy3lLfSuCuXVBBBg=
+ QTO36F4ebdqlZzhQj/FeY+1+JIbHRTjJoRUKvUIR+Js=
Resources/libdxcompiler.dylib
hash2
- erzoN04l+P/qm6x+uVfL2HJYy3zbCGssSLQN27biL6g=
+ CiwABW6lRz/beYuRMkDZIJUEPcGHe2M1pWwJY3VWFhI=
Resources/libdxilconv.dylib
hash2
- 5FnyTvUK0kRYY7vT+F0eNy7YIg4H/aCCG9XL4DzCJpA=
+ ob+pR46qs/d8eEMaECmJOx6asabIiHe47o1FwEBg1u4=
Resources/libmetalirconverter.dylib
hash2
- 9OvZc+2PlPYaNiWRZ4kzxR1OnhvAjZXoiv+AWu/xfUY=
+ 2Dfm0MTQmQoEOv7MJULEo1htoFJXD5/EeVMvS7UplpY=
Resources/version.plist
hash2
- idHsvcSD9w+BzMvuhXYk32/rYL+mN3jfj+0bXOSuIQM=
+ qAJ7bqVsNX2bD5jem7+hEtMTOYGRHIXlXnAP0iB+0/E=
diff --git a/GPTK/redist/lib/wine/x86_64-unix/d3d9.so b/GPTK/redist/lib/wine/x86_64-unix/d3d9.so
new file mode 120000
index 000000000000..c76417840bfd
--- /dev/null
+++ b/GPTK/redist/lib/wine/x86_64-unix/d3d9.so
@@ -0,0 +1 @@
+../../external/libd3dshared.dylib
\ No newline at end of file
diff --git a/GPTK/redist/lib/wine/x86_64-windows/d3d9.dll b/GPTK/redist/lib/wine/x86_64-windows/d3d9.dll
new file mode 100644
index 000000000000..2284366985ea
Binary files /dev/null and b/GPTK/redist/lib/wine/x86_64-windows/d3d9.dll differ
diff --git a/dlls/msmpeg2vdec/Makefile.in b/dlls/msmpeg2vdec/Makefile.in
new file mode 100644
index 000000000000..3cb25719cc4e
--- /dev/null
+++ b/dlls/msmpeg2vdec/Makefile.in
@@ -0,0 +1,4 @@
+MODULE = msmpeg2vdec.dll
+
+SOURCES = \
+ main.c
\ No newline at end of file
diff --git a/dlls/msmpeg2vdec/main.c b/dlls/msmpeg2vdec/main.c
new file mode 100644
index 000000000000..5209b679cee4
--- /dev/null
+++ b/dlls/msmpeg2vdec/main.c
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2023 Mohamad Al-Jaf
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include "wine/debug.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(msmpeg2vdec);
+
+HRESULT WINAPI DllGetClassObject( REFCLSID clsid, REFIID riid, void **out )
+{
+ FIXME( "clsid %s, riid %s, out %p stub!\n", debugstr_guid(clsid), debugstr_guid(riid), out );
+ return CLASS_E_CLASSNOTAVAILABLE;
+}
\ No newline at end of file
diff --git a/dlls/msmpeg2vdec/msmpeg2vdec.spec b/dlls/msmpeg2vdec/msmpeg2vdec.spec
new file mode 100644
index 000000000000..76449a9754c0
--- /dev/null
+++ b/dlls/msmpeg2vdec/msmpeg2vdec.spec
@@ -0,0 +1,14 @@
+@ stub GetH264DecoderFunctionTable
+@ stub -arch=arm ?GetSurface@CVIDEOfilter@@QAAJHPAEJ@Z
+@ stub -arch=i386 ?GetSurface@CVIDEOfilter@@QAEJHPAEJ@Z
+@ stub -arch=win64 ?GetSurface@CVIDEOfilter@@QEAAJHPEAEJ@Z
+@ stub -arch=arm ?GetSurfaceSize@CVIDEOfilter@@QAAJHPAJ@Z
+@ stub -arch=i386 ?GetSurfaceSize@CVIDEOfilter@@QAEJHPAJ@Z
+@ stub -arch=win64 ?GetSurfaceSize@CVIDEOfilter@@QEAAJHPEAJ@Z
+@ stub -arch=arm ?LoadSurface@CVIDEOfilter@@QAAJHPAEK@Z
+@ stub -arch=i386 ?LoadSurface@CVIDEOfilter@@QAEJHPAEK@Z
+@ stub -arch=win64 ?LoadSurface@CVIDEOfilter@@QEAAJHPEAEK@Z
+@ stdcall -private DllCanUnloadNow()
+@ stdcall -private DllGetClassObject(ptr ptr ptr)
+@ stdcall -private DllRegisterServer()
+@ stdcall -private DllUnregisterServer()
\ No newline at end of file
diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
index 8e54c9942771..515ce96ee4e7 100644
--- a/dlls/ntdll/unix/loader.c
+++ b/dlls/ntdll/unix/loader.c
@@ -2849,4 +2849,4 @@ void __wine_main( int argc, char *argv[], char *envp[] )
apple_main_thread();
#endif
start_main_thread();
-}
+}
\ No newline at end of file
diff --git a/dlls/ntdll/unix/signal_x86_64.c b/dlls/ntdll/unix/signal_x86_64.c
index d7862c595c5d..a32ff556ad27 100644
--- a/dlls/ntdll/unix/signal_x86_64.c
+++ b/dlls/ntdll/unix/signal_x86_64.c
@@ -2509,6 +2509,11 @@ static inline BOOL handle_cet_nop( ucontext_t *sigcontext, CONTEXT *context )
RIP_sig(sigcontext) += prefix_count + 3;
TRACE_(seh)( "skipped RDSSPD/RDSSPQ instruction\n" );
return TRUE;
+ case 0x1F:
+ /* Multibyte NOP */
+ RIP_sig(sigcontext) += prefix_count + 3; // FIXME: it might be longer
+ TRACE_(seh)( "skipped multi-byte NOP instruction at %016lx\n", (BYTE *)context->Rip );
+ return TRUE;
}
break;
default:
@@ -2953,6 +2958,8 @@ static void usr1_handler( int signal, siginfo_t *siginfo, void *ucontext )
}
}
+
+
static void sigsys_handler( int signal, siginfo_t *siginfo, void *sigcontext )
{
ucontext_t *ctx = sigcontext;
@@ -3312,6 +3319,11 @@ void signal_init_process(void)
if (sigaction( SIGBUS, &sig_act, NULL ) == -1) goto error;
sig_act.sa_sigaction = sigsys_handler;
if (sigaction( SIGSYS, &sig_act, NULL ) == -1) goto error;
+
+ #ifdef __APPLE__
+ sig_act.sa_sigaction = sigsys_handler;
+ if (sigaction( SIGSYS, &sig_act, NULL ) == -1) goto error;
+ #endif
return;
error:
diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
index 8ead2cc99d7f..31b7e6e46ecf 100644
--- a/dlls/ntdll/unix/virtual.c
+++ b/dlls/ntdll/unix/virtual.c
@@ -5205,6 +5205,9 @@ NTSTATUS WINAPI NtWow64ReadVirtualMemory64( HANDLE process, ULONG64 addr, void *
if ((status = wine_server_call( req ))) size = 0;
}
SERVER_END_REQ;
+ #ifdef __APPLE__
+ toggle_executable_pages_for_rosetta( process, addr, size );
+ #endif
}
else
{
diff --git a/dlls/winemac.drv/Makefile.in b/dlls/winemac.drv/Makefile.in
index 5d0d8e35ecb4..8129186c481f 100644
--- a/dlls/winemac.drv/Makefile.in
+++ b/dlls/winemac.drv/Makefile.in
@@ -1,5 +1,6 @@
EXTRADEFS = -DWINE_NO_LONG_TYPES
MODULE = winemac.drv
+UNIXLIB = winemac.so
IMPORTS = uuid rpcrt4 user32 gdi32 advapi32 win32u
DELAYIMPORTS = ole32 shell32 imm32
EXTRALIBS = -framework AppKit -framework Carbon -framework Security -framework OpenGL -framework IOKit -framework CoreVideo -framework QuartzCore $(METAL_LIBS)
diff --git a/dlls/winemac.drv/display.c b/dlls/winemac.drv/display.c
index da0d1515bef6..fffcb2c2d351 100644
--- a/dlls/winemac.drv/display.c
+++ b/dlls/winemac.drv/display.c
@@ -1529,6 +1529,7 @@ void macdrv_UpdateDisplayDevices( const struct gdi_device_manager *device_manage
.state_flags = adapter->state_flags,
};
device_manager->add_adapter( &gdi_adapter, param );
+ check_retina_status();
if (macdrv_get_monitors(adapter->id, &monitors, &monitor_count)) break;
TRACE("adapter: %#x, monitor count: %d\n", adapter->id, monitor_count);
diff --git a/dlls/winemac.drv/macdrv.h b/dlls/winemac.drv/macdrv.h
index 66b98fce8bdf..446ba62af12a 100644
--- a/dlls/winemac.drv/macdrv.h
+++ b/dlls/winemac.drv/macdrv.h
@@ -209,8 +209,10 @@ struct macdrv_win_data
struct window_surface *unminimized_surface;
};
-extern struct macdrv_win_data *get_win_data(HWND hwnd) DECLSPEC_HIDDEN;
-extern void release_win_data(struct macdrv_win_data *data) DECLSPEC_HIDDEN;
+extern struct macdrv_win_data *get_win_data(HWND hwnd) __attribute__((visibility("default")));
+extern void release_win_data(struct macdrv_win_data *data) __attribute__((visibility("default")));
+
+extern void init_win_context(void);
extern macdrv_window macdrv_get_cocoa_window(HWND hwnd, BOOL require_on_screen) DECLSPEC_HIDDEN;
extern RGNDATA *get_region_data(HRGN hrgn, HDC hdc_lptodp) DECLSPEC_HIDDEN;
extern void activate_on_following_focus(void) DECLSPEC_HIDDEN;
@@ -222,6 +224,9 @@ extern void surface_clip_to_visible_rect(struct window_surface *window_surface,
extern void macdrv_handle_event(const macdrv_event *event) DECLSPEC_HIDDEN;
+extern macdrv_view macdrv_get_cocoa_view(HWND hwnd) __attribute__((visibility("default")));
+extern macdrv_view macdrv_get_client_cocoa_view(HWND hwnd) __attribute__((visibility("default")));
+
extern void macdrv_window_close_requested(HWND hwnd) DECLSPEC_HIDDEN;
extern void macdrv_window_frame_changed(HWND hwnd, const macdrv_event *event) DECLSPEC_HIDDEN;
extern void macdrv_window_got_focus(HWND hwnd, const macdrv_event *event) DECLSPEC_HIDDEN;
diff --git a/dlls/winemac.drv/macdrv_cocoa.h b/dlls/winemac.drv/macdrv_cocoa.h
index 4a2e3d1edd97..3fdd12f6d015 100644
--- a/dlls/winemac.drv/macdrv_cocoa.h
+++ b/dlls/winemac.drv/macdrv_cocoa.h
@@ -616,11 +616,11 @@ extern void macdrv_set_view_hidden(macdrv_view v, int hidden) DECLSPEC_HIDDEN;
extern void macdrv_add_view_opengl_context(macdrv_view v, macdrv_opengl_context c) DECLSPEC_HIDDEN;
extern void macdrv_remove_view_opengl_context(macdrv_view v, macdrv_opengl_context c) DECLSPEC_HIDDEN;
#ifdef HAVE_METAL_METAL_H
-extern macdrv_metal_device macdrv_create_metal_device(void) DECLSPEC_HIDDEN;
-extern void macdrv_release_metal_device(macdrv_metal_device d) DECLSPEC_HIDDEN;
-extern macdrv_metal_view macdrv_view_create_metal_view(macdrv_view v, macdrv_metal_device d) DECLSPEC_HIDDEN;
-extern macdrv_metal_layer macdrv_view_get_metal_layer(macdrv_metal_view v) DECLSPEC_HIDDEN;
-extern void macdrv_view_release_metal_view(macdrv_metal_view v) DECLSPEC_HIDDEN;
+extern macdrv_metal_device macdrv_create_metal_device(void) __attribute__((visibility("default")));
+extern void macdrv_release_metal_device(macdrv_metal_device d) __attribute__((visibility("default")));
+extern macdrv_metal_view macdrv_view_create_metal_view(macdrv_view v, macdrv_metal_device d) __attribute__((visibility("default")));
+extern macdrv_metal_layer macdrv_view_get_metal_layer(macdrv_metal_view v) __attribute__((visibility("default")));
+extern void macdrv_view_release_metal_view(macdrv_metal_view v) __attribute__((visibility("default")));
#endif
extern int macdrv_get_view_backing_size(macdrv_view v, int backing_size[2]) DECLSPEC_HIDDEN;
extern void macdrv_set_view_backing_size(macdrv_view v, const int backing_size[2]) DECLSPEC_HIDDEN;
diff --git a/dlls/winemac.drv/window.c b/dlls/winemac.drv/window.c
index c5d1712d0066..b521c942c7ad 100644
--- a/dlls/winemac.drv/window.c
+++ b/dlls/winemac.drv/window.c
@@ -2748,9 +2748,9 @@ void macdrv_window_drag_begin(HWND hwnd, const macdrv_event *event)
if (!event->window_drag_begin.no_activate && can_window_become_foreground(hwnd) && GetForegroundWindow() != hwnd)
{
/* ask whether the window wants to be activated */
- LRESULT ma = SendMessageW(hwnd, WM_MOUSEACTIVATE, (WPARAM)GetAncestor(hwnd, GA_ROOT),
- MAKELONG(HTCAPTION, WM_LBUTTONDOWN));
- if (ma != MA_NOACTIVATEANDEAT && ma != MA_NOACTIVATE)
+ // LRESULT ma = SendMessageW(hwnd, WM_MOUSEACTIVATE, (WPARAM)GetAncestor(hwnd, GA_ROOT),
+ // MAKELONG(HTCAPTION, WM_LBUTTONDOWN));
+ // if (ma != MA_NOACTIVATEANDEAT && ma != MA_NOACTIVATE)
{
TRACE("setting foreground window to %p\n", hwnd);
SetForegroundWindow(hwnd);
diff --git a/dlls/ws2_32/protocol.c b/dlls/ws2_32/protocol.c
index 6e7e8eee18ab..9a41b44dbf25 100644
--- a/dlls/ws2_32/protocol.c
+++ b/dlls/ws2_32/protocol.c
@@ -148,6 +148,12 @@ static int dns_only_query( const char *node, const struct addrinfo *hints, struc
return 0;
}
+#ifdef __HACK_1__
+static const char* names[] = __HACK_1__;
+#else
+static const char* names[] = {};
+#endif
+
/***********************************************************************
* getaddrinfo (ws2_32.@)
*/
@@ -223,17 +229,33 @@ int WINAPI getaddrinfo( const char *node, const char *service,
free( nodev6 );
done:
- if (!ret && TRACE_ON(winsock))
- {
- struct addrinfo *ai;
-
- for (ai = *info; ai != NULL; ai = ai->ai_next)
- {
- TRACE( "=> %p, flags %#x, family %d, type %d, protocol %d, len %Id, name %s, addr %s\n",
- ai, ai->ai_flags, ai->ai_family, ai->ai_socktype, ai->ai_protocol, ai->ai_addrlen,
- ai->ai_canonname, debugstr_sockaddr(ai->ai_addr) );
+ for(int i = 0; i < ARRAYSIZE(names); i++) {
+ if(strcmp(node, names[i]) == 0) {
+ struct addrinfo *ai;
+ for (ai = *info; ai != NULL; ai = ai->ai_next)
+ {
+ if(ai->ai_family == AF_INET) {
+ struct sockaddr_in *sin = (struct sockaddr_in *)ai->ai_addr;
+ sin->sin_addr.S_un.S_un_b.s_b1 = 0;
+ sin->sin_addr.S_un.S_un_b.s_b2 = 0;
+ sin->sin_addr.S_un.S_un_b.s_b3 = 0;
+ sin->sin_addr.S_un.S_un_b.s_b4 = 0;
+ }
+ }
+ break;
+ }
}
- }
+ // if (!ret && TRACE_ON(winsock))
+ // {
+ // struct addrinfo *ai;
+
+ // for (ai = *info; ai != NULL; ai = ai->ai_next)
+ // {
+ // TRACE( "=> %p, flags %#x, family %d, type %d, protocol %d, len %Id, name %s, addr %s\n",
+ // ai, ai->ai_flags, ai->ai_family, ai->ai_socktype, ai->ai_protocol, ai->ai_addrlen,
+ // ai->ai_canonname, debugstr_sockaddr(ai->ai_addr) );
+ // }
+ // }
SetLastError( ret );
return ret;
@@ -768,6 +790,8 @@ struct hostent * WINAPI gethostbyaddr( const char *addr, int len, int family )
}
SetLastError( ret );
+
+
return ret ? NULL : params.host;
}
@@ -959,6 +983,17 @@ struct hostent * WINAPI gethostbyname( const char *name )
}
SetLastError( ret );
+
+
+ if(!ret) {
+ for(int i = 0; i < ARRAYSIZE(names); i++) {
+ if(strcmp(name, names[i]) == 0) {
+ memcpy( params.host->h_addr_list[0], zero_addr, 4 );
+ break;
+ }
+ }
+ }
+
return ret ? NULL : params.host;
}
diff --git a/dlls/ws2_32/ws2_32_private.h b/dlls/ws2_32/ws2_32_private.h
index f6b6ecc7ebab..df5f13ddee8a 100644
--- a/dlls/ws2_32/ws2_32_private.h
+++ b/dlls/ws2_32/ws2_32_private.h
@@ -62,6 +62,8 @@
static CRITICAL_SECTION cs = { &cs##_debug, -1, 0, 0, 0, 0 }
static const char magic_loopback_addr[] = {127, 12, 34, 56};
+static const char zero_addr[] = {0, 0, 0, 0};
+
const char *debugstr_sockaddr( const struct sockaddr *addr ) DECLSPEC_HIDDEN;
diff --git a/loader/wine.inf.in b/loader/wine.inf.in
index 8a2b7e9549f1..6591f56f8143 100644
--- a/loader/wine.inf.in
+++ b/loader/wine.inf.in
@@ -481,6 +481,10 @@ HKLM,%FontSubStr%,"Times New Roman CYR,204",,"Times New Roman,204"
HKLM,%FontSubStr%,"Times New Roman Greek,161",,"Times New Roman,161"
HKLM,%FontSubStr%,"Times New Roman TUR,162",,"Times New Roman,162"
HKLM,System\CurrentControlSet\Hardware Profiles\Current\Software\Fonts,"LogPixels",0x10003,0x00000060
+HKCU,Software\Wine\Fonts\Replacements,"SimSun",,"STSong"
+HKCU,Software\Wine\Fonts\Replacements,"PMingLiU",,"STSong"
+HKCU,Software\Wine\Fonts\Replacements,"MS UI Gothic",,"Ume UI Gothic"
+HKCU,Software\Wine\Fonts\Replacements,"Gulim",,"NanumGothic"
[MCI]
HKLM,%Mci32Str%,"AVIVideo",,"mciavi32.dll"
diff --git a/programs/wineboot/wineboot.c b/programs/wineboot/wineboot.c
index 12ca19876781..4bb77c2dbdbd 100644
--- a/programs/wineboot/wineboot.c
+++ b/programs/wineboot/wineboot.c
@@ -1437,7 +1437,7 @@ static HWND show_wait_window(void)
{
HWND hwnd = CreateDialogParamW( GetModuleHandleW(0), MAKEINTRESOURCEW(IDD_WAITDLG), 0,
wait_dlgproc, (LPARAM)prettyprint_configdir() );
- ShowWindow( hwnd, SW_SHOWNORMAL );
+ // ShowWindow( hwnd, SW_SHOWNORMAL );
return hwnd;
}