BizHawk Emulator Development


Editor, Experienced Forum User, Published Author (2799)
Joined: 5/15/2007
Posts: 3821
Location: Germany
Gameboy TASer of 2015NES TAS of 2013Gameboy TASer of 2011Gameboy TASer of 2010
The bug I recently found in Rubble Saver has a chance of causing Bizhawk-Gambatte to stop rendering new frames. https://github.com/TASVideos/BizHawk/issues/1306 I'd still be very happy if someone could help me about the SML2 ROMs issue. I'd be very interested to create SML2 level hacks.
Experienced Forum User
Joined: 4/22/2014
Posts: 59
Location: United Kingdom
Quick question; is it possible to use Lua to manipulate the colour palette in Gambatte? Like for example, you can have a different colour palette depending on what stage you're on? Or is it not possible?
Editor, Experienced Forum User, Published Author (2799)
Joined: 5/15/2007
Posts: 3821
Location: Germany
Gameboy TASer of 2015NES TAS of 2013Gameboy TASer of 2011Gameboy TASer of 2010
Beed28 wrote:
Quick question; is it possible to use Lua to manipulate the colour palette in Gambatte? Like for example, you can have a different colour palette depending on what stage you're on? Or is it not possible?
I believe not. Something like that would probably be listed under a GB tag here: http://tasvideos.org/Bizhawk/LuaFunctions.html But there is no GB tag. There is only nes and snes. The next best thing is that you draw a box over the screen with a certain opacity and color.
Experienced Forum User
Joined: 5/4/2016
Posts: 67
feos wrote:
arkazal wrote:
Any plans on updating the N64 core to the latest?
Everyone knows it needs to be done, and no one has the time. For the reference, the proper approach is making it a submodule, and porting over our changes within a fork, so we could in future update the core on a whim. zeromus has the commits that need to be reapplied, it just takes someone with the time (and basic skills).
I'd be willing to take a stab at it if it's really just a matter of re-applying previously written code to rig it back up and then working out the quirks. I assumed there were larger underlying issues with updating it which is why it'd never been done. I already have a build environment for the core configured as I built the RSP update a few months back. Is the list of commits posted anywhere (or could you get it), or am I going to have to dig through the git history?
Experienced Forum User, Published Author, Senior Judge, Senior Publisher (1423)
Joined: 4/17/2010
Posts: 10321
Location: RU
NES TAS of 2011
smellyfeetyouhave wrote:
I'd be willing to take a stab at it if it's really just a matter of re-applying previously written code to rig it back up and then working out the quirks. I assumed there were larger underlying issues with updating it which is why it'd never been done. I already have a build environment for the core configured as I built the RSP update a few months back. Is the list of commits posted anywhere (or could you get it), or am I going to have to dig through the git history?
Oh wow! Please ask zeromus, he said he had the list. If taken in its entirety, most of the commits were to Jabo, which is now dead, so it must be quite doable. You're comfortable with submodules?
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!
Experienced Forum User
Joined: 5/4/2016
Posts: 67
feos wrote:
smellyfeetyouhave wrote:
I'd be willing to take a stab at it if it's really just a matter of re-applying previously written code to rig it back up and then working out the quirks. I assumed there were larger underlying issues with updating it which is why it'd never been done. I already have a build environment for the core configured as I built the RSP update a few months back. Is the list of commits posted anywhere (or could you get it), or am I going to have to dig through the git history?
Oh wow! Please ask zeromus, he said he had the list. If taken in its entirety, most of the commits were to Jabo, which is now dead, so it must be quite doable. You're comfortable with submodules?
I don't have a huge amount of experience with them, but it's not a massive hassle. I'd be doing the development on a fork anyways so if it got annoying, I could just do it in the fork directly and then turn it into a submodule once it's "working". I'll hit up the IRC for the list and take a look. Can't guarantee results if a bunch of stuff comes up that's out of my skill level (I'm primarily a C# dev but I've done some C++ here and there), but I've been wanting N64 updated for a while now and if it really is primarily a time investment, I'll take a stab at it.
Experienced Forum User, Published Author, Senior Judge, Senior Publisher (1423)
Joined: 4/17/2010
Posts: 10321
Location: RU
NES TAS of 2011
Yeah the only requirement is easy merging for upstream updates. It will be a fork anyway, we'll just officially adopt it if it works as expected, and them make a submodule out of it. You won't be losing anything after that, you'd still be able to commit to our fork if you want. tl;dr: you don't have to manage submodules, just make the fork work!
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!
Experienced Forum User
Joined: 5/4/2016
Posts: 67
Getting into the code, there have been a loooot of changes to Mupen that completely break many of these patches. Most of the files patched don't even exist in the same form due to massive refactoring and complete re-writes. This might be a bit much for what I was looking to do.
Evan0512
He/Him
Experienced Forum User
Joined: 10/18/2017
Posts: 147
Location: San Francisco
I can't load the Genie Code into any Genesis games because it is not loading.
Planned runs: Super Mario Bros. (warps, under 4:56 as a goal) SMB2 (warps) Marble Madness in 4 games:
    Marble Madness (NES) Marble Madness (Arcade) Marble Madness (Genesis) Marble Madness (GG/SMS)[/list:u] Proposed: Ecco the Dolphin (Genesis, GG/SMS, CD: regular, camera freeze) Ecco: The Tides of Time (Genesis, GG/SMS, CD; normal, hard modes) Super Princess Rescue (Homebrew A2600, no deaths, deaths) Halo 2600 (Homebrew A2600, short, long) New Super Mario Bros. (DS, 100%, warpless, warps, all star coins) Mario Kart DS (all cups, all missions)
