Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Spectere

Pages: [1] 2 3 ... 365
Sound cards are not as essential as they used to be, but they still serve a purpose. They're largely irrelevant if you use some sort of digital output, but if you're looking for clean analog inputs and outputs they can still be useful, since they tend to be a bit more isolated from the motherboard components than your traditional onboard sound solution. They aren't particularly useful for driving high impedance headphones (you still need an external amp for those), but gaming headsets generally don't fall into that category.

As far as true 5.1 vs simulated, having true surround always wins. These headphones are a bit on the strange side, as they channel audio from the top-mounted speakers into the earpads. I'd have to try them myself, but that seems like it would limit its frequency response by quite a bit (this typically makes the audio sound kinda thin and/or hollow, which is likely why they include a little subwoofer in each ear—to try and give the sound more life). The surround effect would probably be fine, though I suspect the center channel could potentially get drowned out by the front left/right channels (it looks like it's basically sharing a physical audio "channel" with the front left/right speakers rather than having its own route).

It looks like there's definitely going to be left/right channel bleed for both the front and rear speakers, but given that they seem to intend for these to simulate an open 5.1/7.1 surround setup that's probably intentional. Definitely not going to be able to get hard left/right panning out of these if they're designed the way I think they are.

Basically, I think it'll probably deliver a pretty convincing effect if you're purely looking for positional audio, but I have serious reservations about the audio quality. Keep in mind that you're getting a headset with seven speakers (five full-range channels and two subwoofers) and a mic for $75 and set your expectations accordingly.

Random Chat / Re: The Thread of Extreme Happiness
« on: September 17, 2020, 01:43:13 PM »
iOS 14 introduced the last two things that I found myself missing from Android and Windows Phone—home screen widgets, and an "app drawer" analogue (it works pretty much identically to the one in Windows Phone, hence why I brought that up). It felt really great to be able to crunch my home screen down to a single page this morning.

Not sure if they specifically targeted performance, but it feels smooth as hell, too.

Computing / Re: The Keeb Thread
« on: September 17, 2020, 01:31:25 PM »
I did run into a couple of QC issues with the [Holy Pandas] that I received. No chatter or anything like that, but the case seemed to be deformed enough on two of the switches that I simply couldn't mount them no matter how hard I tried. That's two switches out of 110 (I put in the order for this before I switched to TKL) so it wasn't a complete dealbreaker, and it further underlines why you should always order extras.

Turns out, the issues didn't end there. I'm about two months in and I've run into three chattering switches (as opposed to the zero chattering switches from my previous Kailh Box Browns set and both sets of Zealios switches I've used), with another potential bad one rearing its ugly head. Swapping the switches with fresh ones eliminated the chatter, but if this keeps up I'm going to be out of spares before I hit the one year mark. Looks like I might be swapping the Zealios switches back in in the near future.

Gaming / Re: wut specturr'z playing
« on: September 12, 2020, 03:45:56 PM »
I played through Outer Wilds (not to be confused with The Outer Worlds) recently. Damn good game.

Gaming / Re: wut specturr'z playing
« on: September 03, 2020, 10:24:50 AM »
Much of the end of my post yesterday was fueled by anxiety-related insomnia, so I was only semi-serious and should have probably slapped a disclaimer tag on it. I managed to get significantly more sleep last night (a whopping 90 minutes, give or take a quarter-hour) so <<insert fatigue disclaimer here>>.

Most of those were just spins on the formula. Quake Champions and Lawbreakers (and some other stuff like Overwatch) are hero shooters, so they don't feature some of the things that I like, such as map control and the true need for, ahem, "advancing in the opposite direction" when you're outgunned. Those games just feel like two teams slamming head first into one another until one side edges out the other, rather than the delicate game of chess, or more accurately cat-and-mouse, that FFA deathmatch games bring to the table.

In the case of both Quake Champions and Lawbreakers, there were a bunch of other issues going on with them that caused them to be received like sour milk. In addition to questionable balance choices, Quake Champions had worse netcode than Quake III (which came out in 1999). Lawbreakers had a troubled development cycle, which forced it into a situation where it was forced to directly compete with Overwatch. NerdSlayer has a half hour breakdown on the numerous things that went wrong with that project.

