BizHawk Emulator Development


Editor, Emulator Coder, Experienced Forum User, Site Developer
Joined: 5/11/2011
Posts: 1105
Location: Murka
Dooty wrote:
adelikat wrote:
are you saying that the right analog pad is also hard-coded to the left analog?
Yes, the D pad, left analog stick and right analog stick all do the same function, regardless if I assign hotkeys to them; they all controls player 1. Being able to assign those hotkeys to any controller key is the only thing that is keeping me tied to the Snes9x.
on latest SVN (so for next release), you should be able to independently map each button/axis on each dinput controller.
Experienced Forum User
Joined: 1/23/2012
Posts: 82
Well, I can at least say that I finally found a version of Bsnes that runs full speed without audio crackling on my system, so props to the team for using a good version for the core.
Experienced Forum User, Published Author, Senior Judge, Senior Publisher (1423)
Joined: 4/17/2010
Posts: 10321
Location: RU
NES TAS of 2011
Does BizHawk have a sort of emu.setlagflag(bool value) as FCEUX now has?
Manual wrote:
Some games poll input even in lag frames, so standard way of detecting lag (used by FCEUX and other emulators) does not work for those games, and you have to determine lag frames manually. First, find RAM addresses that help you distinguish between lag and non-lag frames (e.g. an in-game frame counter that only increments in non-lag frames). Then register memory hooks that will change lag flag when needed.
That would allow to compare lagcounts for different branches internally, while a simple lua lag counter can't handle savestates without some non-trivial workarounds.
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. If TASing is meta-play, TASVideos Movie Rules are meta-meta-play!
adelikat
He/Him
Emulator Coder, Published Author, Site Admin (4250)
Joined: 11/3/2004
Posts: 4655
Location: Tennessee
TASer of 2010NES TASer of 2010DS TASer of 2010Arcade TAS of 2010NES TASer of 2008NES TAS of 2008Funny TAS of 2008TASer of 2007NES TASer of 2007Funny TAS of 2007
feos wrote:
Does BizHawk have a sort of emu.setlagflag(bool value) as FCEUX now has?
No, but I will add it.
Pimpin' ain't easy My Homepage My TAS projects
Experienced Forum User, Published Author, Senior Judge, Senior Publisher (1423)
Joined: 4/17/2010
Posts: 10321
Location: RU
NES TAS of 2011
Then please add arguments like RAM address or ROM execution address to determine lag by. Like here:
Language: lua

