|
Post by willymanilly on Jun 19, 2017 16:14:48 GMT
As most of you probably know I have been working on a Commodore 128 emulator focusing on making it as accurate as possible to the real thing including interlace modes for both VICIIe (using test bit) and VDC, and the behavior of the VICIIe register $d030 (test bit and cpu speed). I am seeking more programs I can/should test with so I can improve the overall accuracy of the emulator. Some of the programs I have tested to be working correctly include:- - iPaint
- VDC Demo
- VDC test
- all video modes of VDC mode mania
- Risen from Oblivion (both VIC and VDC, VIC has only one very minor glitch on the Boris Vallejo image)
- VIC Interlace demo
- CP/M 2.2 and 3
I am mainly after feedback on core functionality at this stage but will also welcome feature requests on the tools. I can make those features a priority if enough people request them. Thanks to everyone who have already requested features. Some things on my to do list include:- - C1581 emulation
- Make Z80 emulation 100% cycle accurate
- C1571 MFM support.
- CPU accelerator support (Flash 8, SuperCPU)
- improved command line and machine monitor options
- Improved assembler including Z80 assembling
- c128 snapshots(not currently supported)
- Extended keys that are mapped using VIC-IIe chip (Register $d02f not currently implemented) *update 2 July 2017: VIC-IIe register $d02f and all Extended keys are now implemented.
- Improved configuration saving.
- Proper documentation (most documentation is fragmented on the changelog on the homepage of my website)
Visit www.z64k.com for latest version of emulators. Some useful keyboard shortcuts include:- - F7 - 40/80 display keyboard key
- ALT-O - Toggle VDC/VIC
- ALT-ENTER Toggle fullscfreen
Thankyou in advance.
|
|
|
Post by tokra on Jun 19, 2017 21:27:40 GMT
I think the CP/M 2.2 cartridge for the C64 is NOT supposed to work on the C128. Bil Herd would probably know for sure, you should be able to reach him on c128.com As for emulation you could also emulate my "VDC VGA Mania", which produces VGA-display-compatible graphic- and text-modes with the VDC.
|
|
|
Post by willymanilly on Jun 19, 2017 22:24:12 GMT
I think the CP/M 2.2 cartridge for the C64 is NOT supposed to work on the C128. Bil Herd would probably know for sure, you should be able to reach him on c128.com As for emulation you could also emulate my "VDC VGA Mania", which produces VGA-display-compatible graphic- and text-modes with the VDC. I did read somewhere that CP/M 2.2 cartridge is not meant to work on the C128 but mirkosoft has one and has confirmed to me it works on his 128DCR in C128 and C64 modes. Miro has done a lot of testing for me with his CP/M cartridge but I would be interested in other peoples CP/M 2.2 cartridge experiences on the C128. Contacting Bil Herd directly on c128.com sounds like a good idea. Cool! That is exactly what I'm after. I thought I had most of your demos but I missed that one. I'll be definitely having a good look at that to make sure it gets supported by the emulator.
|
|
|
Post by tokra on Jun 19, 2017 23:18:59 GMT
I've found this other test-program on my hard-disk that someone had posted in March 2014 on the commodore128.org-forum. The new commodore128.net-forum apparantly lost that post. This small program tests the 32 char-height-function of the VDC. If you look at line 20 and 25 it has a special case for VICE. It looks different on a real C128 (see line 25). Your emulator seems to use the (wrong) VICE-behaviour and also seems to be cutting the picture off at the bottom. vdc32.d64 (170.75 KB) Regarding your emulator I was wondering where to find the "ESC"-key? Also, is it possible to select the used ROM-set? Or at least switch between PAL and NTSC?
|
|
|
Post by willymanilly on Jun 20, 2017 0:46:01 GMT
ESC - key is not implemented yet. It is on the top of my to do list with the other missing keys. I'm hoping to have a new keyboard mapping implemented to include the missing keys within the next few weeks. Regarding a selectable ROM-set that should be relatively easy for me to include as a menu option. The ROMs are located in the assets folder of the jar. For now one way to change them is to manually replace them with your own ROM set using a program like WinRAR, ensuring the ROM/S are renamed to the same name of the ROMS that are being replaced.
NTSC(6567) and PAL(6569) versions of VIC-IIe can be selected via the settings->chipset menu. PAL is the default. The VDC reports NTSC/PAL depending on number of lines displayed/screen. I use a very simple rule of if more than 290 scanlines are drawn it reports PAL otherwise NTSC. I have plans on making this reporting more accurate to the PAL/NTSC standards and is my to do list.
FYI, if you use the "vdc" command in the machine monitor it dumps the current vdc register values and current scanlines. The output is somewhat cryptic and I only intended it's use for my debugging for the moment. The first element on the first line is the current cpu clock time, followed by the current VDC raster line/total scanlines. Note the total scanlines is what the emulator actually outputted to the screen on the last frame and can be different to the calculated scanlines (based on current register values). For example the test program you just provided draws 288 scanlines when VICIIe PAL is selected and 256 scanlines when VICIIe NTSC is selected. In both instances the VDC reports NTSC because both are under 290 scanlines total. My VDC emulation still needs work on exact timing and undocumented behaviour so I would not rely on the VDC reporting at this stage but I hope this gives some insight to how my emulator determines PAL/NTSC.
I'll run the test program on my real c128D when I get home from work to see how it should look, create some timing tests if needed, and make sure it eventually gets emulated correctly.
|
|
|
Post by bjonte on Jun 20, 2017 16:17:25 GMT
I would ask for improved debugging capabilities mainly at this point. - A help command in the debugger that displays all commands.
- I want to feed a symbol list at boot to get addresses replaced by symbol names when disassembling using addresses from 0 to $1FFFF.
- The debugger needs to handle RAM from $00000 to $1ffff. It seems to have broken support for this with 'd 10000' and 'm 10000' for instance.
- I want to feed breakpoints using a file at boot. Could be same as the symbol list, like VICE.
- I would like memory breakpoints as well: read, write or both.
- I need to see both 40 and 80 column screens at the same time.
|
|
|
Post by mirkosoft on Jun 21, 2017 1:45:40 GMT
Torsten - tokra - your 8x32 test works in Z128K, but works not on my real DCR!
Miro
|
|
|
Post by tokra on Jun 21, 2017 6:43:52 GMT
mirkosoft: Look at the code! You have to delete line 20 and edit the REM out of line 25 to work on real machines. I believe this test was done by hydrophilic back in 2014.
|
|
|
Post by willymanilly on Jun 21, 2017 9:18:55 GMT
I would ask for improved debugging capabilities mainly at this point. - A help command in the debugger that displays all commands.
- I want to feed a symbol list at boot to get addresses replaced by symbol names when disassembling using addresses from 0 to $1FFFF.
- The debugger needs to handle RAM from $00000 to $1ffff. It seems to have broken support for this with 'd 10000' and 'm 10000' for instance.
- I want to feed breakpoints using a file at boot. Could be same as the symbol list, like VICE.
- I would like memory breakpoints as well: read, write or both.
- I need to see both 40 and 80 column screens at the same time.
Thanks for the suggestions. They all should be relatively easy to implement and I will put them all on the to do list. I have actually been working on being able to display both screens at the same time and have just uploaded a new version to my website that allows you to do just that! More information on the change is available on my website. I've had to temporarily disable saving of full screen aspect ratio in config file but I will re-enable that option again soon. I will also include an option to save enabling of second screen at startup in the config file as well.
|
|
|
Post by willymanilly on Jun 21, 2017 10:07:37 GMT
|
|