Former player
Joined: 12/1/2007
Posts: 425
YouTube's player is 16:9 now, so yes, stacking the screens horizontally will naturally look better than vertically.
Joined: 4/11/2006
Posts: 487
Location: North of Russia :[
I'd propose capturing main action screen 2x/3x scaled leaving less needed information sceen at its 1x. That way we don't lose info AND have good view. Another possible solution I just made up (it might have been suggested already though) is: both screens are rendered as usual, and to the right of them there's 2x render of main action screen. Let me make a pictures of what I meant...
Former player
Joined: 12/5/2007
Posts: 716
zefiris, I somewhat understand what you mean, but I think that those screens should simply be vertically "stacked" to make it look like the original. If you only want to see the upper screen (like in the case of NSMB where there's actually nothing interesting on the lower one), you're always free to use mplayer's crop video filter. But oh well...
Senior Moderator
Joined: 8/4/2005
Posts: 5770
Location: Away
Johannes wrote:
YouTube's player is 16:9 now, so yes, stacking the screens horizontally will naturally look better than vertically.
Look larger, not better. Well, try it with NSMB and see if it's cooler to see Mario constantly running towards the map screen.
Warp wrote:
Edit: I think I understand now: It's my avatar, isn't it? It makes me look angry.
Joined: 11/4/2007
Posts: 1772
Location: Australia, Victoria
Why not figure out a way to force Youtube to read 512*192 or 256*384 videos as high definition, and thus not really loose any detail when watching it in high definition. ^.^
Joined: 5/2/2009
Posts: 656
Well, after reading this thread and seeing the NSMB movie, I'd like to point my opinions: They way NSMB were encoded is kinda strange. It doesn't fit monitors/TVs well, and in fullscreen mode looks way small, it reminds me some old arcades with a gigantic status screen and small room for the action itself (Wonderboy in Monster Land, Gauntlet). Maybe a edited video, showing "where the action is" should be made as a complement, not a substitute for the encoded video. And maybe showing the video horizontally, when appropriate, should be the best option. Games like Sonic Rush needs both screens vertically, while others could have horizontal movies. Results should vary.
My first language is not English, so please excuse myself if I write something wrong. I'll do my best do write as cleary as I can, so cope with me here =) (ノಥ益ಥ)ノ
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
Stacking two 4:3 images horizontally rather than vertically will indeed not enlarge either image when viewed fullscreen on a 4:3 monitor. The reason is simple: Two 4:3 images stacked inside a 4:3 area will take exactly half of the area, no matter how you rearrange them (assuming you don't overlap them). Vertically, horizontally, diagonally, or in any other (non-overlapping) way, the two 4:3 images will always have the same size (they will amount to exactly half the screen area). They will be larger only if you have a widescreen monitor. (OTOH widescreen monitors are becoming more popular nowadays.) Another idea: If one of the DS screens is significantly less relevant than the other, and they are not geometrically connected in content, scale the less relevant screen smaller, like eg. half in size on both axes. If in some game the action temporarily switches from one screen to another, invert the scales to follow the action. (If the action temporarily becomes important on both screens, make both screens equal in size).
upthorn
He/Him
Emulator Coder, Active player (388)
Joined: 3/24/2006
Posts: 1802
Warp wrote:
Stacking two 4:3 images horizontally rather than vertically will indeed not enlarge either image when viewed fullscreen on a 4:3 monitor. The reason is simple: Two 4:3 images stacked inside a 4:3 area will take exactly half of the area, no matter how you rearrange them (assuming you don't overlap them).
I believe the issue here is working around a maximum vertical resolution that exists on sites like youtube, where stacking the screens side-by-side will allow each screen to have a higher resolution, but may still result in the movie looking worse overall..
How fleeting are all human passions compared with the massive continuity of ducks.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
upthorn wrote:
Warp wrote:
Stacking two 4:3 images horizontally rather than vertically will indeed not enlarge either image when viewed fullscreen on a 4:3 monitor. The reason is simple: Two 4:3 images stacked inside a 4:3 area will take exactly half of the area, no matter how you rearrange them (assuming you don't overlap them).
I believe the issue here is working around a maximum vertical resolution that exists on sites like youtube, where stacking the screens side-by-side will allow each screen to have a higher resolution, but may still result in the movie looking worse overall..
Well, youtube is nowadays an exception because it fairly recently started supporting widescreen 16:9 videos. Stacking the two DS screens horizontally would indeed make them bigger if the video is 16:9 (and submitted to youtube as such). On a 4:3 video it doesn't matter how you stack them.
Editor, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
I suggest a video where the second screen is moved to be a thumbnail on the side of the first screen... Btw, if you use MPlayer, use this option: <code>-vf crop=256:192:0:0</code>. It does wonders. (Though it sacrifices the second screen.)
Joined: 10/20/2006
Posts: 1248
I'm for zefiris' idea, though it would probably suck to encode games like Sonic Rush then. o_o
Player (147)
Joined: 11/27/2004
Posts: 688
Location: WA State, USA
So, what about games with a "gap" between the screens (ie Contra 4)?
Nach wrote:
I also used to wake up every morning, open my curtains, and see the twin towers. And then one day, wasn't able to anymore, I'll never forget that.
arflech
He/Him
Joined: 5/3/2008
Posts: 1120
RT-55J, read the thread and you will find gems like this:
Atma wrote:
Perhaps the only thing that could be considered an issue is whether or not to insert a filler bar of something to such an effect for games such as contra 4, sonic rush/adventure, yoshi's island 2 etc. where there is roughly a 48 or 64 (it's been a while since I checked, it's most likely 64) pixel gap between what's displayed on the top/bottom screens. In contra for example without the gap, it appears that bullets just magically disappear for several frames and then appear quite a fair amount of pixels to the right of where they should be if you don't factor in the between-screens space.
i imgur com/QiCaaH8 png
Joined: 3/11/2008
Posts: 583
Location: USA
ShinyDoofy wrote:
(like in the case of NSMB where there's actually nothing interesting on the lower one)
quibble: Some underground bonus rooms instead have the game take place on the lower screen.
Player (103)
Joined: 5/22/2007
Posts: 22
Bisqwit wrote:
I suggest a video where the second screen is moved to be a thumbnail on the side of the first screen... Btw, if you use MPlayer, use this option: -vf crop=256:192:0:0. It does wonders. (Though it sacrifices the second screen.)
Sounds good, except for games where both screens are combined to create the impression of a bigger screen where this would destroy that impression (such as the mentioned games contra 4, sonic rush/adventure, yoshi's island 2). Give the smaller screen a third of the bigger screen's edge length and both combined will perfectly fit into 16:9. In case main action switches the first screen could be shrunk and the second screen be enlarged if that's not too much video editing (preferably in a short animation as a sudden size change could irritate viewers):
Main action on:

         top screen          touch screen

- +----12--------+            +----12--------+
| |              |            |              |
| |              +--4-+  +--4-+              |
9 |    top       |touc3  3 top|   touch      |
| |              +----+  +----+              |
| |              |            |              |
- +--------------+            +--------------+

  |------------16-----|  |------------16-----|
I've seen a similar thing in an interview on TV to focus on the respective speaker.
Joined: 5/2/2009
Posts: 656
If the screen uses both screens, there's not a lot of options left besides using both screens, I guess. In any other case, the video mode can change
My first language is not English, so please excuse myself if I write something wrong. I'll do my best do write as cleary as I can, so cope with me here =) (ノಥ益ಥ)ノ
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
Kabuto wrote:
Main action on:

         top screen          touch screen

- +----12--------+            +----12--------+
| |              |            |              |
| |              +--4-+  +--4-+              |
9 |    top       |touc3  3 top|   touch      |
| |              +----+  +----+              |
| |              |            |              |
- +--------------+            +--------------+

  |------------16-----|  |------------16-----|
The extra empty space could be used to show button states. It could even use some graphics resembling the button pads of the real device for that.
Experienced player (954)
Joined: 12/3/2008
Posts: 936
Location: Castle Keep
Warp wrote:
The extra empty space could be used to show button states. It could even use some graphics resembling the button pads of the real device for that.
Is that even possible? mind to give a bit details how its done? (graphic buttons for input from movie)
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
arukAdo wrote:
Warp wrote:
The extra empty space could be used to show button states. It could even use some graphics resembling the button pads of the real device for that.
Is that even possible? mind to give a bit details how its done? (graphic buttons for input from movie)
In the same way as button states (and other things, such as subtitles nowadays) have been shown in other previous movies? Support for drawing them into the AVI is programmed into the emulator.
Editor, Emulator Coder, Expert player (2105)
Joined: 5/22/2007
Posts: 1134
Location: Glitchvania
What about rotating the graphics, so that the viewers can rotate their monitors? Well... never mind. It's already suggested before.
<klmz> it reminds me of that people used to keep quoting adelikat's IRC statements in the old good days <adelikat> no doubt <adelikat> klmz, they still do
Editor, Expert player (2313)
Joined: 5/15/2007
Posts: 3855
Location: Germany
So how to produce an AVI with only a single screen (the upper one in my case) recorded?
Former player
Joined: 12/5/2007
Posts: 716
According to gocha, it's already implemented. As I don't run the Windows version and thus can't help you with that, you might go and use Avisynth with the appropriate Crop filter.
gocha
Any
Emulator Coder, Former player
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
ShinyDoofy wrote:
MUGG wrote:
So how to produce an AVI with only a single screen (the upper one in my case) recorded?
According to gocha, it's already implemented.
Hmm, when did I say such? I think that's not true.
ShinyDoofy wrote:
you might go and use Avisynth with the appropriate Crop filter.
This is the same as what I would say.
I am usually available on Discord server or Twitter.
Editor, Expert player (2313)
Joined: 5/15/2007
Posts: 3855
Location: Germany
I'm happy about the positive feedback regarding the screen layout in my latest video. It was my first practical experience using Avisynth and getting it to be like this actually almost took longer than making the TAS! (That's probably because no-one replied to my questions on #tasvideos the other day, though...) I'd like to briefly explain how I archieved the new layout so other people will possibly have an easier time. I downloaded AviSynth here and installed it. I recorded the movie with the Xvid MPEG-4 codec. I used this script to get an encode of the upper screen alone. (The NDS screens are 256 pixels in width and 384 in height (in total))
AviSource("c:\folder\[original clip].avi")
Crop(0,0,-0,-192).BilinearResize(512, 384)
I copied this into a text file and saved it as .avs Then I opened it with VirtualDub and saved the new AVI (compression: Xvid MPEG-4 codec, highest quality). I produced a blank .jpg (768 width, 384 height) with microsoft paint. I opened it in Virtualdub and made sure that it would produce an AVI with as many frames as the originally recorded video, then I saved it as well. Use this instead:
BlankClip(length=[length of the original video in frames], width=768, height=384, fps=59.826 color=$000000)
thanks mz. :) Then I opened this script in Virtualdub: (computer addresses are not needed here, just have it be like "abc.avi" for the revelant places)
alpha=128

clip1 = AviSource("[blank AVI].avi").ConvertToYUY2
clip2 = AviSource("[originally recorded video].avi").ConvertToYUY2
clip3 = AviSource("[upper screen AVI].avi").ConvertToYUY2

return Layer(clip1, clip2, x=514, y=0, "add").layer(clip3)
I imported a seperately-recorded WAV audio file and made sure it synced with the video. I saved it and that was it. It's done! :P There's probably a much easier way to do it but this is how I've done it. End of story.
Post subject: AviSynth script I usually use
gocha
Any
Emulator Coder, Former player
Joined: 6/21/2006
Posts: 401
Location: Japan, Nagoya
Here I show what I usually use for DS encoding.
AviSource("ds_part1.avi")
# If segmented: AviSource("ds_part1.avi")+AviSource("ds_part2.avi")+AviSource("ds_part3.avi")+...

miniScreens = last
upperScreen = Crop(0,0,256,192).PointResize(512,384) -- Crop and Simple2X
lowerScreen = Crop(0,192,256,192).PointResize(512,384) -- Crop and Simple2X

mainScreen = lowerScreen
# If you want to switch the main screen display, write something like the following line instead:
# mainScreen = lowerScreen.Trim(0,630)+upperScreen.Trim(631,1414)+lowerScreen.Trim(1415,Framecount-1)

mainScreen.StackHorizontal(miniScreens)

# Framerate reduction, if needed: ChangeFPS(FrameRateNumerator, FrameRateDenominator*2)
# If you want to blend every 2 frames, instead: AssumeFieldBased.Weave.VerticalReduceBy2
ConvertToYV12()
Additionally, some extra resize filters ;)
LoadCPlugin("ffavisynth.dll")

# Simple2x resize (wrapper of PointResize)
function Simple2xResize(clip clip, float "src_left", float "src_top", float "src_width", float "src_height")
{
	src_left = default(src_left, 0)
	src_top = default(src_top, 0)
	src_width = default(src_width, 0)
	src_height = default(src_height, 0)
	return clip.PointResize(clip.Width * 2, clip.Height * 2, src_left, src_top, src_width, src_height)
}

# Super2xSaI resize (using ffdshow plugin)
function Super2xSaIResize(clip clip, float "src_left", float "src_top", float "src_width", float "src_height")
{
	src_left = default(src_left, 0)
	src_top = default(src_top, 0)
	src_width = default(src_width, 0)
	src_height = default(src_height, 0)
	return clip.Crop(src_left, src_top, src_width, src_height).ffdshow("null","isResize=1,resizeMethod=14")
}

# 2xSaI resize (using ffdshow plugin)
function 2xSaIResize(clip clip, float "src_left", float "src_top", float "src_width", float "src_height")
{
	src_left = default(src_left, 0)
	src_top = default(src_top, 0)
	src_width = default(src_width, 0)
	src_height = default(src_height, 0)
	return clip.Crop(src_left, src_top, src_width, src_height).ffdshow("null","isResize=1,resizeMethod=15")
}

# hq2x resize (using ffdshow plugin)
function Hq2xResize(clip clip, float "src_left", float "src_top", float "src_width", float "src_height")
{
	src_left = default(src_left, 0)
	src_top = default(src_top, 0)
	src_width = default(src_width, 0)
	src_height = default(src_height, 0)
	return clip.Crop(src_left, src_top, src_width, src_height).ffdshow("null","isResize=1,resizeMethod=16")
}
Edit: If you need to rotate screen, you should look TurnLeft, TurnRight or Turn180 and modify the script. Edit: If you want to a few pixels of gap, AddBorders will help.
I am usually available on Discord server or Twitter.