#vmware fusion

222 messages ยท Page 1 of 1 (latest)

formal sluice
#

on vmware fusion with Windows 11 and MacBook Pro M4, i can get into playing an online game with Tacitus and Command Post for R22j maps, but the game alwazs desync after about 1 minute.

i think this is due to the VCRedist challenges that also affect Wine. we need to ensure we have older versions installed according to https://gist.github.com/Medstar117/c9b17dcd8d8427b7cced25c072bc6f8e

based on that article, which focusses on Proton/Steam/Linux, i installed manually the VCRedist packages i could find (x86) versions, and the game plays etc, but i still get desyncs.

does anybody have the set of necessary redist packages i need to install for Windows 11 Arm in a VM that will both play the game and avoid desyncs? has anyone successfully played online multiplayer in this set up?

Gist

C&C Proton Cross-Play Compatibility Guide. GitHub Gist: instantly share code, notes, and snippets.

hallow orchid
#

I know i retired

But holy shit where were you with that clusterfuck of a setup when we were getting this thing on its legs

#

Lmao

#

Vmware with windows + GPU is already wild

On a M chip is borderline masochistic

@shell musk should be able to assist you tho

jovial token
hallow orchid
#

Oh shid that guide still says to DM me

#

@dull nebula pls fix

jovial token
#

Still get that question once every few days haha

hallow orchid
#

I won't be touching those and will give ownership of em once I can when I'm back home

#

msvcr80

Is btw the one you need im quite confident @formal sluice

jovial token
#

Yeah, it is really confusing to users and frustrating to everyone here giving tech support... so hopefully these guides can be updated

hallow orchid
#

But with a proxWindows box I'm not 100% sure of all things amiss with runtimes

#

I'm more interested in that set up tbh that sounds wild

formal sluice
hallow orchid
#

Oh i don't doubt that tbh

#

But that must have been everything but plug and play to set up

formal sluice
#

nah man it was much easier than getting the game running with CrossOver

hallow orchid
#

I use proxmox to manage VMs and some servers with GUI and I nearly killed myself over GPU passtrough

formal sluice
#

literally VMWare Fusion you just run it, boot Windows 11, install Steam install the game, install Tacitus, run the game for the 4gb patch, then install Command Post and i was online with maps. i guess the GPU passthru is "solved" by VMWare these days

hallow orchid
#

Dang

#

Admittedly i did set it up like 5 years ago?

formal sluice
#

so i just need to find and install msvcr80 i guess

hallow orchid
#

And not on mac for that matter

formal sluice
#

yea things have changed a LOT very recently for VMWare and Apple compatibility

#

5 years ago was before apple silicon i think

hallow orchid
#

I say "our"

Med should have it*

hallow orchid
formal sluice
#

i just checked, i don't see any vcredists on his website

#

i have a friend with me who is running on native Windows, so i can do a lot of testing

#

but i still need a clue about which vcredists to install. i assume only the x86 versions? i have all these i found somewhere online probably github a while back

hallow orchid
#

Oh yeah it actually is not in the vault huh

My bad

hallow orchid
#

The games used to come with a _redis directory where they shipped all with em no clue where that one went tbh

formal sluice
#

here's what Windows says is installed

hallow orchid
#

One sec

Need to drop for a bit but I'll be back if you still waiting for help

formal sluice
#

yea i've been trying to get this working for weeks, i'm a long-time fan. i play on my intel macbook usually but it's getting old

torn gullBOT
#

GG @formal sluice, you just advanced to level 3!

shell musk
#

This problem has happened before with apple silicon. Even with the right runtimes installed, the game still desyncs. It's most likely due to the minor differences in the results of floating point operations on an ARM chip as opposed to an x86_64 chip

#

the necessity of runtime installations for prevention of desyncs is for Wine (which has a built-in implementation of those libraries)

shell musk
#

GPU passthrough requires the motherboard to support IOMMU which is provided by technologies like Intel VT-d or AMD-Vi

formal sluice
#

ah, i see. well graphics aren't an issue anyway, everything is flawless in Ultra at the highest resolution

shell musk
#

your problem is only desyncs at the moment?

formal sluice
#

yeah

#

it happens variably between 10 secs and 2 minutes into the start of gameplay

shell musk
#

i'm trying to come up with a novel solution ๐Ÿค”

#

one question

#

does Wine (or Crossover) even work on apple silicon?

