Closed Krude closed 10 years ago
@unknownbrackets What @raven02 said is absolutely accurate. The minimap is supposed to be a lot more detailed than what is being displayed in your screenshot. That level of detail is only still present when one of the Read Framebuffers to Memory modes is selected.
Also, the large map is meant to be semi-transparent, not completely solid:-
Buffered Rendering (solid map)
Read Framebuffers to Memory (semi-transparent, notice the presence of the characters in the backgound; this is the correct behaviour)
Also, here's an example of diference between the minimaps when comparing Buffered to Read FB to Mem
Buffered Rendering (only the character indicator is seen and is overlaid to a black screen)
Read Framebuffers to Mem (every pathway in the vicinity from the big map can be seen, in addition to the character indicators)
Okay, my bad. It sounded from the description like it didn't show at all. Anyway, this is definitely because of block transfers.
Block transfer download (not supported) 04126000 -> 08c86100
It tries to render from this address when showing the background of the map. It draws the map to this region.
Block transfer download (not supported) 04044000 -> 08c3bfc0 Block transfer download (not supported) 04000000 -> 08c3bfc0
The background is the same. It tries to render the scene behind the map, but instead gets black.
-[Unknown]
As those copies are easy to detect, it should be a pretty simple matter of reusing code from "read framebuffers to memory", grabbing a subrectangle instead. Just need to sit down and do it someday :)
It would be nice (may be i will try myself though not too competent on this) as the framebuffer to memory blit all framebuffers even though some framebuffers are not necessary to be rendered in this mode. (For example , in this case , only the framebuffer in behind for this map is necessary)
Yeah, exactly.
I did try something like this .The map show up but it is not get updated somehow ......
VirtualFramebuffer *bvfb = 0;
for (size_t i = 0; i < vfbs_.size(); ++i) {
VirtualFramebuffer *vfb = vfbs_[i];
if (MaskedEqual(vfb->fb_address, dst)) {
dstBuffer = true;
}
if (MaskedEqual(vfb->fb_address, src)) {
srcBuffer = true;
bvfb = vfb;
}
}
if (dstBuffer && srcBuffer) {
WARN_LOG_REPORT(G3D, "Intra buffer block transfer (not supported) %08x -> %08x", src, dst);
} else if (dstBuffer) {
WARN_LOG_REPORT(G3D, "Block transfer upload (not supported) %08x -> %08x", src, dst);
} else if (srcBuffer && g_Config.iRenderingMode == FB_BUFFERED_MODE) {
WARN_LOG_REPORT(G3D, "Block transfer download (not supported) %08x -> %08x", src, dst);
ReadFramebufferToMemory(bvfb);
}
I don't think we should copy the entire thing to memory in a way that we know is not correct.
-[Unknown]
Yep , probably i'll leave it and implement it cleaner and correct later .
Other than the mini map .In some area , it will be very dark like this
GLES - buffered rendering (framebuffer memory mode is okay though)
-softgpu
What issues still exist here with buffered rendering and simulate block transfers enabled?
-[Unknown]
I think should be no more outstanding issue as far as i know .
Searched for it, but didn't get any results on wherther this was already mentioned. In Ys 7, the minimap in the upper right corner does not work. It's supposed to show a local part of the overall map you can view with Select. It's blank, though. Tested on Win7 x64 with PPSSPP 7.6 1214 g5335416.