Jump to content

WelfareBuysMyWeed

Full Members
  • Posts

    2383
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by WelfareBuysMyWeed

  1. This isn't an absolution at all: https://www.thelancet.com/journals/lancet/article/PIIS0140-6736(05)79762-2/abstract And what about people with Swyer syndrome? Those sorts of people are XY with female reproductive organs, including fallopian tubes. Nature and science definitely do not agree that the presence of a Y chromosome makes you male. This is policy, which has fuck-all to do with science. There was a time black people were classified as 3/8 of a person, that doesn't make them not human.
  2. Just wanted to say for the first couple of pages from 2022 who were like "just how bad is that word" Literally the only time I've ever heard it used was on the boondocks by uncle ruckus: So yeah, it's really racist.
  3. And so what are XXY people? Also there are intesexed people who have some cells that are XX and some cells that are XY. So uh your definition fucking sucks and science disagrees with you.
  4. Which is so fucking stupid, because porn is literally defined as "whatever society decides is the line." As in our definition of pornography is intentionally set at the line of what the public already deems acceptable.
  5. That said, I hope we rip her heart out every time we play LSU
  6. That looks like fucking shit. Nerds in their bedrooms pump out better AI videos than the Trump campaign.
  7. If our system was actually decided by popular vote the entire country would be night and fucking day different. Like, alt-history sort of different. No George W Bush, no Trump, etc.
  8. national polls are basically worthless thanks to the EC tho. It's not a popular vote, so polling nationally makes little sense. In the places where it really matters, Kamala is basically winning them all by 3-5 points, except Georgia where Trump has a 1 point lead down from 7. Kamala doesn't need to win every one of those battleground states, just a few, but it's trending really well for her in all of them.
  9. I mentioned in stolen valor thread that my 72 year old dad was self made, posting the quote below. So, with that in mind, he's been watching Star Trek for the first time after being interested in it for years. Every few days I go over in the evenings or weekends and we'll watch a few episodes a night. We're at the tail end of TNG by now, and we're watching DS9 interwined as it originally aired, so we're also on season 3 of DS9. Last night, I watched "Heart of Stone" with him, it's the episode where Nog joins starfleet thanks to Sisko. Quick refresher, Nog was an illiterate hoodlum who had never been to school in his life before Sisko came aboard. His dad was basically an indentured servant to quark, who was constantly abused despite showing signs of technical brilliance. Heart of Stone ends with Sisko telling Nog he won't recommend him to starfleet, which yields this speech. This entire situation wasn't lost on my father, and this episode moved him deeply. Nog is easily the best written character in any star trek series, his arc is simply the best. I'm so excited for my dad to see where Nog's arc takes him, it's such a good one. But that scene right there might be my favorite Nog moment. They could have very easily made him hate his father, but he doesn't. He loves him a lot, and is proud of him, he just recognizes the shitty situation they are in. And I love this scene so much because it not only sets into play events that frees Nog from his situation, but also allows his father Rom to better his life. This one scene is probably the single point that changes his entire family's life, and it comes from a moment of sincerity. I love how touched Sisko is when he realizes Nog's plight. What a fucking episode.
  10. NCAA Football used to play The Eyes of Texas after each touchdown instead of Texas Fight until like 2003. EA's claims about being super authentic to college tradition has always been wanting.
  11. Remember when this was the #1 song in America for like a week:
  12. Man, not to defend Mack Brown, but he never ran shitloads of players off the team like Deion. There were several times in Mack's career where a player would have a career ending injury and they'd keep him on the roster to honor his scholarship. I could never, ever see Deion do anything even close to that, he'd kick someone out for looking at his son wrong. For all that we call FUPM, Mack Brown still didn't treat his players like they were disposable.
  13. Yep, thats my day job, I've been doing this since the mid 90's. I develop on an actual Sega Dreamcast, which I've hacked up to connect to my computer via the serial port on the back. It lets me do step-through debugging on the real console through an actual IDE. I installed an extra 16 MB of memory on my Dreamcast so I have development overhead to hold debug symbols and such on my Dreamcast while still accessing the full 16 MB of system ram. It's super important to do this development on real hardware because all the current Dreamcast emulators out there are broken in various ways. None of them implement the full instruction set, and there are loads of things about the PVR core inside the dreamcast that aren't understood and thus emulated. Like I'm fairly certain that bloom demo I posted above would work on at least NullDC and probably others. The MISTER can't really support the Dreamcast, not least of which because the full SH4 and Tile Accelerator instruction sets aren't well known. EDIT: Also, just to clarify, this is a community project. Lots of people are working on this, many of which are industry vets. But this is a passion project for us on the side from our normal jobs. We've all been doing this kind of stuff since 99. Making gamedev on the Dreamcast possible has been an ongoing thing for decades, it helps you learn new stuff that can be applied elsewhere. Doing this stuff flat out made me better at my job over the years.
  14. The Dreamcast launched in 1998, only 2 years after the N64 and 2 years before the Playstation 2. For reference, the N64 and PS1 continued to see games well into 2001-2002, and the Dreamcast had already died before the Gamecube and Xbox launched. It's not really that the Dreamcast was underpowered -- it's considered the start of that entire PS2-GCN-Xbox generation and those consoles saw ports of its games -- it's that Sega ran out of money and went bankrupt midway through the Gen. Since it died just as the PS2 was releasing, there's very few games that overlap between it and the generation that it was in, outside of games ported FROM the Dreamcast TO those systems. A port FROM those systems TO the Dreamcast never really happened, and thus it's always been a question of just how much punch the Dreamcast actually had. COULD it compete and stay in step with those systems had it not died? A lot of people have said no, that GTA in particular started a trend of similar style games, none of which ever made their way to the Dreamcast. There flat out aren't any "GTA" style games on the system, and the argument was that it couldn't handle them. As GTA clones basically defined the generation, the thought is thus the DC couldn't hang. Porting GTA3 directly to the Dreamcast is meant to refute the notion. The Dreamcast absolutely was powerful enough to hang that generation, it just never got the chance.
  15. Another example of something I'm working on: Multi-pass rendering. Normally, the homebrew SDK used for Dreamcast applications can only draw to any one target buffer per frame. So like, draw to the screen is a target buffer, draw to a texture is a target buffer. If you want to render something to a texture, then render that texture to the screen, it'd take two frames to do. That means using multi-pass rendering, every pass would halve the framerate. There's a hidden register on the Dreamcast that KOS did not know about that I was exploring yesterday. Bit 31 of location 0x005F8160 when set to 1 enables the TA_LIST_CONT register in the PVR core, this tells the graphics chip inside the Dreamcast to continue rendering onto a second object list during the same frame. The official Sega Dreamcast SDK from Sega had an API called Ninja that had this feature, and so did Microsoft's Direct X on the Dreamcast, but KOS has never had it because we never knew about this register. I spent yesterday patching KOS so this functionality is exposed, which now gives the Dreamcast multipass rendering function. I played around yesterday with an HDR bloom demo for the Dreamcast, shown below. What this means is we can port over the bloom effect from GTA:San Andreas if we'd like onto GTA3. This ability has lots of far reaching implications for further Dreamcast homebrew, as we can do things like use textures as image caches when using block rendering.
  16. It's sort of baking, sort of not. What we are using is known as triangle strips, it's a feature of the PVR core of the Dreamcast. Triangle strips aren't used too much anymore in games, but in the 90's they were a good performance boost. The way it works is that triangles are represented by a triplet of decimal numbers called a vertex. These numbers represent positions in space (think back to geometry class and plotting points) that form a triangle when connected. These triangles make up all the polygons in the world and characters and such. You do math on these points with what's called a matrix to do things like transform their position, rotate them around, etc. These matrix transformations are what move the polygons around the world so you can paint with them. Doing this kind of matrix math is super intensive, it's the part of computer graphics that takes the single most time, so the more triangles you have, the more vertices you have to do math on, the slower it takes. Well, if you have a model that has two triangle that share a same edge, that means two of their points lie on exactly the same position. So, using triangle strips, you can combine them, so instead of having to do math on 4 vertices, you only have to do them on two. It works like the image below. The problem with a triangle strip is every triangle in the stip needs to share attributes about the texture being used. If you need to switch which texture is being used, you have to end the current triangle strip and start a new one. Now, Grand Theft Auto 3 normally was not made like this, the PS2 did not use triangle strips. So the models and geometry are all with redundant vertices. So we wrote a tool that goes through the models, looks for triangles which call the same texture which reside next to one another, and figures out a funky shape to combine as many triangles as possible, to reduce the math complexity of the scene. That's just one stage of optimization. A couple of major optimizations are being worked on right now. I'm currently working on a better caching system, the Dreamcast uses a kind of Cache known as a direct memory cache which is very different from the scratchpad cache the PS2 uses, with a lot more limitations. Currently, GTA3 basically isn't using any cache on the Dreamcast because the way the PS2 accesses cache thrashes the Dreamcast's cache. So reworking things so they're cache friendly will achieve an enormous performance boost. At the same time, the way the Dreamcast and the PS2 do math on these vertices is completely different. The PS2 has a second processor known as a Vertex Unit that is entirely responsible for doing the math we described above. So while it's crunching the math to move these triangles, the main CPU can be doing other work. The Dreamcast has no math co-processor, all the math is done on the main SH4 CPU. This means when the Dreamcast does math, it can't work on anything else. That alone is a bottleneck, but there's a bunch of tricks to this. The Dreamcast CPU has a FPU inside known as the fast math core. This core does math extremely fast, and can also do it in parallel on multiple vertices. This is known as SIMD. The Dreamcast can do math on 3 vertices at the exact same time using this fast math core. Currently, the Dreamcast is doing all the math on the triangles without the core, through plain old C++, using none of the math hardware inside, one vertex at a time. Using this fast math core requires writing a bunch of SH4 microprocessor assembly, but once the process of translating these math calls to the SH4 fast math is done, then you'll see another enormous performance boost. There are loads of other things that can be done to better performance on this. Most of it means really tailoring the thing to run as close to bare metal on the Dreamcast as possible, in a configuration that is specifically setup to match the way the Dreamcast is built. For example, the way the Dreamcast's ram is configured on the motherboard is in 2 separate DRAM chips that act like one giant blob of 8mb of memory. The way these DRAM chips actually work is they have 2 banks inside each. Each bank contains 512 rows of 4096 bytes of memory. When you access memory at any given location, a piece of hardware in the DRAM chip called a sense amplifier needs to move to the appropriate row to read it. If you read something that's on the same row that the sense amplifier is currently connected to, it doesn't need to move and can read the value immediately. Moving between rows takes time and incurs a performance penalty. Since each bank contains a sense amplifier, and there are 2 chips with 2 banks each, that means there are 4 sense amplifiers total. That means you can, at max, read 4 different locations in memory, spaced 2 MB apart, with no performance penalty. So using special kinds of buffers and adhering to these boundries and attacking the MMU of the Dreamcast, you can best keep locality of reference for data: data that is used frequently with others are stored together, to avoid this sort of memory performance penalty. Bunch of stuff like that.
×
×
  • Create New...