BizHawk icon indicating copy to clipboard operation
BizHawk copied to clipboard

(Feature request) Graphical memory view

Open getCursorsExe opened this issue 1 year ago • 4 comments

The point of this is to interpret a memory domain as color data (RGB(A), BGR(A) example, similarly to Cheat Engine). This will allow you to see the game graphics data for certain consoles (example N64, PlayStation). With this, you don't need to import every byte to a file, just to view raw graphics. Not every console uses RGB(A)888(8), however, so bit-depth for color channels needs to be manually specified by the user. Note that RGB(A) means there can be RGB or RGBA.

getCursorsExe avatar Sep 02 '23 09:09 getCursorsExe

This can be done to any core.

getCursorsExe avatar Sep 02 '23 10:09 getCursorsExe

The request as-is is far too open-ended. We're not opposed to adding more tools for romhackers, but before anyone can write such a tool they'd need to have a good understanding of what it would be used for. Is there an existing tool for PSX or N64 that you'd like to see copied in EmuHawk? If not, can you give a specific example of a manual process you're doing that other people would also need to do? Something that's tailored to one particular game/engine isn't suitable for inclusion in EmuHawk.

YoshiRulz avatar Sep 02 '23 12:09 YoshiRulz

N64 makes no sense with this request, as the N64 does not actually have dedicated VRAM (with Nintendo's genius decision to use RDRAM for nearly everything to cut costs)

A few minutes looking at PSX also shows this just doesn't make sense. You could view the framebuffer with this kind of request? But that's not useful really (you see that already). Textures could directly use RGB16 colors, but they also have modes which they refer to a color lookup table, which completely throws this idea out the window.

CasualPokePlayer avatar Sep 02 '23 16:09 CasualPokePlayer

Apparently I found out an example. In N64 most backgrounds and texture triangles (mainly in Super Mario 64) are in RGBA format and are stored in RDRAM. There are limitations with indexed palette though, which is why most textures (including backgrounds are in RGBA). Implementing graphical memory view would allow most textures to be seen.

getCursorsExe avatar Mar 09 '24 11:03 getCursorsExe