Closed rbasa349 closed 1 year ago
same
same shit
I'm surprised that Valve still hasn't fixed it yet. Trash level Infinity 🌀
same problem on. my mbp14 2021 system report: https://gist.github.com/Yingqiao1998/31395b75c5c2ada107d84872439c22fd
Did anyone of you found any alternative yet ??
With -phased_window_create
launch option i have a dota logo, but it still stuck on it :(
same
Did anyone of you found any alternative yet ?
Yes, a different MacBook with Mac OS Ventura installed in it.
@ntehseen stop shitposting, please.
@ntehseen stop shitposting, please.
Im talking about the alternative, if you have found any other solution then you can share that.
@ntehseen, the community never welcomed solutions like "just use worked device"
Shorter answer: Developers just need to update the allowed macos version, and dota will run properly.
I found the solution but it's very-very dirty trick.
When I run the dota with dota.sh, I got an error like This macOS version is not supported
.
NOTICE: all we do may break your current installed macos, but do it at your own risk. Some apps which strictly check macos 14+ version will not run (also system settings and other system apps)
Schema of what we do below:
Detailed info on how we can do it:
sudo nano ~/rootmount/System/Library/CoreServices/SystemVersion.plist
replace 14.0 to 13.4 (should be 2 matches)
ctrl+x, y, enter
sudo bless --mount "$HOME/rootmount/System/Library/CoreServices/" --setBoot --create-snapshot
Proof: https://www.youtube.com/watch?v=K-ZBZAnE0v4
After you play and you need to go to work, enable SIP back and macos do all things back
PS: BECAUSE I CAN!
wow ultra dirty)) plz give me trace dota2.sh after change version. I want find this checker version in source
@YuraLazarev can you message me in tg, nickname same as in gh
@YuraLazarev
I`m not very familiar with source engine, and not sure if we can change something, thing steam just redownload changed files :(
@kisak-valve can you move the matter forward, please 🙏
Dota might not know, but there is a big fanbase who are playing dota on macbooks, and currently this issue has caused dota to be unplayable on macs.
Currently only beta testers of macos, who have opted in to mac beta testing, have updated their OS and are experiencing this issue. There will be a huge crowd coming soon as more people opt in beta of macos. Moreover, when there is a full release it will have a much bigger impact. Affecting all mac users.
Please help this move forward. Incase you require support from us, as users or developers, we are there with you. Lets work together to get this closed asap.
@dez64ru thanks )) I wrote to support in steam. I think lib libclient.dylib have checker os version and I start analyze this lib.
@YuraLazarev i wrote them twice, but they sent the shitty botlike message like "thanks, and we cannot do this anything" 🗿
Having the same issue
heh. its not Dota bug)) its source 2. if looks open source 1 code)
ifdef POSIX
case k_eMacOSUnknown:
return "Mac OS";
case k_eMacOS104:
return "MacOS 10.4";
case k_eMacOS105:
return "MacOS 10.5";
case k_eMacOS1058:
return "MacOS 10.5.8";
case k_eMacOS106:
return "MacOS 10.6";
case k_eMacOS1063:
return "MacOS 10.6.3";
case k_eMacOS107:
return "MacOS 10.7";
case k_eLinuxUnknown:
return "Linux";
case k_eLinux22:
return "Linux 2.2";
case k_eLinux24:
return "Linux 2.4";
case k_eLinux26:
return "Linux 2.6";
#endif
default:
case k_eOSUnknown:
return "Unknown";
}
I think... source 2 has equal logic and he knowns macOS 14
@dez64ru 2xdirty trick? change version to macOS 15 or 16, 20, 0.0.0)) what you get to exception ? "Assertion Failed: Unsupported macOS version 16.0.0" or "Assertion Failed: Unsupported macOS " or "Assertion Failed: Unsupported Unknown"
elif defined(OSX)
if ( eOSVersion == k_eOSUnknown )
{
SInt32 MajorVer = 0;
SInt32 MinorVer = 0;
SInt32 PatchVer = 0;
OSErr err = noErr;
err = Gestalt( gestaltSystemVersionMajor, &MajorVer );
if ( err != noErr )
return k_eOSUnknown;
err = Gestalt( gestaltSystemVersionMinor, &MinorVer );
if ( err != noErr )
return k_eOSUnknown;
err = Gestalt( gestaltSystemVersionBugFix, &PatchVer );
if ( err != noErr )
return k_eOSUnknown;
`
P.S I'm looking for where it's based src/vstdlib/osversion.cpp. .. but I think its no real. its source.... source 2
@YuraLazarev
for the 15.0
src/vstdlib/osversion.cpp (393) : Assertion Failed: Unsupported macOS version 15.0.0
src/vstdlib/osversion.cpp (393) : Assertion Failed: Unsupported macOS version 15.0.0
PS: i don't want set version 0.0.0 because than i cannot launch any programs to revert this changes :)
I tried to walkaround with substitution of dylib (which can be override open(fopen) functionality for spoof SystemVersion.plist for the specific process), but this functionality broked in sonoma see
I got a mac instead of a gaming PC because I play only Dota, and now I can't do it on the most powerful macbook pro. We shouldn't need to manually change macOS version. Please fix ASAP.
I got a mac instead of a gaming PC because I play only Dota, and now I can't do it on the most powerful macbook pro. We shouldn't need to manually change macOS version. Please fix ASAP.
As much as I want to agree with this statement... Sonoma is a developer beta that is out for less than a week. Everyone knows NOT to install dev betas on their primary machine if they have no alternatives for work (and play).
Valve also only got access to Somoma a week ago. Plus the number of DotA Mac players is like 1 % of all DotA players. This is even more obvious if you look at the crappy Mac version of DotA that is not optimized at all, it's basically the laziest of ports.
I'm in the same boat as you are... and, knowing the risks, updated to the first available beta of Somoma after only verifying that the most important apps, that I rely on, work. They do. DotA doesn't. It sucks. It's annoying me. But as much as I want to blame Valve for this... I can't. It's my fault, and my fault only. And this only changes if DotA is STILL broken come fall when Sonoma is officially released. Because what we have now... developer betas... they are MEANT for developers such as Valve, to test their apps and games and then fix them... if they don't work, to be ready when the release takes place.
src/vstdlib/osversion.cpp its part of source 2 engine. it needs updated. Dota update not fixed this
P.S i tested apple game porting toolkit 60 avg fps crashes to menu sound trash and freezing) don't usable for Dota(
I was able to successfully launch Dota by injecting a dylib with modified open()
.
What I did:
fake_SystemVersion.plist
with the same changes that @dez64ru had suggested (14.0
replaced with 13.4
). You can find the original file at /System/Library/CoreServices/SystemVersion.plist
.
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <fcntl.h>
__attribute__((used)) static struct \
{ \
const void *replacement; \
const void *replacee; \
} _interpose_##_replacee \
__attribute__((section("__DATA,__interpose"))) = {(const void *)(unsigned long)&_replacement, (const void *)(unsigned long)&_replacee};
int my_open(const char *filename, int flags, int mode)
{
int fd;
if (strstr(filename, "SystemVersion.plist") != NULL)
{
printf("=== FAKING SystemVersion.plist \n");
filename = "
DYLD_INTERPOSE(my_open, open)
using `gcc -arch x86_64 -o inject.dylib -dynamiclib inject.c` (replace path in code).
3. Placed `inject.dylib` into `<path to 'dota 2 beta' folder>/game`
4. Added `export DYLD_INSERT_LIBRARIES=inject.dylib` into `dota.sh` in the same folder (before the while loop).
**Please use at your own risk, I have no idea if you can get VAC banned for this.**
@rylm huge, dude. i had been so close) inject dylib should not lead to blocking, because we dont touch dota files, and this functionality builtin in dota (see launch options), commonly used for some linux DM (but for now i decide rollback to prev macos version until sonoma not published)
I've checked in a fix for this issue, it should be in the next Dota 2 Client update. Thanks for the reports.
Its fixed in this release. I can play once again. We can close this ticket now. If others can also play successfully, give a thumbs up, or thumbs down.
Edit: missed some 'c'. Typo fixes.
Your system information
Steam
->Help
->System Information
) in a gist: https://gist.github.com/rbasa349/8ec3db5057ae93efa8c1f45c321e174aPlease describe your issue in as much detail as possible:
After launching DotA 2, the game does not start and continues to be in a black screen endlessly maybe this is due to the new Game mode (there is no disable function)?
Steps for reproducing this issue: