[GH-ISSUE #1929] [Bug]: The UI Display Wrong On '金铲铲之战' #1271

Open
opened 2026-03-03 19:05:24 +03:00 by kerem · 9 comments
Owner

Originally created by @mrkaixuan on GitHub (Jul 23, 2025).
Original GitHub issue: https://github.com/PlayCover/PlayCover/issues/1929

Describe the bug

The Game's UI Display Error

Image

Image

Steps to reproduce

After open the game, when I click the '阵容推荐',the UI flipped 90 degrees and display on the right half screen

Expected behaviour

Displaying Correct UI

Crash log


What version of PlayCover are you using?

3.1.0

What version of macOS are you using?

macOS beta (please state the specific version)

Issue Language

  • Yes my issue is written in English
Originally created by @mrkaixuan on GitHub (Jul 23, 2025). Original GitHub issue: https://github.com/PlayCover/PlayCover/issues/1929 ### Describe the bug The Game's UI Display Error ![Image](https://github.com/user-attachments/assets/4e22dfd5-d012-407d-8012-187b212f400c) ![Image](https://github.com/user-attachments/assets/b690b314-de98-4b35-92b7-2f08d8bec3c5) ### Steps to reproduce After open the game, when I click the '阵容推荐',the UI flipped 90 degrees and display on the right half screen ### Expected behaviour Displaying Correct UI ### Crash log ```shell ``` ### What version of PlayCover are you using? 3.1.0 ### What version of macOS are you using? macOS beta (please state the specific version) ### Issue Language - [x] Yes my issue is written in English
Author
Owner

@CAO10327 commented on GitHub (Jul 24, 2025):

我也是这个问题

<!-- gh-comment-id:3111852376 --> @CAO10327 commented on GitHub (Jul 24, 2025): 我也是这个问题
Author
Owner

@InTimmyDate commented on GitHub (Aug 5, 2025):

Same here, and the weird thing is the underlying UI seems to be correct such that I am seeing it flipped 90 degrees to the right, but I have to click the exit button on the location where its supposed to be when displayed correctly for it to work.

<!-- gh-comment-id:3153679840 --> @InTimmyDate commented on GitHub (Aug 5, 2025): Same here, and the weird thing is the underlying UI seems to be correct such that I am seeing it flipped 90 degrees to the right, but I have to click the exit button on the location where its supposed to be when displayed correctly for it to work.
Author
Owner

@qianyingkongjian commented on GitHub (Aug 6, 2025):

我的也遇到这样的问题,使用2.0版本运行显示是正确的,3.0和3.1版本都是有错误的,而且通过旋转图像是旋转不到正确方向的,macos15.4.1

<!-- gh-comment-id:3158009199 --> @qianyingkongjian commented on GitHub (Aug 6, 2025): 我的也遇到这样的问题,使用2.0版本运行显示是正确的,3.0和3.1版本都是有错误的,而且通过旋转图像是旋转不到正确方向的,macos15.4.1
Author
Owner

@viatearz commented on GitHub (Aug 10, 2025):

Temporary patch:

EXECUTABLE=~/Library/Containers/io.playcover.PlayCover/Applications/com.tencent.jkchess.app/Frameworks/MSDKWebView.framework/MSDKWebView
FUNC_ADDR=$(otool -oV $EXECUTABLE | awk '/MSDKBaseWebViewController/{found=1} found && /supportedInterfaceOrientations/{f=1} f && /imp/{print $2; exit}')
printf '\x0A' | dd of=$EXECUTABLE bs=1 seek=$(($FUNC_ADDR+0x265)) conv=notrunc
codesign -fs- $EXECUTABLE
<!-- gh-comment-id:3172386722 --> @viatearz commented on GitHub (Aug 10, 2025): Temporary patch: ``` bash EXECUTABLE=~/Library/Containers/io.playcover.PlayCover/Applications/com.tencent.jkchess.app/Frameworks/MSDKWebView.framework/MSDKWebView FUNC_ADDR=$(otool -oV $EXECUTABLE | awk '/MSDKBaseWebViewController/{found=1} found && /supportedInterfaceOrientations/{f=1} f && /imp/{print $2; exit}') printf '\x0A' | dd of=$EXECUTABLE bs=1 seek=$(($FUNC_ADDR+0x265)) conv=notrunc codesign -fs- $EXECUTABLE ```
Author
Owner

@viatearz commented on GitHub (Aug 10, 2025):

It seems there is a bug in their code — It accidentally sets the initial supportedInterfaceOrientations to portrait.
The if condition should check for 1 or 2, not 1 or 4.
They might have confused UIInterfaceOrientation with UIInterfaceOrientationMask, because:

  • UIInterfaceOrientationPortraitUpsideDown = 2
  • UIInterfaceOrientationMaskPortraitUpsideDown = 1 << 2 = 4
// Disassembled code
-(UIInterfaceOrientationMask) [MSDKBaseWebViewController supportedInterfaceOrientations] {
   UIInterfaceOrientation orientation = UIApplication.sharedApplication.keyWindow.windowScene.interfaceOrientation;
    if (orientation == 1 || orientation == 4) {
        return UIInterfaceOrientationMaskPortrait;
    } else {
        return UIInterfaceOrientationMaskLandscape;
    }
}
<!-- gh-comment-id:3172386832 --> @viatearz commented on GitHub (Aug 10, 2025): It seems there is a bug in their code — It accidentally sets the initial `supportedInterfaceOrientations` to portrait. The if condition should check for 1 or 2, not 1 or 4. They might have confused `UIInterfaceOrientation` with `UIInterfaceOrientationMask`, because: - UIInterfaceOrientationPortraitUpsideDown = 2 - UIInterfaceOrientationMaskPortraitUpsideDown = 1 << 2 = 4 ``` objective-c // Disassembled code -(UIInterfaceOrientationMask) [MSDKBaseWebViewController supportedInterfaceOrientations] { UIInterfaceOrientation orientation = UIApplication.sharedApplication.keyWindow.windowScene.interfaceOrientation; if (orientation == 1 || orientation == 4) { return UIInterfaceOrientationMaskPortrait; } else { return UIInterfaceOrientationMaskLandscape; } } ```
Author
Owner

@CiE-XinYuChen commented on GitHub (Sep 4, 2025):

Thx for your help and feedback. It's work now.

<!-- gh-comment-id:3253317848 --> @CiE-XinYuChen commented on GitHub (Sep 4, 2025): Thx for your help and feedback. It's work now.
Author
Owner

@Hyyya commented on GitHub (Oct 2, 2025):

请问应该怎么去修复这个问题呢,有解决方法跟步骤吗

<!-- gh-comment-id:3359340970 --> @Hyyya commented on GitHub (Oct 2, 2025): 请问应该怎么去修复这个问题呢,有解决方法跟步骤吗
Author
Owner

@CiE-XinYuChen commented on GitHub (Oct 2, 2025):

请问应该怎么去修复这个问题呢,有解决方法跟步骤吗

run this command in shell:

EXECUTABLE=~/Library/Containers/io.playcover.PlayCover/Applications/com.tencent.jkchess.app/Frameworks/MSDKWebView.framework/MSDKWebView
FUNC_ADDR=$(otool -oV $EXECUTABLE | awk '/MSDKBaseWebViewController/{found=1} found && /supportedInterfaceOrientations/{f=1} f && /imp/{print $2; exit}')
printf '\x0A' | dd of=$EXECUTABLE bs=1 seek=$(($FUNC_ADDR+0x265)) conv=notrunc
codesign -fs- $EXECUTABLE
<!-- gh-comment-id:3359467882 --> @CiE-XinYuChen commented on GitHub (Oct 2, 2025): > 请问应该怎么去修复这个问题呢,有解决方法跟步骤吗 run this command in shell: ``` EXECUTABLE=~/Library/Containers/io.playcover.PlayCover/Applications/com.tencent.jkchess.app/Frameworks/MSDKWebView.framework/MSDKWebView FUNC_ADDR=$(otool -oV $EXECUTABLE | awk '/MSDKBaseWebViewController/{found=1} found && /supportedInterfaceOrientations/{f=1} f && /imp/{print $2; exit}') printf '\x0A' | dd of=$EXECUTABLE bs=1 seek=$(($FUNC_ADDR+0x265)) conv=notrunc codesign -fs- $EXECUTABLE ```
Author
Owner

@mrkaixuan commented on GitHub (Oct 10, 2025):

Temporary patch:

EXECUTABLE=~/Library/Containers/io.playcover.PlayCover/Applications/com.tencent.jkchess.app/Frameworks/MSDKWebView.framework/MSDKWebView
FUNC_ADDR=$(otool -oV $EXECUTABLE | awk '/MSDKBaseWebViewController/{found=1} found && /supportedInterfaceOrientations/{f=1} f && /imp/{print $2; exit}')
printf '\x0A' | dd of=$EXECUTABLE bs=1 seek=$(($FUNC_ADDR+0x265)) conv=notrunc
codesign -fs- $EXECUTABLE

thx

<!-- gh-comment-id:3390733180 --> @mrkaixuan commented on GitHub (Oct 10, 2025): > Temporary patch: > > EXECUTABLE=~/Library/Containers/io.playcover.PlayCover/Applications/com.tencent.jkchess.app/Frameworks/MSDKWebView.framework/MSDKWebView > FUNC_ADDR=$(otool -oV $EXECUTABLE | awk '/MSDKBaseWebViewController/{found=1} found && /supportedInterfaceOrientations/{f=1} f && /imp/{print $2; exit}') > printf '\x0A' | dd of=$EXECUTABLE bs=1 seek=$(($FUNC_ADDR+0x265)) conv=notrunc > codesign -fs- $EXECUTABLE thx
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/PlayCover#1271
No description provided.