Vin
@vinscool.bsky.social
340 followers 490 following 3K posts
I sometime make chiptune music and programming related stuff, otherwise I mostly ramble about life and shitpost when I am bored late at night.
Posts Media Videos Starter Packs
That moment when you nearly hit the 6 minutes mark BEFORE reaching the Loop Point 👀💦🎶🔥

Holy shit I did not plan this session but wow I have been cooking hard over the last 2 hours somehow out of nowhere almost standing up the whole time LMAO

I totally take this as a big W for today! 🐱
That moment when you only wanted to use a random sketch song to showcase a new idea and accidentally expanded the song into quite a banger of its own kind where it would work so fucking well as a game BGM because it is repetitive but the flow is so catchy 🐱
Basically, a balanced solution, that could get me some simple values such as 3, 5, 31, and that's the ones I could think of right now that I know for sure I will need to fetch in the idea I want to experiment with.
But I need to avoid huge Lookup Tables since I also need to keep the wasted Memory as low as possible for storing as much LZSS music data as I could possibly store inside of 64kb of RAM.
Anyone know of fast Modulo algorithms optimised for 6502 CPUs, by any chance?

I just got a sick idea, but I need to calculate them as fast as possible, in order to even try anything.

Ideally, I would need to keep the CPU cycles usage as low as humanly possible, since this has to be done in VBlank.
This feels like the ultimate power in a way, lol

I don't need a fancy gui to encode data for an 8-bit machine, haha! 😹
I can't see why anyone would be scared of Command Line programs, they could be scripted so nicely using a nice Bash script that it would do everything you want in a single click!
LMFAO

I wonder how this could even work.

Surely nothing can outperform BogoSort right? XD
Nice, I reallly like what I see in there! 🐱
Screenshot of text editor with C code and terminal output running a bash script calling said C code.
I love Dream Land 3 even more for the art style alone and the animal buddies, they were so cyute!
Guess who unlocked the power of changing Song Speed and Switch between Mono and Stereo within the same song playback, uninterrupted?
It's meeeee! 🐱
Hahaha, it works!
Insane!
LRP: Glasses is actually a weak spot of mine 😽
Anyone who knows me, most likely knows already though.
Reposted by Vin
I've been seeing a lot more glasses in furry art lately and I am *absolutely* here for it~ 💙
Sore*, not sort lol
Anyway, sort throat or not, I'm gonna do some ASM and C code and experiment with those dumb 6 Bits idea, and see where it goes from there.

Wish me luck! 🐱
Anyway, from those 6 Bits, I could easily encode:

- 1 Bit to identify PAL or NTSC
- 1 Bit to identify Mono or Stereo
- 3 Bits to identify Playback Speed from Speed 1 to Speed 8

And somehow still be left with 1 Spare Bit left unused until I find a useful thing for it!
The only compromise is that, I would be forced to essentially treat all LZSS data streams as Stereo, but if they're tagged as Mono, I will know for sure everything in the Right Channels should be dropped, so only 9 Literals would have to be encoded the same manner.

This might still be worth trying.
Instead of fumbling my way around with the Song Index Struct to handle all the big parameters by hand, why not encode those values directly into the LZSS data, to have it decompressed automatically to correct data based on the SAP Header values?

I think you can see where I am going with this :3c
Here's a summary of what I have in mind:

Make use of the LZSS Bit Stream remainder currently unused.

I have a possibility of 24 Bits due to splitting data to 3 Bytes in order to process all 18 Bits I'm currently using for compressing Stereo POKEY data.

This leaves 6 Bits completely unused as is.
However, this is the thing that has been sitting in the back of my mind since last Sunday, and I really want to give it a go and see how badly this might screw up my existing setup, just for the fun of it!
I just realised I have 6 bits left and I happen to need exactly 6 bits for a specific thing.

You all know what sort of creep scope this implies.
In my head, this seems to make perfect sense at least, but at the same time, this might also waste a few extra Bytes for storing individual inputs.

However, this would also allow the possibility for buffering up to 8 Frames of Input for all Buttons, so this may still have its advantages too.
I just thought of a cool Input Handler idea:

- Get Byte(s) for Button Presses in Accumulator as usual
- Store each values as Bits using ROL $ButtonID_X

- Do some stuff...

- Test Button presses using BIT $ButtonID_X
- BMI -> Button is newly pressed
- BVS -> Button is held down for at least 1 Frame
Yeah this one is most likely missing entirely unfortunately.