Posts for Aktan

Post subject: Getting the Original Pixel Art for Mega Man 9 (and Maybe 10)
Experienced Forum User, Publisher
Joined: 4/23/2009
Posts: 1283
While helping Rolanmen1 put up this encode: https://www.youtube.com/watch?v=kbjYUoamBNM&feature=youtu.be I wrote a script that took what Dolphin outputted and fixed it to the original pixel art. Hope this helps someone in the future. It requires you to capture at 1x native (640x480). Here you go:
Language: AviSynth

function FixPixelArt(clip c, int n) { goodPixels = c.crop(n * 5, 0, 4, -0) return n == 0 ? goodPixels : StackHorizontal(FixPixelArt(c, n - 1), goodPixels) } ImageSource(file="hh74sgC.png", start=0, end=119, fps=60) FixPixelArt(127) PointResize(last.width / 2, last.height / 2)
Experienced Forum User, Publisher
Joined: 4/23/2009
Posts: 1283
Experienced Forum User, Publisher
Joined: 4/23/2009
Posts: 1283
FitterSpace wrote:
In a game i'm TASing, the fastest form of movement causes the screen to blur for a few frames once every second. In Dolphin, disabling fog removes the blur and also makes the game look better by removing a few other filters. This movement technique wasn't known until recently so most of the levels in the TAS don't do it. Is it possible to request that the official TASvideos encode disables fog in the later levels for entertainment reasons? I'll make a comparison video between fog vs. no fog once I finish the level i'm working on.
Probably better to ask this when submitting, but sure if you make a compare video, we can see what you mean.
Experienced Forum User, Publisher
Joined: 4/23/2009
Posts: 1283
FixFPS Fix the frames to a more consistent pattern with the help of Matroska Version 2 Timecodes. Mostly useful for fixing weird framerate from using a third party program to capture (ex. .kkapture with Mupen). Generally used with the plugin ExactDedup. It should be noted that FixFPS would try it's best not to lose any frames from the source. It does this by pushing frames to the next available spot, if possible, but it can cause side effects. Usage
Language: avs

FixFPS(clip c, string times="times.txt", int frames=30000, int div=2, int mul=1)
Where:
Language: avs

c The clip to use as the source times The path to Matroska timecodes (v2) frames The output frame count div The divider of the original frame rate to align to mul The multiplier of the frame rate after the divide
Example Let's say you capture Super Mario 64 with .kkapture and Mupen. You know the gameplay of Super Mario 64 is 30 FPS, but the intro Nintendo logo is 60 FPS. Normally the capture from .kkapture is 120 FPS. So the divider is 120 / 30 = 4 (to align to 30 FPS) and multiplier is 60 / 30 = 2 to output to 60 FPS. Here is a possible script:
Language: avs

LoadPlugin("ExactDedup.dll") LoadPlugin("FixFPS.dll") AVISource("Mario64.avi") trim(0, 5999) # You might want to align to the divider, so in this case a multiple of 4 ExactDedup(firstpass=false, dupinfo="Mario64 dups.txt") FixFPS("Mario64 times.txt", 1500, 4, 2)
Changelog 2017/06/13: - Added some smoothing of frames so there is less likely to get jerky movement when the multiplier is greater than 1 2016/02/26: - Initial release (real date was a few years ago) Special thanks to Rolanmen1 for the 64-bit DLL! Download: https://www.mediafire.com/?7bip52hu7v1pps2
Experienced Forum User, Publisher
Joined: 4/23/2009
Posts: 1283
Oh man, if that's true, I upconverted the Doom TAS to 60 FPS for no reason =/.
Experienced Forum User, Publisher
Joined: 4/23/2009
Posts: 1283
Yes I'm sure. His is if you are over 30 FPS or 60 FPS. Mine is if you are exactly NTSC or double NTSC which is under 30/60 FPS. Edit: Masterjun was on the journey with me to find out =).
Post subject: YouTube keeps NTSC (and double) FPS
Experienced Forum User, Publisher
Joined: 4/23/2009
Posts: 1283
I wanted to see if YouTube keeps frames or adds frames when sending NTSC (30000/1001) and double NTSC (60000/1001) FPS videos. The result is that YouTube does keep the frames unmodified! Here is double NTSC: https://www.youtube.com/watch?v=TABndwIFfoY My sample for NTSC was somehow in violation with YouTube's terms and was removed =(
Experienced Forum User, Publisher
Joined: 4/23/2009
Posts: 1283
Any suggested screenshot?
Experienced Forum User, Publisher
Joined: 4/23/2009
Posts: 1283
fsvgm777 wrote:
I noticed the PS1 SCPH1000 bootup logo looks really bad for around two seconds: It's even worse when deinterlaced. (SEIZURE WARNING) (note: 30 FPS, original is 60 FPS) This is a pretty big issue. However, if you want to keep your video interlaced (see first image), the solution is thankfully simple:
Language: Avisynth

vid = AVISource("MGSI_1.avi") FreezeFrame(vid, 289, 421, 288)
In this example, 289 is the first frame the screw-up happens, while 421 is the last frame of that happening. 288 is the last "clean" frame just before the screw-up. This effectively replaces frames 289 to 421 with frame 288, while the audio remains unaltered. If you deinterlaced your video beforehand, well...
Language: Avisynth

vid = AVISource("MGSI_1deint.avi", audio=false) audio = WAVSource("MGSI_1deint.avi") a = vid.Trim(0, 287) # pre-screwup c = vid.Trim(422, 0) # post-screwup d = vid.Trim(286, 287) # fix screwup vidfixed = a + d + d + d + d + d + *insert 60 more d's* + d + c AudioDub(vidfixed, audio)
As you can see, you actually need 2 frames to fix the screwup that happens between frames 288 and 421 to keep consistency with the rest of the video. There may be a better solution , but it works. The reason why it's frame 288 instead of frame 289 in this example is because the video would be one frame too long otherwise. After all, we want to keep the same frame count. For both solutions, you can re-save them as AVI (I recommend that, actually) with a lossless codec of your choice (e.g. Lagarith). For the record, you don't have to do this when dealing with SCPH1001 (probably not even SCPH1002) or with newer PS1 BIOSes (SCPH5500-5502, etc).
I should chime in about the real problem. The real problem is that the option "Weave" in deinterlacing for PSX core randomly swap fields. The real solution is to change the deinterlacing to Bob and use the following code in AviSynth:
Language: avisynth

