earthquake-project / shockky Goto Github PK
View Code? Open in Web Editor NEWShockwave File Disassember
License: MIT License
Shockwave File Disassember
License: MIT License
Determine how Shockky will support different Director versions and how much they differ from each other on a chunk basis.
My initial plan is to construct some sort of a DisassemblyContext
like structure from initial version information (InitialMapChunk.Version
for normal and FileVersionChunk.Version
for "afterburned" movies/casts?) and keep passing that to chunk reading methods.
Seems like the guys at ScummVM have made great progress on reverse-engineering early versions of Director. Shockky has been tested on "brand-new" D8/11.5/12 files only.
Continued from ProjectorRays/ProjectorRays#3 since it's more relevant here
It would be great to get all the non-script assets pulled from namely cct and dcr files. In the previous issue mentioned, you said you'd look into image and sound files - any idea how much of a stretch it would be to get everything else? I have a director trial atm, and I'm seeing the following:
There's also all the controls, but not sure how you'd go about handling exporting something like that (as with sprites/frames/etc)
The Shockwave file format includes many common patterns/structures and is somewhat consistent with them. For example, arrays and some smaller common structures ones such as Point
, CastMemberId
and Rect
are represented using common structure in binary. In addition to those, most "complex" and important one of them is internally called VList
aka "Vector List". It's not actually "complex" but just annoying to write (de)serialization logic for and I have been thinking how to handle them best for few years now. VList
s appear in many important resources of the file format, such as Cast member metadata (VWCF
, later embedded to CASt
) and Cross Cast Links (ccl
) and more.
Now heavily inspired by csnover's earthquake-rust pvec!
macro (seriously, this man's a genius!), I'm planning to implement something similar to make the handling VList
s significantly easier by using build time Roslyn source generation.
This issue is just a tracking issue for my design for this model which is a work in progress.
Basically VLists consists of header and a offset table that points to entries in following it.
I'm also currently in process of designing a source generation process for all the Lingo bytecode instructions which will share components with this but still essentially be seperate generator.
Is any body else getting this when they attempt to start Shockky.Sandbox? I've run VS with admin, installed optional .NET development tools. What am I missing?
Currently I have my own small sandbox application using Shockky but as there is no documentation yet for any of this, I should make something to demonstrate progress of the project. This will not replace unit tests of course. The program will probably just be a CLI which is able to dump the non-script resources (mentioned in #1 ) such as images and sounds for now atleast.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.