sehugg / 8bitworkshop

web-based IDE for 8-bit programming and Verilog development
http://8bitworkshop.com/
GNU General Public License v3.0
503 stars 82 forks source link

Feature Request : Commodore VIC 20 support #101

Open langel opened 2 years ago

langel commented 2 years ago

Its been a while since I did the research, but iirc the browser-based emulator used for Commodore 64 development also supports the VIC 20. I'm not sure how difficult this addition would be or what assets would be required to make this a viable development platform target. I would be open to making some code examples if necessary.

sehugg commented 2 years ago

It shouldn't be too much different from the C64 port .. I forgot where I left it (https://github.com/sehugg/chips/blob/master/wasm/vic20.c)

The sticky bit is the lack of an open-source BIOS like we use for C64, though maybe part of the "fun" would be making such a thing or modifying https://github.com/MEGA65/open-roms for VIC-20 :)

langel commented 2 years ago

Alright, so I did some digging around on the IDE and MEGA64. I guess my understanding is that physical architectures were protected by patents that are now expired, but "BIOS" software (kernel/basic/char sets) are all still potentially protected by copyright? I would also guess most of the heavy lifting has been done, just that for vic20 to work someone needs to modify the MEGA64 to be compatible with the VIC20 feature set and memory addresses. As "cool" or "fun" as this migration work sounds (haha) I have no idea how long it would take me until I invested a full day or two.

I don't know how I missed, in the C64 examples, that the boot screen and character set are different. I went through most of the other machines and noticed that both the Apple ][ and the Atari 800 are using the original character sets. I have no idea if this is a concern or not.

I am rather certain (but not 100%) that a VIC20 cartridge could run without any use of the kernel or basic roms. I don't want to come off as pushy, it's just that I've really struggled over the decades to find a non-painful development pipeline for the VIC20. Even with automatic builds of assembly on save, I still have to wait for VICE to boot and then emulate loading my software. The immediacy of 8BW's IDE emulation is a game changer! :D/

sehugg commented 2 years ago

I checked in what I have so far. It's pretty clunky though. You'll have to download and build it yourself, then add the file "res/vic20.bios" which contains the basic + chars + kernel ROM. (There's a way to upload a custom BIOS via the IDE but it doesn't work with WASM right now)

sehugg commented 2 years ago

I pushed to the wrong repo .. it's there now.

langel commented 2 years ago

I spend a little time on this over the weekend. I didn't get very far. Might take me quite a while to allot the time, but it will remain high on my to-do list.

nippur72 commented 2 years ago

I have a VIC20 emulator which is derived from floooh/chips which works quite well (though not perfect as VICE). You can see it here: https://nippur72.github.io/vic20-emu

I'm new to 8bitworkshop, is it possible to add new platforms? Is there an API or something... where do I start from? I have 5 or 6 emulators I would like to add: