Email or username:

Password:

Forgot your password?
Devil Lu Linvega

Every week, I figure out more of the missing blocks to have Hiversaires running on #uxn.

I'm not there yet, but I found a scheme to create a single oversized rom containing all the assets of game and unpack them on load to make them usable.

For games like Oquonie or Hiversaires, which have large assets, I'd like to still distribute a single .rom file, I'm not interested in having like 10 "disks" in a zip file sort of deal.

16 comments
Yiming Wu ✅ Use OurPaint

@neauoire interesting... How is this game able to run? It looks 3d, does uxn have this sort of graphical API too?

Job

@neauoire I have some notes for ideas for compression in embedded contexts that I have been wanting to write out properly but haven't found the time for. Would you be interested? Maybe that bit of extra motivation is all I need

Devil Lu Linvega

@vanderZwan I'd love to read, but I don't think I'll do more than use nametables as compression.

Job

@neauoire Nametables as in nesdev.org/wiki/PPU_nametables? So tile maps, basically?

My ideas involve a few LZ77 variants, which should complement that quite easily

Devil Lu Linvega

@vanderZwan yeah, just indexes to tiles in a spritesheet, and to use Varvara's color byte to handle duplicate tiles that are found in memory but that are flipped x/y.

Job

@neauoire Ok, I'll try and write out the ideas I had in a coherent fashion and then you can tell me if I succeeded at the coherent bit (whether or not you have a use for them is an entirely different concern)

Devil Lu Linvega

@vanderZwan in any case, maybe someone else can make use of them.

In this case, I think you'd have to be somewhat familiar with the uxn sprite format.

Job

@neauoire That's true :)

wiki.xxiivv.com/site/formats.h right? I've read through the docs before, just haven't written something in uxn myself yet.

I don't see a reason why LZ77 based compression wouldn't likely help here. There's a reason LZSS-variants are common on NES and GB/GBA/DS devices nesdev.org/wiki/Tile_compressi

Devil Lu Linvega

@vanderZwan I can't really load pages right now, but I'll have a look when our connection gets a bit more stable.

exit-b

@neauoire I’m not very familiar with uxn, but maybe something like ROM banking in Game Boy - part of the address space can refer to one of a couple switchable memories.

Devil Lu Linvega

@exitb Since we have a file system, we can do better than that :)

Devil Lu Linvega

@tty This is the test I did:

I have a 90kb rom, of which only 64kb is the program space, what I do is read the rom file with the file device, until I reach the end of the rom data, then I drew a picture that was stored at that location to the screen.

It's a bit clunky right now because I must know the name of the rom, which is a bit fragile, but if I can find a way around that, I might be able to package roms with lots of assets as a single rom.

Andy Alderwick

@neauoire @tty re: “I must know the name of the rom, which is a bit fragile”, that could be an excellent choice for the meaning for a zero-length filename in the upcoming File device.

Go Up