Commit Graph

9 Commits

Author SHA1 Message Date
yellows111 f05ad6fac4 Soft client interpolation update, minor security update.
Interpolation between two frames of animation is now implemented,
and can be controlled with the PERIOD and COMMA keys.

Automatic playing of interpolated frames is not yet complete.

Security:
All objects which can output arbitrary text has their prototype set to null.

Some other objects have also been set to null prototypes,
which are t64le and the yellowDataReader constructor output.

Still yet to parse actual animation data...
Probably need to know how to make requestAnimationFrame loops practical...

Authors Comment: This filled my evening from doing nothing.
2024-02-29 13:43:08 +00:00
yellows111 aa53573a14 minor non-final changes
Reminder of TODOs:
Animation parsing, parsing animation data into visible data. ->
* Render animations in HTML client.
* Write animations to glTF2 exporter.

Considered ideas:
* Multi-format file input box (auto-detect format based off first bytes)
2023-12-25 08:20:58 +00:00
yellows111 d57d9129de Bumped RLE raw-copy threshold by 0x100
the icons that Gauntlet: Dark Legacy uses for it's save games are rarely even worth being compressed, considering that it only saves around 2900 bytes from just leaving it uncompressed. However, the fact that it's still compressed while still parsing properly ONLY with this change makes me think many others have had this constant wrong for a while. Could it be lower? needs research.

* changed a space for a no-break space in a file input description to make it flow better when text is split.

I was considering making this 0.8.0+u1, but eeh, nah.
2023-12-18 23:00:14 +00:00
yellows111 23ef7c7ca1 0.8.0 (actually) forgot to -a 2023-12-18 14:03:51 +00:00
yellows111 73e618369b cosmetic update to HTML refclient
* changed inline-grid to table-cell, I like it better, and older browsers like it better since its not technically flex-width
- removed inflator-installed id from inflator script, as it was unused
* changed pako version to es5 version, since it works with the absolute minimum version browsers that we technically target, and performance isn't the most important thing when you only need to decompress the data once per export file.

Author's comments: Wondering how LZARI works. Not much I can add to that part of the conversation. Once it's done, it's done. Until then, progress may be stale...
2023-12-08 23:00:36 +00:00
yellows111 1b5f483df8 0.7.0: The Icebreaker update
+ Now including support for CodeBreaker Save (CBS) format.
* CBS Parser function requires a function parameter that inflates data (zlib-style) given to it.
- Removed enabling/disabling strict mode from the reference client.
* Made timestamp objects consistant with every file format.
+ Added Pako to as a semi-optional dependancy to the HTML reference client.
* Disabling Pako will also disable CBS support in the HTML reference client.

Internals:
+ Now includes the RC4 cipherkey for deciphering CBS files.
+ Implemented an RC4 cipher function for deciphering CBS files.

Author comments:
One of the big five. Only one remains, and it's not going to be easy.
The road to an LZARI implementation spans a long distance, and the road there is bumpy.

- yellows
2023-12-07 14:14:07 +00:00
yellows111 98edefff2e A compatibility update.
No, this isn't a late 'Fool's joke, I was just having fun and now I can target pure ES6/ES2015 if I wanted to.

…except Chakra ('Edge <= 44), that thing never implemented `TextDecoder`/`TextEncoder` for some reason. We'll never know why...

I'm researching what makes over-bright happen... give me time!
2023-12-05 18:40:46 +00:00
yellows111 5738fbb09c fix SPS/XPS crash, example icon
fix sps/xps parser crash: apparently those 4 bytes were for a third part of metadata for those files. HTML client now shows this information if available.

example icon: id2_example_001 (12 vertices, 4 triangles)

I've saved and included this icon in the .PSU and .SPS formats. .PSV is a bit more complicated for a valid export.

Example icon shows vertex colours with no animation nor includes a texture (texture type 3).

was considering adding new formats, but its not one of the big five (translation: not MAX/PWS or CBS), and I can barely find any examples to test with. Oh well. adding them to gitignore already. If the demand comes up, I've made the related hexpat's for them anyway.

.xpo and .spo (assuming they're like .xpo files) files are out of scope for this project, if anyone asks. Reason being is that they usually exclude icon data, and even icon.sys. This makes it rather useless to me.
2023-12-03 17:32:26 +00:00
yellows111 95172cf285 Do near-final touches, should of done this last commit but oh well.
Actually made C6JS C6JS and not node-specific. Didn't know there was a difference.
2023-11-28 12:52:34 +01:00
Renamed from input.htm (Browse further)