Posts for creaothceann


creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
Anybody interested in this hack? :)
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
For deinterlacing there are lots of filters available (e.g. Yadif or QTGMC), but in this case a simple blend is better. This is in AviSynth what FODA did:
f0 = ImageReader("image1.png").Trim(0, -1).ConvertToRGB32
f1 = ImageReader("image2.png").Trim(0, -1).ConvertToRGB32
Layer(f0, f1, level=128)
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
Is there interest in using the bsnes core in SNES9x? Themaister has a project going on here: http://board.byuu.org/viewtopic.php?f=3&t=670&p=26910#p26910 (and following posts) https://github.com/Themaister/snes9x-libsnes
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
Seconded :)
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
snes9x-1.51 makes the game’s graphics ugly
?
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
arkiandruski wrote:
The code looks like it never pulls up the clips
I didn't really test the code, just restructured it. Anyway, that's what last_a and last_b are for.
arkiandruski wrote:
or uses the blank clip function
Well, your code never uses g and h.
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
Don't know what the problem is, but... lots of one-letter variables are bad.
global FrameDiff = 0
global last_a    = BlankClip(0)
global last_b    = BlankClip(0)


a = Open(      "jackicgunstar.avi", "Jackic"      )
b = Open("arkiandruskigunstar.avi", "arkiandruski")

AddFrameDiff(a.Trim(   0,  787), b.Trim(   0,  985))
AddFrameDiff(a.Trim( 788, 1685), b.Trim( 986, 2036))
AddFrameDiff(a.Trim(1686, 2129), b.Trim(2037, 2299))
AddFrameDiff(a.Trim(2130, 3054), b.Trim(2300, 3354))
AddFrameDiff(a.Trim(3055, 4349), b.Trim(3355, 4555))
AddFrameDiff(a.Trim(4350, 7494), b.Trim(4556, 7536))
AddFrameDiff(a.Trim(7495, 8591), b.Trim(7537, 8509))
AddFrameDiff(a.Trim(8592, 9801), b.Trim(8510, 9719))

AudioDub(StackHorizontal(last_a, last_b), MixAudio(last_a, last_b, 1.0, 0.0))
Trim(0, 75009)
Subtitle("Frames gained: " + String(FrameDiff, "%05.0f"), align=2, size=15)
ConvertToYV24(matrix="PC.601", chromaresample="point"   )
ConvertToYV12(matrix="PC.601", chromaresample="lanczos4")




function AddBlankClip(clip a, clip b)  {
        m = Max(a.FrameCount, b.FrameCount)
        result1 = a + BlankClip(a, length=m - a.FrameCount).FreezeFrame(a.FrameCount, m - 1, a.FrameCount - 1)
        result2 = a
        return (a.FrameCount != m)  ?  result1  :  result2
}


function AddFrameDiff(clip a, clip b)  {
        last_a = a
        last_b = b
        FrameDiff = FrameDiff + (a.FrameCount - b.FrameCount)
        return FrameDiff
}


function FormatTime(int ms)  {
        s  = ms / 1000
        ms = ms % 1000
        m  = s  / 60
        s  = s  % 60
        h  = m  / 60
        m  = m  % 60
        return String(m, "%02.0f") + ":" + String(s, "%02.0f") + "." + String(ms, "%03.0f")
}


