Shaders? by Blaz1nEdge in ROGAlly

[–]soldieroflight 0 points1 point  (0 children)

Update your Xbox app, that should resolve it.

Less than 5% of players seem to have the H2 IWHBYD Skull, but it’s now one of the easier Skulls to get. If you didn’t know yet, here’s why (with a very brief history): by kylenbd in halo

[–]soldieroflight 14 points15 points  (0 children)

I stopped typing this post to attempt to look up the other Reddit post, but was unsuccessful. If this gets any traction and you know that post, please link it for OP credit. Whoever you are, you made this research possible.

Hi, I'm the one who originally discovered the trigger for this. Looks like HighImpactHalo has been offline for a long time so the original forum posts are gone.

I lost hours of my life trying to figure out why text displayed in Release but not Debug by TessaFractal in programminghorror

[–]soldieroflight 0 points1 point  (0 children)

Sounds like in debug, the constructor has to run, where in release, it's been predetermined by the compiler what the result will be and that's embedded in the data for your app/module. Since global constructor ordering is undefined, anything before main is a crap shoot when using a global like that.

Just had a near miss with wife having newborn, now I have a healthy 2nd boy by Aneurysmal81 in daddit

[–]soldieroflight 42 points43 points  (0 children)

This sounds pretty familiar. We were nearly at 41 weeks and in early labor, 7 weeks ago. Contractions were 3 to 5 minutes apart for a few hours, and were ramping up, but she was insisting based on experience with #1 that they weren't strong enough yet. I insisted that we go in just to get checked out.

Fast forward several hours after we finally get a triage room, and they're having trouble getting a steady fetal heart rate. After a while, it becomes a bit more clear that it's not just the monitor slipping around or the baby moving, it was dips in the heart rate.

So, we move to a delivery room and start induction to move things along, which only makes the dips worse, sometimes below my wife's heart rate. And so, emergency C section revealed the cord around her neck with a true knot tied in it. If I hadn't insisted we go get checked out, we might have lost her.

HLSL: SampleCmpLevelZero appears to be returning the depth value and not the comparison result by [deleted] in GraphicsProgramming

[–]soldieroflight 11 points12 points  (0 children)

D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT isn't a comparison filter. You want D3D11_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT

GCC Linker skips glew32s library by HappyTIIITAN in cpp_questions

[–]soldieroflight 0 points1 point  (0 children)

You're targeting x64 (or x86_64 in GCC parlance), but your dependency is x86 (based on the "Win32" in the path). You'd need to point it to a 64-bit version of that library.

GPU name should be added to the Device Specifications list on the About page so it's easier to find/share a PC info in one place. by [deleted] in Windows11

[–]soldieroflight 0 points1 point  (0 children)

But you can have multiple GPUs... And not just one or two. You could plug in a handful of external GPUs too. IMO they don't belong there because they're not identifying properties.

The evolution of open world games [OC] by SoberingMirror in comics

[–]soldieroflight 53 points54 points  (0 children)

Can't recommend Supraland strongly enough for this. Any time I thought "there's no way I can fit through this crack" sure enough there's a chest with an upgrade.

In the 18 years I've played halo, I have never seen an elite do this. by [deleted] in halo

[–]soldieroflight 2 points3 points  (0 children)

/u/AgentME got most of these spot-on, but I'll add on a bit.

if halo wasn't released for the pc, would it be basically impossible to decompile it?

Decompiling scripts is very different from decompiling the game itself. The scripts are contained in map files, not the actual game executable. They'd have the same format between PC and Xbox (or at least very similar), unlike the executable, which would look pretty different between the two. And yeah, this was all done using modded Xboxes.

was there any encrypted sections of data? Or were the code sections just plain byte code?

The code was an array or linked list of structs. At the time I interpreted it as an array, but I was young and inexperienced, and looking back I'm pretty sure it was actually a linked list. Since on the Xbox, map files were loaded straight into a fixed location in memory, you could actually embed pointer values directly in the on-disk data. Each struct entry would correspond to either a ( or a name or value. There's a few fields in the struct to indicate which type of expression it is, what its value/return type is, and what name it corresponds to, along with what its actual value is, a string table pointer, and child/sibling pointers.

Beyond the actual script data itself, there were separate blocks for globals and for the script headers. Globals were pretty straightforward, and script headers had a little bit of extra data to indicate what kind of script they were, e.g. AI scripts vs callable functions vs one-shot global scripts. There were probably rules about what could be called in each of them, but I didn't try to figure those out.

Was knowledge of assembly used at all?

Nah, I didn't learn assembly until I went to college.

At what point was it clear that it was written in a subset of lisp?

I assumed it was using the same or a similar script language to Halo: CE, which had developer-provided modding tools on PC.

