Aspiring Deathclaw Wife 
Dragon trapped in human form trying desperately to make the best of the situation by exploring my curiosities. My hoard consists of 48 arcade cabinets, a few thousand console games, all manner of BEMANI cabinet artwork, and possibly you. I'm building a CPU from scratch, although my posts on the topic are sporadic. I post a lot of in-progress threads for whatever software I'm working on. I also post a lot about daily minutia including chores and house maintenance. Ask me how to run Flash on your computer!
Please see my pinned posts for additional information. Extremely depressed and often posting through it. Bad at remembering to CW mental break threads. Follow at your own risk. Follow requests on for vibe checks, you'll likely pass.
It's been roughly a month since my last post on #CritterChat so I figure it's time for another update post! Here's the changes since then:
- Private group conversations are now supported including a room invite system!
- Introduced privacy settings so users can control whether they're seachable or invitable on an instance.
- Several usability tweaks, several UI layout tweaks, several small bug fixes (none big enough to warrant their own call-out)
- Emoji updates including a few missing emojis as well as an entirely new country flag section
- A few new UI features for administration
- A bunch of backend tests have been written, a bunch of refactoring has been done to enable easier maintainability
- Fixed incompatibility with Python 3.13 and 3.14
All in all not that much changed compared to the last update.
Fork it or grab the code to run an instance at https://github.com/DragonMinded/critterchat
Help test the alpha instance at https://alpha.dragonminded.com (DM me here to be activated after signing up)
dear birds,
why are you so full of noise?!
sincerely,
a dragon :dragnloaf:
Alright, finally got done diagramming the new #MiniDragon boards so onto the physical layout the last one goes! It's tested working as well! I also took the time to update the README with recent progress. Remember that the project is documented essentially down to the transistor at https://github.com/dragonMinded/minidragon
I know this is last minute, but if anyone is going to be in central Vermont area on Saturday and wants to come over to an open house, hit me up (DMs open). I'm going to be turning on all of the arcade games (there's almost 50, focused heavily on Japanese rhythm games) and console games. Pizza hopefully available, but with nobody that delivers this is contingent on logistics day-of.
Six years ago to the day, this is what the #MiniDragon CPU looked like. One instruction (an older version of LOADI that only set the bottom 6 bits of the A register), two registers (A and B), two control signals (A load and reset), and only the bare minimum of support circuitry. No table to mount things to, and I hadn't switched to clear acrylic for the boards. No dedicated PSUs yet either, I was powering it off of a bench PSU. Missing was all of the 16 bit address registers, all other 8 bit data registers, the entire ALU, any sort of memory interface circuits, and the other 36 or so control lines wiring them up. Also, at this point it didn't quite work reliably even with that setup, there were grounding issues, pull-up issues with the bus, a faulty debounce circuit on the clock, no power-on reset circuit, nothing else. I also hadn't written much of the stdlib yet and it would be another 4 years until I started a compiler for it.
Finished laying out and wiring the very simple shift and compare acrylic. Part of the reason why it's so simple is that I don't actually have a design for or need for the comparison circuit at the moment. That's in a branch that I'm going to go back to after I finish getting the base #MiniDragon up and running properly. For now, the ALU cannot compare numbers so comparisons are provided by stdlib functions and called by the compiler. Once I design the CMP instruction hardware, the 8-bit cmp function will turn into an intrinsic, and the 16 and 32 bit cmp16/cmp32 functions will turn into simple calls to the intrinsic.
While I don't have a CMP instruction yet, I am still leaving room for the instruction, including running busses that it will need to the board. That way when I do add it in the future I'll be able to do so with minimally invasive surgery. I also have yet to verify this board since I don't have the shift instruction decoder board laid out yet. But, its still progress!
Today the shift instruction PCBs came in the male so I brought two of them up and verified them! These will handle the shift left, rotate left, rotate with carry left, shift right, rotate right and rotate with carry right instructions in the #MiniDragon CPU. The CPU only allows shifting left or right by 1 bit so these are pretty simple circuits. Once I get these on an acrylic board and integrated with the physical layout the ALU will be 100% complete and tested, so somewhat of a big milestone reached!
These RTL circuits that I use in the #MiniDragon continue to prove themselves indestructible. Just reversed polarity on the new decoder board on accident and the only thing that happened was the voltage sagged in that corner of the CPU and the power wires got real hot. Found the mistake, reversed the wires and it's running like nothing even happened.
This is about the dozenth time I've done this. Not once has it damaged anything beyond once melting through a DuPont header that I just swapped out. They're also impervious to static. I've touched board headers and zapped myself real good multiple times, run power backwards to individual boards countless times, and wired things completely wrong. I've also dropped the hell out of them as well as over- and under-volted them while testing.
They might be extremely obsolete designs that can't run fast compared to modern CMOS, but boy howdy are they more robust by a landslide.
Restock time! #MiniDragon
Okay, a thing I've been wondering about with CritterChat is the implementation of private conversation invites. Right now anyone in a conversation can invite somebody else and anyone in a conversation can cancel an invite. That includes cancelling an invite you did not issue.
The argument for is as follows: Private conversations are an equal footing in terms of ownership. There is no moderation and everyone equally can choose to change the group information, choose to leave, choose to invite somebody or choose to uninvite somebody. So, why implement restrictions on who can cancel?
The argument against is as follows: Somebody can go in and uninvite people that you previously invited, effectively vetoing your invite. Sure, you can invite them again, but then they can uninvite them again. You could get into a situation where people passive aggressively fight over control by continuously issuing and cancelling an invite, leading to a negative engagement loop.
Which way should it be?
Okay, bringing up the shift instruction boards for the #MiniDragon if you want to come hang out!
I'm still on the fence as to whether I should add SQLite as a supported database to #CritterChat so it's time for a poll! Feel free to boost if you think your followers care enough to answer. As a reminder, the repo for CritterChat is here: https://github.com/DragonMinded/critterchat
If you have a more nuanced take or don't see an option here, feel free to reply. In terms of your desire and willingness to run a CritterChat instance: