C64 Joystick-Controlled Sprites in Assembly and BASIC

Sdílet
Vložit
  • čas přidán 31. 07. 2024
  • How to read the joystick and display and move a sprite on the Commodore 64, using BASIC and 6510 Assembly Language in Turbo Macro Pro.
    Finally, part two: • Commodore 64 Programmi...
    Download D64 here: 8bitshowandtell.com/downloads...
    To support 8-Bit Show And Tell:
    Become a patron: / 8bitshowandtell
    One-time donation: paypal.me/8BitShowAndTell
    2nd channel: / @8-bitshowandtell247
    Quick directions:
    LOAD"TMP*",8,1
    SYS 32768
    BACK ARROW L, filename: SIMPLE2
    BACK ARROW 3 to assemble, S to start
    Hit Restore to re-enter Turbo Macro Pro
    F1 to scroll up a page, F7 to scroll down
    See TMP documentation here:
    turbo.style64.org/docs/table-o...
    Index:
    0:00 Intro
    0:25 $2.99 64C Before and After
    0:56 Ancient Cracking Group Coder
    1:21 Reading the Joystick in BASIC
    5:00 Displaying Sprites in BASIC
    11:24 Moving the sprite in BASIC
    15:43 Loading and Starting Turbo Macro Pro
    16:45 The Assembly Language Version
    24:44 Runs a Bit Too Fast: Slow It Down
    26:55 We're Ignoring the 9th Bit
    30:00 THIS IS HORRIBLE
    32:07 Preview Of Next Episode
  • Věda a technologie