Evan0512
He/Him
Experienced Forum User
Joined: 10/18/2017
Posts: 147
Location: San Francisco
Evan0512 wrote:
I can't load the Genie Code into any Genesis games because it is not loading.
How to use Game Genie into it?
Planned runs: Super Mario Bros. (warps, under 4:56 as a goal) SMB2 (warps) Marble Madness in 4 games:
    Marble Madness (NES) Marble Madness (Arcade) Marble Madness (Genesis) Marble Madness (GG/SMS)[/list:u] Proposed: Ecco the Dolphin (Genesis, GG/SMS, CD: regular, camera freeze) Ecco: The Tides of Time (Genesis, GG/SMS, CD; normal, hard modes) Super Princess Rescue (Homebrew A2600, no deaths, deaths) Halo 2600 (Homebrew A2600, short, long) New Super Mario Bros. (DS, 100%, warpless, warps, all star coins) Mario Kart DS (all cups, all missions)
Alyosha
He/Him
Editor, Experienced Forum User, Published Author (3927)
Joined: 11/30/2014
Posts: 2388
Location: US
NES TASer of 2015
I have rewritten interrupt handling for the z80 CPU core. This is a major rewrite that was necessary for the CPC core currently in development. Please test the heck out of it. I don't want there to be a bunch of regressions like last time. I tested all the relevant ZX spectrum test roms I could find. They all still pass, which means I didn't mess up anything too serious. But I would appreciate anyone who has a spare minute who can load up a GG/SMS or Coleco or Spectrum game and ensure it still works. Thanks!
Experienced Forum User
Joined: 9/18/2018
Posts: 21
Location: Québec, Canada
I did alot of testing for my Game Gear record project, and so far, about 30/40 gear geames game, including the one that were fixed in the GG issue, were working with no problem. Games like The three Mortal Kombat games the SMSGG games (like Prince of Persia or RC Grand Prix, with the exception of those in the issue list) and all the Disney games (Donald, Mickey) works like in the last ver
My new website, a blog about retro gaming! RetroGameUp Youtube channel featuring gameplay of old retro game! GlitchoMuseum
Alyosha
He/Him
Editor, Experienced Forum User, Published Author (3927)
Joined: 11/30/2014
Posts: 2388
Location: US
NES TASer of 2015
Thank you for the continued testing Glitcholog. It really helps make sure things didn't slip by me.
Experienced Forum User, Published Author (194)
Joined: 5/9/2011
Posts: 25
Figured i'd say the mega drive trace log is hard to read at the moment, but I think it should be easy to fix. The registers aren't aligned:
Current:
019018:  0C40  cmpi.w  #$640, D0 D0:000002D0 D1:00000018 D2:000000FF D3:000000AA D4:01680039 D5:0000C30D D6:00700020 D7:00000001 A0:00FFB200 A1:00FF8000 A2:00FFCD7C A3:00060DDF A4:00010B0A A5:00FF8000 A6:00FFB200 A7:00FFFDEC SR:2309 USP:00000000 xNzvC
01901C:  6202  bhi     $19020 D0:000002D0 D1:00000018 D2:000000FF D3:000000AA D4:01680039 D5:0000C30D D6:00700020 D7:00000001 A0:00FFB200 A1:00FF8000 A2:00FFCD7C A3:00060DDF A4:00010B0A A5:00FF8000 A6:00FFB200 A7:00FFFDEC SR:2309 USP:00000000 xNzvC
01901E:  4E75  rts      D0:000002D0 D1:00000018 D2:000000FF D3:000000AA D4:01680039 D5:0000C30D D6:00700020 D7:00000001 A0:00FFB200 A1:00FF8000 A2:00FFCD7C A3:00060DDF A4:00010B0A A5:00FF8000 A6:00FFB200 A7:00FFFDF0 SR:2309 USP:00000000 xNzvC