UT4 was the closest to what I'd consider a classic FPS, and it did have some solid momentum behind it, but Epic decided that they wanted to rake in Fortnite bucks (and later throw an absolute temper tantrum because they weren't given special treatment in the mobile space) instead of doing anything with that. Naturally, it's hard to gauge exactly how much momentum it had simply because it never made it beyond the alpha stage, but it was enough that it's a common point of criticism against Epic.

So yeah, I wouldn't really say that there are all that many games out there that really fit that mold. Most people who crave that sort of thing still play Quake III, but even if it were more inviting to newbies, a game that can be run on a Pentium II with a Voodoo² is kind of a hard sell in 2020. Beyond that, there are a handful of obscure/open-source offerings (like Nexuiz), but since those don't have any real backing or marketing pushes they tend to foster their own hardcore communities.

Honestly, I'd say that even QuakeWorld/Quake II fit into that "semi-niche" category when they were at peak relevance. In-game server browsers weren't a thing until Q3A/UT99, so joining an Internet Quake deathmatch game would involve someone having to 1) know to get QuakeSpy/GameSpy, 2) know that most of the community was using the QuakeWorld client instead of the vanilla DOS/Win/Mac/GLQuake client, and 3) be able to set up all of those components to talk to one another. Quake II only removed step 2, since the benefits of QuakeWorld were rolled into the main game by that point. There's a good reason that the classic deathmatch style didn't really explode the way it did until Q3A/UT99/HL.

Gaming / Re: wut specturr'z playing
« on: September 02, 2020, 09:22:07 AM »
Kinda my MO. Ban yet plz?


Because I felt like this was a perfect example of what I believe, that  PC is absolutely 1000x worse than consoles in terms of cheating.

Yeah, but that's like saying that all computers are insecure because Windows 95 was a sign of its time. It's a cherry picked example of how bad things can be if the developer doesn't give a shit. As I implied, Rockstar wrote their netcode with console security in mind. Take away that OS-level security (PC, as well as the entirety of the 6th and 7th console generations) and the game turns into an even more broken mess. I suspect that a lot of the people writing this code are either being told to do impossible things (more likely) or know less about writing net code than I do (far, far less likely).

When I say "impossible" things, well…some of the modern "convenience" features developers have been implementing can make it possible for someone to cheat without it looking like they're cheating. Recall that because games have started using client-side hit detection (WHY IS THAT A THING?!?!) simply simulating a high ping is enough to make the system completely freak out, let alone the relative ease of crafting an aimbot that says "oh yeah, I hit that target. Honest." All you need to do to trigger a high ping is seed a torrent or start a Steam game update. That should give you enough latency to trick the hit detection system but it'll be sporadic enough that you probably won't get kicked for having too high of a ping.

And yeah, players with consistently high pings was their "solution" to that issue. Band-aid fixes for the win, right?

This is kind of a tangent upon a tangent, but would you believe that aimbots really weren't that good back in the day? Sure, it would aim for center-of-mass, but their operation made botting verrrry obvious to server operators (it would keep your movement vectors the same and change your aiming vector, essentially giving you analog twin stick movement with keyboard/mouse). More importantly, Quake and UT's weapons simply didn't work with rockets. Nobody in their right mind would aim a rocket at someone's center of mass, and because of the game's frantic pace even aimbotting low pingers wouldn't be able to get perfect railgun shots against a juking player.

Bring back arena FPS! Bring back dedicated servers with operators that give a shit! Server communities! Clans! QuakeSpy (okay, maybe not that)! Fucking real mods that anyone can write that actually change the gameplay! ROCKET JUMPS!! Screw this DLC-riddled matchmaking garbage.

Goddamnit, I'm an FPS boomer, aren't I?

Gaming / Re: GameBoy Emulation
« on: August 31, 2020, 08:38:12 PM »
I ended up setting up breakpoints this past weekend, which have proven to be pretty helpful with tracking down weird PPU and CPU issues.

