MoonTurtle #1 Posted September 26, 2018 Not to long ago I came across a topic talking about how difficult it was to program for the Commodore Vic 20. I've heard this before, not just on this forum, but on other sites, So, wanting an answer to this myself, (I also wanted to program game for the system) I decided to start this topic, so I, was well as others could learn how to properly code their own homebrew games for the Vic-20 from more experienced programmers/developers, But before you unleash your curiosity, you should first know a few things if you want to get into programming for this machine; Operating System(s): Commodore Kernel-Commodore Basic 2.0 Graphics/Sound: handled by the VIC (Video Interface Chip) aka MOS Technology 6560 Memory: 20 kb ROM, 5 kb RAM, (default) (NOTE: Both the graphics and RAM were changed in some way by the Super Expander Cartridge, like increasing the graphics from 178x184 to 160x160, and increasing the RAM from 5kb to 15kb. though it was the nly cartridge to do this for the Vic 20,) if any of this info above is incorrect, please let me know, I would be happy to change it to be correct. But anyway, we will discuss things like: How to View/edit sprites How to create/edit Music/SFX for Vic 20 How to properly compile the code for your program/game What is the best programming language fore the Vic 20? and many more! Now, let's begin! Quote Share this post Link to post Share on other sites
carlsson #2 Posted September 26, 2018 (edited) The Super Expander contains a 3K memory expansion, plus commands for setting up a simulated bitmap screen. It doesn't improve graphics in any way, just makes it easier to access them. By enabling one of the unique VIC-I features that makes each logical character 8x16 pixels on screen, you can setup a bitmap using custom characters, and by adding memory for your programs, you can use all the internal RAM for graphics. Coincidentally, I made a such program for the +8K expanded VIC-20 just the other week. It creates a bitmap screen 192x160 pixels entirely in BASIC, so slow as ****. It would work as well with the +3K expanded VIC, with a few changes of addresses. The screen is centered for PAL, so the values for 36864 and 36865 would need to be changed for NTSC but that is trivial. 1. Enable +8K or more. 2. Set up pointers: poke 642,32:sys58232 10 v=36864:pokev,10:pokev+1,44:pokev+2,24:pokev+3,21:pokev+5,204 15 pokev+15,27:fori=0to239:poke4096+i,i+16:poke37888+i,0:next 17 fori=0to3839:poke4352+i,0:next 20 fori=0to191:j=int(80+sin(pi*i/96)*50) 25 a=4352+int(j/16)*384+int(i/8)*16+(jand15):pokea,peek(a)or2^((7-i)and7):next 35 pokev+15,238 40 goto40Note that "pi" should be replaced by the Pi symbol which on the emulator might be found on Shift + Delete. Regarding your points of discussion, here are some input: * The VIC-20 doesn't have any hardware sprites, which means you either have to stick with character aligned movement or implement your own software sprites using dynamically updated custom characters. Many people have do that with varying results, but it isn't for the absolute beginner. * Sound and music is easier, as you could either just use DATA statements from BASIC, or use a ML routine supplied by a program like Fisichella, VIC Tracker or some other routine. * Cross development is the way to go for most programming languages: tokenized BASIC, assembly language, compiled C or whatever language you may find. I'm unsure if there is a cross development environment for Forth. Edited September 26, 2018 by carlsson 1 Quote Share this post Link to post Share on other sites
imstarryeyed #3 Posted September 27, 2018 MoonTurtle thank you for building this thread.. I read the other one and downloaded Arthur Jordison CBM prg Studio and it looks pretty great. I have just started learning 6502 Assembly and I think this thread might be pretty useful. It was not too hard to figure out but I do get a program crash when I open the SID Tool.. I hope he continues to develop this tool, the Sprite maker and the SID Music maker looks great, even a scene editor.. The whole package kind of reminds me of the great Gary Kitchen's Gamemaker, an amazing program.. Quote Share this post Link to post Share on other sites
MoonTurtle #4 Posted September 27, 2018 MoonTurtle thank you for building this thread.. I read the other one and downloaded Arthur Jordison CBM prg Studio and it looks pretty great. I have just started learning 6502 Assembly and I think this thread might be pretty useful. It was not too hard to figure out but I do get a program crash when I open the SID Tool.. I hope he continues to develop this tool, the Sprite maker and the SID Music maker looks great, even a scene editor.. The whole package kind of reminds me of the great Gary Kitchen's Gamemaker, an amazing program.. You're welcome. If you want to lean 6502 Assembly Language, I suggest you go here: http://www.6502.org/tutorials/ This link will take you to list of tutorials you may find useful, Enjoy! Quote Share this post Link to post Share on other sites