Every article tag can be clicked to get a list of all articles in that category. Every article tag also has an RSS feed! You can customize an RSS feed too!
Latest Comments by F.Ultra
Linux Kernel patch being discussed to help Windows games run in Wine
3 June 2020 at 3:27 pm UTC Likes: 1

Quoting: CatKiller
Quoting: F.UltraJust guessing here since I'm #1 not a Windows dev and #2 not a Game dev, but this could be due to some high hopes optimizing since the library calls perform some sanity checks and massaging of the data that you send in so a direct syscall is some ns faster.

Me either, but historically there have been some really elaborate things done with games because you really need the performance - timing your game output by where the CRT electron beam is, for example - and you're optimising for that rather than maintainability. On a console it's probably (relatively) legit (and probably took quite a lot of work), since you've got limited hardware configurations and a fixed software environment, any changes to your assumptions come with a whole other console, and if the performance isn't quite there you can't tell your customers to simply buy a better computer. It's not legit when you don't know the hardware, you don't know the software, and all your assumptions can be completely ruined by an OS update, or driver update, or any number of other things that can happen without warning and completely out of your control.

Oh yes, timing to CRT electron beam is something that I did extensively do in the 80:ies and 90:ies but I don't think that even is a thing with consoles released in the last decade. Regardless it does fit as an example anyway, I did write that they where "crazy" :-)

Steam Play Proton 5.0-8 has a Release Candidate up for testing
3 June 2020 at 3:25 pm UTC

Wonder what the fix for Splinter Cell Blacklist is, cannot find any closed bugs for it on their github.

Linux Kernel patch being discussed to help Windows games run in Wine
2 June 2020 at 7:12 pm UTC Likes: 1

Quoting: CatKillerI'm not sure why this didn't occur to me before.

Using system calls directly seems like a very silly thing to do with a Windows game, but that's not necessarily as true for an Xbox game. I think the developers that have done this will still get bitten by the support costs caused by the fragility of their chewing-gum-and-string coding method, but it might not be as insane as it might first appear.

So perhaps Quantic Dream have an Xbox version that they haven't released yet, or they found it easier to go PlayStation -> Xbox -> Windows for some reason.

Just guessing here since I'm #1 not a Windows dev and #2 not a Game dev, but this could be due to some high hopes optimizing since the library calls perform some sanity checks and massaging of the data that you send in so a direct syscall is some ns faster. And there exists lots of projects like this one: https://github.com/JustasMasiulis/inline_syscall that provides easy access to the direct syscalls under Windows.

I guess that based on how "crazy" some of the game devs can by sometimes when they read on some webpage that "do X for performance" then they just do it without thought. One such example was the guy that where porting some game to Stadia and complained about his spinlock behaviour on Linux: https://www.realworldtech.com/forum/?threadid=189711&curpostid=189723 when the real and obvious answer was "don't use spinlocks in userspace, ever", but the dev had used them "for performance" when in the end it turned out that using the proper locks the performance was actually much better :)

Linux Kernel patch being discussed to help Windows games run in Wine
2 June 2020 at 6:48 pm UTC Likes: 1

Quoting: scaine
Quoting: F.Ultra
Quoting: CatKiller
Quoting: elmapul"sidestepping the actual Windows API. "
how is that even possible?

So, again, just as I understand it from reading bug reports about a game I'm vaguely interested in rather than from any in-depth knowledge, most programs will use some kind of library when they need to make some system calls to make something happen - libc or ntdll.dll, say - but it's also possible to just make system calls directly: libc and ntdll.dll need to be able to make their own system calls, too, of course. Windows and Linux both use the same mechanism for this (I think it's a processor instruction and registers?) but they use different numbers in the registers: that is, they'll both have a system call number 12, but there's no reason for it to necessarily do the same thing. In fact, which thing gets done by each number changes between versions of Windows, so the developers doing this need to check the version of Windows and use a look-up table to generate their numbers.

Exactly this! on i386 you put the syscall number in the eax register and some other data in other registers depending on the syscall and then you raise the $80 interrupt. On x86_64 they implemented a pure syscall instruction on the CPU.

Here is an old "Hello World" example that calls the sys_write syscall (syscall 4) to write the "hello world" string to stdout and then it calls exit (syscall 1) to let the kernel terminate the "application" with a proper exit code.
 
.data
    s:
        .ascii "hello world\n"
        len = . - s
.text
    .global _start
    _start:

        movl $4, %eax   /* write system call number */
        movl $1, %ebx   /* stdout */
        movl $s, %ecx   /* the data to print */
        movl $len, %edx /* length of the buffer */
        int $0x80

        movl $1, %eax   /* exit system call number */
        movl $0, %ebx   /* exit status */
        int $0x80
Jesus, I'm getting wild, unwelcome flashbacks to the mid-80's and trying to learn 68020 assembler to get a simple text message scrolling smoothly across the screen! I got there, but I paid for that in blood and almost literal tears. Never again!

68020 assembler is a league of beauty and non-complexiness above i386 so you should actually feel lucky ;). I have a few hundred floppys with 68000 assembler code in the basement, don't know if they still are readable though...

Linux Kernel patch being discussed to help Windows games run in Wine
1 June 2020 at 11:53 pm UTC Likes: 5

Quoting: CatKiller
Quoting: elmapul"sidestepping the actual Windows API. "
how is that even possible?

