<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mike/sst/src/os-unix.h, branch v0.18-BETA</title>
<subtitle>Source Speedrun Tools: practice tools and handy features for Source Engine games</subtitle>
<id>https://qdb.woz.blue/mike/sst/atom?h=v0.18-BETA</id>
<link rel='self' href='https://qdb.woz.blue/mike/sst/atom?h=v0.18-BETA'/>
<link rel='alternate' type='text/html' href='https://qdb.woz.blue/mike/sst/'/>
<updated>2024-08-21T23:01:06+00:00</updated>
<entry>
<title>Rework OS abstractions</title>
<updated>2024-08-21T23:01:06+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2024-08-03T15:11:57+00:00</published>
<link rel='alternate' type='text/html' href='https://qdb.woz.blue/mike/sst/commit/?id=44902cb49cd51e2bb2f1cef05cb3c0e799b83434'/>
<id>urn:sha1:44902cb49cd51e2bb2f1cef05cb3c0e799b83434</id>
<content type='text'>
- As much as possible avoid dragging system headers into translation
  units. This should avoid namespace pollution and, hopefully, speed up
  builds a little bit.

- Avoid leaning on the UCRT so much on Windows - prefer native win32
  calls and native file handles except where doing so is inconvenient
  (in particular, for stat(), which we might try and replace later).

- Also, switch from SystemFunction036 to ProcessPrng on Windows. This
  requires us to generate a stub for bcryptprimitives.dll because
  Microsoft haven't bothered to provide a link library, but the function
  is better-documented and seems to be a more direct under-the-hood call
  as well. Apparently it's what's used by the major web browsers these
  days, which seems like a good indication it's stable and trusted.

- Lastly, remove a bunch of functions and macros and stuff that weren't
  actually being used. It seems good to try and keep the scope of
  OS-dependent stuff relatively contained and only add to it when
  actually required.
</content>
</entry>
<entry>
<title>Get things at least compiling under Linux</title>
<updated>2023-08-26T23:46:09+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2023-08-20T15:20:03+00:00</published>
<link rel='alternate' type='text/html' href='https://qdb.woz.blue/mike/sst/commit/?id=a1998f2f7ce4153d670e2e5cb5018366517cc1ca'/>
<id>urn:sha1:a1998f2f7ce4153d670e2e5cb5018366517cc1ca</id>
<content type='text'>
Nothing really works yet, but at least test.h and fastspin are fixed and
some of the issues with RTTI and libdl and stuff are maybe kind of
sorted, subject to more testing later.

The main issue now seems to be the cvar interface not quite lining up
and crashing pretty much immediately. That'll probably take a lot more
debugging to figure out, which likely still won't be a priority for
quite a while.
</content>
</entry>
<entry>
<title>Remove the terrible gameinfo.txt garbage at last</title>
<updated>2023-06-12T22:06:47+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2023-06-12T21:28:53+00:00</published>
<link rel='alternate' type='text/html' href='https://qdb.woz.blue/mike/sst/commit/?id=7aa6bd1cd88db9cceef3d1c07cd7664cb47538be'/>
<id>urn:sha1:7aa6bd1cd88db9cceef3d1c07cd7664cb47538be</id>
<content type='text'>
This also tidies up library handle grabbing with more os.h stuff, and
improves the VDF creation logic - since we no longer store a couple of
paths which makes it necessary to change that a bit anyway.
</content>
</entry>
<entry>
<title>Improve os_dlfile() interface</title>
<updated>2023-05-21T21:11:16+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2023-05-21T20:48:52+00:00</published>
<link rel='alternate' type='text/html' href='https://qdb.woz.blue/mike/sst/commit/?id=2ba71f27c46dc38b76e932b1b1967d96a9b9f107'/>
<id>urn:sha1:2ba71f27c46dc38b76e932b1b1967d96a9b9f107</id>
<content type='text'>
Might as well return the length since we have it anyway. Also this maybe
fixes the totally busted Linux code but it's still untested and probably
doesn't work for reasons that will be discovered later on.
</content>
</entry>
<entry>
<title>Replace udis86 with a very small x86 decoder</title>
<updated>2022-04-24T02:43:26+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2022-04-24T02:27:35+00:00</published>
<link rel='alternate' type='text/html' href='https://qdb.woz.blue/mike/sst/commit/?id=7b12eb811ff62d9d14ccb7c152a9821796efe9a5'/>
<id>urn:sha1:7b12eb811ff62d9d14ccb7c152a9821796efe9a5</id>
<content type='text'>
hook_inline() uses the new x86_len() function to get instruction lengths
instead of doing full-blown disassembly, which should be a tiny bit
quicker, and also removes the next for about 90KiB of lookup tables and
such in the final binary. The code-digging logic in demorecord is also
rewritten to be opcode-based rather than mnenmonic based. In general,
going forward the plan is to always rely on opcodes and thus avoid a
bunch of disassembly work every plugin load.

