|
Post by willymanilly on Mar 18, 2017 1:53:03 GMT
The images you have created have been invaluable with me being able to emulate the quirks of the VDC and VIC chips. VIC NTSC interlace was relatively easy to implement compared to the C128 VDC and VIC-IIe. BTW your message prompted me to go back and check the interlaced images on the VIC 20 emulator and I found an error with the reset code which was locking access to the drive after a hard reset that stopped me from being able to view the images. I have fixed that issue now and uploaded a new version of VIC 20 so the interlaced color retina images can be viewed again with no issues if the user used a hard reset instead of a reset when changing screen modes. If any of you have any images you know display on a real c128 but doesn't show in the emulator please send me a copy and I will prioritize trying to support them. I'm still waiting for my 64KB VDC upgrade but I plan to do a lot more thorough testing of the VDC to make the VDC emulation even more accurate than it is now.
|
|
|
Post by willymanilly on Mar 13, 2017 6:16:57 GMT
I've got the 8x1 color mode Tokra uses working correctly on my emulator! I created a test program that uses both of the CIA2 Timer measuring transitions of VBLANK to try and confirm the size of the frame for Tokra's VDC-FLI 480x252 Non Interlace 8x1 mode and it appears to be 295 raster lines/frame. I concluded this by using the formula (2000000*18546)/(985248*127). The test was using old roms. 2000000=VDC clock speed, 985248=CIA clock speed, 18546 = (65535-46988)+11 65535=default CIA timer value. 46988 =read timer value after timer stopped when VBLANK is cleared. 11= cycle count correction from when timer stopped. Tests were done in 2MHz mode. I have a lot of data I am still deciphering but it seems the VDC forces a v sync signal and starts fetching graphics data if VBLANK is set and the character row counter = 0. This causes the VDC to skip 34x60 (2040) bytes of graphics data and 1x60 bytes of attribute data before displaying the image. 60 is the value in the horizontal display register. My conclusion so far is the 34 is from overflowing the character row counter. In short, my model implements this by overflowing the character row counter to the maximum value of 31 and counts back to zero. I haven't looked at the source to Risen from Oblivion but it doesn't appear to get triggered by this method and only skips 3 bytes of graphics data before displaying the 8x1 FLI image. This is emulated as well. I will try and give a more detailed explanation once I analyse the data from my real C128 in more depth. For now you can see the results of VDC-FLI for yourself by downloading the latest version of my emulator here ==> www.z64k.com and loading up VDC Mode Mania.
|
|
|
Post by willymanilly on Mar 9, 2017 21:12:49 GMT
Ah, I just found a bug in my internal function ROM prior to burning it, thanks to the emulator. VICE didn't emulate capslock but Z64K did! Glad to hear the internal function ROM functionality I just implemented was of some use! There is still are lot of work to be done with the C128 emulator, especially with VDC, Z80, and clock stretching, but it is improving. I have a huge list of features I still want to implement, a lot contributed by Miro, but at the moment I am focusing on core functionality. I have managed to get my hands on a real C128D which should arrive early next week so I'm hoping that will greatly help with benchmarking the emulator against the real thing. I'm currently rewriting the VDC emulation to be able to show all Tokra's images correctly in all modes including multicolour interlace. I hope to have most of it complete by the end of this long weekend.
|
|
|
Post by willymanilly on Feb 20, 2017 20:16:05 GMT
I ran Z64K yesterday and had some problems with the framerate when limiting it. Are you interested in that kind of feedback at this point or is it too early in development? Maybe you should start a thread to discuss the emulator ? The C128 version of the emulator is still in very early development stage but I am keen for all feedback for any of the emulators. I'm constantly making improvements, the latest being fast serial support for the C128 and C1571! I uploaded a new version to the website last night. Being able to get examples of what it is not currently working as expected helps immensely with building an accurate emulator so yes, please send me details of the frame rate issue. Creating a new thread to discuss the emulator is a great idea and I planned on creating one once I have the core of the emulator complete.
|
|
|
Post by willymanilly on Feb 15, 2017 5:10:38 GMT
Lol. I have just updated the emulator and have successfully got 80 col interlace working! It's not perfect yet so you can hold back with bowing down for now but at least it's a start. You can see my website for more details and download the latest version.
Just FYI, The C64 emulation should be reasonably stable because it almost the same code as C64 Beta but the C128 still needs some work to the MMU, VDC, and VICIIe testbit and clock stretching so I don't expect all programs to work correctly yet. The C1571 emulation supports double side/2Mhz mode but doesn't have fast serial or MFM support yet. In saying that, if you have any programs that doesn't work that you would like to see work, let me know and I will look into them.
|
|
|
Post by willymanilly on Feb 14, 2017 0:25:18 GMT
I am searching for clock stretching. I hope your c128 emulation can do 80 col interlace. Thanks.
Yes, I will be implementing 80 col interlace and I have already started on the coding for that. I'm hoping to having a first draft of the interlace emulation available for download by the end of this week.
|
|
|
Post by willymanilly on Feb 12, 2017 21:36:42 GMT
I've just started working on a c128 emulator and my first goal is to get the VIC version of Risen from Oblivion working. I've been making good progress including getting the final frog screen showing graphics in the upper/lower border but I've hit a roadblock with a couple of the effects because I'm finding it challenging to get my hands on any detailed information on how clock stretching actually works for the c128. The best I have been able to find is the obvious information that PLA, processor, and VIC chip are involved with syncing the 2MHz clock with the 1MHz I/O chips. I've been hammering away for the last few days but just can't get the timing right. If anyone can point me in the right direction with more detailed information than what the C128 programmers reference guide and mapping the c128 offer, it will be much appreciated. You can download my emulator here to see the progress I have made. ==> www.z64k.com
|
|