Fixing Frantic Freddie: Commodore 64 Bugs, Minus World

แชร์
ฝัง
  • เผยแพร่เมื่อ 25 ธ.ค. 2024

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

  • @DanSanderson
    @DanSanderson 4 หลายเดือนก่อน +32

    Very fun! I like how the glitch levels demonstrate how the monster graphics are four frames of animation stored at an address calculated by Graphics Start + (Level Number - 1) * 4. So the actual final screen is just running the usual monster routines using the first set of Freddie sprites (Freddie walking right), and the glitch screens are just using subsequent sets of four sprites (Freddie climbing, pickup scores, pickup items). Naturally, the other glitch behaviors are routines overflowing their respective tables, but the sprite data seems most evident from the behavior.

    • @GigsTaggart
      @GigsTaggart 4 หลายเดือนก่อน +7

      Yeah wow this solves a really old mystery... The ghost Freddie is actually a glitched monster this whole time, colored blue because the blue monster was on top of the stack, and they never unstack because they don't collide with anything

  • @TyphinHoofbun
    @TyphinHoofbun 4 หลายเดือนก่อน +19

    50:35 - The strange things showing up in the scrolling text are characters used for the pots of gold. The first character was one of the tops, the second was a pot, and later there was two of the frames of the animated gold top. The "zombie Freddie" was the enemies overlapped, you could see them start to diverge on the pole on level 21, just before clearing it. Enemies just grab four frames, so 22 uses a blank frame and then 10, 20, 30 score markers.
    23 uses 40, 50, 60, 70.
    24 uses 80, 90, 100, a star (the first bonus item).
    25 uses the next four bonus items, and there's a "bonus item" using a black 500 score marker, and other levels' bonus items have been using different score markers as well. Looks like it also uses an index that's going outside normal bounds.
    What's interesting is that the point values for picking up gold seems to also be indexing something out of bounds.
    Level 16 : 100 pts (1460 - 1560, values are still in bounds, score marker displays properly)
    Level 17 : 1240 pts (1560 - 2800, score marker displays "77"?)
    Level 18 : 2470 pts (score marker is missing)
    Level 19 : 790 pts (score marker shows Freddie's hat?)
    Level 20 : 2470 pts (score marker shows another part of Freddie's hat, maybe?)
    Level 21 : 1720 pts (score marker shows what looks like part of Freddie's arm?)
    Level 22 : 2470 pts
    Level 23 : 1510 pts
    Level 24 : 2470 pts
    Level 25 : 1030 pts
    Level 26 : 2470 pts
    So that implies that the ones place of the score is just for show, and the bytes following the gold values array are 7C F7 4F F7 AC F7 97 F7 67 F7.
    This doesn't look like instructions, it looks more like an address table to addresses F77C, F74F, F7AC, F797, F767. These gaps are only 21-27 bytes, and not being consistent makes them seem like they're not something like sprite data. They could be functions, but they seem pretty short for that. Not long enough to be string pointers for the scrolling text, as well. Perhaps they're something like level data, locations of telephone poles, something like that?
    It could be interesting to look into it. Perhaps that could tell you why levels 17+ have such issues with their pole locations, being missing, extending off the screen, overlapping, etc. If you felt like digging even deeper.
    ...Heh, whoops, Programmer Brain grabbed me and ran with me way too far... Hope my observations were interesting. Maybe I should see about taking on some of this as a project? It's been forever since I've gotten to do anything, and I've always been interested in Commodore 64 stuff. ^_^;;

    • @MarianoLu
      @MarianoLu 4 หลายเดือนก่อน +1

      That right there sounds like a project to me..

  • @OperationPhantom
    @OperationPhantom 4 หลายเดือนก่อน +2

    The game behavior at the end was delightfully weird and that they even put in the effort for an ending message for a 1983 game is really cool. Especially when nobody would have seen it. Amazing work, thanks!

  • @dougjohnson4266
    @dougjohnson4266 4 หลายเดือนก่อน +8

    Without cheats, most C64 games are not finishable for me. Nice work with figuring out the game code.

  • @Philalex
    @Philalex 4 หลายเดือนก่อน +13

    There's another bug in Frantic Freddie. First level, go to the upper right and descend the ladder but face LEFT when you do. Your butt will hug the screen and you can walk offscreen to the right.

    • @DkViking1
      @DkViking1 4 หลายเดือนก่อน +1

      Yes, and that exact upper right ladder (pole) is also present in level 15, making this bug happen there as well.

  • @paulkoopmans4620
    @paulkoopmans4620 4 หลายเดือนก่อน +2

    Loved this episode like always! I've always been wondering how one would start hacking a game.. and I think you did a great job explaining that

  • @jonord
    @jonord 4 หลายเดือนก่อน +1

    Frantic Freddie (cracked by German Cracking Service) was one of the first games me and my brother got for our C64 back in 1983-84. Greatly enjoyed that game. It was also the last game I played on that C64 before I sold it in 1989.

  • @thenorseguy2495
    @thenorseguy2495 4 หลายเดือนก่อน +5

    Happy August Robin. I love your videos

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

    Thanks for showing the unknown levels.

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

    I always learn something new by watching your videos! Thanks!

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

    Awesome content, very entertaining, fun and illustrative, for sure you spent countless hours to understand the guts of the game... really appreciate your work sir. ❤

  • @Unfinished80
    @Unfinished80 4 หลายเดือนก่อน +3

    Thanks for another great video!

  • @weedmanwestvancouverbc9266
    @weedmanwestvancouverbc9266 4 หลายเดือนก่อน +1

    Probably your deepest dive into glitches, and the hows and whys.
    Funny mentioning ELO. Saw Sir Jeff Lynne and company in Vancouver back in 2019. You put on an amazing show as good as I remember is the one I saw in Los Angeles back in the 80s. Very hard to tell that it was a live performance and not a recording

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

    Had a bit of time to try it and it works as in the video. Opted for cmp #$08 idea for lives, collecting 3 pots/level was enough to finish the game ;)
    Also tried to load it into SCPU, game runs correctly but interlude scene is magically faster (as it uses cycle delay only) ;)
    Frantic Freddie (cracked by German Cracking Service) was one of the first games me and my brother got for our C64 back in 1985.
    Thanks for the video Robin :)

  • @Trevorodunne
    @Trevorodunne 4 หลายเดือนก่อน +3

    I used to do this sort of stuff in the 80s great memories please do more videos like this thanks.

  • @RetroCave-wr9tl
    @RetroCave-wr9tl 4 หลายเดือนก่อน +1

    Yes! The kill screen for Frantic Freddie. Thank you Robin!

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

    Takes me back to the good old days of Action Replay III on the good old Amiga - thanks Robin

  • @golomak6626
    @golomak6626 4 หลายเดือนก่อน +1

    Fascinating! :) Looks like they've run out of time and instead of fixing the end they made it (almost) impossible to get there. But still they somehow had a hunch that someone might make it to the "special" levels one day. 😀

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

    Great video!!. Took me back to the old days with an action replay cartridge

  • @simonscott1121
    @simonscott1121 4 หลายเดือนก่อน +7

    I think the "buggy" level is indeed a bug. Instead of AND #$0f it continues to increment, and reads invalid level data that gives you no ladders and an enemy using the freddie sprite, and a bonus pickup which uses the 100 sprite.

  • @JustinceStJames
    @JustinceStJames 4 หลายเดือนก่อน +1

    I had a cracked version of this game back in the day. It ran but the music would eventually bug out after a certain level and play a continuous tone nonstop. Knowing that the music is using different memory addresses, it might have been damaged during the crack. Shockingly enough I remember seeing the 'ending' level as a kid, maybe I really beat this game and didn't realize it.

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

    Hi!nice video,it remember me too many nights and days onto C64 within (hacking) games with my action replay!

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

    @24:00 Off by one: The classic programming error.

  • @mwk1
    @mwk1 4 หลายเดือนก่อน +1

    ZAJEBISTE! 🍻

  • @Lion_McLionhead
    @Lion_McLionhead 4 หลายเดือนก่อน +1

    Must have an array defining the level contents & it reads beyond the end of the array after level 19.

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

    The "Angles" crack version has these cheats and a couple more available. The levels above 17 dont seem to exist though. Thanks for the video!

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

    You are ashamed of pulling the return address from the stack 39:52 but when I found out I could do this I was so proud of myself 😂😂😂

    • @8_Bit
      @8_Bit  4 หลายเดือนก่อน +1

      It's kind of a nasty thing to do, but sometimes it's the best way.

  • @VulpisFoxfire
    @VulpisFoxfire 4 หลายเดือนก่อน +1

    On 23. the scrolling 'text' looks to be the top part of the pots and the 'bricks' of the platforms. My guess is it's trying to find more text, and instead is reading into where the data for the graphics elements are stored.

  • @LocalAitch
    @LocalAitch 4 หลายเดือนก่อน +2

    How many more games can you cajole into a world or level -1? 😂 Love getting your upload notifications. It's been a long time since I've written any 6510. Been busy modding Rock Band 3.
    Never forget Pseudo-Soft Works

  • @SK1BBE
    @SK1BBE 4 หลายเดือนก่อน +1

    In level 25, 3rd floor there is Black numbers flying, can only be seen when passing the ladders.
    And the text scroll after lvl 16 must be meant for the 1,2,3 levels when you where suposed to start over with faster/harder monsters?

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

    Nice! More game hacks and fixes please. Make Freddie walk through ladders, and climb either side, might be nice.

  • @davidwalsh390
    @davidwalsh390 3 หลายเดือนก่อน

    Can you fix Cohen's Towers? I owned it when it came out. I learned from Lemon 64 that it had a glitch at the very end with a plant that dropped that couldn't be avoided, therefore making it impossible to finish the level. I never got that far back in the day; I only got that far decades later in emulation by turning on a cheat of some sort.

  • @tommyovesen
    @tommyovesen 4 หลายเดือนก่อน +1

    Is this game inspired by Freddie Mercury from Queen? Since the title music is a Queen song ?

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

      Freddy did enjoy climbing poles, so to speak... at least with some part of his body.

  • @Jdvc-yd5tx
    @Jdvc-yd5tx 4 หลายเดือนก่อน

    I'm stuck on level 17, thankfully. Managed to work out how to do a loop using MOV, ADD, CMP and BNE, then played a level of Doom II. The monsters in Doom II terrify me, not the amount of learning I have ahead (ready Freddie) ⚛

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

    17:31 There is a compare instruction right there just begging to be changed.

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

    The copying back and forth the game does, are you sure that is not from a multi-file floppy original that has been joined together for tape loading?

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

    What a Lewd (lude) filled episode XD

  • @NomadColossus
    @NomadColossus 4 หลายเดือนก่อน +1

    Blame Canada!

  • @filevans
    @filevans 14 วันที่ผ่านมา

    where can we get this bugfix?

  • @filevans
    @filevans 14 วันที่ผ่านมา

    44:59 don't you mean 16? 16 is a working level isn't it?

  • @Aeduo
    @Aeduo 4 หลายเดือนก่อน +1

    Level 21 is the first creepypasta screen.

  • @fredriksandebert7450
    @fredriksandebert7450 4 หลายเดือนก่อน +2

    I wonder what became of the developers of this game.

    • @8_Bit
      @8_Bit  4 หลายเดือนก่อน +2

      Kris Hatlelid went on to a long career in game dev. and then more general software development.

  • @merman1974
    @merman1974 4 หลายเดือนก่อน +3

    Is the original file you are loading a "frozen" copy of the game? That could explain the extra copies of code. With most of the freezers/cartridge freezers, they take all of memory and save it. So when you reload it, it has a "block" of memory starting from just above the start of BASIC memory and then the code "unfreezes" it by copying to the right location. This can leave extra data behind. The other possibility is that they were using an early assembler/compiler that loaded blocks of memory in and then saved out the final game as a memory dump.
    You could also fix the grammar - Freddie's Revenge and Freddie's Foe both need that apostrophe. As it stands it's the revenge or the foe of multiple Freddies.
    The Zombie Freddies at level 17+ are the enemy sprites. And the music is playing the wrong thing. It's just trying to read more levels in from memory and plotting up nonsense, including in the scrolltext. The animation goes wrong because it's using the wrong offset value.

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

    Great game didn't know the c128 had a few incompatible games

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

    I that music "Don't Bring Me Down" by ELO?

    • @8_Bit
      @8_Bit  4 หลายเดือนก่อน +2

      Yes, the game has quite a few cover songs which (as far as I know) weren't licensed. People didn't seem to worry about that in the early '80s.

  • @TheHighlander71
    @TheHighlander71 4 หลายเดือนก่อน +1

    Robin, I'm not really following your two PLA commands and the explanation that you are pulling two 16 bit addresses off the stack. It seems to me that PLA pulls one byte off the stack, so two PLAs pull only one 16 bit address.

    • @8_Bit
      @8_Bit  4 หลายเดือนก่อน +6

      A RTS pulls the 16-bit return address off the stack and puts it in the Program Counter so your program can continue running from where it JSR'd to. So a RTS ReTurns from Subroutine, one level. By putting the two PLAs in first, we discard one 16-bit address, and then we call RTS, so it returns to the subroutine that called this subroutine. It goes back 2 levels instead of the normal 1 level.

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

      @@8_Bit Ah..got it, thanks

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

    wish i knew all this stuff in the 80s

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

    Very cool work and video! When will you make your own game? Thanks for sharing

    • @8_Bit
      @8_Bit  4 หลายเดือนก่อน +2

      I've made a few! Minima Reloaded, Splatform, and Frogs & Flies are some of the C64 titles I've released.

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

      @@8_Bit wow!! I didn't know! Thanks for sharing

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

      @@8_Bit and Space Karate!

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

      @@johnwatson4801 I wish I could find a copy of that!!

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

    What is the purpose of mirror addresses for the SID or any other chip on the C64? Is it intentional or just a byproduct of the hardware?
    As for Frantic Freddie, yes, this game is HARD because of how the pole/ladders work. Pretty good music, though.

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

      Typically it's cheaper to not waste chips decoding addition address lines as that is addition logic to be handled, so the chip select only looks at a specific range of address lines.

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

      @@davidmcgill1000 I'm more of a visual learner. I wonder if there's a visual explanation for what you just said. :)

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

    I have gotten to level 15 twice but my game crashed. Two diffrent tap version (one original tape). Now I have an D64 version that probably works all the way. But the game is so hard so I havent got to level 15 again. Someday :)

  • @DarkMoe
    @DarkMoe 4 หลายเดือนก่อน +1

    oh, I remember telling you about the AI for this game last year or so .. Frantic Freddy is along with Tapper and Squish 'Em what I consider my first ever games back when I was 2 years old. Will enjoy this video a lot

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

    level 23 text: looks like it's fetching level data. No idea *what* level though.

  • @pigpenpete
    @pigpenpete 4 หลายเดือนก่อน +1

    Well i'm not sure i typed it in right....

  • @csbruce
    @csbruce 4 หลายเดือนก่อน +2

    23:03 If it were to «LDX #250 : - DEX : STA $4800+0,X : STA $4800+250,X : STA $4800+500,X : STA $4800+750,X : BNE -», the STAs would actually cross a page boundary 0+244+238+232 times = 714 extra clock cycles. Storing to an extra 24 bytes with no page-boundary crossovers only takes 5*24 = 120 extra clock cycles.

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

    50:32 That's the gold and the pot.

  • @davisvoelzke8011
    @davisvoelzke8011 4 หลายเดือนก่อน +3

    Minus world

  • @timsmith2525
    @timsmith2525 4 หลายเดือนก่อน +2

    Why would someone use the mirrored addresses instead of the standard addresses?

    • @8_Bit
      @8_Bit  4 หลายเดือนก่อน +3

      I don't really know. My guesses are 1) they thought it was cool that it worked so they were showing off or 2) to obfuscate their code a little or 3) they didn't know it was a mirror and it worked so they left it

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

    .

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

    Just put a RTS at $440, huh?
    It's what it does when there's no interlude: it RTS.
    Make it RTS unconditionally. :)

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

    Forget Kris, what does Gregor want?

  • @Jdvc-yd5tx
    @Jdvc-yd5tx 4 หลายเดือนก่อน

    14:02 Why not CMP #$08 ¿ It DEC $4E=9 to 8, loads it into the accumulator, then Branch if EQual to 8? ⚛

    • @Jdvc-yd5tx
      @Jdvc-yd5tx 4 หลายเดือนก่อน

      We also have NOP on the ARM® lol. I'm gonna run some benchmarks later to compare BNE and BLE, BNE will be faster. Instead of watching the Olympics 'boxing' lol. 🤖 🥊 🤖

    • @Jdvc-yd5tx
      @Jdvc-yd5tx 4 หลายเดือนก่อน

      I ran 4 nested loops, 40×1000×1000×1000 giving a total of 40 billion iterations. I timed both twice. The timing for BLE was 54.49s and 54.41s and for BNE 52.88s and 52.93s. 'Not Equal' was ~3% faster. I expected more! 🖋

  • @w.w.7148
    @w.w.7148 4 หลายเดือนก่อน +2

    Why didn't you find the code for the level changing to switch directly to the desired level?

    • @8_Bit
      @8_Bit  4 หลายเดือนก่อน +4

      I still wanted to see each level, not just skip them entirely.

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

    In the "DEC pots" code, surely just change to "SEC RTS" or 38 60 - so when the check code is called it just returns 'level completed"? (Although my brain was screaming 'disable sprite to sprite collisions'!)

  • @emanuellandeholm5657
    @emanuellandeholm5657 4 หลายเดือนก่อน +2

    PpQET!

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

    And I thought Ninja was glitchy.

  • @harryhellerman474
    @harryhellerman474 4 หลายเดือนก่อน +1

    That was fun.

  • @michaelhill6453
    @michaelhill6453 4 หลายเดือนก่อน +1

    How did they get away with using a Queen song?

    • @bradallen8909
      @bradallen8909 3 หลายเดือนก่อน

      It was 1983.

  • @scottaw1981
    @scottaw1981 4 หลายเดือนก่อน +2

    Turns into a creepy pasta, nice

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

    Could you just change the colour as well.

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

    EVERYONE who have ever been using ANY Action Replay cartridge knows how to cheat this way...
    I had a TFC3 but it's the same concept...

    • @8_Bit
      @8_Bit  4 หลายเดือนก่อน +4

      So you're saying that I shouldn't bother showing things in videos if some people already know about it? I don't understand your point.

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

      @@8_Bit You know what I Mean... hopefully... :-)

  • @rossknowles5608
    @rossknowles5608 4 หลายเดือนก่อน +5

    Queen 8-bit tune. weird