udis86 is still in the tree for now to provide dbg_asmdump(), but it's
only compiled into debug builds and left out of releases completely. As
such, the whole BSD licence statement is also gone from the distribution
LICENCE files. There's now also a dbg_toghidra() which spits out a
rebased address to look stuff up for proper reverse engineering, which
might be more useful than dbg_asmdump() anyway. If nobody ends up using
the latter ever again, udis86 could get chucked completely. We'll see.

Also shoehorned into this commit are a couple more forgotten copyright
year bumps and some general minor cleanup here and there, because I
couldn't be bothered wading through all the diff hunks. Oh, and
makebindist.bat now makes an effort to make the zip file timestamps
predictable/reproducible. That should be a different commit for sure,
but oh well too bad.
</content>
</entry>
<entry>
<title>Add auto VDF installation</title>
<updated>2022-03-24T04:56:31+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2022-03-24T04:56:31+00:00</published>
<link rel='alternate' type='text/html' href='https://qdb.woz.blue/mike/sst/commit/?id=2c0d39acd0329d3e976bd83d85fcf67388465e67'/>
<id>urn:sha1:2c0d39acd0329d3e976bd83d85fcf67388465e67</id>
<content type='text'>
Breaks the Linux build because I can't file paths brain I need sleeping
</content>
</entry>
<entry>
<title>Clean up gameinfo_init() and other random stuff</title>
<updated>2022-03-24T04:38:25+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2022-03-24T02:06:28+00:00</published>
<link rel='alternate' type='text/html' href='https://qdb.woz.blue/mike/sst/commit/?id=00ad7cdd3d05d09a43bda972c823fdc440feabb9'/>
<id>urn:sha1:00ad7cdd3d05d09a43bda972c823fdc440feabb9</id>
<content type='text'>
- Just ask the engine for the game directory instead of doing the stupid
  argv sniffing hacks from the early days of trying to get the damn
  thing working.

- Also add some other path variables, functions and whatnot, and do some
  other minor tidying up.

- Also also, another damn copyright year, somebody please help me.

Unfortunate negative effect off this change: con_init() no longer
reports the game name, because it has to happen before gameinfo_init().
I've decided I don't really care, though.
</content>
</entry>
<entry>
<title>Spruce up text and fix some copyright years</title>
<updated>2022-03-19T04:36:59+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2022-03-19T04:36:59+00:00</published>
<link rel='alternate' type='text/html' href='https://qdb.woz.blue/mike/sst/commit/?id=e5cd34649c09a0a31cd27fc93efb7583de48b078'/>
<id>urn:sha1:e5cd34649c09a0a31cd27fc93efb7583de48b078</id>
<content type='text'>
Sometimes, you just want to Unicode.
</content>
</entry>
<entry>
<title>Split up os.h, inline functions and fix some typos</title>
<updated>2021-12-30T16:18:25+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2021-12-30T16:18:25+00:00</published>
<link rel='alternate' type='text/html' href='https://qdb.woz.blue/mike/sst/commit/?id=f7cc6b4dcc164403d62c9b48ae37f1c4c20f4b4f'/>
<id>urn:sha1:f7cc6b4dcc164403d62c9b48ae37f1c4c20f4b4f</id>
<content type='text'>
</content>
</entry>
</feed>
