-
Notifications
You must be signed in to change notification settings - Fork 3
Not emulation
Basic64 / JS is not a full emulation of the Commodore 64, it is an emulation of C64 BASIC, the VIC chip and some additions to make coding in Basic on the C64 comfortable directly from the browser.
What is the difference?
In short, you can't resort to machine code to improve your coding, but you will have better access to other aspects of Commodore Basic, which most Emulators won't give you, since it breaks compatibility. Also there is a basic extension you can enable so you wont need to go to machine code, to do some more "fancy stuff".
In other words, it's commodore basic re imagined, but optimized for a browser experience. In contrast, full emulators, are optimized for compatibility with games and demos.
Below is a short list, of the differences between full emulation, and Basic emulation.
- Functional emulation of hardware. Screen, Sounds, Keyboard and Disk will still be emulated, but not on low level.
- Timings. The timings will not be emulated. So raster effects are out of scope.
- No Roms are needed. It's a complete recoding very loosely based on the existing roms, inside Javascript.
- No machine code can be executed.
- Extra features. Extra features are added to make the experience more optimal, on modern hardware.
- VIC2 is being simulated by limited Memory Mapped IO, for the basic and documented features of the Vic2 chip.
- Emulates the hardware of a computer, including all keyboards, graphics, sounds, other input and output devices, and timing.
- An emulator is really a new complete implementation on the target computer. It is a complex system.
- Roms. An emulator needs roms to run.
- Disk images. An emulator can load diskimages of the target platform.
- Machine code can be executed.
- Memory & Memory mapped IO. The memory map of the C64 is being followed. You can peek and poke directly to the hardware to get any task done.