So, again, just as I understand it from reading bug reports about a game I'm vaguely interested in rather than from any in-depth knowledge, most programs will use some kind of library when they need to make some system calls to make something happen - libc or ntdll.dll, say - but it's also possible to just make system calls directly: libc and ntdll.dll need to be able to make their own system calls, too, of course. Windows and Linux both use the same mechanism for this (I think it's a processor instruction and registers?) but they use different numbers in the registers: that is, they'll both have a system call number 12, but there's no reason for it to necessarily do the same thing. In fact, which thing gets done by each number changes between versions of Windows, so the developers doing this need to check the version of Windows and use a look-up table to generate their numbers.

Exactly this! on i386 you put the syscall number in the eax register and some other data in other registers depending on the syscall and then you raise the $80 interrupt. On x86_64 they implemented a pure syscall instruction on the CPU.

Here is an old "Hello World" example that calls the sys_write syscall (syscall 4) to write the "hello world" string to stdout and then it calls exit (syscall 1) to let the kernel terminate the "application" with a proper exit code.
 
.data
    s:
        .ascii "hello world\n"
        len = . - s
.text
    .global _start
    _start:

        movl $4, %eax   /* write system call number */
        movl $1, %ebx   /* stdout */
        movl $s, %ecx   /* the data to print */
        movl $len, %edx /* length of the buffer */
        int $0x80

        movl $1, %eax   /* exit system call number */
        movl $0, %ebx   /* exit status */
        int $0x80

Valve continues to improve Linux Vulkan Shader Pre-Caching
30 May 2020 at 3:29 pm UTC

Quoting: VundultDoes anyone know if this will work with non-steam games added to your library?

I have a hard time believing that they even could make that work.

Wine 5.9 is out with major WineD3D Vulkan work
23 May 2020 at 2:34 pm UTC

Quoting: Xaero_VincentSo any examples of WineD3D Vulkan vs DXVK? Anything Vulkan work yet? I'd like to try it out.

Well Splinter Cell: Blacklist for one only works with WindeD3D

GNOME and Rothschild Patent Imaging settle
22 May 2020 at 12:43 pm UTC Likes: 5

Quoting: STiAT150k for over 100 patents does not sound a lot. It isn't. The walk away settlement speaks of that.

Seems this company wanted to make sure their patents are not used by commercial big players, and realized there is little gain not providing it for open source since it helps adoption. Restricting would mean they just do not support it.

I still struggle with patents overall, I still think they prevent innovation. But a kind of deal where they are free to use for free software but not commercial products, well... I understand that very well. If someone wants to make money using your innovations.. though, that's not the OSS paradigm... it's fine for me.

We see all the open source development bringing big business to global players. Not a bad thing if they fund it too, which for some projects is true. For many it isn't.

But I think we live in times where the paradihm shifts. And we'll see more of it. For the better or worse, we can't say yet.

Software patents should never have been allowed by the USPTO in the first place. The only thing that saved the US software industry from total collapse was that no one in the industry really understood that there where such a thing as software patents until very late, if this had been found earlier then we would most likely still be left in the pre MS-DOS days still.

And take not just my word for it, here is a direct quote from Bill Gates himself in a 1991 internal Microsoft memo:
QuoteIf people had understood how patents would be granted when most of today's ideas were invented, and had taken out patents, the industry would be at a complete standstill today.

I feel certain that some large company will patent some obvious thing related to interface, object orientation, algorithm, application extension or other crucial technique.

If we assume this company has no need of any of our patents then they have a 17-year right to take as much of our profits as they want. The solution to this is patent exchanges with large companies and patenting as much as we can. Amazingly we haven't done any patent exchanges that I am aware of.

Amazingly we haven't found a way to use our licensing position to avoid having our own customers cause patent problems for us. I know these aren't simple problems but they deserve more effort by both Legal and other groups. For example we need to do a patent exchange with HP as part of our new relationship.

In many application categories straighforward thinking ahead allows you to come up with patentable ideas. A recent paper from the League for Programming Freedom (available from the Legal department) explains some problems with the way patents are applied to software.[1][2][3]

A look at the Penumbra Collection on Linux with Mesa in 2020
22 May 2020 at 12:34 pm UTC

I just tested Overture on my Ubuntu 18.04 and I experienced no crashes when leaving the fishing boat, this was using the Steam version so this is most likely due to the game using the Steam runtime.

A look at the Penumbra Collection on Linux with Mesa in 2020
22 May 2020 at 12:23 pm UTC Likes: 1

Quoting: Guesthttps://github.com/FrictionalGames/HPL1Engine

I don't suppose that's the engine and be compiled to work with the game assets? Because maybe the core Mesa issue could be fixed from within the engine itself. If that's the case, I can try peek into the problem on the weekend.

It should be, they release the source to the game back in the day due to the HumbleBundle (if I'm not mistaken releasing the source was one of the requirements for one of their bundles).

There is some external dev activity on their forum: https://www.frictionalgames.com/forum/forum-28.html

And according to the first post there:
QuoteThere is a LOT of code here. 2 libraries and one game. So don't be afraid to discuss and ask questions on pieces of the code. Lets all collaborate and build some documentation for the HPL1 Engine as well as the OALWrapper library. Ideally I would like to see clean documentation appear on the github wiki pages so there is a good reference this codebase.

So the source should not only be for the engine but also for the first game.

Overture have it's own forum for source here: https://www.frictionalgames.com/forum/forum-29.html and it uses the same engine so I think the code is similar and the only difference between the games are scripts but I have not looked into it so I don't really know.