SeparateFields() SelectEven() Weave()
Edit: On second read, this may be a different problem, oops, but I'll leave this here to note the problem with PSX core.
Post subject: Re: [Hints] How to Capture Doom for Publishing
Experienced Forum User, Publisher
Joined: 4/23/2009
Posts: 1283
natt wrote:
At one time I was a contributor to the PrBoom-Plus project and implemented an exact capture system in it. If that code is still there and still works, it would be superior to kkapture.
That would be great! Only reason I don't use the internal capture was due to the melt effect is missing. This is being captured by .kkapture though. Maybe your code didn't get to the stable releases =/.
Post subject: [Hints] How to Capture Doom for Publishing
Experienced Forum User, Publisher
Joined: 4/23/2009
Posts: 1283
- Get PrBoom-Plus - Use .kkapture Version 1.02 and capture at 35.0 FPS - While capturing, turn off anti-virus as it sometimes interferes with .kkapture - Use glboom and make sure it is in window mode - Use the follow settings in glboom-plus.cfg
demo_smoothturns              1
videomode                 "32bit"
use_gl_surface                1
screen_resolution         "2560x1600"
usegamma                      0
uncapped_framerate            1
gl_vsync                      0
gl_sprite_filter              4
gl_texture_filter_anisotropic     4
hudadd_demoprogressbar        0
render_aspect                 3
render_stretch_hud            1
render_multisampling          8
gl_texture_hqresize           1
gl_texture_hqresize_textures     3
gl_texture_hqresize_sprites     3
gl_texture_hqresize_patches     3
Note: You need to manually change the screen_resolution since the options are not there in the game itself - Get the ogg sound pack of SC-55 and modify glboom-plus.cfg to use the music - Capture twice, once for YouTube and 512kb file (2880x2160), and once for regular file and optionally high resolution file (2560x1600) - Use AreaResize to downscale to 512kb file or regular file. Get it here: http://www.mediafire.com/download.php?kn56wh7r81vk2rx - The resolution for 512kb file is 320x240 while the resolution for regular file is 320x200 - For YouTube, make sure you add ChangeFPS(60) to change the frame rate to 60 FPS since it is choppy at 30 FPS Here is a comparison of downscale methods where it shows AreaResize is the best: http://imgur.com/a/NkFVl
Experienced Forum User, Publisher
Joined: 4/23/2009
Posts: 1283
Sorry for the delay, but finally got the encodes going. Should I even bother to make an high resolution download encode as this has been superseded already? Edit: I decided not to.
Experienced Forum User, Publisher
Joined: 4/23/2009
Posts: 1283
feos wrote:
How is it going, Aktan?
I think you should be asking in the publish run thread, lol. As this one still needs to be judged first.
Experienced Forum User, Publisher
Joined: 4/23/2009
Posts: 1283
Here, we use .kkapture instead of the internal capture of PrBoom+ because the melt effect is not captured at all internally.
Experienced Forum User, Publisher
Joined: 4/23/2009
Posts: 1283
Dimon12321 wrote:
What about using smooth weapon animations for PrBoom+? It gives more sense to upload videos in 60 fps. https://mega.nz/#!LVgn3BZL!ScrZOVt2NuD318sTYdRwqTetqLC7xirrrUWvtx7O8kM
That would be modifying how the original looks, but it is an interesting idea.
Experienced Forum User, Publisher
Joined: 4/23/2009
Posts: 1283
feos wrote:
Aktan wrote:
feos wrote:
Aktan, I suggest you to even publish it.
By the way, I think all current Doom encodes published on YT is wrong. It should be all upconvert to 60 FPS to get those extra missing 5 fps. Currently the YT encodes look quite jumpy.
IIRC, kkapture will heavily drop frames if one captures at HD at 70 (or 60?).
I'm not saying to capture at 60, I'm saying to add the frames with AviSynth with ChangeFPS(). Edit: The download encodes have the wrong resolution also for the current published run.
Experienced Forum User, Publisher
Joined: 4/23/2009
Posts: 1283
This is borderline AI, I think, as it uses neural networks to figure out what looks best for humans: Link to video It's using an upscaler caller nnedi3.
Experienced Forum User, Publisher
Joined: 4/23/2009
Posts: 1283
feos wrote:
Aktan, I suggest you to even publish it.
By the way, I think all current Doom encodes published on YT is wrong. It should be all upconvert to 60 FPS to get those extra missing 5 fps. Currently the YT encodes look quite jumpy.
Experienced Forum User, Publisher
Joined: 4/23/2009
Posts: 1283
Clumsydoomer wrote:
That would still be nice, I think. That music fail makes it look a bit unprofessional
Yea, I think so too.
Experienced Forum User, Publisher
Joined: 4/23/2009
Posts: 1283
I was going to update the your older run with the correct music, but if this one gets accepted, maybe I shouldn't?
Experienced Forum User, Publisher
Joined: 4/23/2009
Posts: 1283
Since I don't think the music has ever been fixed, I think I'll make another encode and replace the files.
Experienced Forum User, Publisher
Joined: 4/23/2009
Posts: 1283
Did you set the movie to read only? (Default). Re-download the movie file, maybe you by mistake wrote over it.
Experienced Forum User, Publisher
Joined: 4/23/2009
Posts: 1283
MUGG wrote:
avisynth is
avisource("gba-clip.avi")
pointresize(last.width*8,last.height*8)
trim(2000,2200)
I just tried again:
x264 --qp 10 -b 0 --ref 16 --keyint infinite --colorprim bt709 --transfer bt709
and it's again 0.6 MB.
Yep, your script is wrong. Add the following at the end:
Language: avisynth

ConvertToYV24(matrix="Rec709", chromaresample="point") ConvertToYV12(matrix="Rec709", chromaresample="point")
Experienced Forum User, Publisher
Joined: 4/23/2009
Posts: 1283
Post your script, MUGG, I think you are downsampling to YV12 off.