It's been too long since I did one of these, anyway here is Episode 3, hope you enjoy it! I'll try to make them more frequent, perhaps a monthly episode. Cheers, Jake
Great lesson. I now have a deeper understanding of how graphics work in Commodore 64: multi-color sprites and a character graphics map. It was impossible to study this in childhood due to the lack of educational materials. Not a single book on this topic was published in Russia 30 years ago. And nobody brought it from abroad.
Don't feel bad. I live in the USA and I had a C64 in the early 80's and since there was no internet back then, it was nearly impossible for me to study this as well. C64 programming books and tutorials were not very easy to find, even in the USA, and when you could find them, they were fairly expensive. I could barely afford to buy any games let alone programming books.
Thank you, this is a very inspiring video, using the tools it shows just how quickly a basic game layout can be developed. I get bogged down when it comes to designing the screen layouts and this is just the thing to keep me moving on a project. Your coding is excellent and I would very much like to see you continue this project, I look forward to the next episode. One episode per month would be good ;)
These bring back so many memories... including some of the hacks and work arounds. Hacks to give 24x24 pixel sprites and work arounds for the lazy to keep the X position of the sprites in 0-255 and to use the remaining right hand space for score or similar information.
@@BikeArea From memory (eek! 😃) the hack effectively halved the number of sprite pointers available for use as the additional three rows used the data that would have been the top 3 rows of the next sprite in the bank, offset by one byte (so only 2 2/3 rows). This meant that one could only use alternate sprite pointers which was a massive waste of limited RAM. As for the actual hack itself, it was enabled through setting some bit in some barely documented VIC register and while I can visualise the pages that this information is on, finding it all these years later hasn't happened yet. I suspect that as a result it's support by emulators is not great.
This is a great tutorial that’s helped fill many of my knowledge gaps. Thank you so much for putting this together along with all of the helpful links.
Yeah, I think it's really helpful to have a tool to do sprites and background graphics, so much easier to play around with colors and making little changes. Cheers, Jake
Subbed! Huge thanks for these videos - brings back some great memories of my time with the C64 (had a platform game designer utility published in CDU back in the day). You mentioned that the latest version of CBM Prg Studio (3.14.0) has some bugs. I have this installed (though not used it much) and haven't noticed anything yet. Could you give a wee bit more detail, maybe a link to an on line forum or two (I can't see anything in the main Lemon64 thread for this utility). I realise there's other tools e.g. via Sublime Text, but I like the way CBM Prg Studio integrates things.
Hi everyone, just wanted to add that I was also having issues with CBM prg studio 3.14.0. I couldn't get VICE to come up normally and run assembly code. Under: Settings/Emulator Control I changed the Wait ______ second(s) before launch time to 2. I haven't had any more issues.
The tools look useful, will check them out later. Lots of videos out right now on coding for the C64, not much on good tooling :) - Hah, back in my youth I remember actually coding a 2 pass assembler for my C-64 from scratch. Could not afford to buy one :D Cheers,
Yeah, it was kind of my goal to make things as easy and approachable as possible with this series. I remember back in the day drawing sprites on paper and then calculating the binary values and converting to hex values followed by entering all the values into a machine code monitor. Sure is a lot easier with good tools. Cheers, Jake
Watched 3 episodes now. Thanks for showing us CBM Studio! It's getting harder to want to code on real hardware with tools like that around. And that graphics website is pretty cool. Why do the color drop-down menus in this video only show the first 14 colors? I was horrified such a blunder existed - yet the website does show all 16 colors for me. Weird.
Yeah tool like these really do make development a lot easier. I understand some people like to keep it "pure" and do everything on the C64 itself, but even back in the day it was common to run tools on other machines. But I understand for some the journey is most important. I didn't notice the color dropdown thing until I was nearly done recording the episode. It's caused by scaling. I always try to scale everything in these videos to make it easier to watch, not a fan of tutorial videos where everything is recorded in high resolution with tiny text that is nearly impossible to read unless you watch on a PC monitor in full screen. Cheers, Jake
congratulations, beautiful video, spruce that I can not follow you well, since I do not know English, I have to use the voice translator, but the translation is a bit poor. anyway I subscribed to your channel, when you made your first video in assembler, then you made another one, I hoped you would publish others, despite everything, I managed to understand your lessons well, now I have followed this and I think it is a wonderful program. I was asking, pet ascii editor I downloaded from your link, and much smaller than the online one
Hi there! Congratulations for the channel! The videos are well done! I wanted to know how to make sprite collisions, and the sound I wanted to make a small alien game. Thanks if you can help me!
Hi FD, it's very easy to use the C64's hardware sprite collision detection, it will give you pixel perfect collision detection. All you need to do is read the register $D01E, it will tell you if 2 or more sprites have collided, the bits corresponds to the sprite numbers (1 to 8) and if you want to check for sprite to background collision you can read the register $D01F, it will set the bits corresponding to which sprite collided with the background. I will cover music and sound effects in a future episode. Hope this helps. Cheers, Jake
@@TheStuffMade Hi Jake Do you have any projects that I can download? If not, I'm hoping to find something on the internet that is explained well! Unfortunately many youtubers make videos but don't know assembly well! It would be easier for me to understand.... Anyway thank you so much for your quick response! Sorry for my bad English... Frank
@@FD-ze1xg I don't have a project covering these topics for download yet. I will cover them in the future, the collision detection is quite easy, but music and sound effects gets a bit complex. Cheers, Jake
I really really could hardly imagine that the C64 could only handle 8 sprites on screen as of 64 sprites atone of the nes,since both systems do have an 8bit cpu and ppu chip.
The NES got the same limitation of max 8 sprites per line (that's why you often see sprite flickering in NES games) and the NES sprites are much smaller 8x8 or 8x16 compared to 24x21 or 12x21 on the C64. The NES does allow for more colors though. You can do more than 8 sprites on the C64, but you will have to implement a multiplexor, like I did for the intro to this episode with 32 sprites on screen at the same time. For a more in depth comparison, I recommend watching this video: th-cam.com/video/Lu3WEftsbqk/w-d-xo.html Cheers, Jake
Not at this time, but it's likely I'll do one at some point. It can get quite complex to write an efficient sprite multiplexer and sorting the sprites by y position can take quite a lot of cycles when you have many sprites. Cheers, Jake
Hi, If i want to open BMP file in "petscii editor" then what best BMP file size ? And if we convert any png to bmp from paint application then it's best way to work Or any other software need to use?
I've never used the bitmap import feature in the Petscii Editor, but I believe it requires the size to be 320x200. You might want to have a look at CharPad for this instead. Cheers, Jake
It's been too long since I did one of these, anyway here is Episode 3, hope you enjoy it!
I'll try to make them more frequent, perhaps a monthly episode.
Cheers,
Jake
Make please game name: Chicky
Great lesson. I now have a deeper understanding of how graphics work in Commodore 64: multi-color sprites and a character graphics map. It was impossible to study this in childhood due to the lack of educational materials. Not a single book on this topic was published in Russia 30 years ago. And nobody brought it from abroad.
Don't feel bad. I live in the USA and I had a C64 in the early 80's and since there was no internet back then, it was nearly impossible for me to study this as well. C64 programming books and tutorials were not very easy to find, even in the USA, and when you could find them, they were fairly expensive. I could barely afford to buy any games let alone programming books.
@@ferrellsl brothers in misfortune :)
Thank you, this is a very inspiring video, using the tools it shows just how quickly a basic game layout can be developed. I get bogged down when it comes to designing the screen layouts and this is just the thing to keep me moving on a project. Your coding is excellent and I would very much like to see you continue this project, I look forward to the next episode. One episode per month would be good ;)
Awesome tutorial series. Especially for people who already have a little assembler/programming background.
These bring back so many memories... including some of the hacks and work arounds. Hacks to give 24x24 pixel sprites and work arounds for the lazy to keep the X position of the sprites in 0-255 and to use the remaining right hand space for score or similar information.
😃
I've never heard of 24x24 pixel sprites. May I ask you to elaborate a bit on that? 😃
@@BikeArea From memory (eek! 😃) the hack effectively halved the number of sprite pointers available for use as the additional three rows used the data that would have been the top 3 rows of the next sprite in the bank, offset by one byte (so only 2 2/3 rows). This meant that one could only use alternate sprite pointers which was a massive waste of limited RAM. As for the actual hack itself, it was enabled through setting some bit in some barely documented VIC register and while I can visualise the pages that this information is on, finding it all these years later hasn't happened yet. I suspect that as a result it's support by emulators is not great.
@@nickryan3417 That sounds like a very deep rabbit hole. Holy moly! :D
Thanks a lot for the details!
This is a great tutorial that’s helped fill many of my knowledge gaps. Thank you so much for putting this together along with all of the helpful links.
I never used an editor to do sprites, that's awesome. And so much easier than coding them lol. We were really crazy.
Yeah, I think it's really helpful to have a tool to do sprites and background graphics, so much easier to play around with colors and making little changes.
Cheers,
Jake
👍 Nice video, been several years since I've messed with CBM Studio.
But it looks better than the version I used.
CBM Prg Studio is very nice, but lately I've started using C64Studio.
Thank you so much for these Commodore 64 programming videos. I've just subscribed.
I'm an Atari 800 game programmer but I found your video well worth watching. Thanks.
Very good video. I’ve been following the series. Thank you for taking the time to create and share them.
Thanks, I'm glad you enjoyed it.
Thanks so much for your series - it is superb!
Subbed! Huge thanks for these videos - brings back some great memories of my time with the C64 (had a platform game designer utility published in CDU back in the day). You mentioned that the latest version of CBM Prg Studio (3.14.0) has some bugs. I have this installed (though not used it much) and haven't noticed anything yet. Could you give a wee bit more detail, maybe a link to an on line forum or two (I can't see anything in the main Lemon64 thread for this utility).
I realise there's other tools e.g. via Sublime Text, but I like the way CBM Prg Studio integrates things.
This is so inspiring! (I keep pausing my Java coding to watch this ;-)
Hi everyone, just wanted to add that I was also having issues with CBM prg studio 3.14.0. I couldn't get VICE to come up normally and run assembly code. Under: Settings/Emulator Control I changed the Wait ______ second(s) before launch time to 2. I haven't had any more issues.
Thanks for sharing.
Same here. I changed back to 1 second and it still works !
The tools look useful, will check them out later.
Lots of videos out right now on coding for the C64, not much on good tooling :)
-
Hah, back in my youth I remember actually coding a 2 pass assembler for my C-64 from scratch. Could not afford to buy one :D
Cheers,
Yeah, it was kind of my goal to make things as easy and approachable as possible with this series. I remember back in the day drawing sprites on paper and then calculating the binary values and converting to hex values followed by entering all the values into a machine code monitor. Sure is a lot easier with good tools.
Cheers,
Jake
Thanks for these videos, very inspiring :)
super cool man! Great channel here!
this thumbnail looks like lvllvl
Watched 3 episodes now. Thanks for showing us CBM Studio! It's getting harder to want to code on real hardware with tools like that around. And that graphics website is pretty cool. Why do the color drop-down menus in this video only show the first 14 colors? I was horrified such a blunder existed - yet the website does show all 16 colors for me. Weird.
Yeah tool like these really do make development a lot easier. I understand some people like to keep it "pure" and do everything on the C64 itself, but even back in the day it was common to run tools on other machines. But I understand for some the journey is most important.
I didn't notice the color dropdown thing until I was nearly done recording the episode. It's caused by scaling. I always try to scale everything in these videos to make it easier to watch, not a fan of tutorial videos where everything is recorded in high resolution with tiny text that is nearly impossible to read unless you watch on a PC monitor in full screen.
Cheers,
Jake
congratulations, beautiful video, spruce that I can not follow you well, since I do not know English, I have to use the voice translator, but the translation is a bit poor. anyway I subscribed to your channel, when you made your first video in assembler, then you made another one, I hoped you would publish others, despite everything, I managed to understand your lessons well, now I have followed this and I think it is a wonderful program. I was asking, pet ascii editor I downloaded from your link, and much smaller than the online one
Thanks, much appreciated.
Hi there!
Congratulations for the channel!
The videos are well done!
I wanted to know how to make sprite collisions, and the sound I wanted to make a small alien game.
Thanks if you can help me!
Hi FD, it's very easy to use the C64's hardware sprite collision detection, it will give you pixel perfect collision detection. All you need to do is read the register $D01E, it will tell you if 2 or more sprites have collided, the bits corresponds to the sprite numbers (1 to 8) and if you want to check for sprite to background collision you can read the register $D01F, it will set the bits corresponding to which sprite collided with the background.
I will cover music and sound effects in a future episode.
Hope this helps.
Cheers,
Jake
@@TheStuffMade Hi Jake
Do you have any projects that I can download?
If not, I'm hoping to find something on the internet that is explained well!
Unfortunately many youtubers make videos but don't know assembly well!
It would be easier for me to understand....
Anyway thank you so much for your quick response!
Sorry for my bad English...
Frank
@@FD-ze1xg I don't have a project covering these topics for download yet. I will cover them in the future, the collision detection is quite easy, but music and sound effects gets a bit complex.
Cheers,
Jake
Nice Job!
I really really could hardly imagine that the C64 could only handle 8 sprites on screen as of 64 sprites atone of the nes,since both systems do have an 8bit cpu and ppu chip.
The NES got the same limitation of max 8 sprites per line (that's why you often see sprite flickering in NES games) and the NES sprites are much smaller 8x8 or 8x16 compared to 24x21 or 12x21 on the C64. The NES does allow for more colors though. You can do more than 8 sprites on the C64, but you will have to implement a multiplexor, like I did for the intro to this episode with 32 sprites on screen at the same time. For a more in depth comparison, I recommend watching this video: th-cam.com/video/Lu3WEftsbqk/w-d-xo.html
Cheers,
Jake
What a pity you stopped posting tutorials mate !!
and what you do here on the screen gets automitcally transferred into assembler/machine code?
Very nice!
Do you have a video on programming more than 8 sprites?...using interrupts?
Not at this time, but it's likely I'll do one at some point. It can get quite complex to write an efficient sprite multiplexer and sorting the sprites by y position can take quite a lot of cycles when you have many sprites.
Cheers,
Jake
DO EPISODE 4 PLSSS I WANNNA LEARN ASSEMBLY 6502 YOUR MY ONLY RESOURCE!!!!
is there a way to import multiplex gfx made on other editors in PETSCII Editor?
Hi, If i want to open BMP file in "petscii editor" then what best BMP file size ? And if we convert any png to bmp from paint application then it's best way to work Or any other software need to use?
I've never used the bitmap import feature in the Petscii Editor, but I believe it requires the size to be 320x200.
You might want to have a look at CharPad for this instead.
Cheers,
Jake
400th like