Extracting individual pictures from Quill/GAC/PAWs

Is there a way of extracting individual pictures from quill/gac/paw, viewing them and then putting them back into a file that can be loaded into a zx spectrum?

i seem to remember a tool that could do this but i cant find it anywhwre.

2 Likes

I can ask in Textualiza games spanish channel

If the game is already compiled, just run it and capture images.Then you can convert that images to png with any picture converter.

i dont want the png file. i want the code that draws it as it sits in memory

The whole graphics side of things is trickier than the text side of things. And you’re basically asking three questions here… the tools available for Quill, PAWs and GAC are different. Getting images out tends to be easy… getting graphics “data” out and then back in, is a lot more complicated.

I’ll skip the GAC as I avoid that (slow and buggy, on the Spectrum) piece of software.

PAWs is perhaps the more straightforward. You can use inPAWs to extract the database of a PAWed Spectrum adventure to give you the graphics code that you can, with a bit of work, transfer to another inPAWs game file and then import it back into a Spectrum PAWed database. If you’re looking to create a Spectrum PAWed game these days I would highly recommend using inPAWs anyway… you can use it with Visual Studio Code and a syntax highlighter to give you a lovely, quick and powerful environment to make a game… It’s much better, in my opinion, than using the Spectrum editor itself. It’s how I make all my games these days. It’s totally transformed things for me. And it’s also a good stepping stone to working with later systems like DAAD.

Images from Quill… There quite a few tools for extracting images from a Quilled games but most, I think, output as PNG/image files. I’m not sure there are any tools for getting the images back into Illustrator in an automated way.

unQuill will give you all the graphics code in long form… but you’d have to manually re-input that into Illustrator yourself unless there’s someone out there that will share their homemade tools to help speed up/automate that process. (I know some people have written some clever tools when working on ports… such as a Spectrum/C64 tool that helps crop and recalculate the coordinates when converting image commands between the systems).

Again, as with your other thread, I’ll enquire as to what your ultimate aim is here. If we know what your specific objective is, then we might be able to recommend the best route to get there. Are you looking to finish off an old game of yours? Produce a new game? Convert an existing game? Take images from an existing game to use in your own?

There are all sorts of possibilities, depending on what you might want to do… for example, you could extract graphics from an old Quill file as image files and then stream them from disk in a DAAD game… giving you more memory for the game and a more powerful parser.

3 Likes

First of all, there is no such tool existing that would support all these formats. Especially the GAC format is very different to Quill or PAWs.

The code that draws it actually does not sit in memory. Or better said its sits in memory in compiled form. There is no easy way of extracting this other than decompiling Quill’s or PAW’s interpreter binary. The image format from Gilsoft is an early form of a vector like interface which is very memory efficient. Instead of saving picture data, the pictures consists of numbers that contain information for the interpreter to draw the picture at runtime.

The closest you may get with what you aim for would be using a Spectrum Emulator like ZEsarUX and then saving a screen capture as SCR file. You could load it from Spectrum basic and watch it but the screen capture would also save the what else is on screen, eg. written text. And with this way, you couldn’t use the image again in Quill or PAW.

Another way would be saving as PNG using an emulator and then using a tool like multipaint to adjust the picture to your needs http://multipaint.kameli.net/ Multipaint allows saving a PNG to SCR format and also allows exporting to a TAP file that will automatically load the picture.

But like @8bitAG already said, we are missing a lot of context here to ultimately understand what you’re trying to achieve. We can recommend the right way to do it when understanding what you aim for with the image output.

1 Like

im looking to extract individual pictures from other text adventures to use in my own text adventure. just for fun, really.

ok, ive managed to get it to work, sort of. unfortunately if i just add graphics to another file, it just shows crashed graphics and only allows me to look at picture 0. are there special codes to identify when its the next picture? as its just a long line of numbers with commas separating them

ok, im doing better now. i needed to set locations at the beginning of the file. so now imported graphics work. but im still stuck on how the graphics screens are separated, so i cannot import individual screens, yet.

ive compared unpaws to inpaws output and the numbers look completely different…

If you wanted to try and isolate the graphical code for each location, you could probably learn about the format used for the graphics section in inPAWs by deleting the locations graphics that aren’t used and comparing the extracted output from this new “one location picture” game with the original extracted file.

(Obviously, if you’re going to use the graphics from other adventures in your own projects - ones that aren’t just for your own amusement - then you would need to get the original author’s permission.)

there doesnt seem to be a way of just deleting graphics in paw in the graphics editor

see above ^

You’d need to go into each picture and delete the draw commands. Even doing that for one, and comparing the extracted .paw files might help you spot the markers for the beginning and end of each file.

(I’m sure someone in the Spanish community has probably worked out the inPAWs graphics section’s format already.)

i did a comparison by just deleteing one picture and i can see the difference now. although i cant see any header patterns, etc

i wish i spoke spanish… ^

1 Like

If you write down clearly your needings I can translate, and post it in some spanish if sites that uses Paws, but as I don’t really know a lot of it, you should be clear as glass.
Additionally I can retrieve those sites and send tjpje links to you becouse most of these people speak english properly.

hi,
yea, please send me the links

I think that the best path should be extracting to SVG, not PNG; Quill (Illustrator) and GAC’s internal graphic format (dunno about PAW) is vector format.

Best regards from Italy,
dott. Piergiorgio.

While he could certainly do that; The Inker, for example will extract Illustrator images to SVG; that wouldn’t particularly help him get the images back into Illustrator, PAW, GAC etc… At least not without some additional clever coding.

(Illustrator/PAWed images are actually a mixture of vector & raster, by the way… They’re not pure vector. They’re generated from a sequence of drawing commands. Transferring the sequence from one database to another is the objective here… It doesn’t make much sense to convert them to a SVG that would then itself need to be analysed and converted back to a sequence of drawing commands.)

Anyway, this all seems a lot of effort just to reappropriate other people’s work.

2 Likes

The author of inpaws:
lane.mastodon@gmail.com

Fran Kapilla The time machine author
frankapilla@gmail.com

Dwalin
https://twitter.com/Dwalin15

Bieno Marti
Etc, etc.