Emulations (running on Linux/Unix/Windows/macOS, utilizing SDL2) of some - mainly - 8 bit machines, including the Commodore LCD, Commodore 65, and the MEGA65 as well.
To realistically do this, some minimal set of requirements from the emulation:
~allow to run "headless" (no X11 or any GUI is running, no output window)~ [DONE: using "dummy" video and audio driver then in headless mode]
~allow to skip timing to run at maximal speed (this is not a hard requirement, but surely it can be useful: faster testing than real-time, if the nature of testing allows that)~ [DONE]
~dump memory content on exit~ [ALREADY-DONE]
~dump screen content in ASCII (can be done easily, there is code for that in the UI just should be called automatically as well)~ [DONE]
~user program controllable exit of emulator~ [DONE]
~screenshot to PNG on exit? (can be easily done as there is code for that already to make screenshots)~ [DONE: MEGA65]
~allow CLI option for hypervisor "serial" output~ [DONE]
~CLI option to use IMPORT function of BASIC65 to load untokenized (pure ASCII) BASIC65 program. BASIC65 has this functionality, just somehow it should be made easy for using that feature in an automated testing workflow potentially~ [DONE, though not special handling of input chars or any conversion yet!]
Usage of existing techniques:
~using the -virtsd feature to avoid to create large SD image for just testing purposes~ [REJECTED]it is very hard to use this feature nowadays since so many special preparement needed for the SD-card nowadays unlike in the old times
It can/could be useful to use the emulator to run a kind of module testing of ROM, software etc. For example: https://github.com/MEGA65/mega65-user-guide/issues/484
To realistically do this, some minimal set of requirements from the emulation:
IMPORT
function of BASIC65 to load untokenized (pure ASCII) BASIC65 program. BASIC65 has this functionality, just somehow it should be made easy for using that feature in an automated testing workflow potentially~ [DONE, though not special handling of input chars or any conversion yet!]Usage of existing techniques:
-virtsd
feature to avoid to create large SD image for just testing purposes~ [REJECTED] it is very hard to use this feature nowadays since so many special preparement needed for the SD-card nowadays unlike in the old times-prg
to load/run programs automatically-8
to attach D81 images automatically-rom
to select ROM to useSome idea to use Xemu/MEGA65 as a testing tool:
https://github.com/MEGA65/mega65-libc/issues/24