I did wonder a while back if there was a better way of doing this, not the actual code more the way the 'data' for it is present. I vaguely recall trying a fully compressed full screen to expand and LDIR into screen memory although from what I remember there were no byte savings from this, given it had to live 'somewhere' anyway in its original format.
Tested V2 of the tape version on a 464 and that worked too. The only issue I have noted is some of the rooms, particularly if you look at the Cartography Room cheat page, try the two I have changed/highlighted in red in this pic for ease of location:
Results in this 'room' being shown, its playable too although any exit results in a life loss or as happened once (in the slightly 'not right' release tape) a machine reset. The real tape/disk images result in a life loss however. The combi pic explains:
I tried what I suspect was the 'original' versions of JSW2 via emulated Amstrad. I suspected it was reasonably intact as the game froze on V1 completely when trying to run on a 6128 so I was forced to use 464 mode, both V1 and V2 were loaded via emulated tape, complete with working keypad/code entry page. I did not bother with disk versions.
I was unable to invoke the cheat despite several efforts on both the title screen, during play and then actually while being in the Cartography Room itself (not necessary I know) , I also tried with the COPY key held down and with and without shift too, just incase.
I do think it may well be present in V1 at least still, however its activation I think there is a little bit more to it. I can recall reading something quite a while back about it I'll have to look into it a bit more.
One thing is that on the Amstrad, the Cartography room, as well as being a fun little screen in the game, was actually used by Derrick and I as a debug mode. We have a cheat code, that went: “EMMRAIDNAPRRRTT” (which is actually the initials to the words in a nursery rhyme), followed by either the ESC key or perhaps another key or two.
Its not Escape that quits to the title screen! , will retest with various other keys although the fact he says "another key or two" is going to make it more difficult. Praise for snapshots for quick reloading!
As an aside there is talk of memory constraints, although it would potentially only save a 'few bytes' both the AMS and ZX versions with keypad intact have a blank page with a 'Press enter to continue' line, rather than like say other games with keypad protection (ZX at least) that immediately take you to the entry page. All I'm saying here is a few precious bytes *could* of been saved by not having this slightly un-needed page/pause before code entry ?
The only sensible next test I can think of is to try it on my real CPC464 although I'd need to sort out the tape image (tzx/cdt to mp3/wav or something) and use that rather than use my original but re-release tape, mind you that would be quicker. This way I can rule out key mapping concerns, as its not ESC it may be CLR but that does not work either.
What I have, I'm excluding 'trained' or otherwise modified (or what I *know* to be modified) versions for the Amstrad:
JSW1 disk - Does not appear to be protected (no keypad) although I think this was actually normal for JSW1 Amstrad. No immediate sign of the Cartography Room
JSW1 tape - Only existed as part of the T.S.A.M compilation. Speedlock Protected rather than a standard AMS loader. No keypad again. I did actually rebuild this with some cheats and retained the loader but that's another story.
JSW2 tapes - V1 and V2. V1 being the original SoftwareProjects release and V2 being the Budget Re-Release. The latter does not ask for a keypad code, the former does. The latter also asks if one is using a 464 or not to no doubt correct the 'issue' otherwise seen. Both use a standard AMS type loader. These are both in the link I posted in my reply in post two.
JSW disk - There is afaik only one 'unaltered' image. This asks if you're using a 464 and has no keypad option.
To compound matters a little bit more I have a Mastertronic/M.A.D tape here, this is a 'dual format' one in that it has Spectrum one side and Amstrad the other, both are Final Frontier aka JSW2, but I know the ZX version on this is the 'three file' version. I'd have to find time at this upcoming weekend to try the tape out on real hardware to see which actual erm 'version' the Amstrad side of the tape is.
EDIT... The pic below shows what I belive to be original release tapes/disks, anything with any sign of tampering or otherwise (its not difficult to spot in most cases given they way they tend to 'sign' them) was excluded:
The Spectrum version (I'm not really familiar enough with the Amstrad hardware to be able to make many sensible comments unfortunately, although I do have a real CPC464 here now)
ZX: The original loader is an 'all in one' as you are aware, that being it starts at the screen memory and runs almost all the way to the end. There is a small JP instruction in the code in the Basic itself once its called the loader however this value is never used as the 'call the rom loader' code is overwritten with zero's during the initial loading. Without looking in detail it would be a reasonable guess once the loader has finished and executed a RET it will return to a value. I do note an EX 'AF in the actual 'loader code' and the call to the loader is not at the usual address and its a JP as well. I need to put a breakpoint into the ROM loader to stop it when its finished actually loading all the code in to see where it is really trying to go to.
Sidenote: Actually Turmoil (Bug Byte) also did this slight 'trick' too. Anyway back on topic:
The 're-release' versions are slightly different, I think J.E mentioned to me they were really loading a 'snapshot' as such rather than the whole original code perhaps. Certainly the loader itself is in three code sections although the header load addresses are incorrect as the Basic loads them elsewhere. The last section of 2048 bytes is loaded into the screen memory, which is then USR'ed into.
I'm not sure on the '60 room' version for the Amstrad having the Cartography Room although it would make quite logical sense to do this actually, even if it was only ever visible via the cheat code in this case.
I should mention regarding tape Amstrad versions, as far as I can tell there were tape and disk versions of JSW2/Final Frontier however there was never a 'stand alone' release of JSW1 on tape for the Amstrad, the version I have here I carefully extracted from the compilation you mention. This is SpeedLock protected which is a subject in itself actually. It is very likely indeed this SPL version would not have the cheat code given the way they are 'built and saved' at least going from memory on how early Spectrum Speedlocks were created.
It may be easier to look at JSW1 Amstrad tape or disk file via a hexeditor or similar as the room names are visible usually and see if there are any erm 'signs' of the cheat room, certainly searching for part of a text string would be initially quicker.
My thought here is if any research is done on JSW1 Amstrad it would be best to do this on the disk release not the tape re-release given the loader type. I do not know exactly how this was done on the Amstrad however given the actual loader code is near identical complete with clicking leader tones, I would suspect it is built in a similar way. Early SPL on the ZX were usually where space permitted 'built' from Basic in that the game code would be loaded into a lower address than intended, the appropriate saver code changed so it "knew" what was meant to be where then it was loaded (via microdrive) and the 'loader and code' would be saved out, unfortunately it never intentionally saved itself. You may note on most SPL1 and some SPL2 loaders once its actually done any decryption and finished loading one of the first instructions is an LDIR to actually put the 'game code' where it should be.
Last quick comment, if you would like me to post up some comments / images of the ZX versions for comparison with the loader types I can do this later, although a hexed or similar text search with an original JSW1 Amstrad release would be a quick initial check.
As time permits later during the week itself, I will go through my 'collection' to see what I actually have although it is likely only the disk based AMS JSW1 would of likely retained the Cartography room.
I was vaguely aware of this erm 'feature' in that version, but not the actual specifics of it other than a comment 'back then' I think that third party authors had gone to the trouble of writing teleporter type code when something already existed***
I was aware of the fact it started as 'Final Frontier' rather than 'JSW' and then was ported across to the Spectrum. Indeed there is no such thing (afaik) as an Amstrad *tape* version of JSW, rather than 'Final Frontier' , I managed to build one actually in the downloads here but that's another story in itself.
Regarding the model difference, this also explains why some variants ask if you're using a 464 or not. I am aware earlier (first release) of Manic Miner had a bug / concern in it too if it was loaded on a 6128 (not tried on the 664) although it loaded up fine M.W would constantly jump. Later releases did not have this, as far as I can tell all Amsoft releases of MM are 'all version' and its about a 50/50 on the SoftwareProjects release being OK or not. The manual fix is not complicated though just two pokes if I recall correctly. I may have them somewhere.
*** This is slightly related to TechTed MegaMix as that has a well hidden built in Teleporter too although again afaik no 'poke authors' back then noted it and wrote their own. The built in one in this is quite crude but it did work with care, it was certainly adequate for its purpose during game development I expect.
EDIT... I have the original tapes: JSW-FF and later re-released JSW-FF versions here , V1 requires keypad code entry whereas V2 does not, this actually mirrors in a way the re-release of JSW2 (aka FF) on the Spectrum as the re-release versions did not ask for a keycode either. There are a few more details in the link I provided, along with the rather large code sheet too.