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.
I have updated the emulator so its behavior is the same as a real C128 when running the VDC32 test program. More testing is required but in a nutshell, my model inverts bit 9 (0x2000) of the address before fetching graphics data when:
Character mode is selected; and
32 char-height characters is enabled; and
Attributes are off or the alternate character bit is not set in the attribute data.
I have also started to add support for VDC VGA Mode mania! It displays now but I have some work to do with automatic resizing and positioning of screen to accommodate VGA output. It looks ok with debug border mode selected with VDC in fullscreen. New version of emulator uploaded with details on my website.
I've uploaded a new version of the emulator with VGA VDC mode mania working at correct resolution with correct screen resizing! The text mode seems stable. The bitmap images display but flickers like it is using 2 frames to create the image. Blending the screens takes away the flicker but I'm assuming the image shouldn't flicker in the first place? I will look into fixing the flicker but I just want to confirm the entire image should be drawn in one frame for VGA? I'm sure it will be an easy fix and it's probably just a small oversight in my bitmap emulation.
Interlace-mode (register 8) is NOT set, so these modes should not flicker.
Thanks for the confirmation.
I have found the issue and have fixed the flickering. It was related to the offsets of the values in registers 34 and 35 I use to implement Horizontal blanking positions. The issue was causing every second line of the output to be blanked which overflowed to the next frame. ALL VGA VDC Mode Mania modes seem to work now and the updated emulator with the fix is available to download!
Is there anyway to make it so I can drag and drop a PRG onto it and have it auto-run?
You inspired me to have a look at dragging and dropping functionality and the solution was relatively easy in Java. I have enabled dragging and dropping PRG files onto the main screen of the emulators which will reset the machine and autorun the program. I plan on extending this functionality for other file types.
Please note when loading PRG files, the C128 emulator doesn't properly set the BASIC pointers after loading yet so some programs might fail. The majority I have tried work OK without the need to update the BASIC pointers though. If anyone knows off the top of their head which memory locations should be updated after loading a PRG file, that would be useful for me to complete PRG support for the C128. I do have all documentation to be able to figure it out myself but I just haven't got around to it yet.
Regarding your emulator I was wondering where to find the "ESC"-key?
The extra C128 keys are emulated now including the ESC Key (mapped to F1)! The only keys that are not mapped are the addition arrow keys. Updated emulator and details of changes available on my website.