Embedded developer. Infosec tourist. Console hacking and CTFs for fun. Compilers and toolchains are my playground. (she/her)

Joined October 2008
104 Photos and videos
Naomi Peori retweeted
7
21
266
29,751
Naomi Peori retweeted
Writing the most absurdly, meticulously hand-optimized sprite and billboard rendering routine of my life for our #GTA 3 port to the Sega #Dreamcast. This baby gets used by all of GTA3's UIs, fog effects, screen-space effects, and ESPECIALLY the fake bloom-lighting effects you see blurring light sources in the scene... First of all, I bumped the project up from C 17 to GNU 23, because I ain't fucking around here, and I need every dirty tool at my disposal from C and C . Good, evil, or questionable language features? Don't care. Enabled! Then what you're looking at here is the core routine for blasting sprites through the Dreamcast's fast path. The pvrVertexSubmit() lambda is responsible for translating one of the GTA3 engine's vertex types over to the Dreamcast's vertex type, and it do so by mapping a DC vertex directly into a "store queue" on our SH4 CPU, where we fill the thing in directly. A store queue is a pretty damn interesting feature of the SuperHitachi architecture which allows us to copy data around extremely quickly by writing cache-line sized chunks of data (32-bytes) into it then issuing a cache flush on it to write its contexts extremely quickly through the cache and into some other region of memory... It's the fastest mechanism we have for memory transfers, faster than DMA, and we have two of them. What happens here is that we've preconfigured the store queues' destination addresses to point to the PowerVR GPU's TA (Tile Accelerator), which is the unit that processes incoming vertices, storing them within vertex buffers in VRAM until it is time to draw the scene. pvr_dr_target() here is simply returning a pointer to ONE of the two store queues, then we translate gtaVert to pvrVert within the SQ, and finally do a call to pvr_dr_commit() to blast that fucker directly to the TA... Something to keep in mind is that although we have two SQs, they cannot both be flushed and accessing the memory bus simultaneously, or the SH4 CPU's pipeline will stall while he first store queue finishing flushing. What we do instead is alternate between writing to one while we flush another store queue. This essentially creates an efficient transfer pipeline where we are never stalled waiting for one store queue to finish! This is honestly the Dreamcast's equivalent of the Genesis's fabled "Blast Processing." Now, the rest of the sprite routine is pretty standard crap, just looping over vertices, blasting them through the store queues. I have gone ahead and added C 20's [[likely]] and [[unlikely]] optimization hints on branches and loops, and yes, we have confirmed that they do actually impact performance on the SH4 architecture with GCC14! The loops have also been unrolled to process up to three vertices at a time, prefetching each one into the cache while we're writing the previous one to the store queue... allowing us to easily push a shitton of these sprites. #cplusplus #cpp #gamedev #retrocomputing
17
86
806
40,639
7 May 2024
Face tracking in vrchat, a year later.
6
290
22 Jul 2023
PS2 support, let’s gooooo
22 Jul 2023
💣 BOOM 💣 8BitMods proudly presents our latest product that has been in development for over 2 years! The MemCard PRO2 for the PS2 and PS1 is here! Pre-orders are open NOW! Ships on or before December 2023! 🛒 | 8bitmods.com/accessories/mem…
1
344
21 May 2023
The quest, pun intended, to be more expressive in vrchat continues. Face tracking was great, but adding eye tracking has been a hit. It feels like some sort of social tipping point has been reached. Behold, an awkwardly-recorded demo:
2
309
Naomi Peori retweeted
Pre-orders for the @analogue Duo open tomorrow, however it wasn't very clear to me that OpenFPGA support IS NOT INCLUDED, so I made sure to highlight this in the post: retrorgb.com/analogue-duo-pr…
30
22
119
27,599
17 May 2023
Kiiinda tempted, but with the consoles I already have now paired with a retrotink 5x, or even misterfpga... it's not a 'need' like it used to, be back when first announced.
17 May 2023
Analogue Duo will be available to preorder for $249 on May 19 8am PDT. Available in limited quantities. Shipping in 2023. analogue.co/duo
305
Naomi Peori retweeted
1 Apr 2023
Ghouls'n Ghosts - MEGA DRIVE AMARUS MOD : As usual, LEFT: original MD game - CENTER: hacked MD game - RIGHT: original ARCADE game
10
25
146
8,129
Naomi Peori retweeted
You can now use any hard drive size in the PS2 and simply drag and drop games ISO’s onto the hard drive. New version of OPL brings a lot of quality of life improvements and unlimited storage options! Check out the video! 👉 youtu.be/nKoRvWKojz0
46
295
1,432
103,568
30 Mar 2023
Face-tracking in @vrchat is a lot of fun, and easier to set up than I expected.
1
1
233
28 Mar 2023
Interesting replies to this tweet. As someone who's been on both sides of this sort of debate in the past, it's interesting to read modern opinions on whether a copyright protection circumvention device deserves to enjoy copyright protection. My take? It depends.
... and it happened! PSIO firmware is cracked! reddit.com/user/Ordinary-Lem… #retrogaming #ps1 #goodnews
226
3 Feb 2023
Hard to believe this store is still up, but here we are in 2023 with full-priced Vita games.
2
4
552
30 Jan 2023
I can't say no to new gaming hardware from Sony. Other than the price, only two back paddles and the reduced battery life... it's very nice and has a good feel. Joystick modules were a good choice in this age of premature stick drift, but making better joysticks would be ideal.
1
6
392
28 Jan 2023
Stick maintenance. It was feeling a bit loose.
1
201
1 Dec 2022
Tonight’s project was adding hall-effect sticks to a Steam Deck. Mainly as an excuse to open it up for the first time. It was surprisingly easy to work with compared to console controllers.
2
1
5
1 Dec 2022
They have more tension than the standard sticks, and unfortunately my usual upgrade of aluminum sticks didn't work as they're too thick to fit inside.
2
18 Nov 2022
It feels like a good time to say that I generally don't like posting anything in-depth on Twitter mainly because of random guys in replies. Attempts to out-do me, or telling me how to do it 'better'. It's just not fun having to defend everything I say to strangers. So, I gave up.
1
6 Nov 2022
Last gen’s daily tools. A lot of hours were put into some great games with these two.
1
1
6 Nov 2022
Current gen. It’s nice to be able to keep using the series 2 elite.
31 Oct 2022
Hi folks! I've noticed folks making the jump away from Twitter so it's probably a good time to say I'm also available at: mastodon.social/@ooPo I'm not entirely sure which side I'll land on yet, but I plan to post the same content on both if enough people are there to see it.
2
1