Joined: 11/15/2012
Posts: 67
Location: Upstate, NY
Hi, I'm the owner of http://www.snesmaps.com and I also work with http://vgmaps.com to make screen shot maps of NES and SNES games. I'm starting this thread to open a dialog with the programmers working on BizHawk to talk to mappers using their emulator to map SNES games. First off I want to say I'm very impressed with the work you have done so far. This will make mapping games much easier then when I was using zSNES with vSNES. It was a big hassle having to save a state and open that file in a separate program for each and every screen shot where capturing sprites or indivual background layers were needed. I love being able to open the "Graphics Debugger" and do all that live now. Thank you very much for all the work you have put into this project. I have a few requests of features to add that will make this emulator work better as a mapping tool for SNES games. 1. Add a feature to be able to set the color pallet so it is the same standard that both zSNES and SNES9x use to keep consistency in mapping projects. 2. Be able to view sprites in the "Graphics Debugger". 3. Be able to turn the individual 16x16 sprite tiles on and off, so sprites hidden under other sprites can be reveled. 4. For the Toggle BG options under the SNES tab for the HotKeys, include an option to make a hotkey turn all the layers back on. That way if I am messing around turning different layers on and off to get the screen shot I need, I can just hit one button to get it back to normal mode showing all the BG layers. 5. When I bring up the "Graphics Debugger" in Super Mario World and try to capture the BG1 Layer it has a black background in the Graphics Debugger Screen. There is the "Use Backdrop" color option for the emulator screen, however I can't find a way to change the color of the backdrop in the Graphics Debugger Window. I need to be able to make it a color like magenta so I can remove the transparent part of it in Photoshop when mapping the individual layers of the game. I look forward to working with you guys to make this the #1 emulator to use for mapping SNES games. I hope you are able to implement some of my requested features to make mapping SNES game much easier. Let me know if you have any questions about my suggested features. Or if any of these features already exist and I'm just not seeing how to use them correctly. Thanks again for all the hard work you guys have been putting into this project! Here is the link to the ongoing discussion on vgmaps about this topic: http://www.vgmaps.com/forums/index.php?topic=1859.0
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11479
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
EDIT: double-click the color to change the backdrop.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Joined: 11/15/2012
Posts: 67
Location: Upstate, NY
Double-clicking changes the backdrop color in the emulator window, not the Graphics Viewer window. I need to be able to change it in the Graphics Viewer window since that is where I capture the layers to make the maps.
Editor, Emulator Coder
Joined: 8/7/2008
Posts: 1156
hi, I'm the guy who works on the snes graphics debugger. we want you to use bizhawk for this. 1. thats more of a snes emulator core issue than a gfx debugger issue. it can be arranged. i never fathomed it would be an issue, but it makes sense. 2. obj debugging is planned, coming soon. 3. I wouldnt have thought of that. I'll think of a way to do it 4. I am going to put layer toggles in the gfx debugger. I'll make sure an all/none option is there too. we'll see if that's enough. 5. that's an oversight. it can be fixed. as an aside, all of the graphics decoding is in c# right now. when it's done, i'll port it to c++ and the debugger wont be quite so painfully slow. please let me know if you find any games with jacked up BGs. There are still some modes I havent tested. feedback on how it feels to use this debugger compared to vsnes is welcome. vsnes seems to have represented things more concisely than I was able to figure out. I've never used vsnes before. It's transparency controls groupbox is good, I might rip it off directly. If you have opinions about it, better share them!
Joined: 11/15/2012
Posts: 67
Location: Upstate, NY
I would definitely recommend checking out vSNES. It is a great tool. The main problem with it is that you can't view the information live while playing the game like can be done with the one you're working on. The things I notice are missing from the Graphics Debugger are the BG Modes. When viewing "BG1", BG2" and so on there are buttons for BG Mode 0 through 7. Most of the time they are not needed, but sometimes they are needed to view a layer correctly. There are also priority switches for "priority 1" and "priority 0". The priority buttons turn on and off certain parts of the BG Layer. Sometimes this can be useful for capturing specific parts of a map. Having the sprites viewer built in the same window on a different tab makes it easy to switch between capturing the backgrounds and the sprites. Being able to hit "Ctrl + C" to copy the image currently being displayed in the Graphics Debugger to the clipboard would be useful for pasting the images into my Photoshop file for piecing together the map. Let me know once you have new builds and I will be glad to test them out and give you feedback. Thanks again for all the work you are doing on this project. I have been wanting something like this to come along for the past 3 or 4 years and it looks like it is almost here! :)
Editor, Emulator Coder
Joined: 8/7/2008
Posts: 1156
BG mode switches should never be needed to view a layer correctly. choose the correct scanline, and the game should be switching to the right BG mode. choosing the scanline is way more powerful and should obsolete the idea of choosing the bg mode. I've got to add the priority toggle to the todo list. and the ctrl+c copy.. our infrastructure for that is brand new, so i'll move it to the top of the list. the sprites are gonna go in the same window but on a different tab. sort of. there should be another option where you choose the BG you want.
creaothceann
He/Him
Editor
Joined: 4/7/2005
Posts: 1874
Location: Germany
zeromus wrote:
BG mode switches should never be needed to view a layer correctly. choose the correct scanline, and the game should be switching to the right BG mode.
Does that work via the HDMA table? Some games switch modes 'manually' via vertical interrupt.
Editor, Emulator Coder, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
creaothceann wrote:
zeromus wrote:
BG mode switches should never be needed to view a layer correctly. choose the correct scanline, and the game should be switching to the right BG mode.
Does that work via the HDMA table? Some games switch modes 'manually' via vertical interrupt.
No. The emulator breaks on the requested scanline, and at that moment, the emulation state is used to generate the GPU view. So any change method at all can be properly detected; DMA, interrupt, timed code. That's not to say there couldn't be a runtosave() related issue... but a better question would be, can you produce a game that isn't working as expected with the scanline control?
Post subject: Re: Using BizHawk to map games
Editor, Emulator Coder, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
snesmaster wrote:
1. Add a feature to be able to set the color pallet so it is the same standard that both zSNES and SNES9x use to keep consistency in mapping projects.
I took a look at some color conversions in sneshawk, and compared them to a few reference images on http://www.snesmaps.com; as far as I can tell, the latter is wrong. Granted, it's not a "big deal"... but why not convert all of your projects to use more correct color conversion formulas, instead of converting the emulator to use less correct color conversion formulas?
Post subject: Re: Using BizHawk to map games
Joined: 11/15/2012
Posts: 67
Location: Upstate, NY
natt wrote:
snesmaster wrote:
1. Add a feature to be able to set the color pallet so it is the same standard that both zSNES and SNES9x use to keep consistency in mapping projects.
I took a look at some color conversions in sneshawk, and compared them to a few reference images on http://www.snesmaps.com as far as I can tell, the latter is wrong. Granted, it's not a "big deal"... but why not convert all of your projects to use more correct color conversion formulas, instead of converting the emulator to use less correct color conversion formulas?
I have no idea how to convert Photoshop files to different colors using color conversion tables from the BizHawk emulator. Is that something you know how to do? There would be about 4,500 image files to convert. Many of those have multiple layers that would all need converting. How much work would it take to have an option to use the zSNES / snes9x color palette? Keep in mind it's not just zSNES / snes9x that use that same palette, most map editors for SNES games also use that same palette.
Post subject: Re: Using BizHawk to map games
Editor, Emulator Coder, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
snesmaster wrote:
I have no idea how to convert Photoshop files to different colors using color conversion tables from the BizHawk emulator. Is that something you know how to do? There would be about 4,500 image files to convert. Many of those have multiple layers that would all need converting. How much work would it take to have an option to use the zSNES / snes9x color palette? Keep in mind it's not just zSNES / snes9x that use that same palette, most map editors for SNES games also use that same palette.
Photoshop, ehh? Could be tough; I wouldn't trust anything but Photoshop to open a psd. I'm in the process of examining snes9x code to confirm what it does. The next bizhawk release should have some sort of color adjust system.
Editor, Emulator Coder
Joined: 8/7/2008
Posts: 1156
it would take a couple of hours of photoshop scripting, which might then take a couple of days to run
Joined: 11/15/2012
Posts: 67
Location: Upstate, NY
zeromus wrote:
it would take a couple of hours of photoshop scripting, which might then take a couple of days to run
Is writing that script something you would be willing to do? If so I can send you one of my .psd files to test it with. Unfortunately I don't know enough about Photoshop scripting to do that myself. Recording Actions to make some of the repetitive steps easier is about as far as I can go.
Editor, Emulator Coder
Joined: 8/7/2008
Posts: 1156
https://dl.dropbox.com/u/4260750/temp/psdcolormap.zip output/psdcolormap.exe will accept .psd files and drop them in the same directory as .fixed.psd indexed images will be changed to rgba in the process. shouldnt be hard to batch convert them back. i attempted to get this right in the first try; we'd need to test some maps to see if it's working out as expected. this targets the new bizhawk snes palette, which natt changed a couple of days ago, and is different from bsnes, since we discovered bsnes's palette seems sort of illogical. colors that dont exist in the snes9x colorspace should turn to magenta. if youre trying to convert some other unknown colorspace to bizhawk's, then youre not making sense; a conversion cant be done when the source colorspace isnt known. im not necessarily recommending that you convert your maps. this is just so we know you can do it, if you decide to switch to bizhawk.
Joined: 11/15/2012
Posts: 67
Location: Upstate, NY
Thanks for taking the time to put that together. I just downloaded it and will let you know how it works as soon as I get a chance to test it out. To test it out fully I will need the newest build of BizHawk. A real life example of where this will come in handy, is for Donkey Kong Country. I'm part way through mapping the game. I'm using BG Maps from a map editor for one of the layers and capturing some of the BG layers from the emulator as well as capturing all the sprites from the emulator. So the color palette of the Map editor maps needs to match the color palette of the emulator. The map editor maps for DKC uses the same color palette as zSNES and snes9x. So I should be able to run your tool on these maps and then it should be consistent with the graphics I grab from the Graphics Debugger in BizHawk. Don't worry I will test it on copies of my files just encase something goes wrong. Let me know when I can download the most recent version of BizHawk so I can test it out.
Joined: 11/15/2012
Posts: 67
Location: Upstate, NY
I had a chance to test it out. The first file I tried gave me an error: System.OutOfMemoryException: Insufficient memory to continue the execution of the program. at PaintDotNet.Data.Photoshop.... And it goes on, let me know if you need the entire error. I have 16 gigs of RAM. That was with the map of the first level for DKC. It is a 17,220 KB file size and has lots and lots of layers in it. Next I tried a smaller file and that worked just fine. However it made the folders I keep layers in into layers themselves with nothing in them. Then I tried it just on one of the background images from the map edit program in a .psd file and that worked fine. I compared the new color palette with the one from BizHawk by taking a screen shot, and it was close but did not match, however that is to be expected since you said it was now using a new color palette. So once I get the new version of BizHawk I will verify it matches completely.
Editor, Emulator Coder
Joined: 8/7/2008
Posts: 1156
post the psd youre testing on and ill debug it
Joined: 11/15/2012
Posts: 67
Location: Upstate, NY
PM sent
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11479
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Joined: 11/15/2012
Posts: 67
Location: Upstate, NY
Is there a place to view what new features are in the interim builds? I thought there was a new color palette in this version, but it appears to be identical to the last official build. In a previous message: "this targets the new bizhawk snes palette, which natt changed a couple of days ago" However I don't see a new color palette. Is there something I need to do to activate it, or is it just not in the interim build?
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11479
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Check the commit log, for example this entry: http://code.google.com/p/bizhawk/source/detail?r=3810
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Joined: 11/15/2012
Posts: 67
Location: Upstate, NY
Looking through that it looks like the color stuff has been implemented. I just have no idea where to switch to the different color modes. Any help in this would be greatly appreciated. public enum ColorType 83 + { 84 + Bizhawk, 85 + Natt, 86 + Snes9x 87 + };
creaothceann
He/Him
Editor
Joined: 4/7/2005
Posts: 1874
Location: Germany
Apparently the old code has been replaced by the new one, so there's nothing to switch to. EDIT: :/
Joined: 11/15/2012
Posts: 67
Location: Upstate, NY
If that is the case then the new color code is not working. It is exactly the same colors as the old version that was officially released. The colors still don't match zSNES / snes9x and they have not been changed at all from the previous version. I am using Interim Build SVN r3836 and comparing it to SVN r3523 Version 1.2.0 Released October 20, 2012. When comparing the colors they are exactly the same with no change at all.
Editor, Emulator Coder, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
that stuff isn't in the UI yet. sorry for the confusion; happens with bleeding edge builds and whatnot. for the moment, it's still doing old behavior entirely