Improved:
019018:  0C40  cmpi.w  #$640, D0 D0:000002D0 D1:00000018 D2:000000FF D3:000000AA D4:01680039 D5:0000C30D D6:00700020 D7:00000001 A0:00FFB200 A1:00FF8000 A2:00FFCD7C A3:00060DDF A4:00010B0A A5:00FF8000 A6:00FFB200 A7:00FFFDEC SR:2309 USP:00000000 xNzvC
01901C:  6202  bhi     $19020    D0:000002D0 D1:00000018 D2:000000FF D3:000000AA D4:01680039 D5:0000C30D D6:00700020 D7:00000001 A0:00FFB200 A1:00FF8000 A2:00FFCD7C A3:00060DDF A4:00010B0A A5:00FF8000 A6:00FFB200 A7:00FFFDEC SR:2309 USP:00000000 xNzvC
01901E:  4E75  rts               D0:000002D0 D1:00000018 D2:000000FF D3:000000AA D4:01680039 D5:0000C30D D6:00700020 D7:00000001 A0:00FFB200 A1:00FF8000 A2:00FFCD7C A3:00060DDF A4:00010B0A A5:00FF8000 A6:00FFB200 A7:00FFFDF0 SR:2309 USP:00000000 xNzvC
Experienced Forum User, Published Author, Senior Judge, Senior Publisher (1423)
Joined: 4/17/2010
Posts: 10321
Location: RU
NES TAS of 2011
They were aligned initially. What release breaks this?
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!
Experienced Forum User, Published Author (194)
Joined: 5/9/2011
Posts: 25
Didn't try any releases in "Older Releases", but 2.2 and up have misaligned regs, 1.13.2 has aligned regs however.
Challenger
He/Him
Experienced Forum User, Published Author (2752)
Joined: 2/23/2016
Posts: 916
Sega TASer of 2017TASer of 2017NES TAS of 2017
Alyosha wrote:
I have rewritten interrupt handling for the z80 CPU core. This is a major rewrite that was necessary for the CPC core currently in development.
With the updates for the core, it means that SMS runs (for example) made from 2.2.1-2.3 would desync for the next release version?
My homepage --Currently not much motived for TASing as before...-- But I'm still working.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author (3927)
Joined: 11/30/2014
Posts: 2388
Location: US
NES TASer of 2015
Challenger wrote:
Alyosha wrote:
I have rewritten interrupt handling for the z80 CPU core. This is a major rewrite that was necessary for the CPC core currently in development.
With the updates for the core, it means that SMS runs (for example) made from 2.2.1-2.3 would desync for the next release version?
They shouldn't. The execution should be identical. Unless I made a mistake somewhere, which so far doesn't seem to be the case.
MESHUGGAH
Other
Editor, Experienced Forum User, Published Author (2615)
Joined: 11/14/2009
Posts: 1241
Location: 𝔐𝔞𝔤𝑦𝔞𝔯
NES TASer of 2013NES TAS of 2013NES TAS of 2012NES TAS of 2011
Checked SMS, no desync, got slower emulation (2.2.2 turbo: 190~170, latest dev build: 90~70 lmao) Checked Coleco, no desync for 2.3 projects (note: pre 2.3 projects/TASes desyncs),got slower emulation (2.3 turbo: 113~100, latest dev build: 74~70)
PhD in TASing 🎓 obsoletes TASes ⏱️ guardian of the vault 🔥 uses black magic 🧙
Alyosha
He/Him
Editor, Experienced Forum User, Published Author (3927)
Joined: 11/30/2014
Posts: 2388
Location: US
NES TASer of 2015
Hmm, there shouldn’t be a performance drop compared to 2.3. I’ll tske a look at it, maybe something is being built in debug mode .
Evan0512
He/Him
Experienced Forum User
Joined: 10/18/2017
Posts: 147
Location: San Francisco
I tried the Mac version of BizHawk, but the text whitens, not perfect. Though the screen is also not perfect. It quits immediately when I screenshot a photo.
Planned runs: Super Mario Bros. (warps, under 4:56 as a goal) SMB2 (warps) Marble Madness in 4 games:
    Marble Madness (NES) Marble Madness (Arcade) Marble Madness (Genesis) Marble Madness (GG/SMS)[/list:u] Proposed: Ecco the Dolphin (Genesis, GG/SMS, CD: regular, camera freeze) Ecco: The Tides of Time (Genesis, GG/SMS, CD; normal, hard modes) Super Princess Rescue (Homebrew A2600, no deaths, deaths) Halo 2600 (Homebrew A2600, short, long) New Super Mario Bros. (DS, 100%, warpless, warps, all star coins) Mario Kart DS (all cups, all missions)