formal sluice
#

yeah it does, i also have crossover and can get the game to start, but i couldn't get Tacitus to work there

#

and given VMWare Fusion is actually free now, it'd probably actually be better for the community if we could solve that approach for AS players

shell musk
#

you have to force the game to load tacitus

#

what is your installation media?

formal sluice
#

Steam

#

i bought it also on Origin. and i have the discs but god knows where in storage lol

shell musk
#

ok. you have to find a few paths to forge this command

formal sluice
#

in crossover?

shell musk
#

yes

#

but doesn't steam install proton for you, when you install the game on mac?

formal sluice
#

i think not, because CrossOver already installed Steam in a wine bottle

shell musk
#

doesn't steam have a native mac version?! ๐Ÿ˜

hallow orchid
formal sluice
#

i don't know if i've tried that yet actually (proton/macos steam). i think crossover was supposed to have better performance

shell musk
#

not that much

formal sluice
#

i'm up for debugging to see if we can figure out what the diff is

shell musk
#

crossover gives you better compatibility for some applications

#

but performance-wise it's usually the same as wine

#

let's try the crossover+steam path first

formal sluice
#

ok sure

shell musk
#

do you have ra3 also installed in the same bottle?

formal sluice
#

i don't

#

i do own it but i've not downloaded it

shell musk
#

how fast can you get it installed? ๐Ÿ™‚

formal sluice
#

lol oh man. let's find out i guess

shell musk
#

btw, i think this is the first time, we are trying to get the setup running in crossover

#

so i need to know a few things about it

formal sluice
#

ok that's cool

shell musk
#

does it have a gui?
how can we install windows components in it (equivalent of winetricks)?

formal sluice
#

the Tacitus installer did pick up the presence of kane's wrath

shell musk
#

are the terminal commands the same? (like wine, winecfg, ...)

formal sluice
#

there's a Wine configuration control panel that looks identical to winecfg

#

ra3 will need a while longer to install. how come we need to figure out a way to force the game to load tacitus? i thought the patch just replaced a dll the game automatically picked up

shell musk
torn gullBOT
#

GG @shell musk, you just advanced to level 12!

shell musk
#

we'll reach that too

shell musk
#

and it allows you to install applications and components using that gui into existing bottles

shell musk
#

@formal sluice do you want to set up the bottle now or do you want to do it later?

formal sluice
#

hey @shell musk sorry i went afk, i had a minor medical episode. i've finally downloaded and installed RA3 but for some reason, it won't launch! even tho it's in the same Bottle that CC3KW launches fine in

#

the bottle is all set up for sure, CrossOver is basically a sophisticated Wine wrapper for macOS

shell musk
shell musk
formal sluice
#

sorry, yea, i get the splash screen and then i get a directx error saying ensure you have 9 or higher installed. but cc3kw works in this bottle

#

ok i fixed that with the -win flag! ra3 running

shell musk
#

now the only thing that remains is installing and overriding vc++2005 runtime

#

to prevent desyncs

#

if crossover provides you with the visual c++ 2005 redistributable

#

then install that into the same bottle

#

and then check the Libraries tab in winecfg for that bottle

#

and make sure that msvcr80 has been set to native or native then builtin in the overrides

formal sluice
#

ok awesome this feels close. i've already got a few vc++ 2005 redists installed, namely:

#

then looking at the libraries tab, i don't have msvcr80 but i have very similar entries:

but no msvcr80 โ€“ which is interesting because i guess that refers to the (8.0) version in the installed software. so it should be there.

#

ok and now, i've found and installed this as provided by crossover. i must have installed these other redists by finding the installers manually...

now, msvcr80 appears in the libraries list!

#

haha ok, so now, cc3kw doesn't connect to cnc-online ๐Ÿคฃ

torn gullBOT
#

GG @formal sluice, you just advanced to level 4!

formal sluice
#

but you said there is a way we need to force it to use tacitus so i guess we can investigate that now i also have ra3 installed and working

#

thanks for all your help so far

shell musk
shell musk
#

one way is if crossover's gui, allows changing an application environment variables upon launch

#

the second way, is to craft a command that is going to run in the terminal

#

there is also a third way, which is for steam users, and it's by modifying the steam launch command

formal sluice
#

yeah i have dsound.dll in both RetailEXE versions 1.2 and 1.3 for cc3ckw

shell musk
#

