Skip to content

.hea, .fnt, .net10, other stuff#12

Merged
baughj merged 15 commits into
eriscorp:mainfrom
Sichii:master
Mar 29, 2026
Merged

.hea, .fnt, .net10, other stuff#12
baughj merged 15 commits into
eriscorp:mainfrom
Sichii:master

Conversation

@Sichii
Copy link
Copy Markdown
Contributor

@Sichii Sichii commented Mar 15, 2026

  • .hea file format save/load/fromimage
  • .fnt file format save/load
  • graphics apis for .hea and .fnt
  • upgrade to .net10
  • virtualized formats
  • image caches now threadsafe
  • allow negative space on epf/efa (negative left/right values)
  • palette cycling (used for things like canals water shimmer)
  • some other minor bugfixes

to anyone who cares about .hea files, they control lantern placement when you apply light levels/light metadata to maps.
basically, take the size of a full map render and add a screens-worth(640x480) of empty padding to all sides. Each pixel can have a value of 0-32 to determine it's transparency(higher is more transparent). now cut this image into 1000pixel wide slices and RLE encode those slices of 0-32 values. that's the .hea format.

to anyone who cares about palette cycling... this is what causes the water shimmer effect on canals water. The files that are named somepal###.pal don't actually belong with the rest of the palette table. The identifier ### of these files specifies the palette they apply to. The contents are in {startIndex} {endIndex} {period} format and can have multiple entries. This mean multiple independent palette index cycles happening at the same time. The period is interval/100, much like tile animation entries, so it specifies the number of 100ms intervals between cycles. Each cycle, the colors at the specified index range are shifted to the right (the end loops around to the beginning of the cycle range).

- since additive alpha cannot be approximated correctly, we should leave it alone
- the user of the SKImage needs to draw using SKBlendMode.Plus
@baughj baughj merged commit 484af2f into eriscorp:main Mar 29, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants