Hmm. Texture Packer's indexed colour workflow is derp. Promotes indexed colour images to 24 or 32bit, then outputs back to indexed colour with a different palette ordering. FFS.

Even more annoyingly, it'll add a transparent colour to the palette... *facepalm*

I really can't be arsed to write my own...


TIL that using GIF or PNG8 for a 16 colour, palette based workflow, is a complete waste of time.

Everything promotes them to 256 colour, or 24bit, because you know, it's the future... *sigh*

But, I've just found the cute single header parser for Aseprite, so tonight I'm gonna see if that'll work...

· · Web · 3 · 0 · 0

Right, ok, I have an indexed colour workflow I can live with. Things are being blit!

Last bit of sneaky before my hols; sprites are working. Cut out of a texture page, etc. etc.

@k Python PIL can handle low-colour images nicely. I switched to Ase as Grafx2 can't do transparent PNGs, wrote an Ase JSON anim importer in Python that spits out blitter binary data and C code.

@nivrig I can generate them, no problem at all. It's the stages after that that don't support it in the way I wanted.

@k My "stages after" are all in Python so I can control freak them all :)

@nivrig I'm not compiling images in, everything's dynamically loaded.

@nivrig you're cooking yours into your own format (blitter) I'm using existing file formats and loaders, so none will do it the way I wanted.

@nivrig well, that's a lie, I could probably have used IFF, but then I'd have to write a converter... :D

@k Looking forwards to seeing that font follow a spline.

@k ooooh is this running on AGA or have you implemented your own copper on something else?

@stevelord yeah, something else. It's my own "virtual console", for want of a better description. Runs on PC, based on SDL, but it's got very hard limits on what you can do.


@reidrac it’s been a good change of pace. Can recommend it!

@k Any thoughts on the embedded scripting language for the actual software?

It is weird, but thinking about it... when a virtual console is not a virtual console any more? As in, GameMaker is a virtual console? 💥

@reidrac I was initially thinking of using a dialect of Scheme (chibi maybe) but after digging, I’ve decided to try Wren. Has a very clean interface to the C code, and the fibres look great.

Virtual console is probably the wrong term for what I’ve made, but it sort of suits. It’s all a load of arbitrary restrictions that fit a particular set of games that I’ve wanted to make on the side.

@k Wren is cool! I'm a big fan of Bon Nystrom, actually.

Sounds good. At the end of the day it is whatever you want it to be. If you bundle all in a file (perhaps the Wren bytecode), and call it "virtual console", nobody is going to argue that is not a "virtual cartridge" 😎

@reidrac yeah that’s exactly the plan, bundle the assets (and wren code) in a “cart”.

The player/“console” is the executable I’m building now.

It should support a bunch of smaller things I want to make. And then I can try some crazier things; I’m thinking of making a skinny, bespoke Linux distro (for a pi zero or something like that) that’ll boot straight into my “console” :D

@reidrac will do!

It’ll go on the back burner once I’m back from holiday, but I think I’ll have done a fair chunk of it by then.

@k I work with RGB because of that, and then have a map with the RGB values for the palette of the 8-bit I'm working on.

In my experience works OK, I had problems with indexed palettes and I gave up fighting GIMP to get the palette in the order I wanted etc.

@reidrac I've ended up with indexed colour (16 colours) in code, and 256 colour GIFs for the files I load at runtime. (I ignore the rest of the palette in code...)

Texture Packer reorders the palette -- it's 32bpp internally, annoyingly, even with indexed colour source files -- so output from that would need re-mapping, but it'd only be one file.

I think I can do everything else in Aseprite and be assured my palette will remain as I want it.

Sign in to participate in the conversation

Welcome to GN'Tronics! Contains nuts. Takes may be hot.