[-] Mttw_@lemmy.dbzer0.com 6 points 2 months ago

Not sure what games you want to play, but maybe consider buying a telescopic controller instead of a full handled (because we're in ram shortage right now).

If you already have a decent phone, you can install mobile versions of most emulators and play using telescopic controller.

Start checking if you can run ppsspp, it's the easiest to setup.

[-] Mttw_@lemmy.dbzer0.com 5 points 3 months ago

No, 5800x3d is zen3 sadly.

But you can actually test it with a small python script:

# docs: https://man.archlinux.org/man/arch_prctl.2
import ctypes
import errno
import mmap
import os
import signal
import subprocess
import sys

SYS_arch_prctl = 158
ARCH_SET_CPUID = 0x1012

libc = ctypes.CDLL(None, use_errno=True)
libc.syscall.restype = ctypes.c_long

def arch_set_cpuid(enabled: bool) -> None:
    rc = libc.syscall(SYS_arch_prctl, ARCH_SET_CPUID, 1 if enabled else 0)
    if rc != 0:
        e = ctypes.get_errno()
        raise OSError(e, os.strerror(e))

def make_cpuid_stub():
    # push rbx
    # xor eax, eax
    # cpuid
    # pop rbx
    # ret
    code = b"\x53\x31\xc0\x0f\xa2\x5b\xc3"
    mm = mmap.mmap(
        -1,
        len(code),
        flags=mmap.MAP_PRIVATE | mmap.MAP_ANONYMOUS,
        prot=mmap.PROT_READ | mmap.PROT_WRITE | mmap.PROT_EXEC,
    )
    mm.write(code)
    addr = ctypes.addressof(ctypes.c_char.from_buffer(mm))
    func = ctypes.CFUNCTYPE(None)(addr)
    func._mm = mm
    return func

def child():
    cpuid = make_cpuid_stub()

    print("Trying normal CPUID...")
    cpuid()
    print("Normal CPUID worked.")

    try:
        arch_set_cpuid(False)
    except OSError as e:
        if e.errno == errno.ENODEV:
            print("CPU does not support CPUID faulting.")
            return 2
        raise

    print("CPUID disabled for this thread. Calling CPUID again...")
    cpuid()  # should SIGSEGV -11 if faulting is supported
    print("Unexpected: CPUID did not fault.")
    return 0

if __name__ == "__main__":
    if len(sys.argv) > 1 and sys.argv[1] == "child":
        raise SystemExit(child())

    p = subprocess.run([sys.executable, __file__, "child"], text=True)
    print(f"child exit code: {p.returncode}")

    if p.returncode == -signal.SIGSEGV:
        print("Result: CPUID faulting is supported and worked.")
    elif p.returncode == 2:
        print("Result: CPUID faulting is not supported by the hardware.")
    else:
        print("Result: test did not complete cleanly.")
[-] Mttw_@lemmy.dbzer0.com 6 points 3 months ago

yeah, more on that: linux kernel has support for cpuid faulting for supported intel cpus since 2017, while amd since only last year. Not sure why amd was slower on this.

[-] Mttw_@lemmy.dbzer0.com 22 points 3 months ago* (last edited 3 months ago)

No it cannot be done with proton alone. Proton/wine is only a translation layer: if a program makes cpuid calls, proton/wine cannot intercept them because cpuid is executed directly on hardware silicon.

[-] Mttw_@lemmy.dbzer0.com 34 points 3 months ago* (last edited 3 months ago)

Correction: usermode is only supported by zen4 (or newer) and intel Ivy Bridge (or newer).

The reason is pretty simple: only from those generations onwards a new instruction was added (cpuid faulting) which is executed in the hardware itself, old generations simply lacks the silicon for it.

cpu faulting is used to trap usermode cpuid calls and can be used to return spoofed values, without needing an hypervisor.

[-] Mttw_@lemmy.dbzer0.com 6 points 4 months ago

You can't get lossless with any spotify mod. All spotify mods are capped at free account quality (128kbps iirc) because spotify api premium check happens server side.

Any mod that says otherwise is a scam at best, malware at worst.

Note: i'm only talking about spotify custom apk mods. Local lossless download tools are legit and can download lossless (eg votify) with a premium paid account.

[-] Mttw_@lemmy.dbzer0.com 14 points 4 months ago

InsaneRamZes uploaded the full game (155gb) on rutracker org. I obv cant direcly link to it, but search bar is your friend :)

[-] Mttw_@lemmy.dbzer0.com 7 points 4 months ago

Do you have a paid/premium apple music account? if yes it's easy and you can even download lossless from apple music: https://github.com/glomatico/gamdl#%EF%B8%8F-wrapper

[-] Mttw_@lemmy.dbzer0.com 7 points 5 months ago

There are 2 very informative threads on cs rin ru (search for "Hypervisor cracks"), read them and then decide if it's worth it.

What games are you planning to play? Are they worth the risk?

[-] Mttw_@lemmy.dbzer0.com 6 points 7 months ago

rtings provide actual overall tests: https://www.rtings.com/vpn/tests/changelogs

and you can sort reviews based on your major factor: https://www.rtings.com/vpn/reviews/

[-] Mttw_@lemmy.dbzer0.com 10 points 1 year ago* (last edited 1 year ago)

Well i've setup a fork and modified the workflow file to build windows and macos: https://github.com/PorcoDio00033/strawberry/actions/runs/17040509548

I've not tested those binaries because i dont use that player, but they should work because entire workflow ran without errors.

The original repo already builds both windows + macos binaries, but it pushes them to a private server, not publically in actions/releases.

Paywalling binaries doesnt make sense lol

view more: next ›

Mttw_

0 post score
0 comment score
joined 1 year ago