I made a few corrections to the interrupt handler, as well as made a few corrections to the way the LCD disable flag in the LCDC register is handled. This allows the FOSS SameBoy DMG boot ROM to both function and display as expected. This is good, because it goes through its animation a lot faster than the official DMG boot ROM. :P

I wrote a couple test ROMs, finding that my vblank interrupt handler worked first try (whoa). Plip's behavior does differ from SameBoy on another test ROM, where I disable and reenable the LCD during the same vblank period. I'm going to try it out on BGB at some point to see how that behaves (I suspect its behavior will match SameBoy's). I would test against BGB more often, but it's Windows-only and I do most of my development on a Mac (in case that wasn't obvious already). Oh well. At some point I think I'm going to try to get my hands on an Everdrive X7 so that I can do testing on actual hardware (I have a Super GameBoy and I'm thinking of picking up a used GameBoy Pocket, or Color, as well).

I need to improve its Makefile so that it doesn't constantly rebuild everything from scratch, but my test ROM is fairly nice. I ended up setting it up so that I can override any of the major sections (RST routines, interrupt handlers, header variables) without having to fiddle around too much. I'll have to push that into a GitHub repo at some point.

Gaming / Re: wut specturr'z playing
« on: August 31, 2020, 07:25:26 PM »
You're reading way too much into my post. I'm just saying that in general it's more difficult to really know if someone on PC is aimbotting because the tick rate is lower than even a base level 60hz monitor. It's literally impossible for the game to show you exactly what they're seeing and doing. Their movements are going to look smoother and more precise than they would if you were standing over their shoulders watching them. This was far more of an issue when tick rates were 10-20hz, obviously, but even a 120hz monitor is going to run three local ticks for every net tick.

Not sure why you're bringing up GTA, but each game is a different story, and the reason GTA Online is so goddamn awful largely stems from the fact that Rockstar's net code has been consistently crap since at least GTA4.

One of the main tenets of writing net code is to trust the client as little as possible, but Rockstar doesn't seem to be aware of that. If I were to join a Quake (as in, 1995 Quake) with mods enabled, the server would pretty much boot me right away. GTA Online has weaker mod protection than Quake does, and the server trusts the client far more. From what I've read, if your client tells the server that you have X weapon, it'll just believe you.

In addition to this, the game seems to completely fail to validate any of the game's files on the PC version. There is absolutely no reason why the mod menu should even work in GTA Online, but it does. If Rockstar gave even the slightest fuck about security instead of just blindly trusting the platform to do it, it would autokick anyone running a modified client, and they sure as hell wouldn't let anyone modify the amount of cash they have in their account.

The main reason it's not as bad on consoles isn't that it isn't possible (it is) or that people simply don't do it (they do), but it's because the application data is encrypted. No easy cheat menus there, so it's far harder for casual players to cheat. The second is because consoles can be hardware banned, and used game stores explicitly check for those before allowing trade-ins because burner Xbox 360s were such a common thing back in the day. Rockstar pretty much leans on the platform itself for almost all of their client-side security, so I'll bet a jailbroken console could theoretically have a cheat menu injected in and used without being detected.

Let me just emphasize that this problem was already solved in 1995 and earlier. I could tell my Quake client that I was invulnerable but the server would pay me no mind, since it controlled everything that happened in the game world. In Max Payne 3, all that it took for people to become invulnerable was for them to tell the server "hey, by the way, I'm invulnerable," and the server would just believe them. Their net code is shit and, as long as they keep raking in hundreds of millions of dollars in shark cash card sales, it's always going to be shit.

Gaming / Re: GameBoy Emulation
« on: August 27, 2020, 02:07:51 PM »
Oh, trust me. I know that feeling, haha.

Another thing on the list is writing some simple test ROMs. Even blargh's test ROMs, simple as they are, have enough boilerplate that it muddies the waters at this stage (at this point I don't know if the perpetual blank screen I get after the boot ROM concludes is the CPU core, the PPU, or something else). I'll probably collect those in their own repo as I work on them.

Gaming / Re: wut specturr'z playing
« on: August 27, 2020, 02:02:29 PM »
tl;dr: cheats are impossible to prevent because they exploit data that the server must send to the client in order for the game to work at all. Here's a ramble on the topic:

Whenever you're playing a multiplayer game, the server has to send information to your system in order for it to display the other players and what they're doing. All it takes is for a program to intercept and interpret that data, at which point you can draw information to the screen (radars, etc) and inject inputs into the application to change the player orientation and fire off shots. Some things (particularly wallhacks) tend to require libraries to be injected into the game's address space or require a third-party DirectX/OpenGL/Vulkan DLL to be placed in the game directory in order to function. Those are typically detected fairly easily by standard anti-cheat solutions (pretty sure that's one of the things VAC searches for) so people who do that are usually detected and sanctioned fairly quickly.

Consoles being hack-proof is a pretty huge fallacy, and one that's bitten Sony in particular multiple times. It's fairly simple to jailbreak a PS4, and a jailbroken PS4 is no better than a PC in terms of security. Even without jailbreaking, by routing network traffic through a PC it's easily possible to gain access to information about players that may not even be on your screen. In some ways I'd argue that consoles are worse because they give their players a false sense of security. Let's consider a very common example: radars.

Consider an enemy behind cover. One of the classic strategies for increasing security is to restrict the amount of information that gets sent to the client. In some games, precompiled visibility information is used for this. For example, a map compiler may be able to determine, beyond the shadow of a doubt, that there's no way that a player in one room will ever be able to see into another room and will cache that visibility data into the map file. Let's take the following room layout as an example:

Let's assume that player 1 (P1) is in room A, player 2 (P2) is in room C, and player 3 (P3) is in room E. Since the visibility data has already been roughly calculated, the server will easily be able to determine that it's impossible for P1 and P3 to see each other, so P1 will never receive P3's info, and vice-versa. Since P2 can potentially be seen by both players, however, their information will be sent to both P1 and P3.

This system has its limitations, notably in that it only works on a macro scale. If both P1 and P2 were in room A, but P2 was hidden behind a large piece of debris, it's very likely that P1's client would still receive information about P2. If P1 were a cheating bastard and ran a program that could interpret and display that data, they could know which piece of cover P2 was hiding behind, as well as what direction their facing, giving them the opportunity to get the jump on P2 without it being immediately apparent that they're cheating.

Now to close things off on why the PC may very well look worse than it actually is. One of the things that have always separated PC shooters from console shooters has obviously been the control method. The mouse is far more nuanced and precise than controllers can ever hope to be, and there are some players out there that are just freakishly good. I'm far from a top-tier player, but when I'm in my groove I can chain multiple headshots together in a second. When you consider that there are people out there that can consistently pull off tricks that require 16ms of accuracy (speed runners, fighting game players, etc), it's not hard to imagine that there's a lot of people that legitimately do have such a level of precision that normal play to them can look like aimbot behavior to others.

There's also another thing that throws a massive spanner in the works that very few people consider: tick rates. While Destiny 2 on your computer shows every sign of running at a crisp 144hz, its network code most certainly is not. Destiny 2's network tick rate is variable, but on PC it maxes out at 40hz, or 25ms (or locked 30hz on console, to match the framerate). What you're actually seeing on your end is a smoothed out approximation of the other players' movements. If I manage to get a snap headshot and quickly pan my view elsewhere in a tick or two (which is far from impossible) it's going to look like I'm botting, and it's going to look quite a bit different on my screen compared to yours (on yours it'll look like a smooth, casual motion, while on mine it's going to be far twitchier).

The reason for low tick rates is simply to reduce network traffic and ensure that the game remains synchronized between players. While 40hz seems sluggish, it's fairly reasonable when it comes to Internet gaming (I think 60hz is as good as it gets at this time).

I hope that helps clear a few things up.

Gaming / Re: wut specturr'z playing
« on: August 26, 2020, 10:29:02 PM »
Yeah, there's a good reason I haven't seriously played PvP since the Quake 3/UT2004 era (and cheating was an issue then as well—creating cheat-proof online games is pretty much impossible). I played a little bit of Overwatch when it came out and it was exactly the same as what you're describing. That, coupled with a bunch of edgelord kids who couldn't muster up a sick burn if they were freezing to death and have the situational awareness of a blind and deaf person in a coma, just made me chalk that experience up as a waste of $40.

Destiny's expansions have been traditionally fairly extensive, especially compared to what most games "offer" these days, so I don't mind throwing some cash at them. It's never just a few new story missions, but rather a big chunk of story coupled with a swath of mechanical changes and feature additions. I don't have any plans to invest in microtransactions, and they seem to have largely stepped away from the most egregious MTX practices since Bungie split with Activision.

I wouldn't say that the grind to get passable seasonal gear is all that bad. The last time I played was season 1 and I managed to bring my light level up to where my friends were in a matter of hours. Kinda seems like it's more about collectables at this point, which I'm fine with. One of the things I miss about WoW is the sheer amount of stuff that you can uncover and collect, so there's a very big box ticked right there.

Gaming / Re: wut specturr'z playing
« on: August 25, 2020, 10:33:42 PM »
I started playing Destiny 2 again. My plan is to clear the current story content before it gets vaulted, then jump into Beyond Light when it comes out.

Gaming / Re: GameBoy Emulation
« on: August 25, 2020, 10:18:44 PM »
I took a break this past week due to having an absolutely horrendous week at work and opted to pick up where I left off tonight. First, a fancy pictographical thing:

Register dumping! Neat. Breakpoints are going to be a bit more "interesting" due to how the frontend only talks to a generic system core object, but it'll still be doable. The onus will basically be on the CPU core to catch the condition and send a message back to halt execution.

I did implement pausing, machine cycle stepping, and frame stepping. I suspect that'll help out pretty significantly in the long run.

In addition to that, I ended up doing a much-needed refactor of the game loop. Before I basically dumped all of that into main.cpp, but I opted to pull that into its own GameLoop class and relegate main.cpp to set up the loop and transfer execution to that. In addition to that, I changed the Console class from using C-style function pointers (which really don't work with non-static member function) to using std::function and binding lambdas (which can access instance members) to that.

Next step: breakpoints. Next next step: making things actually boot.

Edit: Scratch that. Next step: memory fudging.

Being able to get and set arbitrary memory locations is pretty useful. While in this case I just use it to corrupt a few tiles of the Nintendo logo and change the X scroll register (which is actually good, since now I know that my X scrolling implementation works :P), it gives me the ability to peek and poke at the system's various registers, since they're alllllll memory mapped.

Gaming / Re: GameBoy Emulation
« on: August 19, 2020, 12:39:27 AM »
Kinda thinking I'm going to take the simplest approach and keep commands in an alphabetically sorted list, and allowing the nearest unambiguous match (for example, if "getPC" and "getReg" are registered, "get" would throw an error but "getr" would expand to "getReg").

This is what I wound up doing, and it ended up being pretty simple.

The console system narrows down the command list using the first token in the user's input. If there are no candidates, it fires off an error. If there is only one candidate (or multiple candidates with an exact/unambiguous match) it'll select that. If there are multiple candidates with no exact matches, it displays each of the possible candidates.

When a command is registered, the console system expects the command's full name, as well as a function pointer (with a pointer to the Console instance and a vector of strings as parameters). When the command is called, the function pointer is called with the console instance and a tokenized parameter list attached.

The only supported commands at this point are "help" and "quit," but it's at a point where I can push ahead and start adding debug commands. I'm not too crazy about how the video subsystem interacts with the console (it's immensely obvious that it's an afterthought), but it's not really harming anything at this point. I might end up refactoring it down the road, but it's fine for now.

Random Chat / Re: The Thread of Extreme Happiness
« on: August 15, 2020, 02:28:57 PM »
I love those Paqui Ghost Pepper chips. They manage to capture the heat without skimping on the flavor.

Kinda seems like a lot of companies that make "hot" things just load them down with a ton of pepper extracts, so the food ends up tasting like battery acid. Large wing chains are the worst offenders in my experiences.

Pages: [1] 2 3 ... 365