Locked

1 2 3
14 15
Emulator Coder, Skilled player (1300)
Joined: 12/21/2004
Posts: 2687
OK, it's done. Version 7b should be stable. There are still some requests/complaints that haven't been dealt with, but... that can come sometime later. So... lag reduction is always turned off for movies with this. You can hold Ctrl to override that, but then it has to be done on playback too or it won't even open, so there is no possibility of a run using it unless everyone agrees it can. (Remember to update the VBM format page along with everything else - look at 017 in the new vbm-format.txt file.)
Joined: 6/15/2004
Posts: 104
Location: Zürich / Switzerland
Hi, the only thing I have to say about this is that the first revision of release 6 definitely lagged where a real GBA does not. I have seen this in BoltR's run of Zero Mission in the location someone already talked about: Just before getting the Morph Ball bombs. My GBA does not lag there, where VBA does. So, as long as nitsuja can promise backward compatibility between movies, I see no point in not constantly trying to get the timing better. While to fast an emulator certainly isn't good, those laggy sequences and related graphics glitches aren't either. Additionally, while I think that VBA is the least advanced (in the sense of stability) of all the emulators I'm having on my harddrive right now, I don't tink that a rewrite will really cure any of those problems we are experiencing. As TNSe said: Timing is incredibly difficult to get right. It's quite pointless to throw away all the working stuff, put lots and lots of time and effort into a rewrite that most likely won't work either in the end (not to say anything bad about the talents of the incredible talented hackers on this site). Besides: I have some - let's call them "political" - problems about the creation of VBA movies. I mean: Don't tell me that you are not soliciting the download of ROMs from the web. We all know that not all of us actually own the physical ROMs we are watching and making movies for. While all other emulators on this site emulate obsoleted hardware, VBA does not. GBA is still an active platform. Games ar still being created for it and sold for the high prices of a current platfrom. Heck, even I'm constantly buying real games for my real GBA. This fact may get this site on the radar at those companies and they may try to find a way to shut this wonderful place down. So probably I'd be prudent not to create GBA movies for now anyways. GB, GBC, SGB and what they are called seem clean to me in this respect. Additionally, the GB*-core of VBA seems to have a stable timing, so maybe this really is the way to go. Please, don't take this as flaming. It's certainly just my personal oppinion, so add a IMHO to all the sentences above. I'm looking forward to any run being created for this site, regardless of platform and possible legal problems, but I'm just asking all of the readers here to keep the problems with GBA in mind. Philip
Active player (278)
Joined: 5/29/2004
Posts: 5712
I feel about the same way. Plus I'm not very familiar with Game Boy Advance, so I don't feel like making movies of its games. But if the timing does go through incremental improvements, you could always keep adding them as options for viewing old movies, right?
put yourself in my rocketpack if that poochie is one outrageous dude
Emulator Coder, Skilled player (1300)
Joined: 12/21/2004
Posts: 2687
Hmm, now suddenly 2 different opinions. Well, if it's decided that the 'lagless' timing is an acceptable improvement (which I also think it is, I think the lag does actually detract and it also causes in-game timers to keep counting down during the lag possibly causing things to be impossible that should be possible on the real system), then the Ctrl trick can be used to make and view movies with that option, without requiring a version change atm. Or we can wait a while on GBA games, I think some people here would object to that but I don't know what decisions will be made on the issue of allowing GBA game movies. Keep in mind that the next release of VBA (the beta of it so far, I mean) is making this lag even worse still and VBA currently has no official developers that I know of, so it's probably not going to get fixed in an official release in quite a while. About the incremental timing improvements, I would prefer not to put it through that; the options flags are already a little polluted, and if movies start getting made at lots of slightly different timing levels there'd be no comparing them. I really don't know how it's expected to behave differently than it does with the current lag reduction option, though; there's no way to even try to refine it if I can't find any cases where it goes the wrong speed.
Active player (410)
Joined: 3/16/2004
Posts: 2623
Location: America, Québec
Personally, I think those fixes are good but I am waiting a final release to start making timeattacks.
Emulator Coder, Skilled player (1300)
Joined: 12/21/2004
Posts: 2687
What things still need to change in order for it to qualify as a final release? edit: Well, I guess that crash on trying to output an AVI file to an invalid place would be good to fix. Also, I've decided that the possibility of inaccuracy is much better than definitely inaccurate behaviour, but I am going to look to see if anyone else has already worked on this before in other unofficial improvements (such as one that added GBA link system support) so I can get some verification on what exactly the change should be.
Emulator Coder, Skilled player (1300)
Joined: 12/21/2004
Posts: 2687
I think I've found what was really causing the problem. The GBA can switch into a prefetch mode where the instruction fetch time of certain instructions is reduced. (The reason a game would ever not switch into this mode is that it uses battery power faster.) Games that switch into this mode rely on it at times in order to continue running at the correct speed. VBA 1.72 did not have any support whatsoever for this mode. So sometimes instructions would take just enough longer to fetch that it would overrun the time of the next screen refresh, and then the game code would assume this hadn't happened and would wait for the refresh (for correct v-sync) causing an entire extra frame to go by every time this happened. So, I'm now detecting when this mode goes on, and then making only certain instruction fetches 1 tick faster. The memory access delay table is all back the way it was before, and games that do not enter into prefetch mode aren't even affected. VBA will now display a message whenever the mode changes so you know what's going on, and I made it so enabling/disabling lag reduction takes immediate effect (no longer requires reset) so you can easily test for yourself what it changes. Also, I fixed some text display problems and the AVI-already-in-use crash. So, I think now it's really stable (v8), barring any stupid crash bugs or something that hopefully I didn't add any more of.
Emulator Coder
Joined: 10/9/2004
Posts: 453
Location: Norway
wow, nice catch, it also makes perfect sense :P
Active player (278)
Joined: 5/29/2004
Posts: 5712
Hah, I didn't think you'd figure it out this fast.
put yourself in my rocketpack if that poochie is one outrageous dude
ventuz
He/Him
Player (123)
Joined: 10/4/2004
Posts: 940
er why I cannot change speed % for playback in v8? *roll back to v5*
Emulator Coder, Skilled player (1300)
Joined: 12/21/2004
Posts: 2687
ventuz wrote:
er why I cannot change speed % for playback in v8? *roll back to v5*
Umm, good question! I had a line of code disabled for debugging, and totally forgot to re-enable it. Fixing... EDIT: It's fixed, try version 8b. (And hey, I've transformed into a Coder.)
Player (36)
Joined: 9/11/2004
Posts: 2623
I was wondering when he'd swap you. ^^;
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.
Former player
Joined: 8/1/2004
Posts: 2687
Location: Seattle, WA
Can someone tell me how to enable Lag Reduction? I can't seem to figure this out on my own and I need to test something before I go on with any of my movies.
hi nitrodon streamline: cyn-chine
Emulator Coder
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Bisqwit wrote:
It seems that this emulator is in flux and will always be. I'm ready to open the site for VBA submissions as soon as Nitsuja is satisfied with his changes and it's not expected that a new version is coming soon. Edit: See updated rules. I'm already having trouble handling two versions of snes9x...
You don't expect to have development just stop on all emulators because you have a movie site, do you? In the future, a new Snes9x will be released with radically different and much more accurate timing, and I expect it to be the same for other emulators too. You just have to set up a rule to only accept the latest (or also second to latest) versions of the emulators at the given time, and make sure everyone is up to date.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Editor, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Nach wrote:
You don't expect to have development just stop on all emulators because you have a movie site, do you?
Of course I don't, I was just sighing aloud.
Emulator Coder, Skilled player (1300)
Joined: 12/21/2004
Posts: 2687
Zurreco wrote:
Can someone tell me how to enable Lag Reduction? I can't seem to figure this out on my own and I need to test something before I go on with any of my movies.
I think it's "Options->Emulator->Lag Reduction (GBA)". If you have to do it while a movie is going, hold down Ctrl while navigating the menus to override the disablement of changing it, but of course that change won't get recorded into the movie input so it'll desync on playback, that's why it's normally disabled when a movie's active. During movie playback, the check represents whether the game is currently using the lag reduction, otherwise it represents whether lag reduction will be used if it can be. Also, the state of the lag disablement option is stored inside the save state, so when you load a save state it will reset to whatever it was when you saved it (so save after making the change to test something from there).
Former player
Joined: 8/1/2004
Posts: 2687
Location: Seattle, WA
The reason I asked was because I needed to see if checking reduce lag will make my Aria of Sorrow movie desynch. Apparently there is one frame of emulated lag that desynchs it kinda early on, so I guess I might just take that file and hex around the lags. Maybe that will help my movie move forward...
hi nitrodon streamline: cyn-chine
Emulator Coder, Skilled player (1300)
Joined: 12/21/2004
Posts: 2687
OK. That will only work if there isn't any randomization or other frame-specific things you rely on after it. Also, to actually convert your movie to start with lag reduction on, you can hex edit bit 4 of byte 0x017 (see source\vbm-format.txt) to be "1" instead of "0" (it's probably easier to start recording a no-lag vbm of the game to another file and copy that whole settings byte over from it).
xou
Joined: 4/26/2004
Posts: 118
Location: france
http://xouboudou.free.fr/gba/VBA-rerecording-9b.zip http://xouboudou.free.fr/gba/vba-dll.zip ( mfc71.dll, msvcp71.dll , msvcr71.dll ) I'll try to update that mirror as often as possible
hello world !
Active player (278)
Joined: 5/29/2004
Posts: 5712
Say, did anyone ever figure out whether VBA emulates SGB games at a faster speed than normal GBs, the way a real SGB does? I was pretty sure that VBA just used 60 Hz for everything, but Dan was getting concerned.
put yourself in my rocketpack if that poochie is one outrageous dude
Skilled player (1404)
Joined: 10/27/2004
Posts: 1977
Location: Making an escape
I'm having a problem that's not directly related to emulation, but rather movie making. I'm not sure if this has been brought up either. Basically, unless I explicitly tell the movie to stop recording, it appends an old part of the movie after I stopped Basically: 1. I start recording. 2. I make a mistake before a save state. I reload the movie, save, and go from there. 3. I go directly from recording the movie to playing it. The 200 or so odd frames before I went back get tacked on. If step 3 were changed to "I stopped recording then played the movie", everything works out. I'm used to FCEU where going directly from recording to replaying isn't an issue, which is why I got afflicted with this. Not a biggie, but still a concern.
A hundred years from now, they will gaze upon my work and marvel at my skills but never know my name. And that will be good enough for me.
Active player (278)
Joined: 5/29/2004
Posts: 5712
Huh... I didn't even know you could switch like that. I guess I'm not curious enough.
put yourself in my rocketpack if that poochie is one outrageous dude
Emulator Coder, Skilled player (1300)
Joined: 12/21/2004
Posts: 2687
Ferret Warlord: It sounds to me like you never actually re-recorded away the mistake; the only thing that does anything is loading a state while recording, just saving the state can't change the movie. But maybe I misunderstood your question... your step #2 was pretty unclear to me. (Actually, could you explain which command you chose to go from recording to playing for number 3?) Bag of Magic Food: Going from recording to playing is actually quite useful for making movies, in my experience - it allows for both recovering lost save states without having to start watching it over from the beginning, and watching segments of the run as it's in progress.
Skilled player (1404)
Joined: 10/27/2004
Posts: 1977
Location: Making an escape
Basically I catch a mistake I made, and it's right before my earliest save. Thus, I play my movie and save before the mistake to fix it. Happens all the time. For two to three, I simply choose "Play movie" as I'm recording. Throwing in a "Stop recording" command prevents my problems. It's just something I'm not used to.
A hundred years from now, they will gaze upon my work and marvel at my skills but never know my name. And that will be good enough for me.
Active player (278)
Joined: 5/29/2004
Posts: 5712
Yeah, I'm just used to having to fast-forward through everything from the beginning, as I normally had to do in the more broken versions of VBA. And what do you know about SGB speed in VBA?
put yourself in my rocketpack if that poochie is one outrageous dude
1 2 3
14 15

Locked