and in the Data directory of RA3

shell musk
formal sluice
#

ok it's not in there but i haven't run the installer again yet since installing ra3

shell musk
formal sluice
#

right lemme try that envar for cc3kw

#

do i add that in Steam?

shell musk
shell musk
#

{GAME_VERSION}
for KW is either 1.2 or 1.3 (1.2 recommended)
for RA3 is either 1.12 or 1.13 (1.12 is recommended)

shell musk
formal sluice
#

hmm, i could just add a wine dll override in winecfg for dsound, is that equivalent?

shell musk
#

that's why we're crafting the command

formal sluice
#

ok, got it. where do i put this command?

shell musk
#

which one?

#

i gave three variations

formal sluice
#

oh. i can't really tell the difference between them. let's say i want to run cc3kw v1.2 with tacitus. which command should i use and how do i execute it?

#

oh sorry i see you've replied to the different methods, which i missed due to lack of discord experience ๐Ÿ™‚

#

ok crossover has a settings pane to provide args and envars to apps but it doesn't seem to make it through to the game. probably because steam swallows it

shell musk
formal sluice
#

ah! i did do that... ok i quit steam and retry

shell musk
#

does crossover see the Red Alert or Kanes Wrath applications?

#

or does it just see the bottle and steam?

#

if you're going through steam, maybe try the third method

formal sluice
#

yeah it shows the apps. so the envar for cc3kw without steam already running, that did work. i got the 4gb patch request, and then the tacitus overlay available notification. but, when i clicked multiplayer->online, the game froze up

#

tried again with v1.2, same thing! freezes up the moment i click Online

#

trying 3rd option now

formal sluice
formal sluice
#

so a workaround is that from crossover i can launch CC3KW with envars and args (separate fields). this works, but i still get the crash when clicking Online. weirdly, the game audio changes i think to signal i'm in the online lobby. but i can't interact with anything

#

in this video, the audio didn't change, but sometimes it does

shell musk
#

ok. inside the game's directory, where Tacitus is installed, there should be a Tacitus.log file. can you send it please?

shell musk
shell musk
formal sluice
shell musk
#

๐Ÿค” it seems to load fine

formal sluice
#

that's definitely the right crash log, i checked the version and timestamp

shell musk
#

@dull nebula Can you check this please?
It's an apple silicon mac (ARM). The game is a steam installation inside of Crossover (a proprietary version of wine; it's technically the same). Tacitus is installed and environment variables are successfully passed through to enable it inside the prefix. Tacitus loads correctly and the overlay is active. But upon clicking on Online (Kanes Wrath), the game freezes and stays locked up. The user has to force quit the application.

#

@formal sluice did you also test red alert 3?

shell musk
formal sluice
#

i didn't test ra3. small clarification, the game doesn't crash after a few seconds, it stays "locked up" (in the video i hit cmd+opt+esc to force quit the game because that is the only way to get back to desktop from this state i could find)

#

just in a meeting at work rn, can test ra3 after

formal sluice
#

ra3 seemed to work. although, i couldn't login because it said the account didn't exist (i guess i have to create a separate one for ra3 than the one i use for cc3kw)

#

otherwise, tacitus worked and the log output is nearly identical. just no freeze

#

ok, logged into online lobby in ra3 โ€“ needed to use my e-mail address instead

#

so it's just cc3kw causing trouble. i just tried again and the audio changed but the screen stays frozen on the main menu. same log data.

torn gullBOT
#

GG @formal sluice, you just advanced to level 5!

dull nebula
#

At work atm so replies will be delayed

Does cc3tw work? Have you tried that?

Trying to see if this is strictly cc3kw or cc3 in general

formal sluice
#

i will download and install to test

#

exact same behavior ๐Ÿ™‚

#

logs are also the same. tested cc3 v1.10

shell musk
shell musk
#

can you also check something? inside kw, in the game's settings, network section, check to see if the ip address is that of your internet network adapter's local ip

formal sluice
#

yeah i did that already, it wasn't the first time, but behavior is the same after changing

#

haha, i haven't played ra3 for a long, long time. but it wasn't better than ra2 which i used to play on the playstation ๐Ÿ˜„

shell musk
#

RA2 is pure bliss! Just the voxel art style on its own is another world ๐Ÿซ  ๐Ÿ’–

formal sluice
#

right?!

jovial token
formal sluice
#

