1 2
8 9 10
19 20
EZGames69
He/They
Publisher, Reviewer, Expert player (3968)
Joined: 5/29/2017
Posts: 2708
Location: Michigan
about a month ago, Alyosha made This post talking about why loading times are shorter on GBHawk compared to Gambette. I fail to see how that helps this core to be as accurate as possible to the console. This is, as MemoryTAS pointed out, no different to how VBA treated lag frames, which was part of the reason why VBA was eventually dropped for GB/C tases. I would really like to know why this isn't being looked into or why I seem to be the only one who cares about this.
[14:15] <feos> WinDOES what DOSn't 12:33:44 PM <Mothrayas> "I got an oof with my game!" Mothrayas Today at 12:22: <Colin> thank you for supporting noble causes such as my feet MemoryTAS Today at 11:55 AM: you wouldn't know beauty if it slapped you in the face with a giant fish [Today at 4:51 PM] Mothrayas: although if you like your own tweets that's the online equivalent of sniffing your own farts and probably tells a lot about you as a person MemoryTAS Today at 7:01 PM: But I exert big staff energy honestly lol Samsara Today at 1:20 PM: wouldn't ACE in a real life TAS just stand for Actually Cease Existing
Alyosha
He/Him
Editor, Expert player (3532)
Joined: 11/30/2014
Posts: 2730
Location: US
I made the first round of commits for 3x GB/C support. Just select GB3x in the multi disk bundler. (it must have 3 roms, no sanity checking.) They don't connect yet though, maybe next week. It will probably only run around 45 fps once all the connecting logic is done, and probably only 30 fps in TAStudio, but it should work at least. I imagine the uses of this will be limited to the Gen2 pokemon catch em all, but at least the capability will be there. @EZGames69: I don't really have anything to add beyond what I've written previously.
Alyosha
He/Him
Editor, Expert player (3532)
Joined: 11/30/2014
Posts: 2730
Location: US
@Chamale: I got linking working for a test. If you download the dev build you should be able to link the 3 games (only 2 at a time.) The linking controls in TAStudio are 'L' 'C' 'R'. 'L' links the left and (bottom) center consoles. 'C' links the center and right consoles. 'R' links the right and left consoles. If you are have more then one selected in a frame, they will be linked in that order of precedence. If you already have two consoles linked and you press any link button they will become disconnected. So, you can only perform one connect or disconnect action per frame. If you could do some tests and make sure things are working as expected I would appreciate it. I don't have a lot of time for detailed tests of new systems like this.
Chamale
He/Him
Player (178)
Joined: 10/20/2006
Posts: 1352
Location: Canada
Alyosha wrote:
@Chamale: I got linking working for a test. If you download the dev build you should be able to link the 3 games (only 2 at a time.) The linking controls in TAStudio are 'L' 'C' 'R'. 'L' links the left and (bottom) center consoles. 'C' links the center and right consoles. 'R' links the right and left consoles. If you are have more then one selected in a frame, they will be linked in that order of precedence. If you already have two consoles linked and you press any link button they will become disconnected. So, you can only perform one connect or disconnect action per frame. If you could do some tests and make sure things are working as expected I would appreciate it. I don't have a lot of time for detailed tests of new systems like this.
It's not working for me at the moment, I mapped the cable toggles to keyboard keys in the controller settings but the games are not linked to each other. With Display Input turned on, I see L, C, and R when I press the corresponding buttons, but the games each act like they aren't linked to each other.
Alyosha
He/Him
Editor, Expert player (3532)
Joined: 11/30/2014
Posts: 2730
Location: US
Each frame the button is pressed is a different event , so make sure you are only pressing it for one frame. For example pressing L for one frame will link console L and C until you press L again. Also if you turn on the console log window, it will tell you the current state of the console links
MarbleousDave
He/Him
Player (12)
Joined: 9/12/2009
Posts: 1555
This is the first step in having more than 2 GB systems running at once. For 3 GB systems, there are 3 link controls: L, C, and R. L links systems 1 and 2, C links systems 2 and 3, and R links systems 1 and 3 For 4 GB systems, there would be four link controls: H, V, D, and A. H links systems horizontally (TL<=>TR | BL<=>BR) V links systems vertically (TL<=>BL | TR<=>BR) D links systems diagonally (TL<=>BR | TR<=>BR ) A links all systems together (4 players) Having 4 GB systems for Pokemon Red, Green, Blue, and Yellow, we can connect systems in groups of 2 at a time, but not all at once. We can connect all 4 systems at once for games like F-1 Race, Super R.C. Pro-Am, and Yoshi's Cookie. 4 player SGB games uses SNES hardware and the SGB for games like Bomberman GB. 2 player SGB games can be played on SGB or linking 2 GB systems together including Puyo Puyo and Killer Instinct. 2 player GB games with link support and SGB enhancements like Mole Mania and Kirby's Star Stacker requires linking systems for 2 players. This will take time for 4 player connectivity on emulators, and we may be on the way to making it happen.
Editor, Skilled player (1404)
Joined: 3/31/2010
Posts: 2086
Alyosha wrote:
@EZGames69: I don't really have anything to add beyond what I've written previously.
Isn't it feasible for a program to react to input in significant ways while the screen is turned off? The option also seems fine as long as BizHawk supports varying-length frames, which I don't think it does. Without this, how are movies timed accurately?
Cyorter
He/Him
Editor, Player (236)
Joined: 2/8/2017
Posts: 138
Location: Venezuela
PikachuMan wrote:
This is the first step in having more than 2 GB systems running at once. For 3 GB systems, there are 3 link controls: L, C, and R. L links systems 1 and 2, C links systems 2 and 3, and R links systems 1 and 3 For 4 GB systems, there would be four link controls: H, V, D, and A. H links systems horizontally (TL<=>TR | BL<=>BR) V links systems vertically (TL<=>BL | TR<=>BR) D links systems diagonally (TL<=>BR | TR<=>BR ) A links all systems together (4 players) Having 4 GB systems for Pokemon Red, Green, Blue, and Yellow, we can connect systems in groups of 2 at a time, but not all at once. We can connect all 4 systems at once for games like F-1 Race, Super R.C. Pro-Am, and Yoshi's Cookie. 4 player SGB games uses SNES hardware and the SGB for games like Bomberman GB. 2 player SGB games can be played on SGB or linking 2 GB systems together including Puyo Puyo and Killer Instinct. 2 player GB games with link support and SGB enhancements like Mole Mania and Kirby's Star Stacker requires linking systems for 2 players. This will take time for 4 player connectivity on emulators, and we may be on the way to making it happen.
To connect all GBs it would require to emulate the 4 Player adaptor, only GBE+ emulates it so it may be hard to Alyosha (or someone else) to emulate it for BizHawk. So for now, if we want 4 player GB games we must hope its SGB enhancement to play it in BSNES. But I like your idea to connect each 2 GBs at once. The SGB enhancements requiring linking systems for 2 players you must have mentioned SGB2 instead xD.
Chamale
He/Him
Player (178)
Joined: 10/20/2006
Posts: 1352
Location: Canada
Alyosha wrote:
Each frame the button is pressed is a different event , so make sure you are only pressing it for one frame. For example pressing L for one frame will link console L and C until you press L again. Also if you turn on the console log window, it will tell you the current state of the console links
Pressing the button for one frame doesn't resolve the issue. Which log do you mean exactly? The log window and the trace logger both don't display anything when I press the link buttons I've configured. Is everyone else experiencing the same issue on this build, or is it just me?
Alyosha
He/Him
Editor, Expert player (3532)
Joined: 11/30/2014
Posts: 2730
Location: US
Are you using the most recent dev build? I'm talking about View -> Display Log Window. It should display a message like this every time you hit a linking button:
Cable connect status:
LC: False
CR: False
RL: True
@scrimpeh: Sure it's possible for input to have an impact when the screen is off, especially if IRQ's are on. The correct way to time runs is with cycle count. Gambatte also requires this, as TIKevin83 pointed out in a recent submission (just to a lesser extent.) Shonumi left pretty good details on how to work out the DMG 07 four way connector, but I don't really see a compelling reason to implement it, unless someone actually has a TAS idea. Also it would run at about 15 fps.
Chamale
He/Him
Player (178)
Joined: 10/20/2006
Posts: 1352
Location: Canada
Alyosha wrote:
Are you using the most recent dev build? I'm talking about View -> Display Log Window.
Yes, that's the build I'm using. The log window doesn't display anything when I press a link button. Does it work for you? I'm not sure if the problem is only on my end.
Alyosha
He/Him
Editor, Expert player (3532)
Joined: 11/30/2014
Posts: 2730
Location: US
I downloaded the dev build just to make sure and yes it works fine for me. (Remember that console window doesn't display anything when you first turn it on, you need to turn it on then exit BizHawk then open Bizhawk again.)
Chamale
He/Him
Player (178)
Joined: 10/20/2006
Posts: 1352
Location: Canada
Alyosha wrote:
I downloaded the dev build just to make sure and yes it works fine for me. (Remember that console window doesn't display anything when you first turn it on, you need to turn it on then exit BizHawk then open Bizhawk again.)
Ah, thank you. The link buttons are working in the console window, but the games are responding as if they aren't linked. Here's a savestate of three Pokemon Yellow games prepared to trade, which aren't successfully linking. I appreciate that you're setting up this feature that may only be useful for one TAS. Hopefully I can get it working.
Alyosha
He/Him
Editor, Expert player (3532)
Joined: 11/30/2014
Posts: 2730
Location: US
Chamale wrote:
Ah, thank you. The link buttons are working in the console window, but the games are responding as if they aren't linked. Here's a savestate of three Pokemon Yellow games prepared to trade, which aren't successfully linking. I appreciate that you're setting up this feature that may only be useful for one TAS. Hopefully I can get it working.
Alright good, so at least we're on the same page. Give me a few days to sort this out. The big advantage of in house cores is exactly for situations like this, new utilities are relatively easily built on top of an existing framework. As long as someone is actually going to use it, I'm happy to add stuff in.
Alyosha
He/Him
Editor, Expert player (3532)
Joined: 11/30/2014
Posts: 2730
Location: US
I did some testing and it seems to work just fine. My guess is that you probably tried to link on both consoles at the exact same time. This will not work. There needs to be some time between when the first console tries to link and the second, usually a couple of frames. This is because the first console to try linking will become the master time keeper. The second console will then be slaved to it, and will only send and receive data when triggered by the master console. When you try to link at exactly the same time, both consoles try to be the master time keeper, and cannot sync properly.
Chamale
He/Him
Player (178)
Joined: 10/20/2006
Posts: 1352
Location: Canada
Alyosha wrote:
I did some testing and it seems to work just fine. My guess is that you probably tried to link on both consoles at the exact same time. This will not work. There needs to be some time between when the first console tries to link and the second, usually a couple of frames. This is because the first console to try linking will become the master time keeper. The second console will then be slaved to it, and will only send and receive data when triggered by the master console. When you try to link at exactly the same time, both consoles try to be the master time keeper, and cannot sync properly.
Wow. You're right, that's exactly what I did to test this - I simply assigned the same keys to each game to play simultaneously. Now that I'm trying it with three asynchronous games, everything works as it should. Thank you!
Alyosha
He/Him
Editor, Expert player (3532)
Joined: 11/30/2014
Posts: 2730
Location: US
Cool, glad it works. Keep in mind that this is pretty much untested, so I would encourage you to try and think of difficult cases and see if anything breaks before seriously attempting any work. Things like SRAM have not been thoroughly looked into, and savestates haven't been verified for all cases. Also, trace logger and lag definition only follow the left console, if you need something more thorough and complicated, let me know.
Chamale
He/Him
Player (178)
Joined: 10/20/2006
Posts: 1352
Location: Canada
I'm getting some graphical glitches with Crystal version in the 3x version that don't appear when running 2 cores. This is three Crystal games, and this is Crystal, Yellow, and Silver. Changing console mode or CBG in GBA don't help. It appears to be only visual, with the underlying emulation working properly, but I haven't verified that. Any tips?
Alyosha
He/Him
Editor, Expert player (3532)
Joined: 11/30/2014
Posts: 2730
Location: US
It doesn't happen on single core GBHawk? it will take a few days again but I'll look into it. Also I did a few updates so please use the most recent dev build, it maybe might fix your problem. EDIT: also please verify that the rom you are using has one of these 2 hashes:
F2F52230B536214EF7C9924F483392993E226CFB	G	Pokemon - Crystal Version (USA, Europe) (Rev A)	GBC		
F4CD194BDEE0D04CA4EAC29E09B8E4E9D818C133	G	Pokemon - Crystal Version (USA, Europe)	GBC	
Chamale
He/Him
Player (178)
Joined: 10/20/2006
Posts: 1352
Location: Canada
No problems on single or dual core. I used the latest dev build, exact same graphical glitches. The ROM's hash is correct. I tested Super Mario Bros DX and Link's Awakening in triple core mode and didn't see any graphics glitches.
Alyosha
He/Him
Editor, Expert player (3532)
Joined: 11/30/2014
Posts: 2730
Location: US
I have made some pretty significant changes to GBHawk and the associated linked versions, they are pretty big changes which should help with long term maintenance and improvements. First, frames now run at a constant time interval. No more variable length frames or waiting for VBlank. This should take care of audio issues. However, input processing still happens on VBlank boundaries, so there won't be any annoying circumstances where input can change midway through a video frame just because Bizhawk cuts up the frame there. Second, the input processing method from GBHawk is carried over to the linked versions, so that each separate console now also only processes input on VBlank boundaries. This is helpful because linked modes always ran at a constant rate by necessity, but the input could happen anywhere the frame was cut. This issue is now dealt with. Third, video processing is improved, so that in linked versions there won't be anymore annoying visual glitches after loading a state. This has a slight downsize of increasing state size by quite a bit, but it's still small overall (~50KB) Finally on the accuracy front, I've separated GBC-GB compatibility mode ppu from GBC single speed mode. this will eventually allow for more accuracy improvements and hopefully more console verification. GBC in GBC mode behaves quite differently from compatibility mode, so this was a necessary and long overdue step. As always keep an eye out for regressions. I'll be testing the new changes by re-syncing pokemon yellow and hopefully the crystal run to GBHawk. EDIT: @chamale please try the dev build for pokemon crystal, it might have fixed it.
Chamale
He/Him
Player (178)
Joined: 10/20/2006
Posts: 1352
Location: Canada
The same graphics errors still exist on Crystal, unfortunately. The other improvements all sound great!
MarbleousDave
He/Him
Player (12)
Joined: 9/12/2009
Posts: 1555
The Game Boy Color can't accept the first player cable of the 4-player adapter unless you mod it or have a special cable 'cause the first player cable in the 4-player adapter is hardwired into it. Playing 4-player Game Boy games on the Game Boy Advance is simple by using Game Boy Advance link cables. Anyways, emulating 4 GBC systems at once, you always connect in groups of 2 for Pokemon games. Also, don't forget the IR component for things like the Mystery Gift in Pokemon GSC. 4-way connection is for 4-player Game Boy games. The 4-player adapter has been around for nearly 30 years. Having 3 running at the same time with only one link cable is a start, and soon we'll be able to connect all 4 at once.
Alyosha
He/Him
Editor, Expert player (3532)
Joined: 11/30/2014
Posts: 2730
Location: US
http://tasvideos.org/userfiles/info/58572432775661275 Here is the pokemon yellow console verified run resynced in GBHawk (again.) This isn't anything new, more just a proof of correctness for all the rework I've done since I resynced it the last time. Now I will move on to Crystal.
Alyosha
He/Him
Editor, Expert player (3532)
Joined: 11/30/2014
Posts: 2730
Location: US
@Chamale: Ok Pokemon Crystal is finally fixed. Turns out it was an HDMA bug. Please try 3x again and make sure everything is good on your end. I'm making more progress at tracking down and fixing accuracy issues. I'll be checking Pokemon yellow glitched next, then trying to sync the crystal run. After that I should have all the information I need to at least have an accurate single speed mode. All of the pokemon games only run in single speed mode, so this should be pretty straight forward. Then the next step will be GBC in compatibility mode, which should be only small adjustments from single speed mode. After that the big challenge will be double speed mode. EDIT: I just added in IR support for GBC as well, it still needs testing though. EDIT2: http://tasvideos.org/userfiles/info/58572461423264950 here is a resync of the pokemon yellow game end glitch run as well.
1 2
8 9 10
19 20