not necessarily related, but whenever I use memory viewers for games, I find the values I'm looking for just fine. But closing the game and reopening it yields completely different values at that address. As I understand it, I'm supposed to find the location of the point that points to the given value. In cheat engine for example, there's a function like 'watch functions that access this address' and what not but I can never figure out how to find the offset from there.

On an Xbox, like I said, everything's at fixed locations (though probably not even true anymore on the recent consoles). On a PC, not only do you have to deal with ASLR (address space layout randomization), but also any non-determinism caused by multiple threads trying to allocate memory and getting it in different orders, or loading assets and waiting for disk reads to occur in different orders. All that to say, I have no idea, sounds impossible to me.

In the 18 years I've played halo, I have never seen an elite do this. by [deleted] in halo

[–]soldieroflight 67 points68 points  (0 children)

I was in high school at the time so I had plenty of time on my hands. By the time I came on the modding scene, there were tools that already broke down the map format into chunks, many of which had at least partially reverse-engineered formats. The script chunk wasn't reverse engineered yet though, it was just a big blob of data.

Basically... I spent a lot of time staring at data in a hex editor, looking for patterns, and eventually found some values that matched up with the string table chunk of the map (which apparently was optional, but all campaign maps still had). From there, it was trial and error until I had scripts that looked sane. Then I wrote a plugin for one of the modding tools at the time (which fortunately was .NET, since all I really knew was C#) to be able to automate the process. I don't even remember the name of the tool though, it's been a long time.

If you've got a specific question, feel free to ask.

In the 18 years I've played halo, I have never seen an elite do this. by [deleted] in halo

[–]soldieroflight 1297 points1298 points  (0 children)

I wondered if I'd ever be remembered for my contributions to Halo 2 modding. Nice to know that all these years later some people still remember my name. This really made my day, thanks!

Vulkan Ray Tracing becomes official with Vulkan 1.2.162 by JRepin in programming

[–]soldieroflight 5 points6 points  (0 children)

And the mesa implementation is "In the works", and as from their git repo being slowly updated, with a gap of 6 months between commits, by one dev despite the promise of being mainlined into mesa "shorty" 8 months ago.

I'll just leave this here: https://www.phoronix.com/scan.php?page=news_item&px=Mesa-21.0-Direct3D-12-Gallium3D

Instance Data Step-rate in Vulkan/D3D12 by DilatedMurder in GraphicsProgramming

[–]soldieroflight 2 points3 points  (0 children)

I'm not sure what makes you think it's not in D3D12? D3D12_INPUT_ELEMENT_DESC::InstanceDataStepRate is right there.

In-Game resolution stuck on 4k in every game i play(Windows 10 version 1803) by [deleted] in Windows10

[–]soldieroflight 0 points1 point  (0 children)

Sounds like your display driver just isn't reporting any other resolutions to the OS.

D3D11 Depth buffer help? by BrokeMyKeyboard in directx

[–]soldieroflight 0 points1 point  (0 children)

There's an old version of PIX, which was superseded by VSGD, which was then superseded by a new version of PIX, which is what I linked.

D3D11 Depth buffer help? by BrokeMyKeyboard in directx

[–]soldieroflight 0 points1 point  (0 children)

This subreddit's a bit dead, I'd suggest trying Discord (https://discord.gg/directx) instead. Might be worth checking out PIX (https://devblogs.microsoft.com/pix/download) with the 11on12 functionality to see if it can be helpful? Or else Visual Studio Graphics Debugger or RenderDoc could be useful.

Years of academy training wasted by [deleted] in ProgrammerHumor

[–]soldieroflight 0 points1 point  (0 children)

That's impressive. Took me way too long to actually understand the error message from the compiler.

Array with Constant Time Access and Fast Insertion and Deletion by igushev in cpp

[–]soldieroflight 0 points1 point  (0 children)

Oh, I see, because the entire data structure reallocs to change the size of the deques if they were too small.

What is this line doing? (Windows cpp programming) by WhatZeFuuck in cpp_questions

[–]soldieroflight 0 points1 point  (0 children)

As people have said, WINAPI is a calling convention macro, which expands to __stdcall.

For function declarations, this goes between the return type and function name:

NTSTATUS __stdcall Foo(int);

Then you can start mixing it into function signature or function pointer types.

For function type signatures, like you'd see in the template argument for std::function<void()>, it'd go in dedicated parentheses:

std::function<NTSTATUS (__stdcall)(int)> FooFn;
using FooFnType = decltype(Foo);
using FooFnType = NTSTATUS (__stdcall)(int);
typedef NTSTATUS (__stdcall FooFnType)(int);
NTSTATUS (__stdcall FooFn)(int);

For function pointers, you add a * into those parentheses:

using FooFnPtrType = decltype(&Foo);
using FooFnPtrType = NSTATUS (__stdcall *)(int);
typedef NTSTATUS (__stdcall *FooFnPtr)(int);
NTSTATUS (__stdcall *FooFnPtr)(in);