haha. oh but you mean isn't supported by Tacitus yet, surely ๐Ÿ˜‰

jovial token
formal sluice
#

it is known

#

@dull nebula just to summarize for you:

  • Tacitus confirmed working, overlay functional and log output above.
  • But on CC3KW and CC3TW the screen freezes on Multiplayer->Online click (video above) โ€“ audio changes though.
  • RA3 works fine.
  • Platform: Apple Silicon Mac using Crossover (basically Wine) and Steam installation.
dull nebula
formal sluice
#

ok, i let it sit there for 5 minutes, no change โ€“ stays visually frozen, just with the background music playing away. is there any chance this is a vc++ issue?

formal sluice
#

does anybody know how the Silent Login option works from Command Post (cgf-uploads)? it somehow takes you directly to the Online page and auto-attempts login. but i don't know how to set any envars in order to ensure Tacitus loads. if i could combine these two, maybe i can bypass whatever bug is causing the freeze and get straight into the online games selection screen

#

ok so that was an interesting experiment. i ran-with-options Command Post to give it the WINEDLLOVERRIDE that ensures Tacitus loads. then, i enabled Silent Login. I clicked Start Game within Command Post and the splash screen and EA Games animation played. then it just went to a black screen, with no audio. so it seems i got the game to skip directly to the Online screen, but the bug is still there

dull nebula
#

This is an English copy, yes? And it is from Steam, correct?

#

Could you try enabling the "verbose logging" option in Tacitus as well, and place the log file here?

#

Also, is there any sort of custom firewall ruling in place on your setup? If so, you might check if cnc3game.dat and cnc3ep1.dat are added in there

formal sluice
#

yes English and Steam. happy to do verbose logging, how do i enable that? i'm not using anything special firewall wise, just macOS' built in one

shell musk
#

if the option isn't available in the Tacitus overlay, there is a Tacitus.ini file inside the game's directory where dsound.dll resides. Open that file with a text editor, and there is a VerboseLog parameter iirc. Set that to true. Save and rerun the game.

formal sluice
#

ah nice. some progress perhaps:

[19:00:09] [---info---] [thread 1460] socket 824 connecting to ipv4 127.0.0.1:0
[19:00:09] [---info---] [thread 1460] Socket 824 connect result: -1
[19:00:15] [---info---] [thread 1464] socket 840 connecting to ipv4 127.0.0.1:0
[19:00:15] [---info---] [thread 1464] Socket 840 connect result: -1
[19:00:15] [---info---] [thread 1304] socket 848 connecting to ipv4 185.17.144.132:80
[19:00:15] [---info---] [thread 1304] Socket 848 connect result: -1
#

i suspect -1 is not a gracefully handled response from the connection attempt... but not sure why it should be failing. Steam has no problem accessing the internet

#

here's the full thing. interestingly, connections to 20.26.156.210:443 and 23.37.197.221:443 do succeed

formal sluice
#

@dull nebula i added +winsock to the WINEDEBUG flags. it looks like the error from the connect() attempt to http.server.cnc-online.net is STATUS_INVALID_ADDRESS_COMPONENT

formal sluice
#

