MantaNZ Posted January 5, 2020 Share Posted January 5, 2020 (edited) Okay, I've tried a few times in the past and failed but I finally have my head around how asm works (thanks to studying computer science and touching on it at uni) and I found a Udemy course on how to program in assembly by making a 2600 game - seems pretty good, so far though I don't assume it will get into super advanced techniques. I'm just stoked there is a course like this available in 2020 (and I've actually learnt new stuff in areas I thought I had covered). Now it's not my chosen console but it's a good place to start as many other systems have some sort of 6502 within. I reckon the limitations of the system will make things very interesting and fun! So yeah, I'm just gonna mess about making a few silly small games and demos and I'll be sure to show them off here and drop by for advice Wish me luck! Edited January 5, 2020 by MantaNZ 4 Quote Link to comment Share on other sites More sharing options...
JeffJetton Posted January 6, 2020 Share Posted January 6, 2020 Awesome! Congrats and good luck! 1 Quote Link to comment Share on other sites More sharing options...
Mikebloke Posted January 6, 2020 Share Posted January 6, 2020 Fellow "I learnt assembly on udemy" here! Good luck with your projects! Quote Link to comment Share on other sites More sharing options...
MantaNZ Posted January 6, 2020 Author Share Posted January 6, 2020 (edited) 4 hours ago, Mikebloke said: Fellow "I learnt assembly on udemy" here! Good luck with your projects! Oh cool. Same course or one of the x86 asm courses? Or are there other 'retro' CPU asm courses on there I missed? 4 hours ago, JeffJetton said: Awesome! Congrats and good luck! Thanks! It's super interesting hardware. The way things are drawn is totally different from anything I've worked on before. It's really fun I think it will even help with might higher level language stuff. Edited January 6, 2020 by MantaNZ Quote Link to comment Share on other sites More sharing options...
Mikebloke Posted January 6, 2020 Share Posted January 6, 2020 53 minutes ago, MantaNZ said: Oh cool. Same course or one of the x86 asm courses? Or are there other 'retro' CPU asm courses on there I missed? Probably the same one! Its by Gustavo. 1 Quote Link to comment Share on other sites More sharing options...
MantaNZ Posted January 6, 2020 Author Share Posted January 6, 2020 (edited) 24 minutes ago, Mikebloke said: Probably the same one! Its by Gustavo. Yup, same one I just made the 'rainbow'. I feel there are a few things that aren't quite explained (or possible I missed them as I have the attention span of a gnat) - like he talks about using # to denote a literal value and $ to denote hex but there's no explaination about #$ - I assumed $FF on its own would be an address and #$FF would be a literal hex value and I was right but I could see people who'd never touched on coding before getting very stuck in a few areas. He also uses a few higher level language examples that people simply wouldn't understand if they hadn't coded before and doesn't explain them (like != and ==). It's fine for me but the course is supposed to be for total beginners. Also, we draw 192 scanlines but only half of that are 'painted' - 96 lines of colour fill the screen. I googled this and found it's what's known as a two line kernel, so an explanation of that would be nice - I was scratching my head, looking at the code and wondering why if I'm looping over something 192 times, I only see 96 lines. As I said before though, it's quite likely I just missed said explanations! LOL. I also wish the slides etc. were available as a download for future reference, but other than these points it's a pretty solid course and I'm stoked it exists. Edited January 6, 2020 by MantaNZ Quote Link to comment Share on other sites More sharing options...
Mikebloke Posted January 6, 2020 Share Posted January 6, 2020 1 minute ago, MantaNZ said: Yup, same one I just made the 'rainbow'. I feel there are a few things that aren't quite explained (or possible I missed them as I have the attention span of a gnat) - like he talks about using # to denote a literal value and $ to denote hex but there's no explaination about #$ - I assumed $FF on its own would be an address and #$FF would be a literal hex value and I was right but I could see people who'd never touched on coding before getting very stuck in a few areas. He also uses a few higher level language examples that people simply wouldn't understand if they hadn't coded before and doesn't explain them (like != and ==). It's fine for me but the course is supposed to be for total beginners. As I said before though, it's quite likely I just missed said explanations! LOL. I also wish the slides etc. were available as a download for future reference, but other than these points it's a pretty solid course and I'm stoked it exists. No I don't think that is just you, though he does do a good job of explaining some concepts, I do believe he glossed over some details which if you've programmed in anything else before you might not even notice. I've got through the whole thing now, I think it abruptly ends as there is no videos directly on missiles specifically but a lot of the concepts are explained by that point. I'm glad I paid for it, its been incredibly helpful. 1 Quote Link to comment Share on other sites More sharing options...
MantaNZ Posted January 6, 2020 Author Share Posted January 6, 2020 (edited) 6 minutes ago, Mikebloke said: No I don't think that is just you, though he does do a good job of explaining some concepts, I do believe he glossed over some details which if you've programmed in anything else before you might not even notice. I've got through the whole thing now, I think it abruptly ends as there is no videos directly on missiles specifically but a lot of the concepts are explained by that point. I'm glad I paid for it, its been incredibly helpful. Awesome I look forward to finishing it. TBH I'm using it as a stepping stone to get into C64 development, then I'll pick up 68k asm and get back into Mega Drive dev. I've done some stuff on the Mega Drive in C but I really prefer the idea of asm. I like to know what's going on under the hood. But yeah this course has actually got me thinking about making an absolute beginner's course for C programming. Now, I'm no C master - far from it - but I more than know the basics and as someone who struggled for a LONG time to get to grips with programming I think I could really help other people like myself. So many 'beginner's courses' seem to be very difficult unless the beginner is a natural. So I was thinking a total noob friendly course that introduces variables and maybe moves no further than for loops (hard to believe I struggled with them at one point) so people would be able to then move onto other 'beginner' courses. Edited January 6, 2020 by MantaNZ Quote Link to comment Share on other sites More sharing options...
JeffJetton Posted January 8, 2020 Share Posted January 8, 2020 (edited) Hey MantaNZ, you might want to check out my beginning Atari programming notes that I've been (slowly) putting together. Actually, I'd really appreciate your feedback--I could use some guinea pigs! https://github.com/JeffJetton/atari-examples Still very much work-in-progress. I'm rethinking some of the later stuff, but I think the first section is pretty solid. It's coming from the same angle as your C beginner's course idea. It's at the super-noob level* and explains a lot of the things that puzzled me early on but seem to get glossed over in a lot of other tutorials. It goes very slowly. (I'm certainly not an Atari assembly programming master myself, which I think actually helps!) * Well, it does relate some things to higher-level programming concepts, and I don't really explain how binary and hex number systems work. But other than that, it's pretty noob-friendly! Edited January 8, 2020 by JeffJetton 2 Quote Link to comment Share on other sites More sharing options...
MantaNZ Posted January 8, 2020 Author Share Posted January 8, 2020 1 minute ago, JeffJetton said: Hey MantaNZ, you might want to check out my beginning Atari programming notes that I've been (slowly) putting together. Actually, I'd really appreciate your feedback--I could use some guinea pigs! https://github.com/JeffJetton/atari-examples Still very much work-in-progress. I'm rethinking some of the later stuff, but I think the first section is pretty solid. It's coming from the same angle as your C beginner's course idea. It's at the super-noob level and explains a lot of the things that puzzled me early on but seem to get glossed over in a lot of other tutorials. It goes very slowly. (I'm certainly not an Atari assembly programming master myself, which I think actually helps!) Cool, will check it out Quote Link to comment Share on other sites More sharing options...
+Andrew Davie Posted January 8, 2020 Share Posted January 8, 2020 8 minutes ago, JeffJetton said: you might want to check out my beginning Atari programming notes that I've been (slowly) putting together. Actually, I'd really appreciate your feedback--I could use some guinea pigs! https://github.com/JeffJetton/atari-examples Good stuff. Very readable, and solid. I would encourage you to continue, and others to read this too. 1 Quote Link to comment Share on other sites More sharing options...
+Andrew Davie Posted January 8, 2020 Share Posted January 8, 2020 On https://github.com/JeffJetton/atari-examples/blob/master/rudout/rudout1.md the link to rudout2.asm is a 404. Quote Link to comment Share on other sites More sharing options...
JeffJetton Posted January 8, 2020 Share Posted January 8, 2020 Thanks! Yeah, sorry. That's supposed to link to the "documentation" for the code, which doesn't exist yet. ? Quote Link to comment Share on other sites More sharing options...
JeffJetton Posted January 8, 2020 Share Posted January 8, 2020 Oh, just saw that you're putting in issues. Thanks, Andrew! I'll work on making those tweaks. I really appreciate it! Quote Link to comment Share on other sites More sharing options...
scitari Posted January 11, 2020 Share Posted January 11, 2020 (edited) A great resource. Thanks for posting to Github JeffJetton. The more examples and explanations the better. Edited January 11, 2020 by scitari 1 Quote Link to comment Share on other sites More sharing options...
+SpiceWare Posted January 11, 2020 Share Posted January 11, 2020 On 1/6/2020 at 1:59 PM, MantaNZ said: Also, we draw 192 scanlines but only half of that are 'painted' - 96 lines of colour fill the screen. I googled this and found it's what's known as a two line kernel, so an explanation of that would be nice - I was scratching my head, looking at the code and wondering why if I'm looping over something 192 times, I only see 96 lines. As I said before though, it's quite likely I just missed said explanations! LOL. If that's the typical rainbow screen, something along these lines: ldy #192 kernel: sta WSYNC sty COLUBK dey bne kernel then that's not a two line kernel. What you'r actually seeing is that the color palette on the 2600 ignores bit 0, so each color is repeated for 2 values. If you check a TIA Color Chart: the top row is the high-nybble of the color value, while the the left column is the low-nybble. So colors $86 and $87 are the exact same shade of blue. In a two line kernel certain things are updated on one scanline and other things are updated on the other. I cover that in Part 4 of my Collect tutorial. Quote Link to comment Share on other sites More sharing options...
MantaNZ Posted January 12, 2020 Author Share Posted January 12, 2020 (edited) 22 hours ago, SpiceWare said: If that's the typical rainbow screen, something along these lines: ldy #192 kernel: sta WSYNC sty COLUBK dey bne kernel then that's not a two line kernel. What you'r actually seeing is that the color palette on the 2600 ignores bit 0, so each color is repeated for 2 values. If you check a TIA Color Chart: the top row is the high-nybble of the color value, while the the left column is the low-nybble. So colors $86 and $87 are the exact same shade of blue. In a two line kernel certain things are updated on one scanline and other things are updated on the other. I cover that in Part 4 of my Collect tutorial. Oh, right, I think I get ya. So to get single lines of colour I’d just decrement by 2? Thanks for the info! Edited January 12, 2020 by MantaNZ Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.