no_lag = false function draw() Xspd = memory.readbytesigned(0x53b) Yspd = memory.readbytesigned(0x53c) X = memory.readbyte(0x58f) Y = memory.readbyte(0x59b) camX = memory.readbyte(0x31f) + memory.readbyte(0x320)*0x100 camY = memory.readbyte(0x31b) InvTmr=memory.readbyte(0x4b2) gui.text(1,1,"X: "..X+camX.."\nY: "..Y+camY) gui.text(50,1,"InvTmr:\n"..InvTmr) end function set_nolag() no_lag = true; draw() end memory.registerexecute(0xC6E9, set_nolag); -- 07:C6E9 INC $0322 (ingame timer) function determine_lagflag() if (no_lag) then emu.setlagflag(false); no_lag = false; -- no_lag only affects once else emu.setlagflag(true); end end memory.registerexecute(0xDE58, determine_lagflag); -- 07:DE58 End of the cycle of reading from $4016-4017 (the point where FCEUX sets lagFlag to 0) emu.registerafter(draw);
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. If TASing is meta-play, TASVideos Movie Rules are meta-meta-play!
Editor, Emulator Coder, Experienced Forum User, Site Developer
Joined: 5/11/2011
Posts: 1105
Location: Murka
registerexecute() might not be here for a while, depending on core. if you're looking at a particular ingame timer counter, why not just read that value in a registerafter() instead?
Post subject: BizHawk 1.1.1 Released!
adelikat
He/Him
Emulator Coder, Published Author, Site Admin (4250)
Joined: 11/3/2004
Posts: 4655
Location: Tennessee
TASer of 2010NES TASer of 2010DS TASer of 2010Arcade TAS of 2010NES TASer of 2008NES TAS of 2008Funny TAS of 2008TASer of 2007NES TASer of 2007Funny TAS of 2007
BizHawk 1.1.1 Released. This release includes SGB support and a number of fixes for SNESHawk. This is a nother large release, so I won't summarize the release notes here.
Pimpin' ain't easy My Homepage My TAS projects
Experienced Forum User
Joined: 1/23/2012
Posts: 82
Excellent, thanks for the release!
Post subject: General feedback on the release so far
Experienced Forum User, Published Author, Senior Judge, Senior Publisher (1423)
Joined: 4/17/2010
Posts: 10321
Location: RU
NES TAS of 2011
natt wrote:
registerexecute() might not be here for a while, depending on core. if you're looking at a particular ingame timer counter, why not just read that value in a registerafter() instead?
I guess it would be good too, since BH can run multiple scripts. EDIT: General feedback on the release so far. Once I try to record a movie from Now, I get this error: http://pastebin.com/4RaDUEwd Soft reset in BTDD doesn't work. Also some sound from it sounds wrong in BH. http://rghost.ru/40787710 Thanks for 7-bit samples support though! Where can I see the screenshots integrated with savestates? I'm also suggesting to keep all DLLs and text files in a special folder, not to litter the root folder, that's pretty annoying to me. Another suggestion - in the lower menu, add rightclick to save a state.
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. If TASing is meta-play, TASVideos Movie Rules are meta-meta-play!
BigBoct
He/Him
Editor, Experienced Forum User, Published Author
Joined: 8/9/2007
Posts: 1673
Location: Tiffin/Republic, OH
Would it be possible to add support for Nach's JMA ROM compression to the SNES core? I asked Ilari about doing it for lsnes, but I was wondering if you guys would be able to do it independent of the core.
Previous Name: boct1584
Editor, Emulator Coder, Experienced Forum User, Site Developer
Joined: 5/11/2011
Posts: 1105
Location: Murka
boct1584 wrote:
Would it be possible to add support for Nach's JMA ROM compression to the SNES core? I asked Ilari about doing it for lsnes, but I was wondering if you guys would be able to do it independent of the core.
Doesn't seem to be much information about it out there. Is there a reference implementation anywhere?
Experienced Forum User
Joined: 9/6/2005
Posts: 39
Location: Sweden
Bizhawk won't start for me. I've tried every version from the first one, and they all work up until v.1.0.3. 1.0.3 and up just refuses to start, at all. The only one I got any response from at all was 1.0.5, where Windows said it stopped working and wanted to send information to Microsoft. I collected the logs that Windows wanted to send. I've uploaded them here: http://www.mediafire.com/?ouwltim745oc004 Hopefully someone will figure out the problem. In one of the files, at least, is some information about my computer.
The Dj Opposite Website - My Main music site | Dj Opposite on Newgrounds - My music, mostly Game Remakes.
adelikat
He/Him
Emulator Coder, Published Author, Site Admin (4250)
Joined: 11/3/2004
Posts: 4655
Location: Tennessee
TASer of 2010NES TASer of 2010DS TASer of 2010Arcade TAS of 2010NES TASer of 2008NES TAS of 2008Funny TAS of 2008TASer of 2007NES TASer of 2007Funny TAS of 2007
nesfreak, I think you missed this topic
Pimpin' ain't easy My Homepage My TAS projects
Experienced Forum User
Joined: 9/6/2005
Posts: 39
Location: Sweden
adelikat wrote:
nesfreak, I think you missed this topic
Oh... cr*p. Yeah, I missed that obvious topic *sigh*. Only thing I can blame is that it's veeeery late here (01:52 in the night) and I'm tired. Gotta stop obsessing when I'm half-asleep.
The Dj Opposite Website - My Main music site | Dj Opposite on Newgrounds - My music, mostly Game Remakes.
Experienced Forum User, Published Author (3270)
Joined: 6/2/2009
Posts: 1182
Location: Teresópolis - Rio de Janeiro - Brazil
Sega TASer of 2013SNES TASer of 2012SNES TASer of 2010
The DirectInput is working like a charm, thanks a lot.
I am old enough to know better, but not enough to do it.
Post subject: BizHawk 1.1.1b
adelikat
He/Him
Emulator Coder, Published Author, Site Admin (4250)
Joined: 11/3/2004
Posts: 4655
Location: Tennessee
TASer of 2010NES TASer of 2010DS TASer of 2010Arcade TAS of 2010NES TASer of 2008NES TAS of 2008Funny TAS of 2008TASer of 2007NES TASer of 2007Funny TAS of 2007
BizHawk 1.1.1b Because I love releasing every day, I made 1.1.1b. Actually, I really didn't want to do this. But this is a very important fix for any SNESHawk users. Everyone should stop using previous releases for SNES TASes and use this. There's also a couple of other goodies This fixes once and for all (we hope) the determinacy vs accuracy woes from using the bsnes core. In the previous couple of releases we decided determinacy trumps everything and internally created a savestate every frame. This fix works around that problem by essentially savestating the frame before and emulating one frame on loadstate. This prevents the "virtual" lag frame problem where on some occasions there is a frame that it is impossible to deliver input on. Sorry for the numerous releases, but I wanted to get this out there before people got to far into their TASes. Your SNES movie savestates from previous releases are now broken, and movies might possibly no longer sync. But there is no plans to do this again.
Pimpin' ain't easy My Homepage My TAS projects
BigBoct
He/Him
Editor, Experienced Forum User, Published Author
Joined: 8/9/2007
Posts: 1673
Location: Tiffin/Republic, OH
natt wrote:
boct1584 wrote:
Would it be possible to add support for Nach's JMA ROM compression to the SNES core? I asked Ilari about doing it for lsnes, but I was wondering if you guys would be able to do it independent of the core.
Doesn't seem to be much information about it out there. Is there a reference implementation anywhere?
You could always ask Nach about it. Alternatively, NSRT is (I believe) the only way to compress a ROM with JMA. The most I know about it is that it's based on LZMA.
Previous Name: boct1584
Editor, Emulator Coder, Experienced Forum User
Joined: 8/7/2008
Posts: 1156
boct1584 wrote:
Would it be possible to add support for Nach's JMA ROM compression to the SNES core? I asked Ilari about doing it for lsnes, but I was wondering if you guys would be able to do it independent of the core.
sure, its possible. doesn't sound very exciting. itd almost positively be independent of the core.
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
If you have a PC that can run bsnes, you almost certainly have a HDD where the space savings of JMA don't matter. ;)
Experienced Forum User
Joined: 1/23/2012
Posts: 82
There are only two Snes ROMs that are 48Mbit or 6MB in size, the rest typically range from 2Mbit to 32Mbit. Not being able to compress them should not be an issue.
Experienced Forum User
Joined: 12/19/2007
Posts: 40
the_randomizer wrote:
There are only two Snes ROMs that are 48Mbit or 6MB in size, the rest typically range from 2Mbit to 32Mbit. Not being able to compress them should not be an issue.
Especially because you can compress them (at least on NTFS file systems). Just use the built-in Compression option in Windows on the properties tab. Yeah it's not the tightest compression, but it does get close to ZIP level. That's assuming BizHawk doesn't have other archive support. If it does, use that. RAR is so far the best I've seen for SNES games.
Editor, Emulator Coder, Experienced Forum User, Site Developer
Joined: 5/11/2011
Posts: 1105
Location: Murka
trlky wrote:
the_randomizer wrote:
There are only two Snes ROMs that are 48Mbit or 6MB in size, the rest typically range from 2Mbit to 32Mbit. Not being able to compress them should not be an issue.
Especially because you can compress them (at least on NTFS file systems). Just use the built-in Compression option in Windows on the properties tab. Yeah it's not the tightest compression, but it does get close to ZIP level. That's assuming BizHawk doesn't have other archive support. If it does, use that. RAR is so far the best I've seen for SNES games.
Bizhawk supports quite a few different regular archive formats. I don't know if RAR is amongst them, but gzip and zip are.
adelikat
He/Him
Emulator Coder, Published Author, Site Admin (4250)
Joined: 11/3/2004
Posts: 4655
Location: Tennessee
TASer of 2010NES TASer of 2010DS TASer of 2010Arcade TAS of 2010NES TASer of 2008NES TAS of 2008Funny TAS of 2008TASer of 2007NES TASer of 2007Funny TAS of 2007
BizHawk supports 7z, and 7z still do rar, zip, gzip, etc
Pimpin' ain't easy My Homepage My TAS projects
Experienced Forum User
Joined: 12/19/2007
Posts: 40
adelikat wrote:
BizHawk supports 7z, and 7z still do rar, zip, gzip, etc
Cool. I'm still waiting on .NET Framework 4 to install, so I didn't know. I've got everything downloaded, but the installation is going rather slow. EDIT: Finally got it working. My review: it needs more display filters, particularly the ones that don't blur the screen. The more basic advinterp and advmame (EPX) are needed, as are the hqx family. And, as expected, the bsnes core on my single core netbook is too slow, even with as much frameskip as possible. I don't know if you'll be able to speed hack it, as the designer is so dead set against speed hacks that he may have made that difficult. I sincerely doubt any speedhacks will make it run on my netbook (which is enough to run snes9x at triple speed.)
Experienced Forum User, Published Author, Senior Judge, Senior Publisher (1423)
Joined: 4/17/2010
Posts: 10321
Location: RU
NES TAS of 2011
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. If TASing is meta-play, TASVideos Movie Rules are meta-meta-play!