this is the error with the loopback connect() attempt just prior (which from the Tacitus log output also gives the result -1:
this error actually happened in the logs just before the failed connection attempt, is it relevant?

04c4:0564:trace:winsock:WSAStartup version 0x202
04c4:0564:trace:winsock:WSAStartup increasing startup count to 4
04c4:0564:trace:winsock:socket af=2 type=2 protocol=0
04c4:0564:trace:winsock:WSASocketW family 2, type 2, protocol 0, info 00000000, group 0, flags 0x1
04c4:0564:trace:winsock:sock_ioctl handle 0x340, code 0x120320, in_buffer 0x340dfcd0, in_size 16, out_buffer 0x0, out_size 0
04c4:0564:trace:winsock:WSASocketW created 0x340
04c4:0564:trace:winsock:inet_ntop family 2, addr 340DFEF0, buffer 340DFC2E, len 16
04c4:0564:trace:winsock:connect socket 0x340, addr { family AF_INET, address 127.0.0.1, port 0 }, len 16
04c4:0564:trace:winsock:sock_ioctl handle 0x340, code 0x12032c, in_buffer 0x1cca0978, in_size 24, out_buffer 0x0, out_size 0
04c4:0564:trace:winsock:connect failed, status 0xc0000207.
04c4:0564:trace:winsock:closesocket 0x340
04c4:0564:trace:winsock:WSACleanup decreasing startup count from 4
hallow orchid
#

Hey wait I was responsible for that part of the infrastructure

I don't think it's inherently an issue on cnc onlines end tho

But I can take a looksie if for some reason socket connections get killed off or if we send bogus

formal sluice
#

it seems to be some kind of error trying to make the connect() on the socket to UDP localhost:0 (why?) and then to cnc-online itself. prior connections succeed, including the ones to 20.26.156.210:443 and 23.37.197.221:443

hallow orchid
#

Yo you don't happen to have a Wireshark capture? ๐Ÿ˜‚ /j

formal sluice
#

well i think this is a bug in the socket handling. check this out, i made a minimal socket test in cpp. cross-compiled it from my mac with x86_64-w64-mingw32-g++ -static-libgcc -static-libstdc++ -static minimal_socket_test.cpp -lws2_32 -o socket_test.exe.

#

then i ran it with CrossOver and cmd.exe with WINEDEBUG="+winsock"

#
Initializing Winsock...
Creating socket...
Attempting to connect...
Connected successfully!```
#
0154:trace:winsock:WSAStartup version 0x202
0154:trace:winsock:WSAStartup increasing startup count to 1
0154:trace:winsock:socket af=2 type=1 protocol=6
0154:trace:winsock:WSASocketW family 2, type 1, protocol 6, info 0000000000000000, group 0, flags 0x1
0154:trace:winsock:sock_ioctl handle 0x40, code 0x120320, in_buffer 0x21fc00, in_size 16, out_buffer 0x0, out_size 0
0154:trace:winsock:WSASocketW created 0x40
0154:trace:winsock:inet_addr str "185.17.144.132".
0154:trace:winsock:inet_ntop family 2, addr 000000000021FD34, buffer 000000000021FC00, len 16
0154:trace:winsock:connect socket 0x40, addr { family AF_INET, address 185.17.144.132, port 80 }, len 16
0154:trace:winsock:sock_ioctl handle 0x40, code 0x12032c, in_buffer 0x248cc0, in_size 24, out_buffer 0x0, out_size 0
0154:trace:winsock:closesocket 0x40
0154:trace:winsock:WSACleanup decreasing startup count from 1
hallow orchid
#

Ah dafuq why is it doing that?

formal sluice
#

unsure. try to compare your socket handling with my MVP example and see if there's anything that stands out

#

0xc00000a3 is STATUS_DEVICE_NOT_READY. often due to the underlying network stack/device not being ready or misused socket state. so, noting the previous loopback connection fails with 0xc0000207 (STATUS_INVALID_ADDRESS_COMPONENT) if you can either remove this connection attempt (i'm unsure why you're tyring to connect to UDP on loopback anyway, or is that the game doing this?) that might also need removing/fixing

hallow orchid
#

not anymore i dont know if the team changed smth

hallow orchid
formal sluice
#

this is cc3 and cc3kw that i'm having trouble with ๐Ÿ™‚ ra3 actually works fine

dull nebula
formal sluice
#

yeah @dull nebula it's the endpoint which is failing but this looks more like a C++/winsock programming issue than a network connectivity issue ๐Ÿ™‚ you know i think macos may have recently changed how they handle connection attempts to port 0, which is why i keep mentioning this failed attempt to connect() to 127.0.0.1, port 0 in your code

formal sluice
#

in fact i think the reason the game freezes and stays frozen is not because it's waiting for a timeout, it's probably more likely that the Tacitus code is not gracefully handling the failure to make the socket connection (returns -1)

dull nebula
#

I'll look into this. If memory serves me right, at that point it shouldn't be handling the connection at all--it lets the game handle it

formal sluice
#

hey @dull nebula , any luck looking at this? ๐Ÿ˜„

torn gullBOT
#

GG @formal sluice, you just advanced to level 6!

formal sluice
#

did anyone have time to look into this? i'd do it myself, if i had access to the sauce... ๐Ÿ˜ฆ

shell musk
#

@formal sluice I was actually looking for this thread yesterday to see if it got resolved. I also don't have access to the source. Everything is up to the devs ๐Ÿ™‚

jovial token
#

@shell musk Ready to close this one maybe?

shell musk
jovial token
#

The dev has been notified of this issue, Astra will be unavailable for a long while, the issue has become stale