Strangely enough, the Erbe release of Sly Spy does not have 128k music when you load it on 128k models. I tried in my +2A and in the emulator, and the game is soundless!
Yep, looks like it's a copy of the 48k version and not the dedicated 128k version hence no sound.
Apparently, the DRO Soft release of Alien Syndrome does not load in 128k mode, it has to be loaded in 48k.
Strange cases this one and the Sly Spy for Spanish releases...
Looks like the original tzx also doesn't load in 128 mode. There appears to be 2 problems. Firstly, one of the levels is loaded into ram bank 2. Unfortunately, as bank 2 resides at $8000-$bfff and the loading code is also in this area, the loading code gets overwritten causing a crash. Secondly, a problem with interrupts when decoding a level. Snaphots have been made of both original and dro soft versions after loading in 128k mode and are available here (inc. patch).
Ivan has unearthed another bug though. If you look at the rzx recording there's a problem with the scroll routine after you reach the exit point insomuch that the scroll routine continues causing the glitch in the video.
Thanks for your help, Bandit, its nicely appreciated ;)
Amazing that Erbe did that mistake with Sly Spy, I will have to keep my british Hit Squad copy to have complete both 48 and 128k versions :)
Same as with Alien Syndrome...how many times I did load the game, and thinking that the cassette was faulty...until recently tried to load it in 48k mode.
http://rghost.ru/45938075
Fist 2
If hero run right to edge of window (from .sna1 to .sna2) and return left then terrible bug will on :(
P.S. In .sna2 hold A!!!
I have seen people refer to the "en garde" bug in Dark Sceptre several times, described here as follows:
Two characters meet, want to duel, challenge each other but the fight never starts, then other character pass by, wants to duel but must wait for the ongoing duel to finish, then another character pass by, and another, and another?
In the end what you got is similar to a week end family picnic
This appears to occur when, in en garde mode, you press 'plan' to issue orders and the same area of memory is then being used for two different things giving rise to the 'picnic' described above :-
Memory is at a premium, even the interrupt table is used for other stuff when not in use so, until somebody can be bothered to find some unused space, there's a few pokes below which should be entered at the main menu hopefully sorting the problem out. However, you will lose the 'quit' menu option which is no big loss if playing on an emulator.
;a new place (quit menu) for the 'plan' option so there's no clash.
Poke 33862,81: Poke 33863,98
Poke 34407,81: Poke 34408,98
;direct interrupt here (this is required as interrupt originally directed to place in quit menu code which we are now overwriting)
Poke 34463,145: Poke 34464,145
;now tidy up the menu...
;do not print 'Quit' option initially
Poke 65258,0
http://rghost.ru/45938075
Fist 2
If hero run right to edge of window (from .sna1 to .sna2) and return left then terrible bug will on :(
P.S. In .sna2 hold A!!!
This is a problem caused by not allowing enough room in memory for graphics and it is the collectable scroll that is causing the problem in this instance. One thing that gets overwritten is a byte mirror table. If you walk right first and collect the (hidden) scroll before walking left, there won't be a problem. You can fix this problem by altering the bounds of the scroll on the RHS so it doesn't reach so high up in memory and gets deleted just a tad quicker before it crosses the right hand edge. You probably won't even notice the difference:-
They got rid of lenslok though and sorted out the "no viper ships out of the station" bug the original had.
Also this Elite FAQ mentions the following issues with the Spectrum version:
Pausing then pressing a specific key then unpausing toggled forced
witchspace mode (witchspace every jump). The key may have been F.
And a cheat: If your hyperspace countdown finishes just as you get the
docking tunnel, you will find yourself instantly docked in your
destination system. So launch, trigger hyperspace, and re-dock at the
station you just came to. Only tested on 48K version.
Bug: If you destroy a ship you have fired a missile at, it will fly to
the last known position then stop. It cannot be shot or ECM'ed and can
be flown through.
Second item in the list above (docking) is listed as a cheat, but it's certainly an unintentional bug. I'm just not sure if the first (witchspace) is an intentionally hidden feature or just a bug.
But I remember that there was a problem with attribute for each level. The program used some flawed code to change it and at some later level it became black on black= dark screen and impossible to play.
Maybe there were more but I frankly don't remember now.
Oh, I actually cared to document the bugs in text file attached to the recording. In the recording I corrected attribute problem by pokes.
I'll quote myself:
Some notes on this recording:
The game initially doesn't seem very hard but it is. Completing
all the levels without cheating seemed impossible to me so I
used infinite lives poke : POKE 38094,0
The game is bugged, so I used several tricks to complete:
At level 5.2 normally the screen goes dark and it's impossible to continue.
That's because of a routine filling the screen with attribute which
takes the level number into calculations. In level 5 the counted attribute is
black on black, and that's the problem. You can correct it with POKE 50638,62;
POKE 50639,n where n is your colour and n is from 1 to 7.
You can't finish level 8.3 as the exit which should open doesn't open. I stopped
my recording of this level there. But you can skip level 8 totally at the
end of level 7 and go straight to level 9 (choose WARP).
Another bug is present at level 12.2. There is a wall which blocks your way
and you just cannot go any further. I used a little exploit - I died
close to the wall and was reborn on the other side of it :)
If watching the complete game is too much for you, there is an interesting
final boss on level 14 and mid bosses on level 8 and 9.
Are you here Bandit, maybe you would like to have a look on this game? My tricks are a bit lame :) And there is disk version to be checked too.
Are you here Bandit, maybe you would like to have a look on this game?.
Not really no :) I much prefer reading what everybody is getting up to coupled with a leisurely snooze in my chair so please, if anybody feels like a tinker, please do so! I guess you must be busy writing a new game featuring more of Vanessa to be bothered with this Ralf considering the excellent notes? Firstly however I want to propose an update to the Cobra night slasher fix. The original does the job it is supposed to but has a flaw. You have to headbutt the slasher to kill him - touching him after eating the invincibility pill should be enough plus you should still receive 50 points for killing him.
There's a quick gif demo of how everything works here. Cobra 1 shows original nothing happens after killing slasher, 2 shows original headbutt patch and 3 the new patch.
Vindicators
========
Ralf's original post is worth linking to again as the message from the programmer is worth reading and gives some insight with regard to the time constraints placed upon him.
At level 5.2 normally the screen goes dark and it's impossible to continue. That's because of a routine filling the screen with attribute which takes the level number into calculations. In level 5 the counted attribute is black on black, and that's the problem. You can correct it with POKE 50638,62; POKE 50639,n where n is your colour and n is from 1 to 7.
;bad colour routine
c5c9: ld c, $40 ;bright
c5cb: ld a, ($c5d4) ;current level
c5ce: add a, $04 ;add 4 to level (paper colour)
c5d0: jp $9eaa ;colour the screen
;good colour routine
9112: ld hl, $c5d4
9115: inc (hl)
9116: ld a, (hl)
9117: add a, $04
9119: and $07
911b: cp $03
911d: jr nc, $9123
911f: add a, $03
9121: jr $9119
9123: ld c, $40
9125: call $9eaa
The bad colour routine is doing only half a job. Once the level reaches 5 and thus the paper colour at the jump at $c5d0 reaches 8, problems will occur (8*8=64 bright black ink, black paper). The easy solution is to make use of the good colour routine thus:-
You can't finish level 8.3 as the exit which should open doesn't open. I stopped my recording of this level there. But you can skip level 8 totally at the end of level 7 and go straight to level 9 (choose WARP).
This should read can't finish 8.4. $d8f7 (55543) holds one of four values depending on the type of base for that level.
0 transparent base
1 top base (or mid level NME ship - bug)
2 side base
3 end bonus stage
The code goes wrong when an enemy ship appears mid level:-
bd87: ld a, $01
bd89: ld ($d8f7), a ;stop tank attack <--- setting this to 1 causes
;the problem
bd8c: ld ($9551), a ;stop scroll (you must stand and fight)
;tank attack
c09b: ld a, ($d8f7) ;
c09e: and a ;
c09f: ret nz ;exit if not transparent base
c0a0: ld a, ($9551) ;
c0a3: and a ;
c0a4: ret z ;exit if normal game scroll (not stand and fight)
c0a5: start tank attack code
Perhaps the programmer was thinking okay, I want to turn the tank attack code and scroll off here. Unfortunately, it's not a case of 0=on and 1=off as there are 2 other values to consider (2 and 3). So setting to a 1 causes the program to think we are now dealing with a top base whereas in fact on this particular level it is a side base and the routines are completely different hence nothing happens when trying to shoot your way in (Poke 55543,2 fixes the rzx). $d8f7 doesn't need to be changed at all as it always non zero at this point so the fix is as follows:-
Another bug is present at level 12.2. There is a wall which blocks your way and you just cannot go any further. I used a little exploit - I died close to the wall and was reborn on the other side of it
The arcade version has the path going left and up at the start on this level. I was playing level 6.2 on the Speccy when things seemed a tad similar.
Hopefully Pavero will be compiling a map to in order to view the similarities. There are further bugs to discover, some that reset the Speccy. Other oddities in there too such as:-
bdb7: ld hl, $a47d
bdba: ld a, (hl)
bdbb: ld ($0001), a
Ops! It seems jp (and zxbruno before him) identified the difference between Hit Squad and original release before I did, but I previously missed this information. This time I mentioned it properly in the bug description.
I still need to update jp's patch (hopefully tomorrow?) and eventually restart organizing all the other games mentioned in this thread...
I updated this post to include it. For user's convenience, it's now available as patched TZX file, that includes both your patch and the original TZX.
Cool!
I've just taken a look at both the Alkatraz TZX images of Cobra in the archive and there are some subtle differences in pulse values and pauses, but the data blocks are exactly the same.
All the patch does is gain control, i.e. decrypt the loader and put the bug fixes in place... as such, it works with both TZX images.
I've neglected to provide source code for this updated patch, so I'll look to rectify this soon[ish] :D
I'm just not sure if the first (witchspace) is an intentionally hidden feature or just a bug.
Definitely intentional Einar. You can toggle witchspace on/off as much as you like.
;48k
72c5: cp $46 ;'F' key pressed whilst paused?
72c7: call z, $7310 ;yes
.
7310: ld a, (hl) ;
7311: xor $40 ;
7313: ld (hl), a ;toggle bit 6 (witchspace on/off)
7314: xor a ;play beeper
7315: ret
And a cheat: If your hyperspace countdown finishes just as you get the docking tunnel, you will find yourself instantly docked in your destination system. So launch, trigger hyperspace, and re-dock at the station you just came to. Only tested on 48K version.
It's enough to abort/cancel the current hyperspace to sort this (I hope!). However, if you activate the cheat whilst in witchspace then you will hyperspace to no man's land and be stuck without a present or hyperspace system and it's game over as you cannot launch! Thus, witchspace must also be turned off. There are some program examples (48k .z80 files) HERE.
elitedocking1 - Contains no alterations. You are approaching Lave with Diso selected as your hyperspace system. Press 'H'yperspace just before docking commences to invoke the cheat.
elitedocking2 - As above but with below patch applied.
fix elite hyperspace cheat (sob)
--------------------------------
;48k
org $71bd ;29117
jp $7fb2 ;195 178 127
org $7fb2 ;32690
xor a ;175
ld ($dba1),a ;50 161 219 set hyperspace off
ld hl,$fc0e ;33 14 252
res 6,(hl) ;203 182 set witchspace off
jp $93ed ;195 237 147
;128k
org $7105 ;28933
jp $fced ;195 237 252
org $fced ;64749
xor a ;175
ld ($d573),a ;50 115 213 set hyperspace off
ld hl,$fc14 ;33 20 252
res 6,(hl) ;203 182 set witchspace off
jp $7af8 ;195 248 122
They got rid of lenslok though and sorted out the "no viper ships out of the station" bug the original had.
This is an interesting one. I played this game back to 'deadly' status back in the day and I can't remember traffic not emerging from the space stations? There again, I can hardly remember yesterday so not that much of a surprise. From the program example files above, select elite48a. Nothing odd about it, it's a regular 48k snapshot looking at Lave. Watch/shoot the base and nothing will come out no matter what. Now add this poke:-
Poke 24680,64
Almost immediately you should see a ship emerge and plenty more in due course. You can also try shooting the base too ;) Again, issued for testing in the first instance.
Bug: If you destroy a ship you have fired a missile at, it will fly to the last known position then stop. It cannot be shot or ECM'ed and can be flown through.
I haven't been able to replicate this. Missiles appeared to behave as they should either burning out after time or self detonating when the enemy was destroyed. Anyone seen this?
A couple of useful pokes for when you can't be bothered flying around. Use as often as required.
48k: Poke 40090,1 128k: Poke 55829,1 Initiate docking sequence to nearest system
Comments
Yep, looks like it's a copy of the 48k version and not the dedicated 128k version hence no sound.
Looks like the original tzx also doesn't load in 128 mode. There appears to be 2 problems. Firstly, one of the levels is loaded into ram bank 2. Unfortunately, as bank 2 resides at $8000-$bfff and the loading code is also in this area, the loading code gets overwritten causing a crash. Secondly, a problem with interrupts when decoding a level. Snaphots have been made of both original and dro soft versions after loading in 128k mode and are available here (inc. patch).
Ivan has unearthed another bug though. If you look at the rzx recording there's a problem with the scroll routine after you reach the exit point insomuch that the scroll routine continues causing the glitch in the video.
Another problem about Alien Syndrome was also mentioned earlier in the thread.
Amazing that Erbe did that mistake with Sly Spy, I will have to keep my british Hit Squad copy to have complete both 48 and 128k versions :)
Same as with Alien Syndrome...how many times I did load the game, and thinking that the cassette was faulty...until recently tried to load it in 48k mode.
Thanks! Have you gotten into Final Fight? :)
Fist 2
If hero run right to edge of window (from .sna1 to .sna2) and return left then terrible bug will on :(
P.S. In .sna2 hold A!!!
This appears to occur when, in en garde mode, you press 'plan' to issue orders and the same area of memory is then being used for two different things giving rise to the 'picnic' described above :-
Memory is at a premium, even the interrupt table is used for other stuff when not in use so, until somebody can be bothered to find some unused space, there's a few pokes below which should be entered at the main menu hopefully sorting the problem out. However, you will lose the 'quit' menu option which is no big loss if playing on an emulator.
;a new place (quit menu) for the 'plan' option so there's no clash.
Poke 33862,81: Poke 33863,98
Poke 34407,81: Poke 34408,98
;direct interrupt here (this is required as interrupt originally directed to place in quit menu code which we are now overwriting)
Poke 34463,145: Poke 34464,145
;now tidy up the menu...
;do not print 'Quit' option initially
Poke 65258,0
;do not print 'Quit' thereafter
Poke 25665,3
This is a problem caused by not allowing enough room in memory for graphics and it is the collectable scroll that is causing the problem in this instance. One thing that gets overwritten is a byte mirror table. If you walk right first and collect the (hidden) scroll before walking left, there won't be a problem. You can fix this problem by altering the bounds of the scroll on the RHS so it doesn't reach so high up in memory and gets deleted just a tad quicker before it crosses the right hand edge. You probably won't even notice the difference:-
Poke 25717,192: Poke 25799,193
I did notice other issues elsewhere.
Anybody knows about another bugs in Fist 2?..
The following quote refers to a bug in the 48K version, that was fixed in the 128K version:
Also this Elite FAQ mentions the following issues with the Spectrum version:
Second item in the list above (docking) is listed as a cheat, but it's certainly an unintentional bug. I'm just not sure if the first (witchspace) is an intentionally hidden feature or just a bug.
But I remember that there was a problem with attribute for each level. The program used some flawed code to change it and at some later level it became black on black= dark screen and impossible to play.
Maybe there were more but I frankly don't remember now.
For my rzx recording (www.rzxarchive.co.uk/v/vindicators.zip) I used some poke which I don't have now unfortunately/
I'm going too see the code now.
I'll quote myself:
Are you here Bandit, maybe you would like to have a look on this game? My tricks are a bit lame :) And there is disk version to be checked too.
Thanks a lot!
Not really no :) I much prefer reading what everybody is getting up to coupled with a leisurely snooze in my chair so please, if anybody feels like a tinker, please do so! I guess you must be busy writing a new game featuring more of Vanessa to be bothered with this Ralf considering the excellent notes? Firstly however I want to propose an update to the Cobra night slasher fix. The original does the job it is supposed to but has a flaw. You have to headbutt the slasher to kill him - touching him after eating the invincibility pill should be enough plus you should still receive 50 points for killing him.
;Cobra Night Slasher patch update org $9490 ;38032 jp $aef0 ;195 240 174 org $aef0 ;44784 cp 7 ;254 7 jp z,$9566 ;202 102 149 jp $956a ;195 106 149Some previous links:-
http://www.worldofspectrum.org/forums/showpost.php?p=417012&postcount=97 (original fix)
http://www.worldofspectrum.org/forums/showpost.php?p=544449&postcount=126 (Einar's list)
http://www.worldofspectrum.org/forums/showpost.php?p=491146&postcount=18 (jp's patch bundle)
There's a quick gif demo of how everything works here. Cobra 1 shows original nothing happens after killing slasher, 2 shows original headbutt patch and 3 the new patch.
Vindicators
========
Ralf's original post is worth linking to again as the message from the programmer is worth reading and gives some insight with regard to the time constraints placed upon him.
The bad colour routine is doing only half a job. Once the level reaches 5 and thus the paper colour at the jump at $c5d0 reaches 8, problems will occur (8*8=64 bright black ink, black paper). The easy solution is to make use of the good colour routine thus:-
This should read can't finish 8.4. $d8f7 (55543) holds one of four values depending on the type of base for that level.
0 transparent base
1 top base (or mid level NME ship - bug)
2 side base
3 end bonus stage
The code goes wrong when an enemy ship appears mid level:-
bd87: ld a, $01 bd89: ld ($d8f7), a ;stop tank attack <--- setting this to 1 causes ;the problem bd8c: ld ($9551), a ;stop scroll (you must stand and fight) ;tank attack c09b: ld a, ($d8f7) ; c09e: and a ; c09f: ret nz ;exit if not transparent base c0a0: ld a, ($9551) ; c0a3: and a ; c0a4: ret z ;exit if normal game scroll (not stand and fight) c0a5: start tank attack codePerhaps the programmer was thinking okay, I want to turn the tank attack code and scroll off here. Unfortunately, it's not a case of 0=on and 1=off as there are 2 other values to consider (2 and 3). So setting to a 1 causes the program to think we are now dealing with a top base whereas in fact on this particular level it is a side base and the routines are completely different hence nothing happens when trying to shoot your way in (Poke 55543,2 fixes the rzx). $d8f7 doesn't need to be changed at all as it always non zero at this point so the fix is as follows:-
The arcade version has the path going left and up at the start on this level. I was playing level 6.2 on the Speccy when things seemed a tad similar.
Here's the level data for level 12:-
Level 6 is exactly the same as above bar the following differences.
The fix is therefore:-
Hopefully Pavero will be compiling a map to in order to view the similarities. There are further bugs to discover, some that reset the Speccy. Other oddities in there too such as:-
bdb7: ld hl, $a47d
bdba: ld a, (hl)
bdbb: ld ($0001), a
It seems this game was delivered in a big rush and in a very buggy state.
Thanks! I have just registered this new information here.
Ops! It seems jp (and zxbruno before him) identified the difference between Hit Squad and original release before I did, but I previously missed this information. This time I mentioned it properly in the bug description.
I still need to update jp's patch (hopefully tomorrow?) and eventually restart organizing all the other games mentioned in this thread...
Should be able to take a look at it tonight!
Thanks!
For some reason, file "Cobra(BUGFIX).tzx.zip" currently stored here is wrong. It contains the same TAP version instead of your patched TZX...
OK, never mind! The update is done - and is here
Thanks!
There are 2 Alkatraz releases: "Cobra.tzx.zip" and "Cobra(different).tzx.zip". Which one did you use?
The first one: Cobra.tzx.zip
Thanks!
I updated this post to include it. For user's convenience, it's now available as patched TZX file, that includes both your patch and the original TZX.
Cool!
I've just taken a look at both the Alkatraz TZX images of Cobra in the archive and there are some subtle differences in pulse values and pauses, but the data blocks are exactly the same.
All the patch does is gain control, i.e. decrypt the loader and put the bug fixes in place... as such, it works with both TZX images.
I've neglected to provide source code for this updated patch, so I'll look to rectify this soon[ish] :D
Definitely intentional Einar. You can toggle witchspace on/off as much as you like.
It's enough to abort/cancel the current hyperspace to sort this (I hope!). However, if you activate the cheat whilst in witchspace then you will hyperspace to no man's land and be stuck without a present or hyperspace system and it's game over as you cannot launch! Thus, witchspace must also be turned off. There are some program examples (48k .z80 files) HERE.
elitedocking1 - Contains no alterations. You are approaching Lave with Diso selected as your hyperspace system. Press 'H'yperspace just before docking commences to invoke the cheat.
elitedocking2 - As above but with below patch applied.
The above is issued 'for testing purposes'.
This is an interesting one. I played this game back to 'deadly' status back in the day and I can't remember traffic not emerging from the space stations? There again, I can hardly remember yesterday so not that much of a surprise. From the program example files above, select elite48a. Nothing odd about it, it's a regular 48k snapshot looking at Lave. Watch/shoot the base and nothing will come out no matter what. Now add this poke:-
Almost immediately you should see a ship emerge and plenty more in due course. You can also try shooting the base too ;) Again, issued for testing in the first instance.
I haven't been able to replicate this. Missiles appeared to behave as they should either burning out after time or self detonating when the enemy was destroyed. Anyone seen this?
A couple of useful pokes for when you can't be bothered flying around. Use as often as required.
I've not forgotten about this, just got a bit sidetracked with some patch loaders for the Speedlock 7 / Hit Squad re-releases of Cobra and Mikie