C64 Joystick-Controlled Sprites in Assembly and BASIC

Ғылым және технология

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 жыл бұрын

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

  • @chromosundrift

    @chromosundrift

    2 жыл бұрын

    Lamers unite!

  • @zulucain

    @zulucain

    2 жыл бұрын

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

  • @chromosundrift
    @chromosundrift2 жыл бұрын

    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.

  • @mshine5
    @mshine54 жыл бұрын

    Being a lamer never felt so right.

  • @mtbevins
    @mtbevins4 жыл бұрын

    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.

  • @jhfoleiss
    @jhfoleiss4 жыл бұрын

    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
    @FordGranada754 жыл бұрын

    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!

  • @alanbenson1505

    @alanbenson1505

    4 жыл бұрын

    Me too!

  • @ubunturulez
    @ubunturulez4 жыл бұрын

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

  • @carnright

    @carnright

    3 жыл бұрын

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

  • @Monotoba
    @Monotoba2 жыл бұрын

    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!

  • @15743_Hertz
    @15743_Hertz4 жыл бұрын

    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 жыл бұрын

    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 жыл бұрын

    @@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 жыл бұрын

    @@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 жыл бұрын

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

  • @Mostlyharmless1985

    @Mostlyharmless1985

    3 жыл бұрын

    @@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
    @RetroRelixRestorer4 жыл бұрын

    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 жыл бұрын

    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
    @10MARC4 жыл бұрын

    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.

  • @nubyoz
    @nubyoz Жыл бұрын

    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.

  • @MichaelBLive
    @MichaelBLive4 жыл бұрын

    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
    @stevejennings39604 жыл бұрын

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

  • @osheal

    @osheal

    2 жыл бұрын

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

  • @BillAnt

    @BillAnt

    10 ай бұрын

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

  • @benanderson89
    @benanderson894 жыл бұрын

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

  • @NeilRoy
    @NeilRoy4 жыл бұрын

    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 жыл бұрын

    @@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 жыл бұрын

    @@NeilRoy Thanks, dude.

  • @johnsobota6234
    @johnsobota62343 ай бұрын

    Your teaching style is fantastically clear. Great video.

  • @almurray2000
    @almurray20002 жыл бұрын

    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 kzread.info/dash/bejne/Yq53z5acnNWue7g.html

  • @dannejendinger1847
    @dannejendinger18473 жыл бұрын

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

  • @moagnor
    @moagnor4 жыл бұрын

    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 жыл бұрын

    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.

  • @tomhekker
    @tomhekker4 жыл бұрын

    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
    @tonym24644 жыл бұрын

    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!

  • @dionjennings2379
    @dionjennings23792 жыл бұрын

    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

  • @garymetheringham4990
    @garymetheringham49904 жыл бұрын

    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 жыл бұрын

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

  • @Tylonfoxx
    @Tylonfoxx4 жыл бұрын

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

  • @darrenjkendall
    @darrenjkendall3 жыл бұрын

    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.

  • @colwarsstudiobrickfilmandm8580
    @colwarsstudiobrickfilmandm85803 жыл бұрын

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

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

  • @mrBlagstock
    @mrBlagstock Жыл бұрын

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

  • @marcteufel8348
    @marcteufel83483 жыл бұрын

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

  • @neilloughran4437
    @neilloughran44373 жыл бұрын

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

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

  • @iridium130m
    @iridium130m4 жыл бұрын

    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!

  • @LadyNicola
    @LadyNicola3 жыл бұрын

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

  • @markushavers2283
    @markushavers22834 жыл бұрын

    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.

  • @ralphm786
    @ralphm7864 жыл бұрын

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

  • @TorstenSeemann
    @TorstenSeemann4 жыл бұрын

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

  • @jasontahaney285
    @jasontahaney2853 жыл бұрын

    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.

  • @crookedmouth1971
    @crookedmouth1971 Жыл бұрын

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

  • @cpu_UP
    @cpu_UP4 жыл бұрын

    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.

  • @eliaframsgimp9618
    @eliaframsgimp96184 жыл бұрын

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

  • @JeffTiberend
    @JeffTiberend Жыл бұрын

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

  • @nev6502
    @nev65023 жыл бұрын

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

  • @pkpkpk20323
    @pkpkpk203237 ай бұрын

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

  • @PregnantSausage
    @PregnantSausage4 жыл бұрын

    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 жыл бұрын

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

  • @googleboughtmee
    @googleboughtmee4 жыл бұрын

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

  • @RussellRiker
    @RussellRiker4 жыл бұрын

    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

  • @TuffyDK
    @TuffyDK3 жыл бұрын

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

  • @OTuit
    @OTuit4 жыл бұрын

    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
    @carnright3 жыл бұрын

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

  • @InTheRedCornerBFC
    @InTheRedCornerBFC2 жыл бұрын

    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!

  • @75slaine
    @75slaine4 жыл бұрын

    Fascinating as always Robin 👍

  • @sanderheijselaar5687
    @sanderheijselaar56874 жыл бұрын

    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.

  • @ScottHiland
    @ScottHiland4 жыл бұрын

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

  • @metalheadmalta
    @metalheadmalta Жыл бұрын

    Superb lesson.... very well explained!

  • @MichaelDoornbos
    @MichaelDoornbos3 жыл бұрын

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

  • @PhilWaller
    @PhilWaller3 жыл бұрын

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

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

  • @Shmbler
    @Shmbler4 жыл бұрын

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

  • @8_Bit

    @8_Bit

    4 жыл бұрын

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

  • @Sultaneous
    @Sultaneous4 жыл бұрын

    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 ?(NOT(127))+128

  • @PlayBASIC-Developer
    @PlayBASIC-Developer4 жыл бұрын

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

  • @robertlock5501
    @robertlock5501 Жыл бұрын

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

  • @MurderMostFowl
    @MurderMostFowl4 жыл бұрын

    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

  • @harag9
    @harag92 жыл бұрын

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

  • @niedowidek
    @niedowidek4 жыл бұрын

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

  • @winfr34k
    @winfr34k4 жыл бұрын

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

  • @winfr34k
    @winfr34k4 жыл бұрын

    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.

  • @henrikorpela2818
    @henrikorpela28182 жыл бұрын

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

  • @code_explorations
    @code_explorations3 жыл бұрын

    I loved this. Thank you.

  • @rga218
    @rga2184 жыл бұрын

    Thank you! This video is fascinating.

  • @TrollingAround
    @TrollingAround4 жыл бұрын

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

  • @Sultaneous
    @Sultaneous4 жыл бұрын

    Simply awesome! Us lamers excitedly await episode 2.

  • @eugenetswong
    @eugenetswong4 жыл бұрын

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

  • @3DPDK
    @3DPDK4 жыл бұрын

    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.

  • @The.Doctor.Venkman
    @The.Doctor.Venkman4 жыл бұрын

    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 жыл бұрын

    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.

  • @dru1432
    @dru14324 жыл бұрын

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

  • @baardbi
    @baardbi4 жыл бұрын

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

  • @rkolev
    @rkolev4 жыл бұрын

    Just another great video.👏

  • @ChristmasEve777
    @ChristmasEve7774 жыл бұрын

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

  • @madmartigan1498
    @madmartigan14983 жыл бұрын

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

  • @esshahn
    @esshahn4 жыл бұрын

    Excellent as always, thanks!

  • @mechaform
    @mechaform3 жыл бұрын

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

  • @sickmademusic4life783
    @sickmademusic4life7834 ай бұрын

    Thankful for this video. 👍🏼

  • @chinosts
    @chinosts4 жыл бұрын

    Awesome post! Thanks so much

  • @8-bitcentral31
    @8-bitcentral313 жыл бұрын

    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!

  • @axellarsen2208
    @axellarsen22083 жыл бұрын

    I hope to see the next episode soon as well

  • @meneerjansen00
    @meneerjansen004 жыл бұрын

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

  • @bald_engineer
    @bald_engineer3 жыл бұрын

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

  • @furroy
    @furroy4 жыл бұрын

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

  • @rodoherty1
    @rodoherty14 жыл бұрын

    Hey Robin, this is another fantastic video. I loved your video with Darren (1vader) and I'm finally starting to learn some 6502 (thanks in a large part to your videos). Did you post part2 of this video? I would love to see more. Also, would you consider doing a video (or more videos) on how to write a game? Such as controlling from keyboard, sound, how to structure your game code ... I know so little that I don't even have a good list of questions.

  • @8_Bit

    @8_Bit

    4 жыл бұрын

    I haven't made the part 2 video, I really should but keep getting distracted by other things! I've got a patron-exclusive video walking through the code to one of my C64 games that I'll probably release publicly in a month or two (once it turns 6 months old), so watch out for that one.

  • @MarvelousLXVII
    @MarvelousLXVII3 жыл бұрын

    Very cool stuff!

  • @AccCam
    @AccCam2 жыл бұрын

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

  • @larrywilliams8010
    @larrywilliams80104 жыл бұрын

    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

  • @io4439
    @io44394 жыл бұрын

    1990 - The Red Sector and Silents party in the summer. Strider made Zelnik stand on a chair, screaming "I'm Zelnik. I'm Lame!"

  • @BluesM18A1
    @BluesM18A13 жыл бұрын

    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.

  • @jack002tuber
    @jack002tuber4 жыл бұрын

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

  • @8_Bit

    @8_Bit

    4 жыл бұрын

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

  • @curiousottman
    @curiousottman4 жыл бұрын

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

  • @Eightbitswide
    @Eightbitswide4 жыл бұрын

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

  • @baardbi
    @baardbi3 жыл бұрын

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

  • @wrrrrrrrrrr
    @wrrrrrrrrrr4 жыл бұрын

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

Келесі