Cyorter
He/Him
Editor, Experienced Forum User, Published Author (324)
Joined: 2/8/2017
Posts: 137
Location: Venezuela
Exotic platforms TAS of 2019
Hello! When I'm selecting a movie for a PCE game, it says that the framerate is 59.8(...) but it's strange for me that when I'm dumping a video, the framerate is now 60. This only happens in PCE as I know, because NES for example, says 60.1~ and when dumping is also 60.1~, but with PCE is different... Why does this happen? Is this normal? If it's normal and intended it's curious xD This happens in 1.13.2 and 2.3. Example:
Experienced Forum User, Published Author, Senior Judge, Senior Publisher (1423)
Joined: 4/17/2010
Posts: 10321
Location: RU
NES TAS of 2011
https://github.com/vadosnaprimer/avifps
filename:    C:\Users\feos\Desktop\Bonk's Revenge (U).avi
framerate:   59.998800023999522
numerator:   1000000
denominator: 16667
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!
Experienced Forum User
Joined: 4/17/2017
Posts: 25
Been a little while since a new release... I'm hopeful for an N64 core update :) Are there any N64 emulators still in development, anyway? It seems like N64 gets the least amount of love v__v
Alyosha
He/Him
Editor, Experienced Forum User, Published Author (3927)
Joined: 11/30/2014
Posts: 2388
Location: US
NES TASer of 2015
arkazal wrote:
Been a little while since a new release... I'm hopeful for an N64 core update :) Are there any N64 emulators still in development, anyway? It seems like N64 gets the least amount of love v__v
mupen64plus has actually seen a lot of activity lately. Microcode emulation for some of the later N64 games was greatly improved not too long ago. This doesn't fix mupen's underlying accuracy flaws, but playability is certainly still improving. Also CEN64 still sees commits, but activity on it has waned. Most every core in Bizhawk needs updating, both in house and external. I'm not sure there is any particular time frame to do it, and it's not tied to a release schedule. Just keep an eye out I guess.