Posts for creaothceann


creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
\o/ \o/ \o/
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
Kurabupengin wrote:
Something similar happened with Yume Nikki. The person that made a TAS of that game didn't submitted the movie because he modified the game in order to make the game to work, and fixed some audio issues, meaning that could be against the rules.
If that really affects the timing, he only has to distribute that version and all competing TASes would have to use that.
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
If you're looking for Xinput interfaces, Higan's source code should that for example.
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
ZilverXZX wrote:
where is the prereq installer?
Took me less than a minute. (Didn't see it on tasvideos' BizHawk emulator page though.)
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
Nice game by Algeria. The German first half was atrocious.
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
Searching for "final fantasy 4 nes font" eventually led me to this site and this image: I modified it a bit: We can now load that bitmap, extract a character's area and print it on the emulator output:
Language: Avisynth

# create the font clip (1 frame, completely white, alpha layer is transparent where the FontMask image is black) FontMask = ImageSource(path="FontMask.png", start=0, end=0).ConvertToRGB32 BlankClip(clip=FontMask, length=1, color=$FFFFFF) Mask(clip=last, mask_clip=FontMask) global Font = last BlankClip(length=1, width=256, height=244, pixel_type="RGB32", fps=60, color=$000063) # the NES frame Print_Index(last, 0, 0, 1) function Print_Index(clip c, int x, int y, int i) { src_x = (i % 5) * 16 src_y = (i / 5) * 16 Font.Crop(left=src_x, top=src_y, right=8, bottom=8) Layer(base_clip=c, overlay_clip=last, x=x, y=y) }
Printing a "char" instead of an "int" requires a conversion:
Language: Avisynth

function Print_Char(clip c, int x, int y, string s) { Assert(StrLen(s) == 1, "Print_Char: '" + s + "' is not a character") i = FindStr("ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789<>-.abcdefghijklmnopqrstuvwxyz!?%/:", s) - 1 Assert(i >= 0, "Print_Char: character '" + s + "' is not in the font") Print_Index(c, x, y, i) }
Printing a string is done with a bit of recursion:
Language: Avisynth

function Print(clip c, int x, int y, string s) { (StrLen(s) == 0) ? c : c.Print_Char(x, y, s.LeftStr(1)).Print(x + 8, y, MidStr(s, 2)) }
(This creates one additional frame per letter, but the overhead should not be a problem, I guess.) A decimal or hexadecimal number can be easily converted with the standard Avisynth string functions (see the installed manual files). Reading values from a file can be done with ConditionalReader (one variable per file). So the biggest problem for me would be writing a Lua script that writes the values into text files, because I don't know Lua scripting (in- or outside of emulators). :)
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
  • The part to the right can be just a bitmap that you draw the numbers over.
  • Drawing the numbers (decimal and hexadecimal) can be done with some functions that cut out characters from a font bitmap (e.g. 16*16 characters). This takes care of Frame Number and Real Time.
  • Game Time, Hex Time, GP, Lag, MP, Map, Floor, Encount, Shift and RNG have to be supplied from outside of Avisynth, for example with a LUA script that writes these values to a file and an Avisynth plugin that reads that file.
  • The names can be bitmaps; I don't know if they change significantly during the run but this can be supplied via the LUA Script too.
  • The RNG distribution can be a bitmap, and the marker can be just a small frame created via BlankClip.
And when you have to write a LUA script anyway you can also do Frame Number and Real Time that way too, I guess.
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
TASBlend is a very simple filter (just separating the frames into pairs and combining them again with varying opacity), but Deblink has to examine every pixel and decide if it's part of a blinking sprite or not. It's more code and it does a lot more work.
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
No... seems like that was too early to say. It's black only for the first frame and when it stops at the end. From the blog: "when we launch support for 48 and even 60 frames per second in the coming months."
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
trlky wrote:
Maybe once YouTube actually enables 60fps
It already does work here (in Chrome).
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
True wrote:
Keep in mind: Open Bus glitches are likely exploiting an emulator deficiency, or maybe a bug. The bus is likely not implemented properly when open.
"The bus" is just an 8-bit register that is simply not updated when the CPU does a read request from an address that has no hardware mapped to it. This is well understood. (Actually, there are several MDR in the SNES (PPU and APU, iirc) but the CPU MDR is the most useful one.)
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
synnchan wrote:
Just how reliable is SNESHawk?
Very, if you select the right core.
synnchan wrote:
I just want to make sure I can trust the emulator and that it won't desync on my Snes TASes.
In my experience with SNES9x it was almost guaranteed to get desyncs going from one version to the next (when the next's emulation had been modified). bsnes has three cores, "accuracy", "compatibility" and "performance". The "accuracy" core uses a different PPU (graphics) emulation that is needed by very few games and doesn't affect the rest of the system. "compatibility" is the standard core; its SNES emulation is so good that it's unlikely to have any further timing changes. "performance" is older, has speed hacks and is not suitable for TASing. BizHawk has the "performance" core selected by default; for TASing you should switch to "compatibility".
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
There's also the MSU Lossless codecs, ZMBV (needs 32-bit color depth in the source so it might not work with SNES9x), and of course "uncompressed".
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
Exception code 0xC0000374: "STATUS_HEAP_CORRUPTION - A heap has been corrupted." Have you tried other codecs?
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
psxjin movie files in text format only have one line, afaik.
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
No.
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
Alyzeej wrote:
Warepire wrote:
Yeah, remember to check at the top how many lines the header is (the stuff before the first frame of input). If the header is 20 lines, then frame 1 is on row 21 instead of 1.
Could you exemplify, please? This part is a bit confusing since I can't find something in my movie file like that (or I'm not seeing it at all).
The first line. Note that you can press the "Word Wrap" button in the toolbar to dynamically wrap long lines so that they're completely on screen, but this doesn't affect the line numbers.
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
Open the unmodified video in VirtualDub (or another video editor/player), find out the size and multiply that. Or use the following Avisynth script:
Language: Avisynth

AVISource("source.avi") i = 3 PointResize(Width * i, Height * i)
Note that you can further process the image; at least 4:3 aspect ratio correction would be nice. (Don't use PointResize for that though.)
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
Yes vote too. Btw. does the flickering line in the background mean that timing emulation is not good enough?
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
TASeditor wrote:
<video>https://www.youtube.com/watch?v=inDwLmjxVzU</video>
How about something with a bit more artistic value? Link to video
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
He broke the games so hard, even the submission text's been broken o.o
creaothceann
He/Him
Editor, Experienced Forum User
Joined: 4/7/2005
Posts: 1874
Location: Germany
Samsara wrote:
Guga wrote:
That has a name, it's called humour.
More specifically, it's over-exaggeration for the purpose of comedy.
Well then. What I expected What I got