C64 Joystick-Controlled Sprites in Assembly and BASIC

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

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

  •  5 ปีที่แล้ว +51

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

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

      Lamers unite!

    • @zulucain
      @zulucain 3 ปีที่แล้ว +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

  • @nubyoz
    @nubyoz 2 ปีที่แล้ว +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.

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

    Your teaching style is fantastically clear. Great video.

  • @mshine5
    @mshine5 5 ปีที่แล้ว +104

    Being a lamer never felt so right.

  • @mtbevins
    @mtbevins 5 ปีที่แล้ว +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 3 ปีที่แล้ว +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.

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

  • @RetroRelixRestorer
    @RetroRelixRestorer 5 ปีที่แล้ว +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 5 ปีที่แล้ว

      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 5 ปีที่แล้ว +2

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

    • @proxy1035
      @proxy1035 5 ปีที่แล้ว

      @@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 5 ปีที่แล้ว

      @@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 5 ปีที่แล้ว

      @@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 5 ปีที่แล้ว +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? 😝

  • @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 :)

  • @MichaelBLive
    @MichaelBLive 5 ปีที่แล้ว +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.

  • @FordGranada75
    @FordGranada75 5 ปีที่แล้ว +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!

  • @ubunturulez
    @ubunturulez 5 ปีที่แล้ว +26

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

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

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

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

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

  • @NeilRoy
    @NeilRoy 5 ปีที่แล้ว +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 5 ปีที่แล้ว

      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 5 ปีที่แล้ว +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 5 ปีที่แล้ว +1

      @@NeilRoy Thanks, dude.

  • @15743_Hertz
    @15743_Hertz 5 ปีที่แล้ว +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 5 ปีที่แล้ว +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 5 ปีที่แล้ว +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 5 ปีที่แล้ว +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 5 ปีที่แล้ว +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.

  • @tomhekker
    @tomhekker 5 ปีที่แล้ว +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 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 3 ปีที่แล้ว

      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 th-cam.com/video/0zCm4clrHKU/w-d-xo.html

  • @tonym2464
    @tonym2464 5 ปีที่แล้ว +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!

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

    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 5 ปีที่แล้ว +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  5 ปีที่แล้ว +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.

  • @garymetheringham4990
    @garymetheringham4990 5 ปีที่แล้ว +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  5 ปีที่แล้ว +5

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

  • @cpu_UP
    @cpu_UP 5 ปีที่แล้ว +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.

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

  • @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!!!!).

  • @mrBlagstock
    @mrBlagstock ปีที่แล้ว

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

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

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

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

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

  • @Tylonfoxx
    @Tylonfoxx 5 ปีที่แล้ว +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 :)

  • @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.. ;-)

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

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

  • @MurderMostFowl
    @MurderMostFowl 5 ปีที่แล้ว

    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

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

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

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

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

  • @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.

  • @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.

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

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

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

  • @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

  • @crookedmouth1971
    @crookedmouth1971 ปีที่แล้ว

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

  • @Shmbler
    @Shmbler 5 ปีที่แล้ว +3

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

    • @8_Bit
      @8_Bit  5 ปีที่แล้ว +1

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

  • @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.

  • @fitfogey
    @fitfogey 5 ปีที่แล้ว

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

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

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

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

    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.

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

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

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

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

  • @ralphm786
    @ralphm786 5 ปีที่แล้ว

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

  • @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.

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

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

  • @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.

  • @RussellRiker
    @RussellRiker 5 ปีที่แล้ว +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

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

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

    • @baardbi
      @baardbi 5 ปีที่แล้ว

      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.

  • @pkpkpk20323
    @pkpkpk20323 ปีที่แล้ว

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

  • @larrywilliams8010
    @larrywilliams8010 5 ปีที่แล้ว

    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

  • @winfr34k
    @winfr34k 5 ปีที่แล้ว +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.

  • @winfr34k
    @winfr34k 5 ปีที่แล้ว +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 ;-)

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

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

  • @curiousottman
    @curiousottman 5 ปีที่แล้ว

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

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

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

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

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

  • @furroy
    @furroy 5 ปีที่แล้ว

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

  • @williamsquires3070
    @williamsquires3070 5 ปีที่แล้ว

    This stuff with the sprites showing the changing pixels SO reminds me of a fun little program I wrote in AppleSoft BASIC that filled memory range 0x1000-0x2FFF with random bytes, then did a “HGR : CALL 4096” to show hires page 1, and then called into the beginning of these randomly generated bytes as if there was a valid 6502 machine-language program there. Of course, this usually just froze the machine 🤣, but one time, I got a madly-changing “splotch” on screen about half the diameter of a U.S. dime! 😻

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

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

  • @PlayBASIC-Developer
    @PlayBASIC-Developer 5 ปีที่แล้ว +1

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

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

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

  • @ScottHiland
    @ScottHiland 5 ปีที่แล้ว

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

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

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

  • @maxmuster7003
    @maxmuster7003 5 ปีที่แล้ว

    I remember some nice sprite that i made on C64. But on x86 i have no hardware sprite, so i made a routine to display a picture with a black background in the upper left corner of the screen, so i can put the address and the color of all of the pixels in a sprite table. And if i want to move the sprite i use a copy of the background content, so it can be redrawn, when my software sprite move over.

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

    I hope to see the next episode soon as well

  • @The.Doctor.Venkman
    @The.Doctor.Venkman 5 ปีที่แล้ว +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 5 ปีที่แล้ว +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.

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

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

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

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

  • @ChristmasEve777
    @ChristmasEve777 5 ปีที่แล้ว +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 :)

  • @googleboughtmee
    @googleboughtmee 5 ปีที่แล้ว

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

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

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

    • @8_Bit
      @8_Bit  5 ปีที่แล้ว +1

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

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

    With all respect to the history of it all, I lived through those days and the only way to learn was the hard way. Endless nights of trial and error, but it was a good way to learn.
    But that basic is so terribly crippled and slow. I think we could today write a complete basic replacement for the c64, even with a different language that actually compiles it all into ml. The screen editor could be replaced with a more real editor and some command interface to access drives and features. Some kernel rom bits and pieces to be replaced to accommodate for it. Either that or a interpreted thing that is compiled into some custom byte format. Such a language could have special commands for graphics and sound. It would be possible to do i think, but a hell of a lot of work.
    I think your videos does make sense to the generations of kids today. They have a different way of learning and really do need things explained the way you do. Times and generations change no matter if we like it or not. Very good work and thanks for giving everyone your lessons.

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

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

    • @8_Bit
      @8_Bit  3 ปีที่แล้ว

      Welcome, and thanks!

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

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

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

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

  • @franciszek5831
    @franciszek5831 5 ปีที่แล้ว

    This is amazing! // How to "translate" a program from Turbo Macro to the BASIC version (DATA instructions). Just like programs (also in assembler) printed in old magazines from the 1980s.

    • @8_Bit
      @8_Bit  5 ปีที่แล้ว +1

      I think there's a program that will automatically make those data statements. For shorter programs it's not too bad to write a little BASIC program that will print a line number, "DATA" and then e.g. print out PEEKed memory. Then you can hit return on each line, and then write the little loop that will READ the data in and POKE it into memory.

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

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

  • @LordOrwell
    @LordOrwell 5 ปีที่แล้ว

    man i wish i had a proper assembler when i coded c64. I did everything in straight machine assembly. I wrote a program similar to this that drew two tanks on the screen but ran off of the interrupts so you could still do other stuff at the same time.

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

      Yeah, I had this assembler written in Basic I typed in from a magazine. It worked and I could write programs with it but couldn't use labels or anything. I had so much ideas but without proper tools and skill I could only do simple programs. Now there are great tools and I could code much better code but I don't have ideas anymore like as a teenager.

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

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

  • @MrRobbyvent
    @MrRobbyvent 5 ปีที่แล้ว

    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!

  • @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

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

    @8-Bit Show Sorry I must have deleted my comment right as you replied because I still got an update. I thought of that right after I finished posting it which is why I deleted it. Thank you for the quick reply with help though, I really do appreciate it. I've really been enjoying these videos, I've learned a lot just from the few I've watched so far.

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

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

  • @Sultaneous
    @Sultaneous 5 ปีที่แล้ว

    Simply awesome! Us lamers excitedly await episode 2.

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

    Lamer reporting in! Looking forward to trying this out! Thank you Robin!

  • @metalheadmalta
    @metalheadmalta ปีที่แล้ว

    Superb lesson.... very well explained!

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

    Would you ever consider making a more detailed video on BASIC sprites? I'm a beginner to the C64 and really to programming in general, and I'm confused by two things that are not really made exceptionally clear in the C64 user's guide: how/where to store sprites in memory, and how to access X coordinates on the screen greater than 255.

  • @dru1432
    @dru1432 5 ปีที่แล้ว

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

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

    This makes me laugh, I learned how to play guitar by tab in the late 80's. I always had to learn the techniques without youtube. I only wish youtube was around to make guitar lamers back in the day. Keep up the good work teaching. This makes me appreciate all the work it took to make a video game now and back in the day. They really are worth the money you pay for them. Unfortunately most of my c64 games were copies.

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

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

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

    I really wouldn't mind seeing the sequel to this episode... Any idea when or even if it's coming up?

  • @console
    @console 5 ปีที่แล้ว

    Oh you monetized? Time to tell you that I'll watch the ad to support you. I don't love commercials, but hey.