Komentáře • 269

  • @mshine5
    @mshine5 Před 4 lety +102

    Being a lamer never felt so right.

  •  Před 4 lety +49

    Please don't stop making lamers! I'm a huge lamer and I love your stuff!

    • @chromosundrift
      @chromosundrift Před 2 lety +6

      Lamers unite!

    • @zulucain
      @zulucain Před 2 lety +1

      @@chromosundrift Yup most of us were lamers, no internet back then and in some backwater places not even bbs. I had my C64 for years when got a hint there must be some way to code it in asm :-D

  • @mtbevins
    @mtbevins Před 4 lety +22

    Hi I am a lamer... proud member since 1982 when I got my TI/99-4A. I love sharing what I learn with others who are willing to sit and listen. I have never understood the attitude others should struggle because I did. Thank you for the great content and sharing your craft.

  • @chromosundrift
    @chromosundrift Před 2 lety +4

    Can any of you imagine if we had Robin's videos (somehow) way back in the day. Like on a VHS tape that was sent from the future in a ball of smoke and pink plasma. This would be a fast track to wizard mode. I remember as a kid, not being able to understand how the computer was responsive in the screen editor when it wasn't "running a program". Part of the fun of retro computing and the joy of discovery nowadays is to imagine the conversation between me now and my younger self who didn't have a clue.

  • @ubunturulez
    @ubunturulez Před 4 lety +26

    I have not been called a lamer in a very long time. Takes me back to high school

    • @carnright
      @carnright Před 3 lety +1

      Lamer? Try Spaz 😁I blame the movie “Meatballs” great movie and love how Spaz
      Helped in the competition 😁

  • @RetroRelixRestorer
    @RetroRelixRestorer Před 4 lety +34

    C64 assembly language programming is difficult - at first, but your simple explanation is excellent; so hope it'll bring more people to this rewarding hobby. 👍

    • @proxy1035
      @proxy1035 Před 4 lety

      you mean 6502 assembly?
      yea it's hard.,.. i think mostly because of having so few registers to work with so most instructions are gonna be about loading and storing

    • @NeilRoy
      @NeilRoy Před 4 lety +2

      I honestly found 6502/6510 assembly to be super easy and fun to use.

    • @proxy1035
      @proxy1035 Před 4 lety

      @@NeilRoy I'm one of those people that are used to many registers... the less registers i have to work with the more time i need to come up with a solution.
      reason why i like the Z80... the only thing i don#t like about it is that it doesn't have some kind of offset instructions with registers. like just a simple "LD A, (**+B)" instruction would make it a million times better to work with.

    • @NeilRoy
      @NeilRoy Před 4 lety

      @@proxy1035 You're comparing newer systems to older ones. The C64 doesn't have many because it doesn't need many. But I can see where you're coming from. I am the opposite, I haven't done much modern Assembly (I mainly work with C), but when I have looked at it, I have a more difficult time wrapping my brain around having so many more registers. :)

    • @proxy1035
      @proxy1035 Před 4 lety

      @@NeilRoy not sure what you mean with modern assembly, i assume x86? because i don't know modern systems that use a Z80... maybe I miss worded that I meant that I somewhat know Z80 Assembly and some custom made 8 bit CPU assembly.
      And that I would love to learn how to write my own OS like DOS, KERNAL, ParaDOS, etc for any variable cpu... (6502, Z80, custom, etc) I mean there has to be documentation and stuff..

  • @10MARC
    @10MARC Před 4 lety +18

    That is so great comparing the BASIC. And assembly code! I am still bewildered by assembly, but now I am slightly less bewildered. Great job, Robin, as always.

  • @FordGranada75
    @FordGranada75 Před 4 lety +3

    I once learnt all the basics of Commodore Basic and 6502 assembly language the not lame hard way, but in 30 years passed since then I forgot a lot respectively this kind of knowledge moved backwards in my brain to passive knowledge. I'm happy to get it refreshed this way!

  • @jhfoleiss
    @jhfoleiss Před 4 lety +3

    I absolutely love how there is no memory protection in these old machines. It makes you feel like you really own your computer!

    • @desertfish74
      @desertfish74 Před 3 lety

      This continued on to the Amiga and allowed for a very nimble lightweight operating system. It was easily crashed thought if your program misbehaved but hey why would it? 😝

  • @MichaelBLive
    @MichaelBLive Před 4 lety +19

    Happy to be lame. Good stuff. I remember getting a sprite to move by joystick on my 128. I was hooked. Been programming ever since. I do think to be successful you need to learn to read and understand docs. But mentoring makes us all better.

  • @stevejennings3960
    @stevejennings3960 Před 4 lety +50

    Love these videos... truly mesmerising watching these, wish I knew all this when I was a kid with my c64
    #LamerForever

    • @osheal
      @osheal Před 2 lety +2

      me too lol 6502.... an amazing feeling of nostalgia

    • @BillAnt
      @BillAnt Před rokem

      #LAMER !! lol (jk) Of course it's fun and educational, fuq that other dude!

  • @johnsobota6234
    @johnsobota6234 Před 5 měsíci +1

    Your teaching style is fantastically clear. Great video.

  • @benanderson89
    @benanderson89 Před 4 lety +10

    I've just bought the new C64 "Maxi" and I've been learning assembler with Turbo Macro Pro. Videos like this have been invaluable for me. Hopefully sometime this year I can write my own game in assembler!
    Keep the videos coming, they're brilliant!
    Cheers :)

  • @nubyoz
    @nubyoz Před rokem +1

    Brilliant. Really easy. Brings back memories. Please put some "I'm a lamer" T-shirts in your store, with some appropriate assembler ... could be a hit with us.

  • @15743_Hertz
    @15743_Hertz Před 4 lety +20

    Daniel's attitude is one that I encountered in the eighties a lot when learning UNIX: "It's in the manual, look it up." After going through a lot of hours learning the system, whenever a new person asked a question, I'd usually answer it. Often, when the new people had something that they learned and could teach me, my knowledge grew as well. By pooling our resources and sharing whatever bits of information we had, the process went a lot quicker and smoother. Not a lot of us "learned the machine at the bare metal chassis-level" and that worked out fine.

    • @StefanHolmes
      @StefanHolmes Před 4 lety +5

      15743 Hertz reading the manual will usually give you a full understanding of a system. If I tell you the solution to the precise problem you’ve asked me about, you now know how to solve your problem, but you might not understand the problem or the solution, so you’ve learned nothing.
      I’ll still tell you the solution, because I’m not a jerk, but I’ll bore you with all the details as well.

    • @15743_Hertz
      @15743_Hertz Před 4 lety +4

      @@StefanHolmes The problem isn't usually that you need a full understanding of the UNIX command to solve a problem. In the UNIX days, the manual would give you an entire book for each command that you're looking for. Nowadays with Linux and BSD, you get both a wall of text and a quick reference guide.
      Obviously, if you just need to know which command switch is needed to format text output in the desired fashion, then a colleague can give that to you with no "damage done" to your understanding. But if you're learning to parse a pipe of characters from scratch using a lexical parser, the manual is a good place to start and then have an associate give you an example to help you along. My colleagues were "too busy" to even do that and would refer me to the manual every time.
      It's two different camps in my mind, but our team did get a lot more done and I believe that we had a better relationship on my team. A big problem could be broken down to small parts that each member understood and a solution arrived at much more quickly.
      As a bonus, whenever a member left the team, we didn't lose the brain bank that kept the project going.

    • @timsmith2525
      @timsmith2525 Před 4 lety +1

      @@StefanHolmes Reading the manual is lame; read the source code because the manual might be wrong. ;-) Actually, I'm a minimalist, so I only want to learn enough to accomplish my goal.

    • @OpenKeith
      @OpenKeith Před 4 lety +1

      @@timsmith2525 the source code might also be wrong, you have to read the compiled binary as well

    • @Mostlyharmless1985
      @Mostlyharmless1985 Před 4 lety +4

      @@StefanHolmes The only thing that keeps us the baddest and best apes on this planet is the ability to teach and learn from each other. Hiding behind a simple RTFM is elitism, unless your admonishment is the exact page number of the manual where it is addressed.

  • @dannejendinger1847
    @dannejendinger1847 Před 3 lety +1

    Thanks for the tip about NMI that jumps back to TMP!! Pure gold! 😃👌🏻

  • @Monotoba
    @Monotoba Před 2 lety +2

    I realize I'm late to the party but: Daniel is right in that we all have to learn for ourselves. But we cant learn if we have no access to the information. Daniel didn't learn for himself without someone somewhere writing books, doing lectures, demonstrating, or presenting the information to him in some form! You are no different than a lecturer at a university except, you are far easier to listen to :-) I hope you continue to provide these videos for old timers like me who cut our teeth on 8-bit machines. I learn a great deal from your videos and I am looking forward to relearning 6502/10 assembly and 8-bit game programming. Thank you for all you do for the community!

  • @mrBlagstock
    @mrBlagstock Před rokem

    Thank you so much for sharing your knowledge. Takes me right back to 1984; such an exciting time.

  • @NeilRoy
    @NeilRoy Před 4 lety +5

    Fun video. It's been a couple decades since I last programmed my C64. I owned both the breadbox and the C64c, I liked the C version, nice design (and as you mentioned in the past, bug fixes). C64 (6510) machine language was ALWAYS my favourite! It was SO much fun to program and I highly recommend anyone learn it, even if the machine is old, you can get the basics of how ML works. I always loved the fact that the C64 had additional commands in machine language that you don't have in BASIC, like locating the cursor etc, though once I learned them, I would do a couple pokes and a SYS call in a GOSUB function to locate the cursor in BASIC. Another trick I used in BASIC to quickly create a sprite, was to do a couple pokes to relocate where the PRINT command prints to (this is VERY VERY powerful!!!) so instead of printing on screen, it prints somewhere in memory, as you pointed out, you can relocate screen memory anywhere. Well, you relocate where the print command prints, then you print out a string of characters which represent the values you wish to go into that memory location and you can literally PRINT a sprite in one shot! You print to memory, all the values for a sprite, and poof, it is there, no reading and poking data from a loop. You can also use this trick to print out sound effects too! Just point the print command to the SID chip, the PRINT the values (in order of course) you want for any sound effect and you will get a sound effect with a single print, without a pile of pokes or data reading. I used to have a lot of fun with that trick. It speeds up BASIC in that respect.

    • @bierundkippen720
      @bierundkippen720 Před 4 lety

      Wow, that’s interesting. It’s good because PRINT is so fast, right? How do you set the value of the PRINT pointer in memory?

    • @NeilRoy
      @NeilRoy Před 4 lety +2

      @@bierundkippen720 For the SID chip, in my notes... the paper now turning yellow, I have: POKE209,0:POKE210,212:POKE211,0:?"@@@@@@@@@@@@@@@@@@@@@@@"; (that's 25 @'s)
      The above code will clear the SID chip (sound chip) with that print. The first few pokes redirect the print statement to print to the start of the SID chip memory. Now Each location you see an @ is in SID. You can change those @'s which represent a zero on the C64 to any other character which represents the number you would normally poke into the SID chip and you can literally PRINT a sound out this way. You can also use this to print out anything else like a SPRITE could be created with a single print. This is far faster than a loop which has to read each value in then poke it one at a time. Think of this like a multipoke statement that pokes a string of values all at once. It's not only faster, it's virtually instant in comparison.
      Now what numbers to put into those pokes to redirect it, I am not sure. I assume 209 is probably the low byte of the address and 210 is probably the highbyte with 211 probably a cleared register or whatever, I honestly forget, it's been about three decades for me. LOL

    • @bierundkippen720
      @bierundkippen720 Před 4 lety +1

      @@NeilRoy Thanks, dude.

  • @darrenjkendall
    @darrenjkendall Před 3 lety

    I could watch you programming for hour's you have such an easy way of demonstrating which makes understanding much easier for me. I suppose now I need to get my 64 out dust it down check it powers on without smoking then follow more of your earlier demonstrations, thanks Robin, greatly appreciate your channel.

  • @joakimbrewitz2393
    @joakimbrewitz2393 Před rokem

    Thank you for showing this. I use your videos hours after hours. It's a perfect way to exercise the brain. Keep up the good work!!!

  • @tomhekker
    @tomhekker Před 4 lety +4

    Thanks for creating more lamers!
    Back in the day I had to learn all of this from textfiles from a BBS, this really brings me back.

  • @almurray2000
    @almurray2000 Před 3 lety

    TLDR; Thankyou, Robin.
    I've been a fan and subscriber for a couple of years now I believe and always look forward to your videos.
    Recently I decided to go on eBay and buy a C64 as this was the first computer I ever had in the mid-80's and I wanted the true retro experience. When it arrived I wanted to see my 6 year old son's reaction to it. I remember my own stunned amazement at his age when I first encountered it, but here was a child of the modern age, used to modern laptops, tablets and games consoles.
    I used the BASIC code in this video and... He thought it was the greatest thing ever!
    We even made some modifications so that we could change the background/paper colour and the sprite colour - he loved typing in the code and then seeing the results.
    We've even started to make a very simple game by assigning a key that makes the border, paper and sprite the same colour and then try to move the sprite into a specific location before changing the paper colour to reveal the location and see how close you got to it.
    This has brought us a lot of joy today. To think after such a long time I'm now teaching (with your help) my boy to code the same computer I started on at his age and that he loves it too. Wow. Thankyou, Robin.

    • @almurray2000
      @almurray2000 Před 3 lety

      Finished my first real (and very BASIC if you'll excuse the pun) game! I wonder if my boy will be as excited to type the listing for this game into the actual C64 as I was czcams.com/video/0zCm4clrHKU/video.html

  • @garymetheringham4990
    @garymetheringham4990 Před 4 lety +14

    Great video love watching, its great how you explain this especially doing in both basic and assembly. but please don't worry about the length of the video i would much sooner have a long video than a rushed one.

    • @8_Bit
      @8_Bit  Před 4 lety +5

      I would have made a longer video but it seems CZcams punishes people for not posting a video often enough by lowering ranking in searches, and it had already been 3 weeks since my last one, and I have a trip coming up this weekend... so some compromises were made :) I'll go even deeper with the next video.

  • @tonym2464
    @tonym2464 Před 4 lety +4

    I don't know how popular this video topic is compared to others you've made. But this is the one I've been waiting for and I was not disappointed. Great work!

  • @crookedmouth1971
    @crookedmouth1971 Před rokem

    Fantastic video. Your very good at getting these fairly complex ideas across in a way that is understandable!

  • @TorstenSeemann
    @TorstenSeemann Před 4 lety +1

    Another great video. Showing the BASIC version then the ASM is a great teaching method. Nice job!

  • @pkpkpk20323
    @pkpkpk20323 Před 9 měsíci

    After 4 years from the creation your video it is still usefull and interesting - thank you

  • @ralphm786
    @ralphm786 Před 4 lety

    Hi Robin, thanks for this video. I found your explanations and the comparison with the BASIC code very helpful in understanding the Assembly. Looking forward to more Assembly language programming videos from you ;-)

  • @cpu_UP
    @cpu_UP Před 4 lety +1

    Thanks for the nostalgia video. I did a very similar program (in assembler on a C64 without all the tools you can use now) in late 80s. I was very proud of the result. Bravo.

  • @jasontahaney285
    @jasontahaney285 Před 3 lety

    Thanks so much for the tutorial! Very easy to follow and truly enjoyed it. Looking forward to the next video on some of the more advanced methods of capturing joystick inputs in assembly.

  • @neilloughran4437
    @neilloughran4437 Před 4 lety

    Haha! Fantastic video!! I did exactly the same BASIC program back in 1983/84 and always wondered how quickly a machine code version would run. I recall going into computer shops back then and writing a program in BASIC that would show many sprites with different colours moving around the screen... and I thought I was being pretty clever back then... clearly I wasn't...
    I am kinda surprised how slow it is though once you have to match the raster scan... very interesting all the same... you're doing a great job for us guys who used a C64 back in the day but never got completely comfortable with assembler.. (I only did a small handful of programs outside of BASIC)...

  • @marcteufel8348
    @marcteufel8348 Před 3 lety +2

    Sharing knowledge is never wrong! Please keep on producing content and videos! I enjoy all of them and learn from them! (By the way, in the 90s I also was a coder and graphician in a famous demo group called Reflex ... so I am a lamer, yeahh!!!!).

  • @nev6502
    @nev6502 Před 3 lety

    Please continue this series! This was immensely helpful to me! Thank you

  • @Tylonfoxx
    @Tylonfoxx Před 4 lety +8

    Thanks for another great video to help this lamer to understand the coolest computer ever! :D
    And remember kids: all pros start out as lamers/noobs - we all have to start somewhere :)

  • @LadyNicola
    @LadyNicola Před 3 lety

    I found a tutorial for making demos on my A500. Didn't even know the C64 had demos😂😂😂 Awesome.

  • @TuffyDK
    @TuffyDK Před 3 lety

    I love your TMP programming for C64 - Keep up the good work :-)

  • @eliaframsgimp9618
    @eliaframsgimp9618 Před 4 lety +1

    Great video. Brought back memories. I think every c64 programmer at one point did these steps

  • @iridium130m
    @iridium130m Před 4 lety

    So very cool, where were you and youtube in the 80's when i wanted to learn this? Thanks to you i've broken down and bought the ultimate64 and ancillary pieces to get a "real" commodore again since my parents chucked my c128 years ago :(
    Looking forward to moar TMP tutorials hopefully soon!

  • @75slaine
    @75slaine Před 4 lety

    Fascinating as always Robin 👍

  • @PhilWaller
    @PhilWaller Před 3 lety

    Fantastic, thanks for taking the time to teach us. Takes me back ;-)

  • @TheUtuber999
    @TheUtuber999 Před rokem

    I'm so jealous at your cheap C-64C find! I was a late bloomer and only got my first computer- a bread bin C-64 in 85. Then upgraded to the C-128 "flat" the next year. Switched to an XT clone in 89, but then got into a major retro phase around 2007-2008 and bought many different Commodore computers on eBay - some I owned previously, but many others I didn't, like the A-500 and A-1200. Installed a Compact Flash drive in the A-1200, which really made it scream! These days I'm more of a minimalist, so I'm happy to run Vice on my NUC. Cheers!

  • @markushavers2283
    @markushavers2283 Před 4 lety

    Don´t let people tell you that you do a bad thing. You´re doing a great job. I tryed to code the C64 in assembler but i did not understand the "Hex and Bit - Math" at that time.

  • @metalheadmalta
    @metalheadmalta Před rokem

    Superb lesson.... very well explained!

  • @googleboughtmee
    @googleboughtmee Před 4 lety

    Fantastic vid. I'm all caught up and ready for the next one in this series :)

  • @ScottHiland
    @ScottHiland Před 4 lety

    Fun channel, sir, thanks for bringing back the great memories! Also, Jim Brain is good people.

  • @sanderheijselaar5687
    @sanderheijselaar5687 Před 4 lety +1

    I think you're doing a really good job. Just explaining how pieces of code work with the hardware. Excellent. If you where constantly fixing other peoples issues, instead of letting them expierence wat it means to indentify a problem and form a solution, I would call those people lamers. But sharing knowledge and other people learning from it is great! Keep up with the excellent content, I intent to stay here for a while and learn as much as I can.

  • @InTheRedCornerBFC
    @InTheRedCornerBFC Před 2 lety

    I'm a new subscriber and find your videos so interesting. Keep up the good work pal.

    • @8_Bit
      @8_Bit  Před 2 lety

      Welcome, and thanks!

  • @carnright
    @carnright Před 3 lety

    Love this episode! Look forward to the multi-sprite episode 🙂

  • @henrikorpela2818
    @henrikorpela2818 Před 2 lety

    Thank you, very helpful! I am cross-assembling and was having trouble with running the thing. It turned out I was missing SYS call. Unrelated to this video, just wanted to point that out.
    Finally got something moving, I am happy now. 😀

  • @robertlock5501
    @robertlock5501 Před rokem

    Very nicely presented and organized video
    ---a C64 N00b LaMeR

  • @MichaelDoornbos
    @MichaelDoornbos Před 3 lety

    I'm so ready for part two of this ;-)

  • @gabor222
    @gabor222 Před rokem

    I wish I could learn this when I was a kid and all I had were some BASIC books but nothing about assembly. Assembly was like magic for me :D Later in school the usual language was Turbo Pascal (it was already outdated at that time), only a few teachers realized that it is better to teach C+. In the technical school our class was unlucky so we had a teacher who was teaching assembly (PLC programming) without really understanding it.

  • @colwarsstudiobrickfilmandm8580

    Here from reddit i am the guy who you replied to about the sprite joystick!

  • @rkolev
    @rkolev Před 4 lety

    Just another great video.👏

  • @JeffTiberend
    @JeffTiberend Před rokem

    In the 80's I wrote a program to use a joystick as an etch-a-sketch on my Commodore 64.

  • @8-bitcentral31
    @8-bitcentral31 Před 3 lety

    I wrote this on my commodore 64 and found that it worked much better if you change lines 50, 60, 70, 80 so that they were X/y=X/y+/-4 rather than 1 as it makes the square move 4 times the speed. But this is a great vid thanks!

  • @moagnor
    @moagnor Před 4 lety +15

    Its been like 30 years since i programmed my last demo, and all the adresses, VIC-registers and techniques comes right back to me as I look at your code!
    Always had the urge to program a little game on the C64, maybe 2019 is the year to start :)
    When I had more than one sprite I would make a subrutine that took spritnumber, spritex, sprity as input/"arguments" :)
    One question: When you check for raster #FF, wouldn't this trigger twice because the machine language is so fast that it comes around to that part of the code before the raster comes to the next line?
    And last, yes, we used to run around and call each other lamers back in the 80s, but there's a brave new world now, with information sharing, open source, and the internet. Calling someone a lamer in 2019 is pretty... eh... lame.... ;)

    • @8_Bit
      @8_Bit  Před 4 lety +1

      To finally answer your question about the LDA #$FF:CMP $D012, yes, it's running twice per frame so the sprite is moving at 2 pixels per frame rather than one. The goal was just to slow down the sprite movement, so I'm okay with it, but yes, a bit more code would be needed if you need your code to only run once per frame.

  • @esshahn
    @esshahn Před 4 lety

    Excellent as always, thanks!

  • @rga218
    @rga218 Před 4 lety

    Thank you! This video is fascinating.

  • @code_explorations
    @code_explorations Před 3 lety

    I loved this. Thank you.

  • @sickmademusic4life783
    @sickmademusic4life783 Před 6 měsíci

    Thankful for this video. 👍🏼

  • @chinosts
    @chinosts Před 4 lety +1

    Awesome post! Thanks so much

  • @dru1432
    @dru1432 Před 4 lety

    After a long exhausting day this video is the antidote. :)

  • @OTuit
    @OTuit Před 4 lety +3

    I'll have to stop watching these else I'll have to buy a C64 again!

    • @baardbi
      @baardbi Před 4 lety

      Go for it. I have four (two 64C and two breadbins). Programming on the Commodore 64 is the most rewarding hobby I've had in years.

  • @Sultaneous
    @Sultaneous Před 4 lety

    Simply awesome! Us lamers excitedly await episode 2.

  • @RussellRiker
    @RussellRiker Před 4 lety +5

    Thanks for making me lamer. I think I'm better off because of my lamerness. As always, thanks for making these videos.
    Stay Retro my Friends

  • @eugenetswong
    @eugenetswong Před 4 lety +1

    Thank you for sharing this. I am interested in programming my own 8-bit game 1 day.

  • @madmartigan1498
    @madmartigan1498 Před 3 lety

    Thank you, this was great, I learn da lot!

  • @harag9
    @harag9 Před 2 lety

    WOW that game brings back memories (gunship). Thanks for this - QR codes before they were even QR codes. What is this sorcery! :)

  • @MurderMostFowl
    @MurderMostFowl Před 4 lety

    I have had nothing but truly friendly people in the C=64 demo and retro programming community. Even hard core demo scene will answer pretty much any question when you show you’re able to understand the answer

  • @bald_engineer
    @bald_engineer Před 3 lety

    I'm very excited to grow my lamer status! Thank you Robin.

  • @MarvelousLXVII
    @MarvelousLXVII Před 3 lety

    Very cool stuff!

  • @niedowidek
    @niedowidek Před 4 lety

    You are genius to show memory content by drawing sprite ! :-)

  • @baardbi
    @baardbi Před 4 lety +1

    I LOVE being a lamer. Especially with this episode. I've been waiting for a video like this :) :) :) Awesome!!!

  • @PregnantSausage
    @PregnantSausage Před 4 lety +2

    lol, that now-deleted Daniel comment. Seems he misses the point that people like us, who grew up with the C64 but didn't have the books, but still had the desire, NEED rare people like you to help demystify and show us the beauty of what the low-level C64 truly could do. You are filling my childhood void.

    • @bierundkippen720
      @bierundkippen720 Před 4 lety +1

      Same here! Back in the day, I would have very much liked to have a book about assembly language.

  • @mechaform
    @mechaform Před 3 lety

    It’s like going back to high school and becoming a Minor Niner again. Robin’s Retro #LamerNation

  • @AccCam
    @AccCam Před 2 lety

    yeah GUNSHIP! best C64 game. Played it for 100's hours on my C64C :D

  • @winfr34k
    @winfr34k Před 4 lety +1

    Great video for a great subject! Looking forward to trying this on my C64C :D
    I don't know why you are a "lamer" or "creating lamers" by sharing/taking knowledge in a better form so that the learner can digest them easier. Just because we have the immense advantage of being able to learn faster?
    I thought I've seen a similar program like your BASIC one in the C64 manual, but whizzing through it I couldn't find it anymore. Great explanation and the mapping BASIC ASM makes this really easy to understand.

  • @Shmbler
    @Shmbler Před 4 lety +3

    That Gunship box looks pristine. I'd love to see the rest of your collectíon ;-)

    • @8_Bit
      @8_Bit  Před 4 lety +1

      I'll try to make some videos about my collection in the near-ish future, thanks.

  • @meneerjansen00
    @meneerjansen00 Před 4 lety

    Thanks for the excellent tutorial from which I learned a lot. :-)

  • @dionjennings2379
    @dionjennings2379 Před 2 lety +2

    Hi Robin, I just want to tell you, after that comment from the "ancient coder group" individual, please keep doing what you're doing.
    I used to write BASIC and Assembly back in the 80's on my 64 and forgot most of it when I moved on in the 90's. But as the machine is gaining ground again, I find I want to get back to my programming. YOUR SERIES helps so much with that.
    Assembly is already a difficult language to learn and you break it down and simplify it for our understanding. So he calls this a process of making lamers. What unmitigated hogwash. So what's the point of teachers teaching in school, or someone teaching a trade like welding, car repair, sewing, cooking, etc.? Are all those learners "lamers"??? He seems to belong to that subset of programmers who fancy themselves as deities because they know how to code. Well my friend, you are sharing the knowledge, which is always a good thing. And please take no notice of those who are upset because the "magician's tricks" are being revealed. The fact that you have 41.7k+ subscribers means you have something to offer of value. So please, continue along your path. We appreciate it very much.
    Happy to be a "lamer"
    #LamerForever
    #LamersUnite

  • @curiousottman
    @curiousottman Před 4 lety

    I type in most of Robin’s sample code and try it out. Very cool.

  • @furroy
    @furroy Před 4 lety

    can't wait to see the full program with the colored letters

  • @giuseppeazzarello8426
    @giuseppeazzarello8426 Před 3 lety

    awesome videos,

  • @winfr34k
    @winfr34k Před 4 lety +2

    Regarding the video length: I personally think that splitting this one in two halves was a good idea. It really runs on long enough and gives you a lot to play with while you are waiting for the second part ;-)

  • @rolandgerard6064
    @rolandgerard6064 Před 3 lety

    Great tutorial... thx

  • @MrRobbyvent
    @MrRobbyvent Před 4 lety

    I'm a survivor from the old days and I'm confident to say that the secrets of the coding gurus are still safe after watching this video. So the "ancient cracking group coder" can sleep in peace tonight!

  • @The.Doctor.Venkman
    @The.Doctor.Venkman Před 4 lety +3

    Hi Robin, thanks for what you do. I appreciate it greatly. Don't let the mentally ill get you down. I know they can't help it, but they still pee me off and I get fed up with having to put up with them. Been like that since I started working ;-)

    • @keithjonas3257
      @keithjonas3257 Před 4 lety +1

      Very much agree. Robin, play these mentally ill idiots like the last 5 minutes of a football game where your way ahead. Give them a 5 yard buffer, and let the stadium boooo them into the locker room.

  • @axellarsen2208
    @axellarsen2208 Před 3 lety

    I hope to see the next episode soon as well

  • @TrollingAround
    @TrollingAround Před 4 lety +1

    For the first listing:
    25 B=1:V=PEEK(56320)
    40 PRINT -((V AND B)=B);
    45 B=B+B
    Those double 2^X are killing me.. ;-)

  • @PlayBASIC-Developer
    @PlayBASIC-Developer Před 4 lety +1

    I so miss the old days of hitting the hardware directly..

  • @briancannard7335
    @briancannard7335 Před 2 lety

    This is actually how I started programming on a Chinese Famiclone called Subor in the 1990s.

  • @AJB2K3
    @AJB2K3 Před rokem

    That is surprisingly interesting

  • @christianscheller638
    @christianscheller638 Před 4 lety

    Thank you!

  • @jack002tuber
    @jack002tuber Před 4 lety +1

    Very cool video. I love it. I wish I had a joystick for my vice emulator.

    • @8_Bit
      @8_Bit  Před 4 lety +1

      Thanks. You can configure VICE to map your keyboard to the joystick. Dig around in the config.

  • @3DPDK
    @3DPDK Před 4 lety +1

    Just re-watching some of my favorite videos: On that "page two" sprite map the counter is memory locations 160 - 162 _"Value of TI variable, time of day, increased by 1 every 1/60 second. Values: $000000-$4F19FF, 0-518399 (on PAL machines)"_ Without looking it up or using a programmer's calculator, I'm pretty sure it takes 18 bits to break 24 hours into 1/60 sec.

  • @GeminusNr1
    @GeminusNr1 Před 3 lety

    It's also interesting to fill the complete Screen with sprites. And i mean the complete screen. The inner within the outer border.

  • @BluesM18A1
    @BluesM18A1 Před 3 lety

    After reading through the official programmer's guide for C64, these videos look like a fun way to learn more about how to use the hardware. Guess I'm a lamer since I was taught BASIC by my dad rather than on my own lol.

  • @ChristmasEve777
    @ChristmasEve777 Před 4 lety +1

    Back then, your hack to just inc or dec 53248+16 for the high bit of the first sprite was actually quite normal. It would have been the accepted method. With such limited processor speed and memory, hacks were preferable on the C64, especially for longer programs/games. If you're only using one sprite, who the heck cares if you're messing with the high bit of the other 7 sprites' x positions :)