Husband, Father, Software Developer, with interests in #scifi and #fantasy, #videogames, Off-roading in my #jeep, #electronics, #3dprinting, #CAD, #CNC, #linux, and #archery, among other things.
Public Key
npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Profile Code
nprofile1qqsgrkd8w36vpng7dzsmw9wkn7fs8lzk4lkm90xkl5kv2ezv6u7txcgprpmhxue69uhhyetvv9ujumt0d4hhxarj9ecxjmntucy7rc
Show more details
Published at
2026-10-25T02:14:28Z Event JSON
{
"id": "ac34f538d12bcde8ab6ace9d12902318594e4859fe48446420c80a680a926512" ,
"pubkey": "81d9a77474c0cd1e68a1b715d69f9303fc56afedb2bcd6fd2cc5644cd73cb361" ,
"created_at": 1792894468 ,
"kind": 0 ,
"tags": [
[
"t",
"linux"
],
[
"t",
"scifi"
],
[
"t",
"electronics"
],
[
"t",
"videogames"
],
[
"t",
"fantasy"
],
[
"t",
"3dprinting"
],
[
"t",
"archery"
],
[
"t",
"cad"
],
[
"t",
"cnc"
],
[
"t",
"jeep"
],
[
"proxy",
"https://techhub.social/users/rayk",
"activitypub"
],
[
"L",
"pink.momostr"
],
[
"l",
"pink.momostr.activitypub:https://techhub.social/users/rayk",
"pink.momostr"
],
[
"-"
]
],
"content": "{\"name\":\"Ray Kelm\",\"about\":\"Husband, Father, Software Developer, with interests in #scifi and #fantasy, #videogames, Off-roading in my #jeep, #electronics, #3dprinting, #CAD, #CNC, #linux, and #archery, among other things.\",\"website\":\"https://techhub.social/@rayk\",\"picture\":\"https://files.techhub.social/accounts/avatars/109/560/916/863/848/492/original/a519283ba9abc9ef.jpg\",\"nip05\":\"[email protected] \"}" ,
"sig": "1079924dbcf07c4dc2887a0a177173ab9498cd64922d07b9503c6e3fb644f38010cb4dffdb219f2413f6d921c534d368e36d23eab5fcfbbfa974ba8759221922"
}
Last Notes npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm Remember, when the bubble bursts, someone is going to buy up the assets for all the failed AI companies for dirt cheap. npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm How much do you want to spend on this? The things that are working best (at my work) are using multi-agent processes, where some agents break down work into plans, some implement code, some write tests, some review the code, some approve the results, and most of those are done as best-of-N runs. Lots of tokens, but surprisingly good results. npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm Sadly, we live in a time when more people seek instant gratification rather than build for long-term success. npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm I can build things with wood, nails, a hammer and a saw, but nothing like what a true craftsman can make. I just haven't learned to be that good at using the tools. It's the same thing. npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm The world of software is much bigger than just business. The code running in your coffee maker was as finished as it will ever be when you bought it. There are many similar examples to that. Software is everywhere now. npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm I really hope that we are not about to find out that democracy only has about a 250 year stable period. Maybe it's human nature that no system of government is stable long term. That would be a sad state of affairs. npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm Do you have to constrain the design to 74 series? npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm One trick you can use is to have the trampoline exist in ROM in the same location on every page you might swap in to that bank. That way they look more like simple calls. It sounds like you’re making an MMU for 6502. That could be so handy. npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm I’ll give that a try in my next play npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm Ran using vice using command line "x64sc blockgame.d64". Loaded perfectly. This time I ran it on the laptop in Bazzite, and had to install vice using brew. The nice side effect was that I had sound available, and the music played perfectly. The game was much more responsive to key presses, and overall shows more polish than the previous version. The hold function took a bit to figure out what was happening, but once I figured it out it was quite handy. I had a bad habit of pressing "W" to rotate instead of space, so I ended up using it a bunch of times before I realized what it really did. I think this nicely solves the issue of not having enough endpoint pieces, since I could save one up if I wanted. It wasn't clear what the new tile type means (the cross with what looks like a rotation icon in the middle). Improved fun from the first alpha for sure. I haven't tried the other game modes yet, but plan to. npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm I think you’d find that, while there are some shared authors in those versions, there are a lot of different affects of different lineages coming together. Unix was distributed as source to a lot of different institutions, and they would make local changes, and sometimes those changes would find their way back to AT&T. And a lot of that happened before we really had an internet to connect those institutions. npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm The set of commands we use now is an amalgamation of utilities from different UNIX variants, and most of them maintain compatibility with the really old versions so that old scripts still run. I could be wrong here, but I wouldn’t be surprised if those commands came from different variants. npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm having all the good hardware helps for sure. I still have an old C128 in a box in the garage somewhere. Otherwise it's emulation for me npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm but you pushed through and made something impressive and inspiring. I'm kinda feeling inspired enough to get back into C64 programming again instead of living vicariously through reading your updates. I haven't written a C64 game in 35 years. npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm does have branches and an instruction pointer though, right? npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm bytecode VMs are amazingly powerful. Did you make a stack or register based interpreter model? npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm Nice! Last I saw you weren’t going to do bosses. I guess I have some catching up to do. npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm wait, nothing in the $c000 block? npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm Have you considered using the BASIC ROM to handle scripting, and have all your game code extend the interpreter? Might open up a lot of possibilities for modding. npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm Can you do separate compilation of the code that runs after initialization, then bundle that as a binary that you memcpy into place after init? I did something like that on ImageBBS, where I had a “symbol table” that had all of the static allocations, then the init code copied/moved code around to get it in place. Granted, that was all assembly, but something similar should be possible in C. Like maybe linking in an object file with the symbols, and using the same segment definitions. I did a lot of that, and had code stashed under the kernal ROM that I would swap into the $C000 block when I needed it. Each of those modules was “compiled” separately with an origin at $C000, then the init code would just include them all as binary blocks, and copy them to the RAM under the kernal ROM for swapping later. npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm Are you discarding all of the initialization code after it’s done running? npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm Is the code public? (github/other) npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm All C, or a mix of C and assembly? I’ve found that assembly makes for much tighter memory usage, even though it can take longer to write. Also, are your room transitions determined by data or code? npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm Do you keep any copies of some of the write-only data in main RAM? npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm are you already banking out all the roms? npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm I think I might be ok if Linux had a windows subsystem for playing games. Oh wait, that's proton. We're good. npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm I think that what we are finding out is that there are underlying patterns in how software is written that are more universal, so something that can find patterns and replicate them using different inputs is able to "adapt". It's not because the LLM can think, it's because what we thought was hard to do was actually easier. npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm the direct connections to China is more of a concern. npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm Np. That raspberry pi zero case looks nice. Gonna try one of those too. npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm The 0.2 also does. This one was ABS. https://files.techhub.social/media_attachments/files/114/639/480/026/038/243/original/9489041d7f47dcb6.jpg npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm Was close, but the trident finished first. The part spins freely. https://files.techhub.social/media_attachments/files/114/639/475/776/179/499/original/4a66b9bda99e56ec.jpg npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm Printing. I think the 0.2 will finish before the 350 starts actually printing. npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm Well, there is heat up time :) One is a voron 0.2, so that’s quick, the other is a Trident 350, so it takes a while to heat up and then do the bed mesh. npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm I could print a few tonight on my vorons. npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm the Matrix premise was silly because we just don't generate that much power. The router premise on the other hand uses the fact that we have excellent computation performance per watt. npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm then much later I saw SDL and realized I did a lot of work that I could have avoided. npub1s8v6war5crx3u69pku2ad8unq079dtldk27ddlfvc4jye4eukdssha6umj Ray Kelm have you considered using a library like SDL with your own framebuffer later? It has a lot of nicely optimized blitter code that handles edge cases well. In my own work, long ago, I ruled out DMA for rectangular blits in a windowing system mostly due to a desire for updating non-foreground windows which needed either clipping or a whole lot of overwrites.