An Arrow Through The Code? Jet Set Willy's Weird Bug Explained

แชร์
ฝัง
  • เผยแพร่เมื่อ 4 พ.ย. 2019
  • #Speccy
    One of the strangest and most intractable bugs in classic gaming laid bare. The glitch that made ZX Spectrum smash hit Jet Set Willy a lot harder than it should have been.
    Music:
    Space Navigator
    Yellow Flamingo
    Sarah, The Instrumentalist
    / @sarah2ill
    Sleeplessness
    The Bothers Records
    / @donguyrockwell
    Background image:
    Paweł Czerwiński
    unsplash.com/@pawel_czerwinski
    Jet Set Willy Map
    Pavero
    maps.speccy.cz/map.php?id=Jet...
  • เกม

ความคิดเห็น • 118

  • @akumjh
    @akumjh 4 ปีที่แล้ว +19

    The title turned out to be far more literal than I expected.

  • @globus1971
    @globus1971 5 หลายเดือนก่อน +2

    As someone who didn't get any further than BASIC programming it was great to have this explained so simply - cheers!

  • @d2factotum
    @d2factotum 4 ปีที่แล้ว +8

    I know I'm a bit late here, but just a note about the collision detection: the way that worked in JSW was that the game checked when it was drawing the enemy sprite to see if it intersected anything on the screen. Since the normal setup was that the enemies would never overlap the scenery this was fine--the only thing they could possibly touch was the player sprite. The corrupted guardian data could move the guardian into a position where they were overlapping something else as soon as you entered the room, though, which is why you instantly died.

  • @immortalsofar5314
    @immortalsofar5314 3 ปีที่แล้ว +6

    My first assembler program on the C64 was a simple, petscii pong game - replacing the ball with a space for animation. Every now and then, this would knock a block out of the wall and, hitting that spot again, would send the ball ploughing through memory leaving a trail of spaces behind it, ricocheting off any bytes of memory that happened to coincide with a wall block. At this point, it would either hit zero page and crash the machine or hit the VIC chip, make a farting sound and crash the machine (a sound effect I used in my next game). That certainly became a feature - hitting that spot became the whole point of the game!

  • @Tomsonic41
    @Tomsonic41 ปีที่แล้ว +4

    As a 5 year old, I was absolutely TERRIFIED of the giant face in the Chapel and Priest's Hole, and remember my dad showing me how it had vanished one time when we were playing. Little did I know what would happen when I tried to get to the Kitchen...

  • @trippymchippy8586
    @trippymchippy8586 4 ปีที่แล้ว +5

    I remember the days of typing 500 lines of basic from 'Sinclair Weekly' in order to land the 'V' on the '=' and avoid the '*''s... amazing stuff...
    And then came Zombie Zombie - mind blown ;)

  • @tomkrawec
    @tomkrawec 4 ปีที่แล้ว +17

    Extremely informative video, only drawback is not playing enough of the JSW intro music at the start.

  • @MajoradeMayhem
    @MajoradeMayhem 3 ปีที่แล้ว +7

    "... what passes for the Speccy's GPU..."
    I love your snark, hah

  • @chrislambe400
    @chrislambe400 4 ปีที่แล้ว +6

    1984 - It is not a bug it's a feature. Love it.

  • @elektron2kim666
    @elektron2kim666 4 ปีที่แล้ว +3

    I never forget my first game project with some ZX-Spectrum assembler. I let some Basic code run for making a road. The assembler was the car with keys for left and right movements, collision checks and drawing the road again. It was 20 lines of each and felt so speedy. A good road could be dumped to tape and reloaded. One mistake in the assembler gave a full crash and reset the ZX-Spectrum. Bad code would always send the execution address to ROM address 0 eventually with maybe 32768 instructions of random nature. At 7 MHz that's a split second.

  • @Amanda_Harper
    @Amanda_Harper 4 ปีที่แล้ว +9

    The CPC version alongside Elite was my gaming life for a very long time. I still have very fond memories of hundreds of hours spent playing it.

  • @nagualdesign
    @nagualdesign 4 ปีที่แล้ว +6

    1984 was the year I first learned how to program. Great days.

  • @ChrisWalshZX
    @ChrisWalshZX 4 ปีที่แล้ว +5

    Great description of The Attic Bug. I knew a rogue arrow was the cause but not about the two areas of Guardian Data. Clearly, if you were to enter and leave when the arrow hasn't traveled much, the amount of "damage" would be less. Thanks

  • @No-jb6fy
    @No-jb6fy 4 ปีที่แล้ว +1

    Wow, thanks for showing that, the sprites and game design look fantastic!

  • @Domarius64
    @Domarius64 4 ปีที่แล้ว +32

    Jet Set Willy to Cave Story: "I used to be an indie game like you. But then I took an arrow to the code."

    • @theemeraldfalcon9184
      @theemeraldfalcon9184 3 ปีที่แล้ว +2

      Sorry for replying to your comment, but to anyone that sees this, do NOT listen to the comments above me, do NOT use Instapwn, it is a scam.

  • @LordmonkeyTRM
    @LordmonkeyTRM 4 ปีที่แล้ว +9

    "Our bugs are features" sounds familiar...great video as always.

  • @MrMegaManFan
    @MrMegaManFan 2 ปีที่แล้ว +4

    It’s lovely that home enthusiasts fixed it but absolutely horrid that the publisher lied to people about it being intentionally designed that way. These days that would bring on a massive lawsuit!

  • @Mark-pr7ug
    @Mark-pr7ug 4 ปีที่แล้ว +6

    A classic game which I never completed until decades later via a CPC emulator.

  • @ashleykingston1980
    @ashleykingston1980 4 ปีที่แล้ว

    Never knew about the bug! Thanks for the video.

  • @PearFinch
    @PearFinch 3 ปีที่แล้ว +2

    Fascinatingly, there’s a Jet Set Willy cameo on FL Studio.

  • @paulmorphy6187
    @paulmorphy6187 4 ปีที่แล้ว +1

    Great video....fascinating

  • @MrDigiSpud
    @MrDigiSpud 4 ปีที่แล้ว +2

    Brilliant. I didn't know any of this history:)

  • @RetroRelixRestorer
    @RetroRelixRestorer 4 ปีที่แล้ว +1

    I knew about the game issues, but never why; but I do now - thank you 👍

  • @wadsplash
    @wadsplash 4 ปีที่แล้ว +1

    Another belter of a video, Sir!

  • @wisteela
    @wisteela 4 ปีที่แล้ว +1

    Very interesting stuff

  • @trenchwarfare9518
    @trenchwarfare9518 3 ปีที่แล้ว +1

    This reminds me a bit of the stale reference manipulation recently found in n64 Zeldas except the other way around. Instead of the arrow (in Zelda) having its original code overwritten by making it point to a different address in memory (it points to game data but is read as graphics data and then whatever instructions it got by interpreting it as graphics data will be executed) whose code then properly executes, here the arrow's code is what stays the same and properly executes while an incorrect pointer causes it to overwrite game data with what was meant to be graphics data. I hope that made sense

  • @gamerillenium1974
    @gamerillenium1974 3 ปีที่แล้ว

    Loved the game.... superb video

  • @Insommer
    @Insommer 4 หลายเดือนก่อน

    This game was my childhood, me and my brother would take it in turns 5 minutes at a time playing this when we were kids. Niether of us had a clue what we were doing but it was brilliant, i just liked going to all the different rooms to see all the different monsters. Used to be a hassle loading games on the Amstrad though, would take a good 10 minutes for it to load it felt like

  • @TuxedoPanther
    @TuxedoPanther 3 ปีที่แล้ว

    Great video, thanks for sharing :D

    • @Sharopolis
      @Sharopolis  3 ปีที่แล้ว +1

      Thanks for watching!

    • @TuxedoPanther
      @TuxedoPanther 3 ปีที่แล้ว

      @@Sharopolis Cheers 😀👍

  • @djmobman1727
    @djmobman1727 2 ปีที่แล้ว

    Amazing video

  • @matthewrease2376
    @matthewrease2376 2 ปีที่แล้ว

    When you said an arrow I thought it was going to be an issue with a pointer in memory but no you meant a literal around lol. That's fantastic...

  • @greenhowie
    @greenhowie 4 ปีที่แล้ว +1

    This is what we call a Bethesda Move.

  • @crazytrain7721
    @crazytrain7721 7 หลายเดือนก่อน

    So i played this at a very yiunf age when thr MSX version came out. I couldbt clear it but i tried for a rew years on and off. One day in my late 20s, i went to my parents house and found it. I set it up and started trying again. After a cou9ld of weeks i realised i should stop trying to collect all the items and instead go straight to the hardest levels and focus on one at a time until i got good. Soon after, i had a play through and to my amazement i finished the game. I didn't know it would be the end and he started walking by himself and threw up in the toilet. That was a special day for me because this game is the constant thread of my childhood. I felt happy I'd cleared it, but also a bit sad that i had to let go of childhood me, finally.

  • @geminijinxies7258
    @geminijinxies7258 ปีที่แล้ว +1

    I remember getting insta-killed in some rooms and now I know why. It was a visit to "The Attic". Not that it matters, I would never be able to finish this insanely difficult game anyways.
    Managed to reach the Skylab level in Manic Miner though.

  • @GrOuNdZeRo7777
    @GrOuNdZeRo7777 3 ปีที่แล้ว +2

    I remember the game on the MSX an even in the mid to late 80's it wasn't a game we adored, Boulder dash was one of my favorite titles along with Lazy Jones, Funny enough in this era Japanese games hadn't completely taken over yet, But I am surprised how few European games were released for the MSX2.

  • @EmoryM
    @EmoryM 3 ปีที่แล้ว

    The arrow's goal was defeating the player - great job!

  • @YOURTECHFRIEND
    @YOURTECHFRIEND 4 ปีที่แล้ว +1

    Haha - superb story :-D

  • @daveloomis
    @daveloomis 4 ปีที่แล้ว +1

    Nice!

  • @vieuetcon
    @vieuetcon 4 ปีที่แล้ว +1

    Epic game. Was faster than that in my mind, way faster!! And the rope thing was WOW!

  • @RufianEmbozado
    @RufianEmbozado 3 ปีที่แล้ว +1

    It didn't matter to me back in the day. I spent countless hours playing just to see the next room. Never tried to get all those pesky objects in a run. Still, maybe, my most beloved game. I started coding assembler and learnt a lot just by trying to replicate its mechanics. Happy times they were!

  • @petemarr824
    @petemarr824 3 ปีที่แล้ว +1

    "Under the roof" also had an error.. a big orange block in the middle shouldnt have been there. A POKE was put in one of the Speccy mags to clear it later on.

  • @danm3195
    @danm3195 4 ปีที่แล้ว +3

    Still remember the poke all those decades later poke 35136,0.

    • @PaulyQ
      @PaulyQ 4 ปีที่แล้ว

      That was Manic Miner

    • @danm3195
      @danm3195 4 ปีที่แล้ว

      @@PaulyQ jet set Willy .the sequel

  • @utrapzab
    @utrapzab 4 ปีที่แล้ว +1

    epic game, we must perform a quirkafleeg

  • @heyhonpuds
    @heyhonpuds 4 ปีที่แล้ว +14

    So would these errors have occurred because it was such a big project for one person in 1984 so it’s pretty understandable? Or are they quite easy to spot and Matt From Earth was just too high while Interstellar Overdrive played in the background for him to notice?

    • @OdaSwifteye
      @OdaSwifteye 4 ปีที่แล้ว +2

      Yes.

    • @NLynchOEcake
      @NLynchOEcake 3 ปีที่แล้ว +6

      @norman sword It would be like reading the newspaper in the morning and needing to find the one place somebody put a 'l' instead of an 'I'

  • @ExStepsister
    @ExStepsister 2 ปีที่แล้ว +1

    This was cool

  • @hadi96100
    @hadi96100 4 ปีที่แล้ว +3

    It's 2020 - I'm still playing JSW, and I still haven't beaten the game - I need to try those fixes ;)...

    • @majidskinnerkhan6960
      @majidskinnerkhan6960 4 ปีที่แล้ว +2

      Amazing game. Will always stay in the hearts of people who played it.

  • @SNARC15
    @SNARC15 4 ปีที่แล้ว

    Or as Sir Clive Sinclair would call it "JET SET FUCKING WILLY!"

  • @tegrah4257
    @tegrah4257 3 ปีที่แล้ว +1

    Dynamite Dan 1&2 are similar. Good yet Hard to complete games

  • @ceruleanblu3184
    @ceruleanblu3184 4 ปีที่แล้ว +1

    All I remember about “fixing” JSW was something called WRITETYPER.

  • @Barcrest
    @Barcrest 4 ปีที่แล้ว

    Nice video sir.

  • @chattingesque372
    @chattingesque372 3 ปีที่แล้ว

    This was huge in New Zealand too

  • @AcornElectron
    @AcornElectron 4 ปีที่แล้ว +2

    Yeah, it was a bloody difficult game.

  • @sarkybugger5009
    @sarkybugger5009 4 ปีที่แล้ว

    This makes me feel very old.

  • @BluffMunkey
    @BluffMunkey 2 ปีที่แล้ว

    This was also the plot for Tron 3

  • @KillerBill1953
    @KillerBill1953 4 ปีที่แล้ว

    I remember typing in the code from a magazine but still could not complete it. I later but the expanded version for the CPC 464, one of those "just one more time" games.

  • @WaltTFB
    @WaltTFB 4 ปีที่แล้ว +2

    Came for the content, subscribed for you sounding a bit like Stuart Maconie.

    • @Sharopolis
      @Sharopolis  4 ปีที่แล้ว

      Thanks!

    • @WaltTFB
      @WaltTFB 4 ปีที่แล้ว

      @@nigeldowsett8560 Guglielmo's brother?

    • @nigeldowsett8560
      @nigeldowsett8560 4 ปีที่แล้ว

      @@WaltTFB Nah I just can't spell properly.

  • @FatNorthernBigot
    @FatNorthernBigot 3 ปีที่แล้ว +1

    I have yet to perform a quirkafleeg.

  • @steely6663
    @steely6663 3 ปีที่แล้ว

    The invincibility version I had on cassette was good. Jump off the Bow and walk on the water to go into a secret room.

  • @videopdstudio
    @videopdstudio 2 หลายเดือนก่อน

    It's JET SET WILLY 40th ANNIVERSARY - Let's jump on the Mega Tree!
    th-cam.com/video/ONev8hlJNyg/w-d-xo.html
    #JETSETWILLY #MATTHEWSMITH #ZXSPECTRUM #CLIVESINCLAIR

  • @dan_loup
    @dan_loup 4 ปีที่แล้ว +3

    Must resist doing THAT joke.

    • @heyhonpuds
      @heyhonpuds 4 ปีที่แล้ว

      I’m curious. What joke? Something about having a minor willy?

    • @dan_loup
      @dan_loup 4 ปีที่แล้ว +1

      @@heyhonpuds "I used to be an.."

  • @fgfhjfhjfbhfghf5771
    @fgfhjfhjfbhfghf5771 3 ปีที่แล้ว +1

    Strange behavior caused by innocent object spawning were it shouldn't?
    Highly accessible mod scene?
    *It's not a bug its a feature*
    By any chance did any of the devs go on to work at Bethesda

  •  ปีที่แล้ว +1

    Anyone else reading the words "Google" out of the worm at 7:40?

    • @crazytrain7721
      @crazytrain7721 7 หลายเดือนก่อน

      Well I am now, yes!

  • @kasperchristensen8416
    @kasperchristensen8416 3 ปีที่แล้ว

    Leisure Suit Larry is offended!

  • @bearcubd3900
    @bearcubd3900 4 ปีที่แล้ว

    was a tuff game , never cleared it now i no why !

  • @thecollector75
    @thecollector75 4 ปีที่แล้ว +4

    Christ..... after all this time I now find out it was a bug in the game lol... and not supposed to be like that to make the game ultra hard ... loved this vid

  • @Astinsan
    @Astinsan 3 ปีที่แล้ว

    I liked this.. how many platform’s were on the zx? We had a 5150 growing up so I missed all the fun. Did have sierra games.

  • @videopdstudio
    @videopdstudio 4 ปีที่แล้ว

    WILLY, 48k about a legend

  • @alejandroalzatesanchez
    @alejandroalzatesanchez 2 ปีที่แล้ว

    when an arrow is sus

  • @barryhall7
    @barryhall7 4 ปีที่แล้ว +1

    I used to spend hours playing this 🙂

  • @klausgartenstiel4586
    @klausgartenstiel4586 4 ปีที่แล้ว

    i used to be an adventure game like you...

  • @Sinn0100
    @Sinn0100 3 ปีที่แล้ว +1

    Why have I heard of this? I grew up in the states and never really experienced the micro's until they were long gone. Although I did have a Commodore 128 but I was too young to know what I had. I was drawn in by the Nes and Master System like a moth too the flame.
    I have a question about this glitch, since this is being run on a computer could one simply erase the errant arrow from the code? Yes, you would have to know what you're looking for but finding the code that runs the arrow and clipping it should be effective. I'm guessing this game is made with some form of Basic? If true, you might have to reorder everything but still I'm thinking fairly easy now that you know what's causing the bug.

    • @gwishart
      @gwishart 2 ปีที่แล้ว +3

      No, the game wasn't written in BASIC, it would have been far too slow.
      It was written in Z80 Assembly Language. The end user only had access to the assembled Machine Code, so inserting or removing even a single byte would have caused all code and data that followed to be in the wrong place, so all absolute jump addresses, subroutine calls, data tables would need to be updated too. Without access to the source code or a detailed disassembly, that would be impossible to accomplish.
      The patch provided by Matt Smith (via the publishers) changes four bytes in such a way that no data or routines actually change their location in memory:
      POKE 59901,82 = Changes the Y pixel co-ordinate of the arrow in The Attic, so that its data isn't written to memory outside the screen buffer.
      POKE 60231,0 = Removes the nasty item from the Conservatory Roof so that the item at 6:09 can be collected.
      POKE 42183,11 = Moves the invisible item on the First Landing (6:37) to The Hall. The items stays at the same co-ordinates, and remains invisible, but there's now a platform under it, so you can collect it. By changing the item's room number to 11.
      POKE 56876,4 = Changes the wall block in The Banyan Tree (6:15) into a platform. Since you can jump through platforms from below, you can now jump up out of the top of the screen and reach the room above from the right hand side.

  • @OlagGan
    @OlagGan 4 ปีที่แล้ว +1

    Actually I have never seen that bug. I would have said the Banyan tree bug would have been the more important as it made the game unwinnable..

  • @dukestt5436
    @dukestt5436 4 ปีที่แล้ว

    not me then, that explains a lot

  • @wolftickets1969
    @wolftickets1969 3 ปีที่แล้ว

    One of the few games that permanently corrupts itself.

  • @entropy-cat
    @entropy-cat 3 ปีที่แล้ว

    Wonder if Jet Set Radio had anything to do with this.

  • @officernarc
    @officernarc 4 ปีที่แล้ว

    0:14 spoiler alert - probably not much. In fact, until I started following British youtubers I had no idea what a ZX spectrum was. Of course, Rare was a pretty big deal over here and I'd imagine that because of that JSW had influence on a fair few of their games but I feel like most of the games I played on the NES as a kid were predominantly made by japanese devs and I have to imagine the overlap between the 80s uk microcomputer scene and Japan in the 80s was pretty negligible

  • @bukster1
    @bukster1 4 ปีที่แล้ว +1

    I always hated this game. Fans raved about it but it was over long and unbeatable. It was just frustrating.

  • @mfkman
    @mfkman 4 ปีที่แล้ว +3

    Merge "": Poke 35899,0 : RUN :)

  • @werre2
    @werre2 4 ปีที่แล้ว

    britons are weird. Cool video.

  • @vladrootgmailcom
    @vladrootgmailcom 4 ปีที่แล้ว +1

    Not through a code, rather through a data.

  • @alexanderwingeskog758
    @alexanderwingeskog758 4 ปีที่แล้ว +1

    I got it with a (They sold a million bundle) when I bought my C64.... and Jet Set Willy was the just the worst game of the bunch, the other games was actually really really good (even with the Spectrum legacy).

  • @elmariachi5133
    @elmariachi5133 3 ปีที่แล้ว

    Still better than Mario.

  • @jbrady1725
    @jbrady1725 3 ปีที่แล้ว

    This game looks exactly like VVVVVV...

  • @david-spliso1928
    @david-spliso1928 4 ปีที่แล้ว

    Just save your game after each room 👌👍😉

  • @Demonskunk
    @Demonskunk 3 ปีที่แล้ว

    How many seizures did this game cause back in the day?

    • @gwishart
      @gwishart 3 ปีที่แล้ว +1

      None. Photosensitive epilepsy wasn't invented until 1992.

  • @ianknowles
    @ianknowles 2 ปีที่แล้ว

    Didn't realise it was made by a fellow wirralian!

  • @itnaklipse1669
    @itnaklipse1669 3 ปีที่แล้ว +1

    Guess it's impossible to talk like a normal person.

  • @NemeanLion-
    @NemeanLion- 4 ปีที่แล้ว

    A “classic” only in Britain, because the developers were British.

  • @MiniWarzone
    @MiniWarzone 7 หลายเดือนก่อน

    Dislike all the upward inflections - very annoying.

    • @crazytrain7721
      @crazytrain7721 7 หลายเดือนก่อน

      Why are you telling people to dislike upward inflections?

  • @mikeb2575
    @mikeb2575 4 ปีที่แล้ว

    The 5 most amazing hidden secret rooms in JSW can be found here:-
    Once loaded on the ZX Spectrum type the following and then 'Run'
    'Poke 40323,23' = "The Outer Space Room"
    'Poke 38377,49' = "The Bat Cave"
    *Read more*

    • @gwishart
      @gwishart 4 ปีที่แล้ว

      Nice try, but:
      40323 is in the middle of the sprite data for Willy, poking it with the value 23 will just make his hat look weird when walking right.
      38377 is part of the sprite shifting routine, poking it with 49 will replace a RLCA instruction with LD SP,nn - corrupting the stack and crashing the game.

  • @grex9101
    @grex9101 4 ปีที่แล้ว +1

    Fond memories of JSW.
    All we have nowadays are SJWs.... Nowhere near as much fun.

  • @xflossx
    @xflossx 2 หลายเดือนก่อน

    to me it was crap as i wanted action and excitement not a game that was about as thrilling as a crossword but everyone goes on and on about jet shit wiily sorry but i was a kid when i first played this a few years after it came out and i turned it of after my cousin had played it saying it was a good game to me its like reading a book if you want to sleep its dull and broken to me but my first time playing games was the arcades and this was just a what the hell is this crap and played death chase or hell the best game at the time jet pack this as thrilling as picking up litter LOL sorry rough night at work but the game is still crap