The VG Resource
BizHawk GPU viewers - Printable Version

+- The VG Resource (https://www.vg-resource.com)
+-- Forum: Main Content (https://www.vg-resource.com/forum-103.html)
+--- Forum: Site Discussion (https://www.vg-resource.com/forum-106.html)
+--- Thread: BizHawk GPU viewers (/thread-28181.html)



BizHawk GPU viewers - aowidnawodnawod - 11-15-2015

I'd like to ask for some feedback on the GPU viewer tools available in BizHawk.

First, since there's little uniformity between the platforms, let's review the GPU debuggers available in bizhawk right now and see what we've got:

NES (neshawk) - Conservative refinement of FCEUX approach, everything jammed into two windows (but with more info than FCEUX)

GB - Principles based on NESHawk approach, but organized better in one window.

SMS - Was the first one we did probably, headed down a NES/GB road but not as elaborated yet.

Genesis - About the same as SMS, but with the higher resolutions and VRAM sizes involved, the window is getting unworkably large and there's no provision for displaying sprites yet.

PCE - About the same as Genesis, but broken into two windows.

BSNES (compatibility core) - A mindbending one-screenful of super-powerful madness, I think there's nothing it can't do (there are actually several things it can't do). This was my effort to apply nocash's principles, but has several substantial elaborations. There's a lot of information here which should be useless unless youre debugging a game. Does it annoy you to see it while ripping art?

GBA - A novel (for our purposes) approach where you build a workbench of the viewers you want. I kind of like it. But at the present there are limitations in information other-than-visual that can be presented. The Sprites view for instance isn't displaying anything other than the art, and it isn't completely clear how this could change, although there's probably a way.

So, we find there are three main approaches here. One is obviously the GBA approach with the multiple windows, and hearing feedback about this is one of the main things I'm interested in. Another approach is to split the tools into multiple windows to keep them manageable. A final approach is to jam everything into one window (best exemplified by the BSNES core)

In general we find there is no provision for scaling views, which would be nice, but we have above average clipboard support so if youre experienced you can zoom in yourself with a paint program pretty fast. With the GBA approach deployed more widespread, scaling would be more workable--theres little reason we couldnt make each of those windows scale, although there would be trouble if we extend the concept to include details such as sprite params as described earlier.

Additionally, that entire GBA approach is more modular which might help unify the GPU debuggers across platforms. Indeed in the long run for BizHawk I see a debugging workbench containing multiple windows besides just GPU views, so perhaps this is inevitable.  But my philosophy is kind of to preserve the flexibility hardcode everything for specific purposes instead of forcing everything through a less finetuned general solution. In principle, one could make the All-In-One one of the views you can spawn onto the workbench, though.

But the GBA approach encourages you to have a sloppy workbench with a lot of windows open which will slow down emulation quite a bit. Our tile decoding and rendering code for the tools tends to be on the fluffy and slow side. The SNES one-view approach forces you to keep it clean with one view open. Of course the approach which renders all the views on one screen is pretty slow too.

Keep in mind there are a lot of low spec systems out there and we try to keep windows small for those things.

So, my questions for you all: do you have any strong preferences among the approaches used in BizHawk right now, or any bad experiences with those tools? Are there any other emulators whose GPU viewers can be inspirational models? Which emulators have you had your greatest experiences in?


RE: BizHawk GPU viewers - SuperFlomm - 11-21-2015

I'm not sure how many people here use BizHawk. It's apparently not well known that BizHawk can be used for much more than TASing. I used the GPU viewers for GB and GBA a few times to rip things and I like them a lot.

Some of the debug features are nice too. I'm working on a hack of a GB game and I figured out how to change which palette a tile uses thanks to them. They don't annoy me when I'm just ripping sprites, it's easy enough to ignore them.

I'm sorry if I wasn't much of a help, I haven't used BizHawk's GPU viewers that much.

This might be a bit offtopic but something I miss in BizHawk is the ability to rip SPCs, it's the only reason I still use SNES9X from time to time.


RE: BizHawk GPU viewers - aowidnawodnawod - 11-22-2015

(11-21-2015, 02:18 AM)SuperFlomm Wrote: This might be a bit offtopic but something I miss in BizHawk is the ability to rip SPCs, it's the only reason I still use SNES9X from time to time.

That's a pretty easy thing to add and is a subject that interests me, but isnt essentially 100% of SPC music ripped by now, excepting cases which take guru wizards to figure out?


RE: BizHawk GPU viewers - SuperFlomm - 01-31-2016

I don't know if you will read this because it has been a while, but I noticed something in BizHawk.
So, back to ripping graphics. Is there no option to hide layers? If there is I couldn't find it. (Game Boy)


RE: BizHawk GPU viewers - aowidnawodnawod - 02-02-2016

It seems not, but there arent "layers" on the gameboy, theres only one layer. Still, it seems theres no way to hide it and view only the sprites right now. Of course if you only want to view the BG then the GPU viewer can do that neatly


RE: BizHawk GPU viewers - SuperFlomm - 02-02-2016

Oh sorry, I meant GBA not GB. I'd like to hide the sprites because the BG uses multiple layers and I would need to piece them all together (or use a different emulator for this).


RE: BizHawk GPU viewers - aowidnawodnawod - 02-02-2016

You can see the options just as well as I can, there's nothing hidden. We need to add these options.