Editor, Emulator Coder
Joined: 8/7/2008
Posts: 1156
snesmaster, when it works, youll know it. sorry there hasnt been much progress on it lately, i went deeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeep down a rabbit hole tracking down why the snes core was fundamentally unstable
Joined: 11/15/2012
Posts: 67
Location: Upstate, NY
Hi, how has fixing the stability of the SNES core come along? I'm going to start mapping Super Mario World next week and I was wondering if this emulator is in good enough shape that I should start using it now as my primary tool to map games? If it is in good enough shape to start using, what is the link for the most recent build that I should be using?
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11478
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
I will make one, but it seems the last progress happened Jan 17, 2013. http://code.google.com/p/feos-tas/source/browse/trunk/BizHawk.zip
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
Thanks, I have downloaded it and started mapping out Super Mario World with it. If a version becomes available that has the Sprites use the User Backdrop option let me know, as that will help a great deal.
Joined: 11/15/2012
Posts: 67
Location: Upstate, NY
I just completed mapping World 1: Yoshi's Island from Super Mario World on the SNES using Bizhawk. You can view the maps and sprites I captured from the game at: http://www.snesmaps.com/maps/SuperMarioWorld/SuperMarioWorld.html Overall the mapping experience was a very pleasant one. Much easier then using zSNES with vSNES and having to constantly load save states into a separate program to capture each screen shot and sprite frame. There are three issues that when resolved will make the mapping experience go even quicker and easier. 1. I was unable to capture the animated sprite for the Iggy Koopa from the castle. That level uses a black background when all the BG layers are turned off, and the User Backdrop color does not register for the sprites in the graphics debugger. Once that feature is added I will go back and capture the sprites I am not able to capture now. 2. This one has to do with the "Hotkeys" under the SNES tab for turn on and off Layers. 90% of the time I want to turn on/off All of the BG layers or All of the sprite layers at the same time. So I just set them to the same hot key. However sometimes I need to just turn off a certain BG layer so then I must go in and make separate Hotkeys. Then when I'm done go back and make them the same Hotkey again. Also when I'm turning on and off certain BG layers, I need to futz around trying to remember what layers are on or off to get it so all the layers are on again. So what would really help is adding to that Hotkeys window under the SNES tab an option to have a separate Hotkey that would turn on/off All BG layers at the same time, and one that would turn on/off all Object layers at the same time. Then add one more Hotkey that can be used to turn On all layers back to normal. That way when I'm done getting what I need I don't need to sit there turning on and off layers trying to get them all back on. 3. This is more a bug report then a requested feature. I notice that the program will crash a lot if the emulator is paused when I bring up the Graphics Debugger. I have gotten in the habit of making sure the emulator is not paused when I open up the Graphics Debugger. The error message that comes up is: "Unhandled exception has occurred in a component in your application. If you click Continue, the application will ignore this error and attempt to continue. Object reference not set to an instance of an object." When I click details I get this: ---------------------------------------- LuaInterface Assembly Version: 2.0.4.24551 Win32 Version: 2.0.4.24551 CodeBase: file:///C:/VideoGames/EMU/BizHawk/Builds/r4263/dll/LuaInterface.dll ---------------------------------------- lua51 Assembly Version: 0.0.0.0 Win32 Version: CodeBase: file:///C:/VideoGames/EMU/BizHawk/Builds/r4263/dll/lua51.dll ---------------------------------------- EMU7800 Assembly Version: 1.0.0.0 Win32 Version: 1.0.0.0 CodeBase: file:///C:/VideoGames/EMU/BizHawk/Builds/r4263/dll/EMU7800.dll ---------------------------------------- ************** JIT Debugging ************** To enable just-in-time (JIT) debugging, the .config file for this application or computer (machine.config) must have the jitDebugging value set in the system.windows.forms section. The application must also be compiled with debugging enabled. For example: <configuration> <system> </configuration> When JIT debugging is enabled, any unhandled exception will be sent to the JIT debugger registered on the computer rather than be handled by this dialog box. Thanks for taking the time to read all of my requests. Hopefully it won't take too much work to add the requested features. Please let me know when some or all of these features have been added and send me a link to the new build that has them so I can begin using them once they are ready.
creaothceann
He/Him
Editor
Joined: 4/7/2005
Posts: 1874
Location: Germany
Maybe making this via LUA scripts would be more comfortable for everybody?
Joined: 11/15/2012
Posts: 67
Location: Upstate, NY
Making what with LUA scripts? Can all 3 of those things be done in LUA, or were you just thinking of one or two? I know nothing about LUA, so that is not something I would be able to do if that is what you were suggesting? Or was that message meant for the developers of Bizhawk and not me. If that is the case I don't feel so bad not knowing what it means.
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11478
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
snesmaster: implementing something on LUA end means you can set any amount of custom hotkeys for anything the given emu supports through LUA. Toggling layers was pretty common emu-lua function from what I recall. Also, this means you can tweak your custom tools easier and faster than the devs tweak functions they embed into the very client. We just need to come up with the level of abstraction, to request PARTICULAR lua functions that'd allow you to work effectively already. Cooking up the scripts is not too hard, we will help you at first, then you'd get the idea and adjust things yourself. See the current functions BH supports: http://tasvideos.org/Bizhawk/LuaFunctions.html
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.
creaothceann
He/Him
Editor
Joined: 4/7/2005
Posts: 1874
Location: Germany
Yeah... writing scripts means you don't have to wait for new BizHawk binaries, and can quickly try ideas.
Joined: 11/15/2012
Posts: 67
Location: Upstate, NY
I did check out the link you provided, but I did not see functions that set hot keys or change the BG color? Am I just missing them or do those need to be written? The biggest thing that is holding me back right now is not being able have the User Backdrop color used in the sprites. If someone has the time to write a script that would set a hot key turn on all the layers for the SNES game, I should be able to figure out how to make the rest of the hot keys from that. Also if someone can show me a script that would use the User Backdrop color for the Sprites in the Graphics debugger, or set it in the emulator window when all the BG layers are off I should be able to do what I need to do. Thanks for any help you can provide.
creaothceann
He/Him
Editor
Joined: 4/7/2005
Posts: 1874
Location: Germany
Well, at least here's the layer function:
emu.setrenderplanes
    void emu.setrenderplanes(bool plane1, bool plane2, [bool plane3], [bool plane4]) 
    Toggles the drawing of sprites and background planes. Set to false or nil to disable a pane, anything else will draw them.
The SNES would need more than 4 booleans though.
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11478
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.