Jump to content


[File] JSW Builder Editions

jsw builder trimmed

  • Please log in to reply
3 replies to this topic

#1 Spider


    DEC (HL)

  • Administrator
  • 3,998 posts

Posted 17 July 2017 - 05:26 PM

Posted Image


File Name: JSW Builder Editions

File Submitter: Spider

File Submitted: 17 Jul 2017

File Category: Tools and Patches

System: Sinclair
Original Author(s): Matthew Smith
Third Party Author(s): Andy Ford


These are a selection of various 'trimmed' game files to remove unused and otherwise potentially unwanted routines and data, resulting in more free space for other potential uses.


There are six levels of 'build' with incrementing removal:

  • Level 0: "Trim Base". This only the bare minimum and is a new level
  • Level 1: "Trimmed". See list below
  • Level 2: "Sprites" All of Level 1 plus consolidated sprites, please refer to the screenshot and the support topic for further information
  • Level 3: "Rooms" All of Levels 1 and two plus consolidated room data. Again please refer to the topic
  • Level 4: "Timers" All of Levels 1,2 and 3 plus removal of the clock and pause routines. Refer to the details further down this description
  • Level 5: "Teleport" All of Levels 1,2,3 and 4 plus removal of the 'Writetyper' routines, again refer to the description


Level 0 has no keypad routines (as per level 1) and the Attic Bug fix, pause mode bug fix and 'empty' rooms set as per Level 1. No other changes. It is in effect "Level 1 without routine removal"


Level 1 has no keypad entry routines, keypad text strings, keypad codes, keypad graphics and attributes. The startup routine was shortened too. Room 47 was set to be empty (black border, no title and all exits set to room 0). Rooms 61,62 and 63 were also treated in this manner too, to make them more friendly to edit via JSWED.


The list of routines is as follows:


33089-33279 Unused rope entity data
33622-33633 Unused rope animation table (1)
33750-33791 Unused rope animation table (2)
33802-33823 Startup code (space free with shortened startup code)
34187-34250 Keypad messages string
34463-34761 Keypad display and reading routines
35345-35365 Screen flash routine from Manic Miner
37819-37840 Vertical guardian attribute routine from Manic Miner
38644-38679 Redundant development code
38680-38911 Empty data
39680-39935 Keypad key graphics and background attributes
39936-39999 Remnants of source code
40448-40626 Keypad entry codes
40627-40959 Unused code purpose unknown. Likely guess is part of a screen buffer routine
42624-43775 Unused data


Levels 2 and 3 please refer to the screenshots and the support topic for details on these.


Level 4 'Timers' has the following removed too:


34181-34186 Clock text string
35377-35388 and 35410-35498 Clock routines
35522-35531 and 35534-35562 Pause routines
35563-35589 Pause colour cycling


Level 5 'Teleport' in addition to the items above also has the following removed:


34277-34298 Writetyper string
35696-35837 Writetyper key routine


Seven tape files are included. These are the five 'levels' as well as an 'easy to edit' Basic loader that mimics the original JSW one. The 'level' tape files do not include the 'easy to edit' loader, they have a very basic loader as they are designed to be further edited rather than be 'complete'


The seventh file is a small additional "bonus" a 'trimmed' game with 25 room and 50 objects is also present with an accompanying map too. It is saved as only the data required, so in order to edit it if needed you'll need to load it and then save it as 32768,32768. The reason for the shorter code was merely to only load what was required. It is possible to save from a higher address if you are willing to insert a 255 / #FF at a certain point however the small saving from this is negated by the few bytes needed to insert it and also ensure the space around it is empty.


Note that there are no bug fixes applied to these builds either as it is anticipated the builder will be applying their own patches as required. The only exceptions to this is the 'Attic Bug' fix (55901,82) and the pause bug fix (35615,62 + 35620,219 + 35621,254 + 35518,0) , these were applied as they are potentially fatal if left intact, the 'Attic Bug' especially as it can cause corruption that if editing the game via a snapshot may not be immediately noticed.


The first three 'pause bug' fix pokes are courtesy of Richard Dymond who's excellent JSW disassembly proved invaluable to assisting in building these files. The last poke was something I added to disable the inactivity timer incrementation itself, the 'effect' of this is simply to prevent an automatic pause. No pause (unless user selected) = no pause bug.


Regarding the available space in general it should be noted that although usable some parts of it will likely require you to insert a JP to 'jump over' it, an example being the gap in the main loop or in other routines moving a RET from the end of the 'gap' up to the last real instruction. It should be relatively straightforward to find and do this. the reason it was not done in the builds was to keep the code unaltered as far as sensibly practical.




Click here to download this file

Changing order to chaos since 1984

#2 Spider


    DEC (HL)

  • Administrator
  • 3,998 posts

Posted 17 July 2017 - 05:30 PM

To expand a little on this, the sprite and room consolidation can be easily seen in the following screenshots as they show a before and after:


sprites_list.png rooms_list.png


The 'friendly to edit' Basic loader as it is split neatly into easy to edit lines as well as not having any embedded colour control codes:




The startup code includes setting the border black then jumping to the title page:




Finally, the bonus "25 and 50" game map. It should be noted this was not play tested to any degree it was merely put together with shorter (still) sprite and room data simply for the purpose of demonstration:



Changing order to chaos since 1984

#3 Spider


    DEC (HL)

  • Administrator
  • 3,998 posts

Posted 18 July 2017 - 11:47 PM

The 'bonus' was updated slightly as there was a minor bug in it, the total item count did not actually tally properly. This was not related to the 'level 5' used to build it, it was something that I'd accidentally done to it via direct editing. It has been rectified now although as mentioned above said 'bonus' is only provided as a bit of fun rather than a serious game file.

Changing order to chaos since 1984

#4 Spider


    DEC (HL)

  • Administrator
  • 3,998 posts

Posted 26 July 2017 - 06:09 PM

The new Level0 added was intended to demonstrate the 'keypad trimmer' routine, available here:

JSW Keypad Trimmer
Last Updated Jul 26 2017 05:02 PM


In basic summary, Level0 simply has the 'trimmer' applied and the essential pause and Attic bug fixes present. Nothing else is changed, all other bugs (Banyan Tree etc) remain.

Changing order to chaos since 1984

Also tagged with one or more of these keywords: jsw, builder, trimmed

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users