|
Post by willymanilly on Jun 30, 2017 12:05:48 GMT
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!
|
|
|
Post by willymanilly on Jun 30, 2017 1:39:03 GMT
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.
|
|
|
Post by willymanilly on Jun 23, 2017 11:10:58 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. 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.
|
|
|
Post by willymanilly on Jun 21, 2017 10:07:37 GMT
|
|
|
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 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 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 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 willymanilly on Apr 9, 2017 13:51:44 GMT
Here is a copy of the .d64. You could also test Hydro's Basic 7.80 on your emulatior. Thanks for the copy of IPaint. I have greatly improved the interlace mode of my emulator so IPaint displays correctly now and Tokra's VDC-IHFLI and VDC-ITFLI modes display much better! See example of screenshots from emulator. Interlaced text and images seem to work correctly in all programs I have available including VDC Demo. I haven't test Basic 7.8 yet. I probably should open a new thread for testing interlace mode because I've already fixed the clock stretching issue this thread was trying to resolve... VDC-IHFLI
| VDC-ITFLI
| |
|
|
|
|
Post by willymanilly on Mar 22, 2017 10:05:44 GMT
I haven't used IPaint before but I had a quick look for a copy to test with but I couldn't find an image to download. BTW I've finally improved (actually simplified) the clock stretching in my emulator! The VIC version of Risen From Oblivion displays the all the images and the scrolling message that were previously corrupt at the start of the demo correctly now.
|
|