Joined: 10/14/2013
Posts: 335
Location: Australia
Lately I've been curious about pushing the power of Bizhawk further than the built in settings. Now this very well could be old news, but I ran a few tests and discovered this neat little trick. If you enable Supersampling in Bizhawk in Catalyst Control Panel (I'm an AMD user) and then restart it, you'll be able to get some pretty good anti-aliasing with glide. Here's an example of both with and without this little trick. With this enhancement: Without this enhancement: Both were screenshotted from an AVI I recorded with the program (to ensure it outputs this enhancement). It could be something to consider for the encoder guidelines and I'm sure there's an Nvidia equivalent. Edit: it functions identically with Mupen and kkapture.
I'm not as active as I once was, but I can be reached here if I should be needed.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
403.
Joined: 10/14/2013
Posts: 335
Location: Australia
I think it's fixed, though the shots are of lower quality now. If not I'll just upload the screenshots to mediafire in an archive or something.
I'm not as active as I once was, but I can be reached here if I should be needed.
Publisher
Joined: 4/23/2009
Posts: 1283
This is a known trick. I didn't use it since multisampling is not as good as FSAA. I kind of forgot what type of AA is supersampling. Even then FSAA sometimes isn't as good as manually doing the AA (capture at super high resolution and resize it with an algorithm of your choice). So depending on the GPU, the AA may not be too good. Good thing to note though.
Joined: 10/14/2013
Posts: 335
Location: Australia
You said you forgot which one Supersampling was? SSAA and FSAA are the same thing, they're the equivelent of rendering at a higher resolution. You're definitely right. If the final output is at half the dumped resolution or lower it'd pretty much have the same effect. The main thought I had was that with UHD and 4K becoming more apparent, it'd be nice to have some good anti aliasing even at the maximum resolution. With Mupen, it can dump at 2048x1536. But as far as anti aliasing goes, it'd be similar to 1024x768 at 2xSSAA. Anything about that would still have some sort of artifact even if it was small. Maybe the HD streaming publications would benefit from this, that way even if you're watching it at the highest possible resolution without shrinking it down, it can still have the anti-aliasing as if it were dumped at 4x, or even 8x that.
I'm not as active as I once was, but I can be reached here if I should be needed.
Publisher
Joined: 4/23/2009
Posts: 1283
problem I have with SSAA is that you don't get to choose what resize algorithm is used, but you are right that SSAA can do up to 8x which is probably not possible manually, so probably best is SSAA + manual AA via manual resize for lower resolution.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11273
Location: RU
It's a habit over here to use the best anti-aliasing and anisotropic filtering options possible. And yes, emulators that allow dumping at high resolutions should be dumped at them for HD encodes whenever possible, like that 1536p, then it needs no upscaling and looks the best. For SD encodes though, you'd need to test what looks the best: dumping at native res with multisampling, or at hires with downscaling. http://tasvideos.org/EncoderGuidelines.html#Antialiasing As for Mupen, I think Glide doesn't allow multisampling, while, for example, Rise does. Is it correct?
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: 10/14/2013
Posts: 335
Location: Australia
You're correct, as far as in-plugin settings go. Rice allows multisampling (which seems to not actually do anything) and Glide has nothing. Jabo supports SSAA/FSAA but it's not really a suitable plugin in most cases. This trick forces it at a GPU level, getting rid of the jagged edges even when the plugin's built in features don't allow it. With this feature, it allows the the higher resolution HD encodes to be viewable at their native resolutions with anti-aliasing. Have a look. Here's Banjo Kazooie, running in Mupen at 1536p. Note the lack of jagged edges in the emulator itself after applying this: Note that wit the text I didn't set the filtering to automatic because I downloaded a copy of Mupen just for this screenshot, just ignore that. This wouldn't affect the SD encodes though as they'd be downscaled anyway, it'd be redundant. But it gives anti-aliasing to the insane-resolution encodes!
I'm not as active as I once was, but I can be reached here if I should be needed.
Joined: 10/14/2013
Posts: 335
Location: Australia
Also, after saving a state in Bizhawk and testing with Rice's multisampling and then restarting and testing with the Catalyst options I've noticed there's a dramatic difference. I'd actually say if it were a choice this method would be preferable over Rice's internal AA.
I'm not as active as I once was, but I can be reached here if I should be needed.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11273
Location: RU
I actually meant Jabo. From your posts about SM74, it seems to be the only plugin to use for dumping, since you need to restart mupen, which will probably make it desync again with Glide. Also, use this trick for such huge images: [url=image link][img=640x480]image link[/img][/url]
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.
Active player (434)
Joined: 2/5/2012
Posts: 1693
Location: Brasil
totally noob question,but doesn't that affect lag calculations because of more detailed textures?(not that the n64 emulators were decent about it to begin with..)
TAS i'm interested: megaman series: mmbn1 all chips, mmx3 any% psx glitched fighting games with speed goals in general
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
grassini wrote:
totally noob question,but doesn't that affect lag calculations because of more detailed textures?(not that the n64 emulators were decent about it to begin with..)
I don't think an emulator cares what the speed of the host computer is, or how heavy it is to display the image; it will still emulate the game accurately, like the original hardware (even if it so happens that the host machine is so slow that it can't display it in real time.) Well, at least if the emulator is competently implemented.
Patashu
He/Him
Joined: 10/2/2005
Posts: 4017
grassini wrote:
totally noob question,but doesn't that affect lag calculations because of more detailed textures?(not that the n64 emulators were decent about it to begin with..)
The game thinks it's still rendering at its native resolution with its normal textures, but the emulator intercepts all drawing-related calls and substitutes in its own versions, so the game runs the same with or without it.
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Joined: 10/14/2013
Posts: 335
Location: Australia
feos wrote:
I actually meant Jabo. From your posts about SM74, it seems to be the only plugin to use for dumping, since you need to restart mupen, which will probably make it desync again with Glide.
A workaround to that desync (if it happens) was to load it up with Jabo and type 230728 in the pause at frame box. When it gets there, create the save-state as you would at frame 1 usually and then reconfigure to use glide and then perform the dumping process as usual, using that save-state.
I'm not as active as I once was, but I can be reached here if I should be needed.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11273
Location: RU
Thanks, however now as I tested it, it has graphical glitches with Glide and it freezes some seconds in when using kkapture+Glide (no matter what resolution/Glide settings/kkapture settings). With Jabo it all goes perfect, but maximum res is 1200p.
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: 10/14/2013
Posts: 335
Location: Australia
What run did you test it on? I managed to get through the Banjo Kazooie run without issue.
I'm not as active as I once was, but I can be reached here if I should be needed.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11273
Location: RU
The current SM74 submission. Note 1: That freeze was occurring on win7 x64 only. On XP it captures well with Glide. Note 2: I was using Jabo, and it couldn't resume capturing after reset. With a fast computer, could you test it? Just make sure to use kkapture.
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: 10/14/2013
Posts: 335
Location: Australia
I was able to capture it without issue from start to finish with glide and these enhancements. I'm running Windows 7, 64 bit. I had to do it in two segments (using the reset as a break point). My upload speed is atrocious though, I can send you compressed sections if you want to verify this but to upload the whole thing would be a nightmare. I'd be happy to provide whatever insight you need to get it running. I just followed the encoder guidelines with the following adjustments. When creating savestates I used Jabo's plugin to do so, and then used Glide for the actual playback / dumping. To do this I did "pause at frame 1" for the first half and "pause at frame 230730" for the second half and treated them as separate movies. kkapture was capturing 120 fps. When seeking through the movie to frame 230720, I was using Jabo's plugin at 320x240. I also went into the audio options and unticked dynamic sync so it got to the frame faster. At the end, it was just a matter of trimming both sections of footage and appending them together like normal parts of a dump. What graphical glitches did you notice and when does it freeze? I also did notice some graphical glitches with glide, but from what I coulld tell they were all framebuffer oriented (I'm not an expert though). For example there's a few frames near the whole "it's me, mario" bit near the start (I think it's just after, I'm not near my PC at the moment) but the black has some colored noise/glitchy distortion in part of the frame. Additionally, with some level intros (after selecting a star and fading to white) there may be a flicker of black. The frames before and after the first glitch are consistently black, and the frames before and after the black flickers in the intro are consistently white though, so I figure this is just the frame buffer during the loading of the next section being handled incorrectly, and can be masked out after the dump for accuracy. I'm not sure what the practice is regarding this, but I know the same sort of masking technique is used in an encode of the current Banjo-Kazooie run (during the instant transitions between areas, like when a witch-switch is hit) and a few others.
I'm not as active as I once was, but I can be reached here if I should be needed.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11273
Location: RU
http://plasmon.rghost.ru/8tRKs948B/image.png So Glide does not allow capturing over reset seamlessly to you?
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: 10/14/2013
Posts: 335
Location: Australia
Thanks for posting that, that's definitely the first glitch I was talking about near the start. I've watched the dump from start to end and that's the only time it happens. Luckily it's just during the loading frames, so you can mask it out without losing anything. The screen's just supposed to be black during that split second anyway. The level introductions are more frustrating as you'd have to check the intro to every one individually and manually mask them one by one, but it'd take half an hour of work at most as it's only present in a few of them, particularly the later ones. You're correct. I didn't know any plugin could record over reset, can Jabo? I thought this was more a by-product of using kkapture.
I'm not as active as I once was, but I can be reached here if I should be needed.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11273
Location: RU
I am absolutely sure we already published several Mupen64 runs that use resets, and I recall no problem capturing them. So now it's completely confusing to me that we suddenly can't anymore. But I'll bruteforce it by figuring out the exact first frame after reset and just capture from the savestate of it. EDIT: 230690 is the first frame it can be paused after reset. Even if you set 230680 in the "pause movie" field. So I made a state there and resumed capture from it...
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: 10/14/2013
Posts: 335
Location: Australia
I'm not too sure, I haven't been around long enough to recall anything like that - maybe shoot off a message to someone who might recall. I checked the frame number here and it works exactly as you said it would. Sorry my number wasn't spot on.
I'm not as active as I once was, but I can be reached here if I should be needed.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11273
Location: RU
I'm already pinging Aktan for a while.
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.
Publisher
Joined: 4/23/2009
Posts: 1283
Just to update the thread, feos and I already talked and I have not ever successful capture over resets. I've always made a new savestate per reset.
Joined: 10/14/2013
Posts: 335
Location: Australia
Thanks for the update, Atkan!
I'm not as active as I once was, but I can be reached here if I should be needed.