Wild Streets (Titus) bug, or incompatibility with +2A models?
Wild Streets (Titus) bug, or incompatibility with +2A models?
This issue was reported by me in the old WoS forums and now that I am playing it again, I came across the same problem: Once the boss is killed in the first level, you have to go to the right extreme of the screen to pass the level, just as Ralf did in the RZX, but everytime I do it, the game freezes, no matter what keys I am pressing or how much time I wait, the game is frozen forever. I have loaded the game in my +2A in 128k and 48k modes, with the same result
Re: Wild Streets (Titus) bug, or incompatibility with +2A models?
Hi Ivan, I don't remember details, I was recording it several years ago. But I don't remember any problems too.
It may be this particular model issue.
Maybe [mention]Bandit[/mention] would be able to help us?
It may be this particular model issue.
Maybe [mention]Bandit[/mention] would be able to help us?
Re: Wild Streets (Titus) bug, or incompatibility with +2A models?
It looks like this game was only tested using a Kempston joystick. Try pressing 'fire' on the joystick once you reach the end of the stage, and you should be taken to the next stage. With the keyboard it seems to be impossible.
Re: Wild Streets (Titus) bug, or incompatibility with +2A models?
Wow, so in the end it was a bug! Thanks a lot for checking it
- Einar Saukas
- Bugaboo
- Posts: 3145
- Joined: Wed Nov 15, 2017 2:48 pm
Re: Wild Streets (Titus) bug, or incompatibility with +2A models?
Does it work if you connect a Kempston joystick but chose to play with the keyboard, and use Kempston just to press FIRE at the end of each level?
- Ast A. Moore
- Rick Dangerous
- Posts: 2641
- Joined: Mon Nov 13, 2017 3:16 pm
Re: Wild Streets (Titus) bug, or incompatibility with +2A models?
Interesting. I haven’t looked at the code, but with no Kempston interface connected, the port will read all lines as high, meaning it will consider every button—the directions and fire—pressed. So, theoretically, the game should proceed to the next level without any user intervention.
Unless it expects a specific byte from the port (0x10), rather than checking for just Bit 4.
Every man should plant a tree, build a house, and write a ZX Spectrum game.
Author of A Yankee in Iraq, a 50 fps shoot-’em-up—the first game to utilize the floating bus on the +2A/+3,
and zasm Z80 Assembler syntax highlighter.
Author of A Yankee in Iraq, a 50 fps shoot-’em-up—the first game to utilize the floating bus on the +2A/+3,
and zasm Z80 Assembler syntax highlighter.
Re: Wild Streets (Titus) bug, or incompatibility with +2A models?
Yes, it does. I made a small patch to allow advancing to the next level without a Kempston joystick connected. (You just have to press the '0' key or the fire button on an Interface 2 joystick.)Einar Saukas wrote: ↑Sun Jun 07, 2020 1:50 pmDoes it work if you connect a Kempston joystick but chose to play with the keyboard, and use Kempston just to press FIRE at the end of each level?
Code: Select all
$768e $5f ld e, a
$768f $3a $d3 $76 ld a, ($76d3)
$7692 $b7 or a
$7693 $7b ld a, e
$7694 $c8 ret z
$7695 $db $1f in a, ($1f)
$7697 $fe $ff cp $ff
$7699 $c8 ret z
Take a look at the code, if you dare. I don't know what they were thinking exactly, but the authors didn't find it necessary to read the Kempston port just once each time they needed a movement input. Instead the port gets read four times in a row (the first three inputs are simply thrown away).Ast A. Moore wrote: ↑Sun Jun 07, 2020 2:13 pmInteresting. I haven’t looked at the code, but with no Kempston interface connected, the port will read all lines as high, meaning it will consider every button—the directions and fire—pressed. So, theoretically, the game should proceed to the next level without any user intervention.
Unless it expects a specific byte from the port (0x10), rather than checking for just Bit 4.
The game explicitly tests for a Kempston interface after loading. The main problem is that the input routine returns with zero in A if the interface wasn't present, otherwise A ends up holding a joystick input (basically by chance). The calling routine mistakenly treats this return value as a valid input, causing the game to freeze if there's nothing connected.
I also noticed an odd bug in the game: if you press 'P' while moving to the left or right, everything locks up, and loading stripes may or may not appear.
- Ast A. Moore
- Rick Dangerous
- Posts: 2641
- Joined: Mon Nov 13, 2017 3:16 pm
Re: Wild Streets (Titus) bug, or incompatibility with +2A models?
Well, it’s not easy to support auto-detection of multiple input interfaces. It’s bound to lead to bugs or lockups. I’ve been down that road, and it’s pretty bumpy.
Every man should plant a tree, build a house, and write a ZX Spectrum game.
Author of A Yankee in Iraq, a 50 fps shoot-’em-up—the first game to utilize the floating bus on the +2A/+3,
and zasm Z80 Assembler syntax highlighter.
Author of A Yankee in Iraq, a 50 fps shoot-’em-up—the first game to utilize the floating bus on the +2A/+3,
and zasm Z80 Assembler syntax highlighter.
-
- Microbot
- Posts: 117
- Joined: Mon Apr 13, 2020 3:07 pm
Re: Wild Streets (Titus) bug, or incompatibility with +2A models?
Zynaps does that brilliantly. Whatever you start using, it automatically adjusts to it.Ast A. Moore wrote: ↑Sun Jun 07, 2020 3:52 pm Well, it’s not easy to support auto-detection of multiple input interfaces.
Re: Wild Streets (Titus) bug, or incompatibility with +2A models?
Would it be possible to fix this via Pokes?
Re: Wild Streets (Titus) bug, or incompatibility with +2A models?
POKE 30350, 95
POKE 30351, 58
POKE 30352, 211
POKE 30353, 118
POKE 30354, 183
POKE 30355, 123
POKE 30356, 200
POKE 30357, 219
POKE 30358, 31
POKE 30359, 254
POKE 30360, 255
POKE 30361, 200
POKE 30351, 58
POKE 30352, 211
POKE 30353, 118
POKE 30354, 183
POKE 30355, 123
POKE 30356, 200
POKE 30357, 219
POKE 30358, 31
POKE 30359, 254
POKE 30360, 255
POKE 30361, 200