PawMac Online User Guide
Version 0.8.9 - December, 2023
Last update: 30 December, 2023
Contents
PawMac. 4
Introduction. 4
Using PawMac to convert Quill files to PAW, or DAAD. 4
Conversion Introduction. 4
Notes. 3
DAAD. 4
PawMac Conversion Instructions. 5
1. Function selector 5
2. Choose files. 5
3. Show / hide options. 5
4. Create log etc. output. 5
5. Use Smart Wrap. 6
6. Remove control codes 6
7. Replace newline with space. 6
8. No blank line after \n. 6
9. Truncate longest X percent. 7
10. Truncate after X chars / percent. 7
11. If necessary, truncate.. 7
12. Conversion Output 7
13. InPaws128 z value. 7
14. Include fonts. 7
15. Font mapping. 7
16. DAAD Database starts at address 8
17. UDG Replace.. 8
18. Upload, Process. 9
19. Download file. 9
20. ReDo. 9
21. InPaws button. 9
22. Export Graphics. 9
23. Output window. 9
24. Font Display. 9
25. Edit Window. 9
Drag and Drop an SNA snapshot file. 10
Exporting Images. 10
1. Export images selector 5
2. Image Scale. 5
3. Image Format. 5
4. Export Subroutines too. 5
5. Fix Fill. 6
6. Shade Fix. 6
7. Export Graphics 6
8. Download Graphics. 6
Finalising your adventure in PAW.. 16
Vocabulary. 16
Event > Response. 17
Status > Process. 17
Messages and Locations. 18
System messages. 18
UDGs. 19
Objects. 19
Patch or Press Flags. 19
Using the PawMac edit window.. 13
Searching for a word. 13
Edit the word or word number 14
Insert or Edit a word. 15
Save and Load your work. 15
Using InPaws128. 20
Running InPaws128. 20
Guidance notes for creating DAAD adventures using PawMac and InPaws128. 23
Setup. 23
Memory. 23
Vocabulary. 23
Quill Condacts. 23
Process Tables. 23
Flags. 23
Message and Location Text 23
Location Graphics. 24
jDAAD. 24
Fonts. 24
Further reading. 24
Using PawMac's TheScanner to create PAW graphics. 23
TheScanner Introduction. 23
Using PawMac to convert Quill files to Adventuron. 23
Conversion Introduction. 23
Using PawMac to map Quill, PAW or GAC adventures. 25
Garbage in, Garbage out. 26
1 WAY and 2D. 27
What is mapped?. 27
Mapping Instructions. 28
Function selector 28
Add Objects. 28
Do not map dead locations. 28
Compact Final Map. 28
Adventuron Legacy IDE compatibility. 28
Gap between rooms. 28
Upload, process 28
PawMac (Paw Map and Convert) will allow you to convert adventures to a variety of different formats as well as importing and exporting graphics and character sets. The mapping functionality of PawMac will allow you to produce maps on the fly for adventures made using PAW, Quill, and GAC.
PawMac (Paw Map and Convert) will allow you to convert adventures produced using The Quill to a format where they can be loaded, edited and played in PAW using InPaws. The adventure data, including character sets, and any graphics can all be converted.
PawMac is primarily aimed at adventures produced using the ZX Spectrum , but InPaws is capable of producing output files for versions of PAW that were released on other 8-bit computer systems such as the Amstrad CPC series. You can also create output files that can be loaded into DAAD. More information below.
Many Quill adventures produced using The Press or The Expander add-ins won’t fit into a standard 48K PAW adventure, as the more sophisticated parser used in PAW takes up more available memory than The Quill .
PawMac allows you to use a variety of techniques to reduce the final size of the data sent to PAW. However, all of them involve truncation or editing of the messages and or location text in your adventure. This may mean additional work for you to insert the truncated text back in once the adventure is saved into PAW. An alternative is to use the InPaws128 program contained within PawMac which will fit all of your Quilled adventure into the 128K version of PAW.
PawMac's TheScanner allows you to upload an image file of your choice, and have it converted to a working location graphic within your PAW adventure. For more information, see Using PawMac's TheScanner to create PAW graphics.
1. To edit any map files created by PawMac, you’ll need to download and install Trizbort, or use Trizbort.io. You can view the maps onscreen, or export to PDF.
2. Unfortunately, our hosting provider has set an inactivity timeout of 5 minutes on PawMac. After this period of inactivity, server memory is freed to be reallocated elsewhere and any session data will be lost. Always ensure that you save any changes to the vocab table, or the changes may be lost. In later versions, we hope to cache this data into local storage.
DAAD was the final text adventure system written by Gilsoft, following The Quill and then PAW. The DAAD Ready toolkit, released in May 2020, allows the compilation of DAAD adventures from a single DSF source file onto multiple 8-bit and other systems including the ZX Spectrum, Amstrad CPC, Commodore 64, MSX computers etc.
PawMac and InPaws128 have been amended to allow experimental support for the creation of the DSF output files used by DAAD Ready to compile DAAD adventures. Please refer to the Guidance notes for creating DAAD adventures using PawMac section later in this user guide for more information.
Ensure that the function selector is set to Convert to PAW.
Click to open the file browser, or drag and drop a file to this control. The types of file that are accepted are displayed in a table at the top of the PawMac page.
Click to toggle between showing or hiding the additional PawMac options.
This creates a log file of the changes that PawMac has made to your adventure. It creates a really useful worklist for you to work through to finalise the conversion from Quill to PAW. If checked, the log will be added to the final output file and can be downloaded as a zip file. The initial conversion output from UnQuill will also be included, so if you just want to UnQuill a snapshot, you can.
PAW wraps text, and Quill doesn’t. To save space, many Quilled adventures don’t split the text where one word ends the line and the next word starts the line. These words are then joined together when displayed in PAW. Smart wrap attempts to fix this by inserting a space after each 32 characters of location and message text. This function also inserts a space after each full stop (unless the following character is a number,) and will replace multiple spaces with a single space. With these functions, you increase the readability of your text, at the expense of memory. Smart wrap isn’t a panacea. It will improve but not completely cure the problem.
Quill and PAW allow you to change the ink, paper, flash, inverse, brightness of text using control codes. Stripping these out will save memory at the expense of colourful text. If you are converting the adventure to a system without control codes, this may help save valuable memory.
Replace any newlines in the final text to be exported with spaces. This may work better in some instances, and you can then reinsert newlines back into your text as needed.
Legacy function. Not currently used.
Check this box, enter the X percentage into box 10, and then select whether you want to truncate locations, messages or both in the dropdown 11. If this box is checked, PawMac will:
· Sort the messages (and/or locations depending on what was selected) into descending order of length.
· Remove the text from the longest X percent of the messages
The idea behind this functionality is to reduce the number of messages that need to be rekeyed when the final adventure is loaded back into PAW.
The value in this box depends on whether the truncate longest X percent box is ticked :
· if ticked, this will set the percentage of messages and/or locations that are truncated, in descending order of length (so the longest message / locations text will be truncated first.) There is no need to enter the % symbol. Maximum value is 100, but obviously, setting at 100 will mean all messages and locations in your adventure will be blank. It is suggested that you start off at 5% and increase as necessary until InPaws processes your file successfully.
· if unticked, this will set the maximum length for each location and/or message before it is truncated. As the front end suggests, start with 200 and decrease until InPaws processes your file successfully. Of course, as this number is reduced, the more locations and/or messages will be truncated, and will need to be dealt with once loaded into PAW.
Choose whether to truncate messages, locations, or both. This is personal choice, and will depend on how your adventure is written. If your adventure has lots of messages, but only 6 locations, then truncating your messages will probably have a bigger impact on reducing the file size so that it will load into PAW.
Can be changed so that InPaws exports it's final output into different versions of PAW (Spectrum, PC, C/PM) or a version for use in DAAD, or into Adventuron. To use in DAAD, see Guidance notes for creating DAAD adventures using PawMac and DAAD Ready.
The percentage of message text that is sent to Ram Page 1 on a 128k Spectrum when using InPaws128 for converting Quill Adventures to PAW. By moving some data to Ram Page 1, a 48K Quilled adventure that was too big to fit into a 48K PAW conversion can run without Truncation on a 128K physical or emulated ZX Spectrum. Leave blank and InPaws128 will process the output as a standard 48K file. For more information, see Using InPaws128.
Quilled adventures can include up to 2 fonts. You can select whether to import the first, second, both, or neither of these fonts into the PAW version. Again, this is a trade-off between the look / atmosphere of your adventure against memory. If you only use the second font for a particular location, you may want to consider if the memory can be better used elsewhere. Both (Reverse) imports both fonts, but reverses the order of the fonts as they are loaded into PAW. Useful if your “alternative” font has been loaded as the default font. Please note that although the front end is not updated, the export font function is “smart” – so it won’t try and remove the second font if it doesn’t exist, etc.
This allows you to correctly map the fonts in your adventure to entries in the process and response tables. For example, if you’re expecting certain messages to be printed in your alternative rather than your default font, you can try both options in the dropdown, in conjunction - if necessary - with the Both (Reverse) export font option.
Used in creating an adventure version for use in DAAD. To use in DAAD, see Guidance notes for creating DAAD adventures using PawMac and DAAD Ready.
21 UDGs are available in The Quill, but only the first 19 of them are available in PAW. PawMac will detect if the final two udgs have been redefined in the source Quill adventure and include them in the font display output window. PawMac will also detect if any of the lesser-used characters (e.g. {[~) were used in the adventure text. Key in a character that you're happy to sacrifice in this box, and PawMac will replace occurances of the redundant udg in the adventure with the unused character you've keyed in, and will then redefine that character to be the missing UDG.
Upload and process the selected file in accordance with any selected settings.
Download the processed file. The filetype will vary depending on the settings used.
This function outputs the contents of the current adventure stored in PawMac into a PAW file without loading in an UnQuill file or drag/dropping an SNA file. Once you’ve finished changing things in the edit window, or loaded in changes using LOAD, ReDo will create a new version of the .PAW output file containing your changes.
Once an uploaded file has finished processing, press the InPaws button to convert the (for example) PAW file output into a TAP file that can be loaded into a ZX Spectrum emulator. The converted file type is dependent on the InPaws settings used.
When the TAP file has been created, you can choose to download it, or open it in an online emulator for further editing. PawMac will load a copy of the 128k version of PAW into the emulator and then blend the data from the TAP file into it, so you can see and edit the results of the conversion.
PawMac will display this on a local install of the JSSpeccy3 emulator. A link is also displayed to open the adventure for editing in the QAOP emulator. It is suggested that the QAOP version is used as it:
Allows you to save your edited work in the form of a snapshot.
Has better mobile device support.
You can use the same functionality for a .paw file output produced by InPaws. Upload a paw file into PawMac, then press the InPaws button to create a tap file, and then click the link to open that tap file in QAOP for editing within PAW.
You can make use of this functionality if you have a Quilled adventure game saved as a tap file, rather than as a snapshot. Although PawMac cannot process tap files directly, you can upload the tap file into PawMac, and then open it in QAOP, and there save it as a .Z80 snapshot that can be processed in PawMac.
Graphics processing is now available on a separate page in PawMac online. If graphics are found in the processed adventure, this link will be visible. Click the link to be taken to the graphics processing functionality.
The same text that ends up in the log file of activity, and a useful guide as to what needs to happen to finalise your PAW adventure.
Displays a visual representation of the fonts found in an adventure. You can use this information in conjunction with the Both (Reverse) option in the export font dropdown, and the font mapping dropdown to ensure that the correct fonts are displayed in the correct order in your adventure.PawMac allows you to export the existing fonts as well as upload your own Spectrum font files saved in .ch8 format. (Damien Guard's excellent ZX Origins fonts all contain a .ch8 file in the zip file for each font.)If two user-defined fonts are already present in the adventure, you need to specify which one should be replaced, by selecting the relevant radio button on the font display. If only one font is present, that font will be replaced. If none are present, the .ch8 font will be added as font 1.In order to do this:
Upload and process your source adventure file into PawMac in the normal way.
If the font display is populated, select the radio button next to the font that you wish to overwrite.
Upload and process your chosen .ch8 file.
The font display will update with your newly-imported font.
IMPORTANT! Press the ReDo button to merge your font with the other converted adventure output.
When converting to PAW and the conversion has finished, you can go into the edit window and manually edit the vocabulary to, for example, change any 4 digit words to 5 digit words. It’s easier and quicker to do this in the edit window than in PAW. See Using the PawMac edit window for more information.
You can also convert an .SNA, .Z80, .VSF snapshot file of a Quilled adventure by dragging the file from Windows Explorer and onto the upload file section of PawMac, and following the prompts. Dragging and dropping the snapshot file also allows PawMac to grab additional data from Spectrum snapshots that is not present in the UnQuill file:
· The character used as the marker is passed to PAW system message 33.
· The character used as the cursor is passed to PAW system message 34. (Avoid using the underscore character _ as the cursor as it causes unexpected results in PAW. PawMac replaces it with Spectrum Ascii 140: )
· Any inverse or flash settings on the cursor or marker will be converted.
· Any default adventure colours (ink, border, paper, flash, inverse, over) will also be imported. If the ink colour is the same as the paper colour, PawMac will automatically change the ink colour so that the menu options are visible when the converted adventure is open in PAW for editing.
· Any location graphics will also be converted. A prompt will appear asking you if you want to import the graphics into PAW. If you click yes, then the graphics will be added to the final output to be used by InPaws. The following caveats should be borne in mind:
1. The patterns used in the SHADE command are not the same across the two systems. In The Quill, the shade pattern is a number from 0 to 255 based on the shading bits being set in the following pattern (according to The Illustrator manual):
128
64
32
16
8
4
2
1
The U shaped-pattern below, for example, would thus have a pattern number of 159 (128+16+8+4+2+1)
2. In PAWS, the shading pattern can be a value from 0-255 and relates to 16 separate 8 x 8 shading patterns that are displayed in the characters menu and are then OR’d on top of each other. The value is calculated as: pattern1 + (16 * pattern2).
3. The first 16 distinct 4 x 2 shading patterns used in any Quill adventure are currently converted and loaded as 8 x 8 shades into the PAW conversion by PawMac. The graphics data is then updated to use these patterns. However it seems to result in an approximation of the original Quill shade pattern, not an exact match.
4. The Border Shade command in The Quill (BSHADE / SHADE whilst holding SHIFT) is not supported in PAW (where it is interpreted as a standard SHADE with the inverse bit set. Because this can give unwanted results, PawMac replaces BSHADE with a standard non-inverse SHADE command.
5. Most graphic adventures feature a split-screen design, where the location is displayed at the top half of the screen and the location description displayed underneath. In The Quill, the line number to display the start of the text after the graphic can be set in two ways:
a. By setting FLAG 27 with the line number to be used, and adding this entry to the EVENT or STATUS tables
b. Using a default line number value set by The Quill, (although this default can also be poked with a different value.)
6. PawMac will add the following commands into PAW to deal with the split screen line numbers:
Quill Behaviour
PAW behaviour
Default value
PawMac will add a MODE 2 3 LINE {default line number value} GRAPHIC 0 as an * * entry in Process 1
LET 27 x
(where x is 1-24)
If an adventure contains graphics, PawMac will convert any instance of LET 27 x to MODE 2 3 Line x (where x is 1-24)
By using a value of 0 or >24, it is possible to re-purpose FLAG 27 to operate as a standard flag in a Quill adventure with graphics, and to rely on the default line number value to set the split screen position instead., PawMac will assume “re-purposed FLAG 27 use” when it encounters LET 27 x in an adventure with graphics, and x is 0 or >24 The PAW MODE command has a number of options. MODE 2 3 affords the most Quill-like behaviour, but you should consult the PAW manual for further guidance.
1.
2.
3.
4.
5. Graphics obviously take up memory, so if you include graphics in your PAW conversion, you’ll need to:
· Further truncate messages and/or location text as discussed earlier, or…
· Use InPaws128. (You may also need to increase the Z value to move more messages and locations to ram page 1.)
6. There is a limitation with InPaws128 where it will not convert the graphical data for the final location (highest location number) in an adventure. PawMac will detect such instances, and can create a workaround by inserting a dummy empty location at the end of the adventure, (unless the adventure is already using all 256 locations.)
7. Shade and fill appear to be fussier in PAW. You may need to go in and finish off shaded / filled areas that were complete in The Quill. Note the accompanying image below from the PAW conversion of “The Boggit” location we saw earlier. The fill around the edge of the door hasn’t completed around the left-hand side:
8. The Quill allows you to include more location graphics than actual locations. This is not allowed in PAW. PawMac will detect this and ask if you want to insert dummy locations to match the number of graphic locations, (subject to the maximum of 256 locations.)
9. The Quill Freehand command (RPLOT in an UnQuill output) is not supported in PAW, and is instead used by PAW to store the TEXT command. Consequently, Quill graphics that use RPLOT may show an integer out of range or other error when converted to PAW.
· PawMac will detect any instances of RPLOT and will replace them. Note that each RPLOT command takes up 1 byte, but PawMac replaces them with a LINE command which takes up 3 bytes.
· It is recommended that you use drag and drop rather than loading in an UnQuill output file to take advantage of this additional functionality.
· For the avoidance of doubt, PawMac uses the UnQuill text output to create png versions of the location graphics, but can only import The Quill graphic data into PAW using the drag-and-drop SNA method. Graphics are only available to import from Spectrum snapshots. UnQuill, InPaws, UnPaws do not support the parsing of graphics data from CPC464 or C64 snapshots.
· For Z80 snapshots, only 48K Z80 snapshots are currently supported.
· Snapshots (and most other files, for that matter) that are compatible with PawMac but are inside .ZIP archives will be unzipped and processed automatically by PawMac.
· This is a feature that draws a version of any images found in the Quill or PAW output, and saves them as separate image files . Below is the original version from “The Boggit” and then the PawMac Lines+Fill+Attr+Shade version:
Process the images in accordance with any selected settings. Feel free to experiment with different values and assess the results. The PawMac lines only version is the best version to then edit within an image editor such as Paint or Photoshop. PawMac automatically crops the images based on the height of the tallest image. If most images only take up half of the spectrum screen, for example, there's no point saving the blank bottom half of the screen for each image.
Current options in the image dropdown are (in various combinations)
· None – don’t save any of the images. (If this is selected, the export graphics button will be disabled.)
· Lines – only save any drawn lines and plotted points. By default, the line colour will be black, but you can use the easel icon to change the ink colour.
· Fill – add in any fill commands from the original.
· Attr – attempts to mimic the Spectrum ink and paper colour setup using a version of the Spectrum screen setup.
· Shade – mimics The Ilustrator’s / PAW's shade command and applies a hatched fill to a specific area.
When exported, the images are initially upscaled by a factor of 2 (e.g Spectrum source was 256*176‡, output is 512*352.) This scaling can be changed by amending the Image Scale value.
Choose between jpg, png, bmp, and gif. Png is the default.
In The Quill and PAW each image can be classed as a location or a subroutine. Generally, an image can be made up of multiple subroutines, and/or the same subroutines can be used in multiple images. As subroutines in The Quill are generally used as building blocks of the final image, PawMac gives you the option of not exporting subroutines. PAW is more flexible and images can be called by CONDACTS and stored as subroutines or locations. PawMac checks this checkbox by default for PAW files, and unchecks it for The Quill files. You can override this behaviour if desired. Certain subroutines (those with FILL and/or SHADE and no other commands) will not be exported even if this box is selected.
Consider this section of location image from the wonderful Dr Jekyll and Mr Hyde: The chair back does not continue until it meets the desk, leaving a gap. Whilst PAWs FILL command deals with this without issue: The fill command in PawMac fills through this 1 pixel gap, filling the rest of the room with black ink.Checking the Fix Fill box prevents the fill command from filling areas with a 1 pixel gap. This is not a like-for-like emulation of the PAW fill routine, so while this may stop incidents of "fill escape," it may cause unexpected results elsewhere.Fix Fill is selected automatically for PAW games. It may be worth experimenting with this option both on and off, and using a mixture of exported images from the results.
The shade command in The Quill behaves oddly when it is attempting to shade near the edge of the screen. This can lead to situations where the PawMac shade routines shadesan area "correctly", but nonetheless shades it differently to the Quill routine. Check this if some images aren't shaded as the original image is. It may be worth experimenting with this option both on and off, and using a mixture of exported images from the results.
Click this to start the export process. The button will be disabled if none is selected in the image type dropdown, or if the process has finished and the download graphics button is displayed.
Click this to download the completed image files. This button is only displayed once the images have been successfully processed.
Once you’ve created a file that will successfully load into PAW, there will still be work to do before your adventure looks and runs the way you want it to.
The Quill stores vocabulary as 4 letter words, but PAW stores them as 5 letter words. This seemingly trivial issue can cause problems. Let’s take the command OPEN CHEST as an example.
When you type OPEN CHEST in The Quill, it ignores the last character in CHEST, because it only parses the first 4 characters. To The Quill, this is OPEN CHES and both the vocabulary and game logic will be built around the word CHES rather than CHEST.
When imported into PAW, the vocabulary entry and game logic will still be looking for CHES. So, if the user types in OPEN CHEST , PAW will look at the first 5 characters in the noun, and because CHES<>CHEST, nothing will happen. There’s no vocabulary entry or game logic for CHEST so our chest will remain closed. Please be aware of this “gotcha” when converting.
Ideally, any 5 (or more) character word that’s been reduced to a 4 character word in your Quilled adventure needs to be reinstated as a 5 character word in PAW. Or, you should add a 5 letter synonym of the word into the adventure vocabulary with the same word number as the 4 letter version. Failing that, as a last resort, notify the user that only 4 letter responses should be keyed.
To help mitigate the above, as part of the conversion process, PawMac will:
· Scan the vocabulary and will insert 5 character synonyms for commonly-used words in an adventure, such as SCORe, INVEn, etc. The changes will be detailed in the log so you can roll them back in the final PAW game if required.
· Scan the object words and object descriptions from The Quilled adventure and will then automatically create a 5 character synonym of the relevant object word based on any matches it finds in the object description. For example, if the object word is DIAR and the object description is “An old, dusty diary,” PawMac will insert DIARY as a synonym of DIAR into the final output to be loaded into PAW.
· Scan the event table and message text from The Quilled adventure and then automatically create a 5 character synonym of the relevant verb or noun based on any matches it finds in the message text. For example, if the event table entry is SHAP PUTT and the message text is “You shape the putty,” PawMac will insert SHAPE and PUTTY as synonyms of SHAP and PUTT respectively into the final output to be loaded into PAW. It will do the same for any synonyms of those verbs and nouns. 5 character words inserted in the vocabulary using this method will be displayed on-screen with a red border, so you can edit or delete entries where the routine has matched incorrectly.
· Both the scanning of object descriptions and messages text performs better if the Use SmartWrap option is checked in the PawMac options section.
The Quill imposes no restrictions on words in the vocabulary, and uses a basic two-word instruction set, such as GET HAT, WEAR HAT, KILL EVERYONE, and so on. PAW is more sophisticated and demands that a word be identified as a verb, noun, adverb, adjective etc., etc. (There are more, but only verb and noun need concern us here.)
When converting, PawMac uses the following logic:
· The Quill event table specifies an entry as Word1 Word2 so PawMac categorises any word in Word1 as a VERB, and any word in Word2 as a noun.
· If a word starts with a number, e.g. 50p, this seems to sometimes cause errors with InPaws rather than with PAW itself. So PawMac will:
o Create a synonym of the offending word with an A prefix, so 50p becomes A50p
o This will then allow InPaws to process the file correctly
o You can then remove the A-prefix synonym from PAW if desired.
o This only affects words that contain text but start with a number. Words that are wholly numeric, i.e. 808 are unaffected.
When converting Quill Event entries into the PAW response table, PawMac will:
· Amend the entry for any word that starts with a number and ends with text, e.g. GET 50p becomes GET A50p. This is due to an InPaws issue. The A prefix can then be removed from the final PAW database if desired.
· Any words that have a word number of 12 or less in The Quill are considered to be movement words, and typing those words where there is no coded response in the game will trigger the standard "You/I can't go in that direction." system message. PawMac will move any words that it does not consider to be a movement word lower down (i.e. towards word number 254, rather than word number 1) the vocabulary. If a word has synonyms where one or more is a movement word, and one or more is a non-movement word, PawMac will move the non-movement synonym(s) to a new position in the vocabulary. Where an event table entry exists where word1 is the word in question, and word2 is also populated (i.e. not * or _ ), PawMac will update the event table to point to the newly-moved synonym. For example, if word 11 is U with a synonym of CLIM, PawMac will leave U where it is, and move CLIM to a new position in the vocab table outside of a movement word position. If there are any entries in the event table that use U/CLIM as word1, and also has a populated word2, e.g. U ROPE, U TREE, PawMac will move CLIM to be a non-movement word, and will then update the event table to fire when CLIM ROPE and CLIM TREE are typed in.
· PAW generally disallows the use of one word type as another word type, so you can’t, for example, use a verb as a noun. As a laboured example:
o You see a lighter.
>GET LIGH
o The stick of dynamite has a small fuse sticking out of it
>LIGH FUSE
When it encounters this situation, where a word (LIGHt in our example) is functioning as both a verb and a noun, PawMac will:
· Move any existing entries in the vocab table occupying the PAW conversion noun positions 14-19 to elsewhere in the vocab table.
· Convert the first 6 nouns used as verbs into conversion nouns, and update the logic used so entries in the event table will still work.
· Where more than 6 nouns used as verbs appear in an adventure, PawMac will convert the 6 most heavily used of them as above, and then any remaining will be handled as follows:
· Count the entries in the event table that use each word as a noun, and then, as a verb
· Replace the smaller number of entries (verb or noun) with the following placeholders:
ZZZZV for verbs
XXXXN for nouns
· If there is no space left in the vocabulary table to insert ZZZZV and XXXXN, _ will be used in the Event/Response table instead of ZZZZV or XXXXN.
· Be aware that if there are multiple remaining nouns used as verbs, they will all be changed to the same default placeholders, e.g. GET BANDage and GET HOOVer will both be turned into GET XXXXN. You will, of course, get broken and unpredictable results in your game until this is resolved.
· In the above example, PawMac may replace either the GET LIGH entry in the response table with GET XXXXN or will replace LIGH FUSE with ZZZZV FUSE, (whichever requires the lowest number of subsequent changes by the user.)
· As the author, you will then need to decide if you want to, for example, add IGNIT as a synonym for ZZZZV and use IGNITE rather than LIGHT fuse, or you could replace the lighter with a box, or book, of matches.
· Although it is extremely unlikely that there will be insufficent space in the vocabulary for PawMac to insert the placeholders, beware of situations where this happens and a global entry also exists in the event table. For example, if you have a LIGH _ entry to deal with situations where the player tries to set light to other objects. In these situations, if there is no space for the placeholders to be inserted, this will then mean that LIGH _ will be replaced by _ _ . This response table entry will be executed every time the player types anything in. Obviously, this may cause unexpected results. Fixing _ _ entries in the PAW response table should be one of your first ports of call.
Defined very basically as “ do something even though the player hasn’t typed anything ”, entries in The Quill Status table need to be converted to the PAW Process tables. Generally speaking, PAW uses Process table 1 when a location is described, and Process table 2+ at the start of each turn.
Because The Quill status event fires at each turn, PawMac moves every status entry to Process 2 apart from a few core commands that deal with the screen display and conveyable objects which are sent to Process 1. Each entry in the status table has a two-word label. Because the label has no bearing on the outcome, PawMac will assume the following when populating the status labels for PAW:
· If Word1 in the entry is defined in the vocabulary as a noun, replace it with _
· If Word2 in the entry is defined in the vocabulary as a verb, replace it with _
PawMac will try and minimise the number of _ _ entries in the process tables as they are tedious to deal with if editing is necessary within PAW.
· These may be truncated as discussed above. Certain emulators, such as ZXSpin, allow you to copy text from your pc and it can then be pasted in as Spectrum text. So, truncated text can be pasted back into PAW (provided that there is sufficient free memory.) The output log will list the truncations that can then be copied and pasted back into the running emulation.
· Smart Wrap isn’t 100% efficient, so there may be text where two conjoined words still need to be separated by a space.
· Control codes within the text that change the paper, ink, bright, inverse or flash status of text in the location, message, system message, or object text will all be preserved when converting from Quill to PAW. Versions produced on other systems that can be UnQuilled (CPC464 and C64 snapshots) will be converted to the nearest ZX Spectrum colour equivalent.
· Control codes 22 and 23 are accepted by The Quill and PAW but it is unclear whether they are parsed correctly by UnQuill. To work correctly in The Quill and PAW:
o Chr$22 (AT) then expects 2 further bytes to define the screen line (0-21) and then the column (0-31).
o Chr$23 (TAB) then expects 2 further bytes a+(256*b). The result is then reduced modulo 32 to find the column number.
o PawMac will remove AT or TAB control codes if they are not followed by two numeric values, additionally for AT if the values exceed the standard spectrum line height and/or column width.
· There are more system messages in PAW than in The Quill so system messages 32-60 are the standard PAW system messages.
· By design, PAW doesn’t force a newline before displaying an input cursor, so you may need to manually add one into the relevant system message, otherwise the input cursor may be displayed at the end of a line of your location or object text. Depending on how The Quill version was constructed, it may be quicker and easier to just add a newline character to the beginning of the marker - system message 33 – to always force it to a new line.
· It appears as if system message 16, (the “press any key…” message that is displayed at the bottom of the screen) doesn’t render correctly unless it ends in a newline character, so PawMac will add one, (if it is missing from The Quill version.)
· System messages 17 & 21 do not appear to include padding (unlike The Quill version,) so PawMac will add a space, to turn, for example:
o “You have taken30 turns and your score is5%.” into:
o “You have taken 30 turns and your score is 5%.”
· Early versions of The Quill (A series) did not allow you to amend the system messages, and system message numbers 19-31 were out of sync with later versions of The Quill and PAW. Pawmac will automatically detect and replace A series system messages 19-31 with a generic set so that the correct system messages are imported into PAW. Some authors manually hacked their A series system messages so bear this in mind – you may need to reinstate the system messages that they hacked.
· PAW uses a functionality called “compound messages” where if a message or system message does not end in a newline, any ink and paper control codes are carried over to the next displayed message, system message or object, as in the below example from a converted version of The Boggit.
To further confuse matters, newline in the above does not mean the newline control code available in PAW (denoted in InPaws as {7}). For standard messages, using the MES command will mean that the message will not end with a newline, whereas using the full command MESSAGE will add a newline to the end.
Where necessary, PawMac will add a number of control codes to the end of a system message to prevent temporary colours "bleeding" to the next line of text. It will switch bright, inverse, flash to off, and return the ink and paper colour of a system message back to the adventure's default colours.
PAW has room for 19 UDGs (even on the 48K version of PAW) compared with The Quill’s 21, so the final 2 Quill UDG’s will not be imported into PAW.
If you are using UDGs as your input cursors, you may find that PAW displays some other UDG as the cursors instead. This can be easily fixed by amending the relevant PAW system messages (33 & 34)
There is no concept of object weights in The Quill, so each object is assigned a default object weight of 1 when exported to PAW.
PawMac will import any associated object words in with the object, unless:
· the word has been used as a verb in the event or status tables;
· the word starts with a number as this causes an issue with InPaws .
If an object has been defined as wearable in The Quill , that will be included in the object information in the PAW version. There is no concept of container objects in The Quill.
The maximum items carried {value} is inserted into the Process 1 table as * _ ABILITY {value} {value}. The weight value will always be the same as the items carried value.
In PAW, system messages 36 to 45 contain automated responses to the player’s attempts to get / drop / wear / remove objects. These messages don’t exist in The Quill, so you may find that when you GET an object, for example, you’ll see duplicate messages, namely:
· Your original logic and response ported over from The Quill
· The standard “I now have the _” system message 36 in PAW.
Certain Patch or Press Flags are imported and converted by PawMac. These are:
· LET 28 8 or 7 are converted to CHARSET 1 or 2
· LET 28 21 PAUSE 50 is converted to RAMLOAD 254
· LET 28 21 PAUSE n (where n is 0-254 except 50) is converted to RAMSAVE
· LET 28 11 PAUSE n is converted to ABILITY n n (note that setting a new specific maximum objects conveyable has been implemented, but increasing or reducing this number via 28 14 and 28 15 has not been.)
Additionally, if PawMac detects that graphics are present, then:
· LET 28 n (where n is >=1 and <=24) is converted to MODE 2 3 LINE n
· LET 29 n or SET 29 is converted to PLUS 29 128
· LET 28 19 PAUSE 255 is converted to GRAPHIC 1
· LET 28 19 PAUSE n (where n is 0-254) is converted to GRAPHIC 0
The PawMac edit windows operates as a simple IDE to allow you to edit the contents of the vocabulary table that will be exported to PAW. It’s probably better to demonstrate its use through some example scenarios.
Note the contents of the PawMac window after conversion of an adventure has finished:
We can see from the log window that the response table entry for X FIRE has been changed to X XXXXN because FIRE appears in The Quill EVENT table as both a noun and a verb. Ideally, if we can move FIRE to a word number less than 20, PAW will allow it’s use as both a verb and a noun in RESPONSE. However, in our example, there are no spare spaces in the vocab table for words with a word number of less than 20.
If we look at word number 15, OBJ, we can see that it is coloured in RED. In PawMac, this means that OBJ is not used as a verb nor a noun in the EVENT table, so its position in the vocab table is not important. This means we are safe to renumber OBJ to a different number. (Note the colour coding of the background on the word number column. This is a visual cue to the different values PAW assigns to word numbers. I.e. <15 are movement words, <20 are convert nouns, <50 are proper nouns.) Sorting the output
Clicking on The QuillWordNo header will sort the output, so by clicking and scrolling we can see that the largest word number in this adventure is 162. This means that we are safe to renumber OBJ to number 163.
Type obj in the search box. The vocab grid will now be filtered to only show the row with OBJ in.
The next step is not strictly necessary, but is good practice because of the concept of synonyms in the vocabulary used in both The Quill and PAW. Rather than typing obj in the search box, type the word number, 15, into the search box instead.
**Filtering by the word number rather than the word will ensure that the relevant word and any synonyms will always be displayed.**
Now click the edit link and edit the word number to read 163. Click the update link when done.
The row containing OBJ should now disappear, but don’t worry. This is expected behaviour because the IDE is still filtered to show words with an ID of 15, and there aren’t any now.
You can now repeat the process for FIRE. Filter by FIRE and then filter by its word number instead to return the word and its synonyms.
You can now update the word number for the 3 synonyms with 15 instead of 61.
As we’ll see, there is an issue with 4- and 5-character words in The Quill and PAW. The PawMac edit window will allow you to deal with this problem.
Let’s take the word FRUI as an example. We’ll filter by FRUI and then by its word number 142 to see any synonyms for FRUI. PawMac will display any messages from the event table involving the word FRUI in the Event Information column, to help you work out what the full word should be. (Sometimes it’s obvious and sometimes it isn’t.)
You have two choices now. You can either
· Insert a synonym in the boxes at the bottom of the form. Add 142 to the first column and FRUIT to the second:
· Directly edit the existing word, and change FRUI to FRUIT. Press update when finished. If you edit the value directly, you’ll see the following actions from PawMac:
o PawMac will scan and update any associated entries in EVENT and STATUS with the new value. If necessary, it will also update any object words in OBJECTS.
Because you may not have time to complete all of the changes in one session, you can see next to the search box that there is also functionality to save and load the vocab, event, and status tables so that PawMac can pick up where it left off.
Note that the functionality is fairly limited. The save and load commands will always have fixed filenames. Try and avoid working on multiple adventures in the same folder for this reason. The three csv files that are output when you hit save are downloaded to your desktop inside a .zip file. You can upload this zip file back in at any point, and then hit load to upload and process your changes. Once loaded, you'll need to hit Re-Do to process those changes.
Finally, typing *4 in the search box will display all 4 (or longer) letter words in the vocabulary, so they can be edited or (to be: added to) if required.
Whenever you need to pick up from where you left off, just drag and drop the original SNA file, let the conversion process complete, then drag and drop the 3 csv files onto the file upload control. You can then press LOAD to load in your changes, and then REDO as often as needed to create further modified versions of the PAW output. Of course, some users may prefer to download and edit the .paw file output locally instead. When complete, you can upload and process the edited .paw file back into PawMac to create the final tap file, or view the tap file contents inside the PAW editor.
InPaws128 is a modified version of InPaws used by PawMac Online that moves a percentage of the adventure messages to ram page 1 and saves the output in a .tap file that can be read by the 128k version of PAW. This will allow you to convert your Quilled database to a PAW database without any truncation of messages or locations, (assuming that you are running the 128k or +3 version of PAW on a 128k machine or emulator.)
InPaws128 can be accessed through PawMac Online by clicking the InPaws button that's displayed after any initial conversion.It can also be used offline by downloading and compiling the source from Github.
Use the InPaws128 z value option followed by a number from 0 to 100 to specify the percentage of messages to move to ram page 1. It is preset at 35, which will create a tap file where 35% of the messages are moved to ram page 1
o The output filename in the tap file (the filename that you type into the PAW Load Database option to load the data back in) has been amended to use the source filename rather than the start of the file path as the saved filename in the Spectrum. For example:
§ Source file: c:\users\quill\my adventures\myadventure.paw
§ InPaws output: c:\users\
§ InPaws128 output: myadventu
§ When used automatically by PawMac Online, the InPaws128 output .tap files are all saved with the generic filename INPAWSOUT. This is the filename that should be entered in the PAW Load Database option:
· It is suggested that you should aim to keep as many messages as you can in page 0 (whilst keeping enough free work space to edit your adventure) rather than moving them all to page 1 as unexpected results may occur. This is code for “I haven’t tested what will happen if you do that.”
· During testing, a -z value of 30-35% seemed to be the sweet spot when converting, in terms of being the lowest value to successfully convert, but still keep the majority of messages in the standard 48K memory page, but feel free to experiment. This figure will need to be increased (try 50%) if you’re importing graphics too.
· A current limitation of InPaws128 is that any graphic for the final location will not be converted. The workaround is to insert a new empty location after the existing final one. PawMac will detect and fix this issue automatically.
Despite no real experience of DAAD, I have been able to create conversions of adventures produced using The Quill that compile and run in DAAD using PawMac, InPaws128, DAAD Ready, and little to no manual intervention. Whether the adventure games created work completely as intended is another matter, however. As with conversions from The Quill to PAW, conversions to DAAD will require the user to perform their own checks and testing, making changes as and where necessary.
NB: Whilst there’s nothing stopping you from using InPaws128 to convert an existing PAW adventure snapshot to DSF format, InPaws128 has only been coded to deal with some PAW-specific situations, so results may be patchy, and cannot be guaranteed. Also note:
Flags 60-63 inclusive are free for your own use in PAW, but are reserved as system flags in DAAD. PawMac will renumber these flags using the first available unused flags 64 and above, and any CONDACTS referencing those flags will be automatically updated.
PawMac and InPaws128 will remap event, status, process, response etc. entries in the following way:
The mapping of Processes from Paw to DAAD in the above table is mainly for convenience. In reality, DAAD calls Process 0 at every turn (or after a timeout) and it is then up to the adventure writer to ensure that any other pertinent processes are also called. PawMac and InPaws will do a lot of that legwork for you, but just be aware that there's no concept in DAAD of a specific process being called automatically other than Process 0.
For any conversion to DAAD's DSF format, that can then be used in DAAD Ready, the following should be noted:
To export in DAAD DSF format, open the PawMac settings section and change the value in the InPaws Output setting box to DAAD.
The generic code used in the DSF file that PawMac creates for DAAD Ready starts the game with this logic :
o display location 0
So any DAAD conversion will start at location 0. It is assumed that your converted game will include logic that handles a game launching from location 0. You may need to manually amend this if your game starts differently.
Be aware that you can run out of memory when converting an adventure to DAAD. It is unknown if/how DAAD uses the additional ram pages available in the Spectrum 128/+2/+3. During testing of DAAD Ready, it appears as if finished adventures converted using the ZXPLUS3 version uses slightly more space than those produced using the ZXTAPE version: some converted text-only adventures ran successfully in the ZXTAPE version, but bombed out in the ZXPLUS3 version.
As with PAW, DAAD uses a 5 letter vocabulary, so the issues that occur when converting 5 letter words or longer from The Quill to PAW discussed above, also apply to DAAD.
Conjunctions in PAW (e.g. and, then) are called conjugations in DAAD and InPaws128 will change the word type name accordingly.
If you're getting unexpected results when typing in commands when playing your finished adventure, confirm that verbs and nouns are correctly defined as such in your vocabulary.
Certain core Quill commands such as DESC, SCORE, TURNS, INVEN do not exist in DAAD, so InPaws128 converts these commands to a format that will work in DAAD. Currently, any Condacts that exist in PAW, but not in Quill nor in DAAD are not supported and will not be converted.
The final DSF output file created by InPaws128 contains 6 Process tables, including the event and status tables from the original Quill adventure. Any additional Process tables created in a PAW adventure will also be converted.
Flags 11-29 in The Quill are available for the user to use in their adventures, (although 28 and 29 were subsequently used by The Illustrator and The Press/The Patch.) DAAD also leaves these (11-29) free for the user, so any Condacts using the flags should convert without issues. This is not the case in PAW. Flags free for use in PAW may be system flags used by DAAD and should be avoided, (specifically, flags 60-63) as they will be converted by InPaws128 without comment or modification. (PawMac includes a summary of any flags used, post conversion, in the output log to allow you to debug.)
Flags 5-8, 9 and 10 are automatically decreased after each turn in The Quill and PAW. To replicate this functionality in DAAD, InPaws128 will automatically uncomment the relevant section in Process table 1.
For best results, the remove control codes and smart wrap checkboxes should be checked if converting a game for onward loading into DAAD. Additionally, if the remove control codes option is checked, and the InPaws conversion output setting is set to DAAD, (i.e. to produce a DSF output file) any square brackets will be removed from the text as these seemed to cause issues in the DAAD Ready conversion process. Even if the remove control codes option is not checked, any control codes over 128 will be removed as they will otherwise cause the DAAD compiler process to fail.
You have two choices with location graphics in DAAD. You can import the existing Quill graphics into DAAD directly, or save them as image files to be reimported later. Both have their pros and cons:
· Import Quill / PAW Graphics:
o + Only a little bit of faffing about is needed
o + Available in both the +3 and tape Spectrum versions of DAAD (the latter after a fashion)
o + The same process can be used for snapshots of games produced using PAW.
o - imported images have to compete with space with the actual adventure
· Reimport Image files:
o - Uses PawMac's interpretation of the original image, rather than the original image
o - Quite a bit of faffing about in ZX Paintbrush required
o - Available in +3 Spectrum DAAD only
o + Images can be tidied / changed / rebuilt in Photoshop etc. before being made Spectrum-friendly in ZX Paintbrush
o + Does not compete for memory with the existing adventure
When the InPaws Output setting is set to DAAD in PawMac, the standard routine for importing Quill Graphics converts them into a separate SDG file that can be loaded into DAAD. The finished SDG file contains:
· The imported graphics
· The standard 42 column DAAD font
· Any UDGs from the original
· The first 16 4*2 shade patterns converted into PAW-style 8*8 shades
To convert a Quilled adventure to a Spectrum version DAAD adventure with graphics, you should proceed as follows (the following example assumes you’re using DAAD Ready 0.5 which is installed on your local device. Later versions of the DAAD Ready Spectrum BAT files have not been tested):
a. Ensure that the InPaws Output setting is set to DAAD in PawMac.
b. Drag and drop the SNA file in the usual way, and click on Upload, process.
c. When processing is complete, press the InPaws button.
d. PawMac will now create a .DSF file. Press the download button to download it to your device.
e. Copy / Move this .DSF file into the main DAAD Ready folder on your device, rename it as TEST.DSF and run the appropriate Plus 3 or Tape BAT file.
f. Make a note of the database ends at address value given when DAAD Ready has finished.
g. Drag and drop the SNA file into PawMac once more.
h. This time, before hitting upload, process, key in the value given in the DAAD Ready output into the DAAD Database starts at address box:
i. Click Upload, process. This time, PawMac will create an .SDG file. Download it to your device.
j. Copy or move the newly downloaded .SDG file to the main Daad Ready folder, and rename it as DAAD.SDG
k. Move or copy the ZXPLUS3 (PAWMAC).BAT and ZXTAPE (PAWMAC).BAT from the PawMac DAAD Ready zip file into your main DAAD Ready folder. (You’ll only have to do this once.)
l. Double-click the required ZXPLUS3 (PAWMAC).BAT or ZXTAPE (PAWMAC).BAT file.
m. Note that if running the ZXPLUS3 (PAWMAC).BAT file, it will ask you for a Memstart for Specform value:
n. In PawMac, scroll back through the output window to find this value, and enter it into the BAT file window:
o. With any luck, you’ll now be able to see a running version of your adventure in DAAD, complete with imported graphics. Take note that:
· The ZXTAPE version of DAAD doesn’t handle split screen graphics very well. It can be a bit of a mess.
· You may end up with a situation when your adventure file finishes BEYOND the start of your SDG file, so you’ll need to truncate your adventure locations and/or messages, as was discussed earlier in the guide.
p. PawMac stores the most recent memstart value in you browser's local storage (where supported by your browser) so if your PawMac session expires whilst you're faffing around with DAAD Ready, you'll still be able to see the memstart value.
q. Below is an example of Part 1 of, you guessed it, The Boggit, running in DAAD, with graphics transferred using the above method. Note that the DAAD fill routine suffers from the same issues as it's PAW counterpart.
The Spectrum +3 version of DAAD supports location graphics saved in the SCR format. PawMac allows you to export location graphics as .png files which can then be converted to SCR format using third party software. Be aware that the .png files that are created may break the 2 colours in the same attribute block rule and this may then cause a conversion to SCR to fail. To avoid this, you can set the export parameters for graphics to “lines+fill+shade” to remove any colours and ensure the greatest chance of conversion success. Alternatively, load the .png into ZX Paintbrush, which will create an attribute-compliant SCR output. Currently, any exported images are doubled in size when exported. You may achieve better results by stopping this from occurring by changing the imagescale value in the PawMac options from 2 to 1.
Finally, the exported images may not be the full ZX Spectrum screen size (256 x 192 pixels) and may need to be resized (canvas size, rather than image size) before they can be successfully converted. DAAD Ready currently truncates an image taller than 96 pixels. (PawMac automatically crops all exported images at a height of 96 pixels if the InPaws Output dropdown is set to DAAD.) As an example, below is a screen grab from Part 1 of The Boggit ported to the Spectrum+3 using PawMac and DAAD Ready. The location graphics were exported by:
· Change the Export Images drop down to Lines+Fill+Attr+Shade
· Change the InPaws Output setting to DAAD.
· Change the Image Export Format to jpg and Image Export Scale to 1
· Open ZX Paintbrush, and import the saved jpg files into ZX Paintbrush and accept the modifications. Finally, save as an .SCR file, ready for onward saving into DAAD. (In the example below, changing the image height to 96 pixels ensured that the bottom of the imported image was black in DAAD. Note also the corruption of the image on the right hand sword. This was a result of processing in ZX Paintbrush, not PawMac.)
DAAD Ready 0.8 introduced jDAAD, a browser-based javascript implementation of DAAD, similar to Adventuron. The TEST.DSF file produced by PawMac and InPaws128 will still run in jDAAD. If you want to import graphics into your jDAAD adventure, use the standard PawMac export graphics functionality. Set the Image Export Format to png and Image Export Scale to 1. You'll then need to rename each png file to be the location number in a 3 digit format. I.e. the image for location 2 should be renamed as 002.png, and so on.
Currently, user-defined fonts from the source adventure are not converted or exported to DAAD. DAAD uses a custom 42 column text style which requires a bespoke 6 pixel-wide character set. UDGs and shade patterns are exported to DAAD if the Import from Quill functionality is selected, but it appears as if any character above 127 ascii can't be used in location, message or system message text.
The following were of great help when researching DAAD conversion:
http://8bitag.com/info/
https://medium.com/@uto_dev/a-daad-tutorial-for-beginners-1-b2568ec4df05
https://github.com/daad-adventure-writer/DRC/wiki
DAAD Ready can be downloaded from here. The download includes documentation.
As the name suggests, TheScanner allows you to import image files into PawMac, and TheScanner will scan and convert them into graphical information that will then render in PAW as standard graphics. They can be edited, re-used, filled, etc. in the same way as other graphical elements.
Requirements:
Image size and type: Your image file should be a bmp, jpg, gif, or png file, and should be no more than 256 pixel width by 192 pixel height. PawMac will reject images that exceed this height and/or width. (Note that the maximum height for a PAW graphic is 176 pixels, so any image with a height of >=176 and <=192 will be accepted by PawMac, but will have it's bottom pixels truncated.)PawMac will automatically convert your image to a monochrome bitmap. It will draw any black lines as a location graphic, and ignore any white space.File name: TheScanner will use information in the file name to process the image, so it is very important that this is correct.
The filename must include one of the following:
locx or subx (where x is a location number in the adventure. The location must exist in the adventure, and cannot be the last location. For example loc1, sub2, and so on.) Loc will automatically place your image at the top of the screen, sub will automatically place your image at the bottom of the screen. If there is an existing graphic at this location, TheScanner will overwrite it.
You can then add these optional flags to the file name:
xcen or xcentre: The image will be centred along the x-axis.
inverse: The image will be reversed. drawn pixels will become undrawn, and vice versa.
nwab: Any colour that is not white will be converted to black. Any non-white pixels will be drawn, any white pixels will not.
Considerations:
Authors have always had to take into account that adding graphics eats into the available memory for your adventure, and this is especially true of images created using TheScanner. TheScanner images take up more memory than standard PAW images due to the way they are constructed. We would therefore suggest:
When choosing a source image, avoid thick lines and lots of filled space.
Use the source image as a wireframe, and do your filling, colourisation etc. afterwards in PAW.
Whilst PawMac will convert your image to a monochrome bitmap, it is a good idea to do this beforehand so you can see what your final image will look like to TheScanner. There's no guarantee what colours or shades will be converted to black or white on a monochrome bitmap, so your final result may not be as envisaged.
You can use source images as assets (subroutines) and re-use them multiple times in other pictures, however...
At the moment, although they are built solely using REL MOVE and LINE, scanned images do not scale in a predictable manner if used in a GOSUB statement. They should only be used at full size to avoid corruption. The underlying cause for this remains under investigation.
You don't need expensive drawing software - you can resize images and save them as monochrome bitmaps in Microsoft Paint.
Example images (right click them, and save as if you want...)
🙂 Monochrome image, smaller than 256*176, lines are thin.
🙁 Monochrome image, smaller than 256*176, lines are too thick, may take up lots of memory.
🙁 Monochrome image, smaller than 256*176, too much filled space, may take up lots of memory.
Experimental support to convert Quilled games to Adventuron exists in PawMac Online. All Quill CondActs can be converted. The majority of PAW CondActs have also been converted, but not all. PawMac will detail those CondActs which have not been converted in the PawMac output window.
It is absolutely recommended, especially for PAW conversions, that the game is thoroughly tested in Adventuron after initial conversion. Additionally, any graphics found can be converted into a Base64 format to allow them to be appended into Adventuron. On the separate graphics processing page, simply select the output type as asset.There are a number of Adventuron-specific options within the PawMac options:
1. Adventuron uses the \n escape code to generate a newline in the text, but this also creates a blank line in the text. For example “Hello\nWorld” becomes:
Hello World
Checking this box will remove the blank line and output instead as:
2. This removes all newlines in the text, and replaces them with spaces. This can create cleaner looking text, but bear in mind that new paragraphs, lists etc. won’t be rendered correctly.
PawMac creates maps of Quill, GAC, or PAW adventures. It uses the file created by UnQuill, UnPaws, UnGAC or InPaws to create maps that can be opened and edited in the Trizbort application.
Did you plan and map your adventure before you started, or did you just wing it? Did you add additional locations at the end that link to locations at the beginning? Here’s a map of the start of Part 1 of Arnold the Adventurer . It’s beautifully laid out, so PawMac does a decent job of mapping it.
It does less well with this map of the start of Deek’s Deeds:
You can always edit the map, and move locations about in Trizbort, but be aware that the more locations there are, the more this can quickly become a herculean task.
· As the map is rendered in 2D, it’s difficult to differentiate between North/South and Up/Down. So, Up/Down directions (or anything that isn’t a compass point direction) are rendered on the map in text next to the connector, as in L4 to L7, and L12 to L13 above.
· If travel is only possible in one direction, this is indicated by arrows on the connector, as in L12 to L65 above.
· Mouse over a location to display the entire location description (although this function seems to be dependent on the version of Trizbort used.) A truncated version of the location description is always shown in the location itself.
· Entries that appear in the Quill, PAW, and GAC connections table (or equivalent) are mapped. Entries in the Quill Event, PAW Response, and GAC local priority tables are also mapped, subject to the following:
The command typed in should be a standard movement command, e.g. N, S, E, W, NE, SW, UP, DOWN, IN, etc. None-movement commands which transport you to a new location such as CAST SPELL, DRIVE CAR are not mapped. I've taken the view that movement commands that also involve a noun or object (e.g. climb stairs, descend steps) fit into this latter category and will not be mapped.
When PawMac scans the EVENT / RESPONSE / LOCAL PRIORITY logic used, it classifies the entries as either "unconditional" or "conditional":
"Unconditional" - the logic is a simple "AT xx GOTO yy" - these are mapped and displayed in the usual way.
"Conditional" - some additional logic needs to be satisfied before the player can move to the location. Connections between these locations are shown with a red dotted line.
In PAW, some authors would code their RESPONSE entries in a separate PROCESS table and would then call these process tables in the RESPONSE logic. Response entries stored in process tables like this are not currently mapped.
· Adventures extracted using UnQuill, InPaws, UnGAC or UnPaws are supported.
· To reduce confusion and complexity, if the same locations are mapped together in more than one way, (for example, both E<>W and U<>D,) then PawMac will retain the standard compass directions version, and not show the non-standard connection. This also helps to ensure that rooms are displayed on the map in the correct positions, relative to each other.
· PawMac also parses and maps The Colour Of Magic which uses H, R, W, T as directions instead of N, S, E, W.
· Both The Quill and PAW allow multiple entries to different locations using the same direction. In the following example two DOWN exits exist for the same location: CONNECTIONS { DESCE TO 38 E TO 46 W TO 45 DESCE TO 43 }; In such instances, PawMac will map the first direction it parses (DESCE TO 38) and ignore further exits (DESCE TO 43).
1. Ensure that the function selector is set to Map.
2. Objects initialised in each room at the start of a game are shown.
3. As the name suggests, this excludes locations that have no description, or have no entries in the connections table and/or event/response/local priority tables.
4. When a mapping file is created, the final stage is to compact the map, so that rooms are not spread over a large area. If the map is very complex, with lots of connections, compacting can make the map harder to read. If that is the case, you can uncheck this box which will stop the final compaction process, and may make the map a little easier to follow, although it will take up more room on the output map.
5. A bit niche, this one. Adventuron has a legacy editor which allows you to import a Trizbort map and then creates locations and connections in Adventuron based on that map. Checking this option tweaks the Trizbort output to ensure that it is compatible with this import routine. We have not tested whether the output the legacy editor produces is compatible with the current version of Adventuron. Update: yes we have, no it isn't.
6. The distance between each location on the final map. 150 is the default and is recommended, but feel free to play around with this value and see the results.
7. This processes the file you've selected to upload, using any options you've selected above.