Myria
25.4K posts

Myria
@Myriachan
Game dev, reverse engineer, like to hack video games and Windows. She/her. ❤️🐱 Also at blue sky Myria
California Katılım Haziran 2013
832 Takip Edilen2.6K Takipçiler

@obitadasiiuma22 @favoga_ In North America, our box had a more typical back side. That might be because in North America in 1997, RPGs were a niche rather than widely popular. Final Fantasy 7 changed that.
English
Myria retweetledi

After much reflection, I have decided to resign from my position as Director of the National Counterterrorism Center, effective today.
I cannot in good conscience support the ongoing war in Iran. Iran posed no imminent threat to our nation, and it is clear that we started this war due to pressure from Israel and its powerful American lobby.
It has been an honor serving under @POTUS and @DNIGabbard and leading the professionals at NCTC.
May God bless America.

English

@Console_Hax @falco_girgis I’ve never used =m on an array like that to get GCC to recognize that my assembly code wrote that area but no others. It does seem weird. I’d declare a 32-byte struct with a [[gnu::may_alias]] instead.
By the way, the clobber list needs “cc” because of that add instruction.
English

Okay goddamnit, we just ran into one of the most obscure and elusive bugs I've ever encountered working on our Ocarina of Time port for the Sega Dreamcast.
It reared its ugly head while we were balls deep in the inline SH4 assembly, optimizing the game for DC... and I seriously CANNOT explain why the offending code caused an issue, even if we found a way to work around it...
Are there any inline assembly or GCC compiler experts in the house? I know how obscure this shit is, but... hopefully there's someone I'm connected with who is well-versed in the dark arts... if so, have a seat and let me weave you a tale...
What's the deal? Well, we're using my SH4 vector and math library, SH4ZAM, to accelerate a bunch of the math and hot routines in this port, going from N64 to DC, to improve performance, as we always do.
What we have here is two slightly different versions of the exact same hand-optimized memcpy() variant routine, with the bare minimum code present for the routine to work and to reproduce the issue.
It copies exactly 16 4-byte words from a source address to a destination address. We use this version ONLY to copy unaligned 4x4 matrices around in memory (cuz we can do much better with higher aligned matrices).
ANYWAY. The one on the left? The working version of the code. Does its thing. Life is good. The one on the right? The original implementation... NOT A DAMN THING WRONG... except... owait, where's the minimap icons!? TOAST.
The only difference between the two? The types of the pointers which we are using as input and output constraints to the same block of inline assembly.
Since the two argument pointers are void*, we must cast them to something to give them a size as memory constraints for the inline ASM block. On the left, they are casted to 64-element byte array, which is legally allowed to alias any memory based on C/C++'s "strict aliasing" rules.
On the right? We're using a pointer to a special typedef'd uint32_t which tells GCC that we're allowed to alias memory and break GCC's strict aliasing rules by referencing memory from such a pointer. So the constraints on the right take pointers to an array of 16 32-bit words which are allowed to be aliased as uint32_ts...
I have searched everywhere I possibly could and cannot see any reason these two should not behave identically. Yeah, I'm breaking strict aliasing rules on the right, but so? That GCC aliasing attribute does properly get GCC to fuck off and allow me to carry on violating those rules perfectly fine from C and C++ code... so what's the problem here?
Only thing I can even think of is that GCC's extended inline assembly blocks are not honoring the "may_alias" attribute on the typedef that we're using to refer to our source and destination memory addresses, and the whole block of inline ASM is getting optimized away for breaking strict aliasing rules when we pass a 4x4 float matrix to it? Anyone know if this is the case? Is that even documented anywhere?
Anyway, this is the latest and greatest GCC version 15.2.1 toolchain, cross-compiling for the Sega Dreamcast's "SuperH4" CPU architecture. Yes, we are rocking -O3, -flto, -fipa-pta, and pretty much every optimization under the sun which is interacting with these blocks of inline ASM, further adding to the shitstorm... THOUGHTS? 😂

English

@notnotzecoxao Bug in hypervisor < 7.0 that allows supervisor to overwrite itself?
English

for those who are wondering about linux on ps5, it requires one of two things, either hypervisor patches (< 3.xx) or kldload (leaked kernels are required for this and only up to a certain version they were shared around, 7.61). so unless someone gets more leaked kernels or the .text from 8.00 or higher, you can forget about linux on later versions
English
Myria retweetledi

@RobertDaleSmith @notnotzecoxao Is there a description of how it worked?
English

@krassenstein @MattWalshBlog Rittenhouse was acquitted of all charges. No laws were broken.
English

This is retarded. Rittenhouse wasn’t interfering with law enforcement. He was only there because law enforcement was nowhere to be found. It’s literally the exact opposite situation.
Jake Shields@jakeshieldsajj
I supported Kyle Rittenhouse being armed at a BLM riot so it would be hypocritical If I opposed a leftist doing the same Laws need to apply equally to all Americans
English
Myria retweetledi
Myria retweetledi

@victorma_ @GoldenAgeUnfold Marco Rubio is preventing me from updating my passport with his policies.
English

@GoldenAgeUnfold 0 he is too weak for that position. We need someone like Marco Rubio.
English

@WomenBeingAwful @StephenKing @grok The problem is less what they’re doing now, but rather what they’re planning to do.
Once most illegal immigrants are gone, the law will change to revoke citizenship of millions of non-whites, then deport them because they’re now illegal.
English

@StephenKing Hey @grok can you explain to this man the differences between the Gestapo and ICE
English

















