Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
jmickle66666666

WAD.js online wad tool

Recommended Posts



WAD.js, an online WAD tool I've been working on. Currently able to load up and preview many lump types, directly in your browser!

It's still early on, so there's no editing functionality yet, but that's coming up soon hopefully. Currently the tool can load up WAD files, and preview many different lump types, including graphics, flats, maps (rendered close to vanilla automap), and even MIDI files!

Future work includes some lump editing features (like importing graphics), and UX overhaul, to make it much easier to use.

The initial purpose of the tool wad to just write a wad manipulation library for Javascript (how did this not exist??) but eventually the user-end tool also became a priority, just because it's fun to work on!

Please let me know what you think, and if you have any feature suggestions/bug reports!

http://jmickle66666666.github.io/wad-js/
Source available here

You can post bugs or feature ideas in this thread or over here would be excellent: https://github.com/jmickle66666666/wad-js/issues

Share this post


Link to post
jmickle66666666 said:

The initial purpose of the tool wad to just write a wad manipulation library for Javascript (how did this not exist??)


Because working with binary stuff directly in JS is, how to put it, kinda meh, and sometimes bleh (and a few years back it would be outright impossible, without jumping through ridiculous amounts of hoops).

Share this post


Link to post
jmickle66666666 said:

I assumed it was gonna be terrible, but it wasn't really so bad using a DataView


Only standardized in ECMAScript 2015. Heh.

Share this post


Link to post

Oh no! Looks like I'll have to replace the library. There appears to be no way of easily embedding it onto my page, or even contacting the author. I'll get that sorted asap!

Share this post


Link to post

Interesting stuff.

Would it be possible to have the scroll bar on the left? It feels weird how everything is on the left, but to scroll stuff I have to move the mouse to the very right of the screen.

I guess the THINGS lump is in an early stage ("shellss", undefineds, etc). Or maybe I got undefineds because I opened STRAIN.WAD and it has dehacked monsters.

Obvious suggestion: make it possible to link to wads instead of uploading them. Maybe even link to zips that have wads?

How about automatic mus2midi?

Maybe also display the number of each lump or something. So you can for example remember some place and return to it later easily.

Share this post


Link to post

Thanks for the feedback memfis!

I just recently thought about the scrollbar for the lumps list, I don't often use them so I didn't think about it but I can totally move it over, makes complete sense.

I'll take a look at strain to see if i can improve the way that looks, didn't know about the typo! Will fix.

Linking to wads is actually something I hadn't thought about, haha. Will do! Zips with wads would be super nice, I should be able to handle that.

mus2midi is something i really want to do, to allow people to play the IWAD music if nothing else. It's going to be a lot of work as I will have to write the entire implementation myself, obviously nothing like that exists for javascript yet, but I will eventually try it.

Lump indexes shouldn't be difficult. I want to change the way data is presented entirely, though, and only show the lump list if the user asks for it. I think a more friendly approach would be to access sections, like selecting "music" and just be presented with a list of all the music present in the wad etc. A big feature for this would be the "maps" section which would list all the maps along with any information defined in DEHACKED/MAPINFO etc, exposing less of the inner-workings of the wad and giving a more natural appearance to it. The ordered lump list will however always be accessible for people that want it though.

Share this post


Link to post

You might be able to get away by compiling MUS2MIDI with Emscripten, if it can produce something like a function that you can call from your own scripts and pass it external data in the form of files or binary blobs (though I recall you were limited to embedded data for anything compiled with Emscripten, which was kind of a bummer).

As for linking to other PWADs (on another server, I presume), there might be security restrictions in place that will prevent Javascript from initiating cross-domain downloads, or at least from them reliably working on all browsers for long.

Parsing ZIPs may present similar problems, as most of them require internally creating File and Blob objects, which is only permitted for local files accessed through an explicit user File Open dialog.

Share this post


Link to post

This is awesome :D are you open to PRs on beautifying the front-end?

edit: or, perhaps, maybe I should ask first what your intent is for the UX/UI in the long term. It looks like you're using some jQuery right now but I imagine that using something tiny + maintainable like Preact might be a good long term solution. In any event I am pretty keen on front end stuff so I would love to help with it :D

Share this post


Link to post

@Tango:

Definitely! I haven't got any real solid plans for UX/UI aside from the vague ideas i've mentioned in this thread, so any input is super welcome on that front too. jquery was used just to speed up the initial development of the frontend, which I hadn't planned on developing as far as I have done.

This is also the reason I've so far avoided a build system. It's been very quick to iterate so far on the little bits I needed, but eventually having a build chain will be necessary. I've not used react before, though! I should probably get around to it haha

Share this post


Link to post

Cool :D I would love to take a stab at just prettying up the UI with at least CSS maybe for the time being. If you get to a point where you intend to introduce a build system or use a framework I would love to contribute to that shit too

Share this post


Link to post

Lots of updates! Thanks to Tango and especially github user remyabel; who has done a bunch of great work on wad.js

Stuff since I last posted:
+ https:// things should be fixed! Let me know if you have problems regarding this
+ Loop button on mp3 files (not currently supported for midis)
+ Lump list UI has been updated.
+ Allow loading wads from URLs
+ Load Hexen format maps (including ZDoom in Hexen format)
+ Convert MUS files to MIDI for playback

mus2midi was a huge pain, and a lot of work was backend refactoring etc, which doesn't really show any change for the users, but has made development much smoother!

As always, find your favourite new online wad tool at: https://jmickle66666666.github.io/wad-js/

Share this post


Link to post
jmickle66666666 said:

Lots of updates! Thanks to Tango and especially github user remyabel; who has done a bunch of great work on wad.js


Thank you lols but I think I did literally nothing :p I would still love to throw some ideas your way regarding the UI but I think it'll take me a little bit longer than hoped, apologies for that. I'll let you know though!

Share this post


Link to post
Memfis said:

Obvious suggestion: make it possible to link to wads instead of uploading them. Maybe even link to zips that have wads?


Awesome tool jmickle! Definitely bookmarking.

Gonna echo this sentiment especially, /idgames archive is all .zip files. Being able to automatically unzip and load the wad would be so great.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×