Ryan Wiseman 🏳️‍⚧️

Ryan Wiseman 🏳️‍⚧️

@ryanwiseman.bsky.social

Musician, Survivor of Modern C++ She/Her Page is 18+ My YouTube: https://www.youtube.com/@Ryan_Wiseman/ My Spotify: https://open.spotify.com/artist/2z90163B9RlRtcbPKc2V4h

670 followers204 following1.2K posts

Pinned

To reflect on this year in terms of my music releases, I think this has to be my favorite cover, the cover to my album 'You're Exactly Where You Need To Be'. It's a little disappointing that this album never did great, but hopefully next year, it gets picked up by algorithms

Apple is having a new bug involving a new Apple Developer agreement in which agreeing to the new terms does not update across your account. It's been nearly 24 hours and no matter how many times I want to notarize my application, generate a new .p8 key, still, the bug persists

I was about to crash out so hard because Sweetwater sent me my audio interface's power supply but ONLY with the UK plug and not the 3 others. Tom, you could've saved us all of the trouble. Anyways, so now I guess I get to buy another 12v power supply until my UK to US plug converter arrives tomorrow

It's okay cause usually Sweetwater is good about fixing things and is the first time they actually fucked up my order in the near decade I've bought anything from them. Given I'm too lazy to re-assemble my audio rack, I just wanna make music on a 3rd gen Scarlett 18i8, since I hardly ever use it

Whyyyy must you give me a 330 point test at 8:30 in the morning? Looks like I know what I'll be focused on studying these new couple of weeks heavily, because jfc I didn't realize that this test would be the biggest vibe check

Honestly the best feeling in the world is when someone discovers my Bandcamp with emo music and they follow me and I check who they are following, and its artists I look up to. It feels like more are paying attention to sixth-wave emo cause my niche albums have been getting a lot more listeners

And yes, custom games does in fact work. the 1-3 fps is terrible but I have all the relevant logs which provides me a lot of info on where the issues likely are. Splitscreen multiplayer is far closer and honestly that is all I care for V0.09 of Rosette (since campaign is a pain in the ass)

Took about 2 months just to support all the Xbox 360 bullshit, but alas, Rosette finally is able to support much of what was needed. A custom JIT backend was required, x86 needed some special compilation guidelines, special Win32 .dll behavior warranted packages. All required to pull this off!!!

Fuck there was such a cute trans girl who asked me for directions and I'm a dumbass for not being like, "Hiiiiiiiii what's ur socials" so its clearly evidence of how much of a sub I am cause I just geeked tf out for like 5 minutes over the interaction. I hope I see her more this semesterrrrr

Through making Xenia work with none of my own code edits for macOS, I have found the sea of failing culprits that cause all problems. So now Rosette is getting a DLL package section so none of the hidden win32 API calls can subtly influence why graphics won't work Took forever to find this solution

Having two different platform versions of Xenia I build is useful for finding missing x86 contexts and finding the remaining missing logic needed. Plus, I want to test Direct9 code and see if I can forward this to Cocoa, see if this can net me better results.

Plus a Windows-build version (in which you do not change code in that Xenia version) helps break code on macOS in ways you cannot predict. Already my transpiler and other code was dealing with 95% of what was needed for a Windows-build already.

So I found a critical issue with Xenia that took me forever to find, Xenia is unable to reach its guest front buffer. So basically, you have a bunch of draws that attempt to interact in that way, but nothing gets communicated to front, so swapping between video frames is just not possible

View full thread

So I found a critical issue with Xenia that took me forever to find, Xenia is unable to reach its guest front buffer. So basically, you have a bunch of draws that attempt to interact in that way, but nothing gets communicated to front, so swapping between video frames is just not possible

Rosette should be able to supply this pipeline, as I can just take all the draws that are generated and feed it into where it needs to go, if not, use my own front buffer that interfaces with Xenia to find what's wrong with Xenia's front buffer.

