Closed MacGyver4B closed 2 months ago
Yes, it does look like it should scroll horizontally but the image is only single screen and repeats when I fixed "Address Load" not working if address was not set from last control line but at the end of mostly empty second control line. Only KoK does it this way) and it also sets display address pointing to very near end of VRAM which sounds strange. And finally, library docs mentions screen modulo but hardware does not seem to have any kind of modulo support (=allowing wider screens than visible part). No other OpalVision software seems to use non-zero load address than King of Karate. I must be missing something..
Anyway, I'll leave Add_Load fix in next beta. Maybe it depends on driver versions or something..
It does scroll on the real hardware there is a video https://youtu.be/_e8-x0-4E1M?feature=shared showing that for some seconds. The are two pictures for each scene house1(left half) and house2 (right half) they get loaded to the Framebuffer side by side. How that exactly works is over my head. Maybe already when loading the pictures something wents wrong. I think also OPALPaint is not working 100% if you load some oversized images, you are not able to move the visible area. You find some pictures on the installation disks for Version 1.00 of the Software, as disks 3, 4 and 5 of Version 2 are missing. If you press the button that removes the menu and gives full screen view the software also scales the picture to fit on screen. Not sure if my comment helps at all to fix this but I hope they do.
After some more debugging, it looks like if VRAM pointer wraps around (pointer set near end of VRAM bank), selected VRAM bank also gets swapped. This makes both images (left and right half ) partially visible at the same time but they are not aligned correctly. Getting closer..
Done! OpalVision has quite strange feature (which is not mentioned in documentation) which swaps VRAM bank when VRAM pointer wraps around and in addition wrap horizontal position is stored and all following lines also swap in same position. (Maybe documentation was written earlier and this was last minute new feature that enables "free" horizontal panning)
KoK uses this feature to create 2x wider screen than visible (left side image is in first VRAM bank, right image is in second VRAM bank) and by modifying VRAM start address near the end of first bank. Creating virtual wide screen that can be scrolled, even in reality VRAM contains two completely separate images.
@tonioni wow, that was fast! Thanks you for all your hard work on WinUAE! Best Regards Mac
Fixed in 5310b1
The demo game has a 24 Bit deep background consisting out of two pictures e.g. France: House1.dat and House2.dat when you move the player over the middle the background is supposed to scroll to the right part House2. in WinUAE 5300 at least the background is static.
https://amiga.resource.cx/install/OpalVision-10-KingOfKarate1.dms https://amiga.resource.cx/install/OpalVision-10-KingOfKarate2.dms
I guess this dev docs are known http://aminet.net/driver/video/devdocs.lha The game does not seem to use the library or has it statically linked.
For installation the Opalvision Software is needed as some files named .iff (actually jpg inside) get decrunched to .dat by Convert24.