function Open(string FileName, string Title)  {
        AVISource(FileName)
        AddBorders(2, 20, 2, 20)
        Subtitle(Title, align=2, text_color=$00FFFFFF)
        ScriptClip("""Subtitle("Frame: " + String(current_frame) + "\nTime: " + FormatTime(Round(Float(current_frame * 1000) * Float(FrameRateDenominator) / Float(FrameRateNumerator))), text_color=$00FFFFFF, lsp=1, size=10.0)""")
}
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
Put "Version" into a new .avs file to get the exact version number.
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
You could put it into an MKV (mkvmerge) and extract the WAV file (mkxextract)... But a better solution would be to use a different video editor.
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
Yes vote, was entertained. :)
Warp wrote:
I still endorse splitting the site into two: The purist [...] and the free side
Isn't the split already done via the various movie categories?
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
It's somewhat like Super Metroid where you can rescue some trapped animals so that they can get to their own space ship. IIRC they don't have to be rescued in a 100% run, even though they appear in later games. Personally I'd like to see Marin though. :)
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
If the video is encoded with a "simple" codec like CamStudio then it should be frame-accurate. Otherwise you could use DSS2: Get the Haali Media Splitter, create a file named "DSS2.avsi" in your AviSynth's "plugins" directory and enter this function:
function DSS2(string infile, float "fps")  {
        LoadPlugin("C:\Programme\Haali\MatroskaSplitter\avss.dll")    # adjust path
        avss_DSS2(infile, fps)
}
The disadvantage is that it only loads the video. The AVIs could be concatenated in VirtualDub(Mod) and the audio could be dumped from there.
Post subject: Re: Batch importing in AviSynth?
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
Mister Epic wrote:
Each file is named "sm64.XXX.avi" where Xes are digits, but there can be 2 instead of 3.
Renamer or a similar tool could convert the filenames. Instead of AVISource you could try DirectShowSource. As for generating the script, I'd open Excel and write something like
DirectShowSource("sm64. | 1 | .avi") +\
DirectShowSource("sm64. | 2 | .avi") +\
..., select these six cells and drag the lower right corner down until there are 116 lines. Then select all, copy&paste it into a text editor and replace the tabulator characters with nothing. Then remove the last "+\". Result
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
Kershner too...
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
  • Get and install the Camstudio codec or the Ut video codecs, use them to record the video. (use Ut's RGB version)
  • Media Player Classic Homecinema (MPCH) is a nice player, included in the K-Lite codec pack ("standard" and above).
  • For video editing there's AviSynth and AvsP.
  • If you want to encode the RGB/WAV streams to something smaller: Open the video in VirtualDub, choose the x264 codec for video compression, choose the LAME ACM/DS codec for audio compression, (configure them) and save.
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
Axelay level 1 music replacement (demo/mockup, not an actual hack)
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
If you want to convert flashing 60 fps to flashing 30 fps, you'd have to drop frames like this:
60 fps:     10101010          // 1 = visible, 0 = invisible
            12345678          // frame index

30 fps:     1010
            1256              // dropped every 3rd and 4th frame
With AviSynth that can be done with SelectEvery(4, 0, 1). The disadvantage is that it looks choppy, and doesn't simulate transparencies.
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
Well, yeah, if the upload size doesn't matter...
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
YT converts them to AAC anyway, so why don't you try that?
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
boct1584 wrote:
Does the IPS patch to a (J) or a (U) ROM?
(J, U) version, no header.
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
Don't trust Youtube's reported video length, it's rounding up. Upload test of this video succeeded for me, anything longer didn't:
i = (15 * 60 * 30) + (30 * 30) - 1                              # 27899 frames
BlankClip(i, 16, 16, "RGB32", 30)
length = 15:30 - 1 frame compression = ZMBV & AAC container = MKV
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
Btw. here are some DKC maps.
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
Flygon wrote:
Incidentally, about games that use frame blending, I intend to find a method of only doing it for specific segments of a TAS (Which should either minimize the problem... or make it even more obvious). Though, the method I have planned out so far is highly manual and won't work well for longer TAS's (Unless you really have the spare time).
If you want to do that, the code could look like this:
AVISource("00a.avi", "00b.avi", "00c.avi")
ConvertToRGB32
GaussResize(640, 480, p=66)
ConvertToYV12(chromaresample="lanczos4")

#m1(   0, 4000) +\
#m2(4001, 4100) +\
#m1(4101, 8000) +\
#m2(8001, 8100) +\
#m1(8101,    0)




function m1(clip c, int i1, int i2)  {c.Trim(i1, i2).ChangeFPS(c.FrameRate / 2)}    # method 1
function m2(clip c, int i1, int i2)  {c.Trim(i1, i2).BlendFields               }    # method 2


function BlendFields(clip c)  {
        c
        Overlay(SelectEven, SelectOdd, opacity=0.5)
}
Go through the video and add lines with m1/m2 until you have all spots covered, then uncomment the lines. Btw. BlendFields uses Overlay which internally works in YV colorspace, so to avoid conversions call it after converting to YV12. The clip given to BlendFields should have an even number of frames; I don't know if it'd work correctly otherwise.
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
Aktan wrote:
creaothceann wrote:
For some games it's useful - for example Metroid's and Super Metroid's elevator sequences.
IMO somewhat a bad example cause those areas have no action, and skipping frames during those parts is not like you missed something. It's just Samus moving up and down!
You'd miss Samus. Compare these two videos: Zoizite's "NES Metroid in 09:26" Lord Tom's "NES Metroid" in 08:19.32 In the first one, Samus vanishes (or doesn't) when she's hit or uses elevators. There's also a trick at 06:58 that the viewer can't see.
Mister Epic wrote:
I have 2.6 Alpha.
I tried using the Alpha, but there was only an incomplete release at sourceforge. :/
Mister Epic wrote:
The top picture is made using hq2x(hq3x(movie)), while the bottom one is done using hq3x(hq2x(movie)).
Well, the yellow/orange gradient is smoother in the bottom one. EDIT: Comparison between lq2x and hq2x: [URL=http://img524.imageshack.us/img524/8114/highquality.png][/URL] Top right and bottom left is lq2x; bottom right is hq2x; top left is differences.
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
Aktan wrote:
It must be noted, that blurring just for YouTube to keep all frames makes the video a blurry mess. It's a bad idea to do IMO. I rather drop frames and see the movie sharper.
For some games it's useful - for example Metroid's and Super Metroid's elevator sequences. Mister Epic: "file" should be "path" and "b" is not defined (line 3). Are you using a newer AviSynth than 2.5.8?