C64 Joystick-Controlled Sprites in Assembly and BASIC

Поділитися
Вставка
  • Опубліковано 20 лип 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
  • Наука та технологія

КОМЕНТАРІ • 268

  •  4 роки тому +49

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

    • @chromosundrift
      @chromosundrift 2 роки тому +6

      Lamers unite!

    • @zulucain
      @zulucain 2 роки тому +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

  • @mshine5
    @mshine5 4 роки тому +102

    Being a lamer never felt so right.

  • @mtbevins
    @mtbevins 4 роки тому +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 2 роки тому +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 4 роки тому +26

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

    • @carnright
      @carnright 3 роки тому +1

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

  • @MichaelBLive
    @MichaelBLive 4 роки тому +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.

  • @15743_Hertz
    @15743_Hertz 4 роки тому +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 4 роки тому +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 4 роки тому +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 4 роки тому +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 4 роки тому +1

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

    • @Mostlyharmless1985
      @Mostlyharmless1985 4 роки тому +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.

  • @RetroRelixRestorer
    @RetroRelixRestorer 4 роки тому +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 4 роки тому

      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 4 роки тому +2

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

    • @proxy1035
      @proxy1035 4 роки тому

      @@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 4 роки тому

      @@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 4 роки тому

      @@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 4 роки тому +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.

  • @jhfoleiss
    @jhfoleiss 4 роки тому +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 3 роки тому

      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? 😝

  • @FordGranada75
    @FordGranada75 4 роки тому +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!

  • @stevejennings3960
    @stevejennings3960 4 роки тому +50

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

    • @osheal
      @osheal 2 роки тому +2

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

    • @BillAnt
      @BillAnt 11 місяців тому

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

  • @benanderson89
    @benanderson89 4 роки тому +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 :)

  • @Monotoba
    @Monotoba 2 роки тому +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!

  • @nubyoz
    @nubyoz Рік тому +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.

  • @dannejendinger1847
    @dannejendinger1847 3 роки тому +1

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

  • @NeilRoy
    @NeilRoy 4 роки тому +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 4 роки тому

      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 4 роки тому +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 4 роки тому +1

      @@NeilRoy Thanks, dude.

  • @tomhekker
    @tomhekker 4 роки тому +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.

  • @tonym2464
    @tonym2464 4 роки тому +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!

  • @johnsobota6234
    @johnsobota6234 4 місяці тому +1

    Your teaching style is fantastically clear. Great video.

  • @almurray2000
    @almurray2000 3 роки тому

    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 2 роки тому

      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 ua-cam.com/video/0zCm4clrHKU/v-deo.html

  • @Tylonfoxx
    @Tylonfoxx 4 роки тому +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 :)

  • @garymetheringham4990
    @garymetheringham4990 4 роки тому +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  4 роки тому +5

      I would have made a longer video but it seems UA-cam 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.

  • @darrenjkendall
    @darrenjkendall 3 роки тому

    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.

  • @moagnor
    @moagnor 4 роки тому +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  4 роки тому +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.

  • @mrBlagstock
    @mrBlagstock Рік тому

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

  • @joakimbrewitz2393
    @joakimbrewitz2393 Рік тому

    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!!!

  • @TheUtuber999
    @TheUtuber999 Рік тому

    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!

  • @cpu_UP
    @cpu_UP 4 роки тому +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.

  • @marcteufel8348
    @marcteufel8348 3 роки тому +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!!!!).

  • @crookedmouth1971
    @crookedmouth1971 Рік тому

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

  • @neilloughran4437
    @neilloughran4437 4 роки тому

    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)...

  • @TorstenSeemann
    @TorstenSeemann 4 роки тому +1

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

  • @dionjennings2379
    @dionjennings2379 2 роки тому +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

  • @ralphm786
    @ralphm786 4 роки тому

    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 ;-)

  • @jasontahaney285
    @jasontahaney285 3 роки тому

    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.

  • @iridium130m
    @iridium130m 4 роки тому

    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!

  • @eliaframsgimp9618
    @eliaframsgimp9618 4 роки тому +1

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

  • @nev6502
    @nev6502 3 роки тому

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

  • @googleboughtmee
    @googleboughtmee 4 роки тому

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

  • @PregnantSausage
    @PregnantSausage 4 роки тому +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 4 роки тому +1

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

  • @eugenetswong
    @eugenetswong 4 роки тому +1

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

  • @RussellRiker
    @RussellRiker 4 роки тому +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

  • @gabor222
    @gabor222 Рік тому

    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.

  • @markushavers2283
    @markushavers2283 4 роки тому

    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.

  • @TuffyDK
    @TuffyDK 3 роки тому

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

  • @MurderMostFowl
    @MurderMostFowl 4 роки тому

    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

  • @OTuit
    @OTuit 4 роки тому +3

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

    • @baardbi
      @baardbi 4 роки тому

      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.

  • @carnright
    @carnright 3 роки тому

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

  • @LadyNicola
    @LadyNicola 3 роки тому

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

  • @ScottHiland
    @ScottHiland 4 роки тому

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

  • @pkpkpk20323
    @pkpkpk20323 9 місяців тому

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

  • @colwarsstudiobrickfilmandm8580
    @colwarsstudiobrickfilmandm8580 3 роки тому

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

  • @75slaine
    @75slaine 4 роки тому

    Fascinating as always Robin 👍

  • @PhilWaller
    @PhilWaller 3 роки тому

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

  • @JeffTiberend
    @JeffTiberend Рік тому

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

  • @metalheadmalta
    @metalheadmalta Рік тому

    Superb lesson.... very well explained!

  • @MichaelDoornbos
    @MichaelDoornbos 3 роки тому

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

  • @InTheRedCornerBFC
    @InTheRedCornerBFC 2 роки тому

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

    • @8_Bit
      @8_Bit  2 роки тому

      Welcome, and thanks!

  • @henrikorpela2818
    @henrikorpela2818 2 роки тому

    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. 😀

  • @sanderheijselaar5687
    @sanderheijselaar5687 4 роки тому +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.

  • @winfr34k
    @winfr34k 4 роки тому +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 ;-)

  • @3DPDK
    @3DPDK 4 роки тому +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.

  • @Shmbler
    @Shmbler 4 роки тому +3

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

    • @8_Bit
      @8_Bit  4 роки тому +1

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

  • @8-bitcentral31
    @8-bitcentral31 3 роки тому

    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!

  • @dru1432
    @dru1432 4 роки тому

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

  • @ChristmasEve777
    @ChristmasEve777 4 роки тому +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 :)

  • @code_explorations
    @code_explorations 3 роки тому

    I loved this. Thank you.

  • @Sultaneous
    @Sultaneous 4 роки тому

    Simply awesome! Us lamers excitedly await episode 2.

  • @winfr34k
    @winfr34k 4 роки тому +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.

  • @rga218
    @rga218 4 роки тому

    Thank you! This video is fascinating.

  • @robertlock5501
    @robertlock5501 Рік тому

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

  • @harag9
    @harag9 2 роки тому

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

  • @mechaform
    @mechaform 3 роки тому

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

  • @rkolev
    @rkolev 4 роки тому

    Just another great video.👏

  • @Sultaneous
    @Sultaneous 4 роки тому +3

    Excuse my lameness, but I thought t this might help viewers visualize the joystick inputs easier:
    10 PRINT(NOT(PEEK(56320)))+128:GOTO10
    It will produce zero-based values instead of relative to 127, for visualization purposes. (The bits are inverted, plus the high bit which isn't used).
    Notice the brackets around the NOT operator - these are required because NOT has no precedence, so the following is not equivalent:
    ?NOT(127)+128 < does not equal> ?(NOT(127))+128

  • @esshahn
    @esshahn 4 роки тому

    Excellent as always, thanks!

  • @TrollingAround
    @TrollingAround 4 роки тому +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.. ;-)

  • @madmartigan1498
    @madmartigan1498 3 роки тому

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

  • @niedowidek
    @niedowidek 4 роки тому

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

  • @baardbi
    @baardbi 4 роки тому +1

    Can you please do another sprite / joystick video. I just love this stuff!

  • @baardbi
    @baardbi 4 роки тому +1

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

  • @sickmademusic4life783
    @sickmademusic4life783 6 місяців тому

    Thankful for this video. 👍🏼

  • @chinosts
    @chinosts 4 роки тому +1

    Awesome post! Thanks so much

  • @The.Doctor.Venkman
    @The.Doctor.Venkman 4 роки тому +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 4 роки тому +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.

  • @MrRobbyvent
    @MrRobbyvent 4 роки тому

    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!

  • @larrywilliams8010
    @larrywilliams8010 4 роки тому

    Daniel reminds me of so-called experts who act like helping is beneath them, but actually have no idea what the answer is. I do agree that referring to the manual is a good way to self-train, but a real education doesn't come from someone who's only answer is RTFM.
    Keep the videos coming, good sir, and thank you for sharing your knowledge with others

  • @MarvelousLXVII
    @MarvelousLXVII 3 роки тому

    Very cool stuff!

  • @BluesM18A1
    @BluesM18A1 3 роки тому

    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.

  • @fitfogey
    @fitfogey 4 роки тому

    Lets not forget that exact model joystick was the absolute master with the 100 meter dash in Summer Games.

  • @axellarsen2208
    @axellarsen2208 3 роки тому

    I hope to see the next episode soon as well

  • @furroy
    @furroy 4 роки тому

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

  • @meneerjansen00
    @meneerjansen00 4 роки тому

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

  • @wrrrrrrrrrr
    @wrrrrrrrrrr 4 роки тому +1

    this was excellent. I would love to see you do the same thing but with the mouse (1351) one day. cheers.

  • @curiousottman
    @curiousottman 4 роки тому

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

  • @PlayBASIC-Developer
    @PlayBASIC-Developer 4 роки тому +1

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

  • @Zhixalom
    @Zhixalom 4 роки тому

    Woah... just when you think the quality of combined human idiocy has reached its highest level, someone utters something really stupendously daft, which just kicks it up yet another notch.
    I’m pretty sure we can quite easily find a huge variety of self-proclaimed cool people, to which cracking ancient games and coding demos would sound like the very incarnation of lame, regardless of how those skills were acquired... One person’s cool is another person’s lame.

  • @briancannard7335
    @briancannard7335 2 роки тому

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

  • @bald_engineer
    @bald_engineer 3 роки тому

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

  • @jack002tuber
    @jack002tuber 4 роки тому +1

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

    • @8_Bit
      @8_Bit  4 роки тому +1

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