Giter Site home page Giter Site logo

sembiance / dexvert Goto Github PK

View Code? Open in Web Editor NEW
95.0 95.0 5.0 670.98 MB

Converts over two-thousand file formats to modern equivalents

JavaScript 15.35% Shell 0.08% Python 76.48% Batchfile 0.02% Roff 0.10% DIGITAL Command Language 0.01% Prolog 0.20% TeX 1.17% Visual Basic 6.0 0.01% Perl 5.96% HTML 0.63%

dexvert's People

Contributors

sembiance avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dexvert's Issues

MegaZeux file detection

Detecting MegaZeux worlds with magic bytes

The MegaZeux world file header (for all versions) is documented here. From there, we can see that the following logic is sufficient:

  • The file extension is always MZX (world file),
  • If byte 25 is zero, the bytes 26-28 (magic) are either MZX, MZ2, MZA, or M\x02?, where ? is any byte;
  • If byte 25 is non-zero, the bytes 41-43 (magic) are either MZX, MZ2, MZA, or M\x02?, where ? is any byte;

Bytes 0-24 can then be used to parse the world title (codepage 437, null-terminated).

Detecting MegaZeux boards with magic bytes

Like the instructions above:

  • The file extension is always MZB (board file),
  • Byte 0 is always 0xFF,
  • Bytes 1-3 (magic) are either MB2 or M\x02?, where ? is any byte;

Bytes 0-24 can then be used to parse the world title.

Detecting MegaZeux save files with magic bytes

Like the instructions above:

  • The file extension is always SAV,
  • The bytes 0-4 (magic) are either MZSV2, MZXSA, or MZS\x02?, where ? is any byte.

Detecting MegaZeux 2.00+ worlds with checkres

The most comprehensive to detect a MegaZeux 2.00+ file is to use checkres, a tool built as part of the MegaZeux distribution (source code, directory src/utils):

./checkres -AV [file]

If the error code is 1, the file is not a valid MegaZeux 2.00+ file. If the error code is 0, the file is a valid MegaZeux 2.00+ file - additionally, a CSV will be output containing the file's dependencies and whether or not they have been located, for example:

Required by,Expected file,Status,Found in
CAVERNS.MZX,CV_BALON.MOD,FOUND,.
CAVERNS.MZX,CV_BOSS.MOD,FOUND,.
CAVERNS.MZX,CV_HEVEN.MOD,FOUND,.
CAVERNS.MZX,CV_MAGIC.MOD,FOUND,.
CAVERNS.MZX,CV_STORY.MOD,FOUND,.
CAVERNS.MZX,CV_TECH.MOD,FOUND,.
CAVERNS.MZX,CV_TITLE.MOD,FOUND,.

Notice that I mentioned "2.00+" (this is also important, as for very modern files - we're talking the last few years - the format changed significantly, being effectively a ZIP file with a special file layout). For MegaZeux 1.xx worlds (the only MegaZeux worlds currently on DiscMaster), the output will be as follows:

ERROR: Worlds from MegaZeux 1.xx are not supported by this utility.

As with ZZT/Super ZZT, I am open to working on a dedicated tool to handle these (though PNG screenshot exports would be a little trickier).

Search by language?

I can't remember how you flag Japanese media like mine, but it would be useful to be able to limit the search similarly.

Easier way to view all images in directory?

Example

This came on in my RSS for Thoru Yamamoto. A real nice find, totally unknown!

I wanted to view all three images full size one after the other.

Turns out these images are small anyway so it was a dead end.

But, currently, viewing multiple images in sequence is difficult as the prev/next buttons are small and separate than the images.

I'm wondering if there's a better way. Some kind of "light box", slideshow, coverflow, or other interface.

RSS for search results

I thought it would be very useful if search results could be returned as RSS.

This would let me check "automatically" (I'd set frequency to, say, once-per-day) for any matches of sought-after items/keywords in new DiscMaster uploads.

just like archive.org

I subscribe to a few searches on Internet Archive to alert me to new matching uploads.

Example:

I'd expect similar from DiscMaster:

Colour of local/external HTML links?

I sent a DiscMaster link to somebody and they commented "this is just the same snapshot as Wayback Machine has"

It wasn't, but the reformatted Wayback links made them think it was.

So I wondered if it will be possible to differentiate local DiscMaster links and Wayback links?

The obvious way would be different colour for local/external links. But it's not so accessible. And maybe it would need a description on the page of the differences.

Maybe colour and an icon? but that would break the layout of some pages.

I'll leave the difficult decision up to you ๐Ÿ˜…

Support for other classic Macintosh text encodings

Currently dexvert has support for MacRoman, which is assumed for all HFS format media.

It would be great to get support for MacJapanese, and other classic Macintosh text encodings.

Personally, I've used Tcl to convert classic Macintosh encodings to Unicode, as that support was written by Apple themselves.

The tricky thing about this issue: there are no identifiers to signify which encoding a filename is using. It was assumed to be the same as the host OS.

Much like dexvert assumes MacRoman, my own tool assumes MacJapanese (which is a superset of MacRoman so handles any included filenames that use MacRoman fairly well). It's a tricky issue for sure.

Maybe dexvert could use the encoding that matches the language set in the internet archive metadata?

Example ISO: https://archive.org/details/macpeople-1998-no-2

Please ask if any further information is required, I can most likely help.

Thank you.

Fixing ZZT/Super ZZT file detection (contributing file format support)

The repository lists ZZT and Super ZZT files as UNSUPPORTED, yet Discmaster is clearly detecting them - with about 80% false positives, unfortunately - and I can't possibly figure out how it is currently doing it from the codebase as-is, nor do I seem to be able get it to work enough to try locally on a set of sample files.

As a person familiar with the inner workings of ZZT, I'd like to contribute a more resilient detector, as I am very much interested in preserving and documenting every ZZT/Super ZZT/MegaZeux game world out there.

News page numbering

I just sent somebody this link: http://discmaster.textfiles.com/news12.html

But it occurred to me... will the contents of this page change over time? Seems to me it will.

So I wondered if they older news pages could be named in such a way that their content will not change? Maybe they could be split by month/week/day?

DiscMaster news dating

May I humbly suggest that the date of publishing for the DiscMaster news blog entries is set to the end of the day, or the first minute of the following day.

Currently, when they appear in my RSS they appear "in the past" some way down my timeline.

Even though they're published "now" they're dated to the beginning of the day so appear many hours old.

Wayback links should open in new tab/window

I also think the reformatted links to Wayback Machine should open in a new tab/window and not in the DiscMaster frame.

Currently it can feel like your viewing contents of the disc but you're viewing Wayback Machine inside the DiscMaster interface.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.