I hit an epiphany that some of the behaviors I handle need to be moved to a package system in which these are compiled behaviors, not, I am having this behavior occur exclusively at runtime. Like there's a huge difference between, "do this if we detect this behavior at run", and assumptions at build

It’s really funny how my recent summer class wants to follow me around because apparently there are turing like features that can be implemented to solve bugs like the “tape head” being out of range. Oh cool new thing, I got graphics to barely start for Halo 3 in Rosette, but hey, it’s progress

I’m genuinely impressed with how amazing Rosette V0.09 is shaping up to be. The amount of low level custom systems/libraries I needed is (still) painful, like “build a custom decompiler” painful. The entire project barely takes up 30 MB (packaged last at 40 MB) which includes .md files.

FINALLY, after about 2 1/2 months of work, Rosette is in a good enough spot to debug my macOS port of Xenia Canary. I’m estimating in about 1-2 months, I’ll have a stable working port This has been a well needed detour, worth every hour spent.

View full thread

And so for Version 0.09, the aim is to minimize as many Xenia Canary specific solutions since that will help give a better idea to what other systems are left needed, and then Xenia Canary should be about 90% of the way there with getting an image on screen, it is SO FUCKING CLOSE

Non-deterministic solutions are always harder and larger than one that can be solved via a deterministic algorithm. The only determinism that is appropriate is detecting what the problem is so you can non-deterministically handle it And the documentation that is needed is even more massive, so, fun

Rosette has been taking so long to get done because programs often have address specific x86 solutions. The harder part is, "How do I detect what needs to be done and route it properly so I need to substantiate particular addresses less". The first solution is useful momentarily, not the long term

Development progress on Rosette is getting really really far. I am so close to running Xenia Canary with my macOS port, so I can finally finish fixing my macOS port PR to go under 10k lines. x86 to NEON translation with Rosette is insanely good, and it's only gonna get better from here

My new framework, Rosette, is coming along amazingly. Over 97 million x86 instructions can execute on macOS via my WIP macOS port of Xenia Canary. AVX/SSE is partially supported on macOS 13. For upcoming Version 0.07, the amount of functionality in this framework is already impressive

It's incredible when you stumble upon an entirely new thing you never heard of with low-level code (involving an issue of running code) and so it becomes a, "oh this is really cool to try and fix and learn what defeats it". Anyways now my thing is parsing Mach-O files and handling their Assembly

Holy fucking shit my transpiler is passing my first test without issue. This is a major breakthrough in the mountain of a project I'm working on: Rosette. Now my transpiler auto-converts shorten64-to-32 cases throughout a repo. These cases only pop up when Windows code implicitly shortens to 32

Sometimes it takes awhile to find a good solution for a draft PR. It’s the greatest feeling in the world to get rid of 22k lines of code. I’m on a mission for the most minuscule amount of code possible, since I hate even the idea of adding bloat

I think the way I've decided to handle PIDs is awful cause if I feel like it exists on the stack and is polluting my terminal session, the idea is that you take the process, and shove it on a different stack that isn't connected to your terminal session.

Basically, if you kill the process but it refuses to work as it should, then send it to a different part of the kernel so you don't have to deal with it anymore, that is now the OSses responsibility and not yours. But that just will add to a list of growing processes that can't be killed

Anyone have a better idea of how to deal with this??? Cause attempting to log every point in the process to catch things right as they begin to hang is an issue because once you allow things to go wrong, you cannot just SIGKILL the process if it refuses to budge

I really think peak euphoria is when someone really cool in the coding world stars your repo on GitHub and you are on the early stages of the project. Like omg thank you for the extra motivation in that now, I am most certainly making this happen

My next goal with Rosette is to have 100 x86 Assembly instructions work and convert into NEON and have them be checked via my math system. It also means writing a system to break down 512 bit instructions into 128 bit chunks via my new library idea.