• Mario Kart 7 is back on Mario Kart Boards! Read more about it here!
  • As of 17th December 2018, MarioKartBoards Staff have been in communication with Lounge Staff to enable any alting within a lounge environment to result in an indefinite site ban.
  • The Lounge section is now open! With Season 3 starting, there's a dedicated site area here for more info!
  • The war arrangement bot for Discord has been released! Check this thread for more details!
  • Media Team is undergoing a significant amount of changes. Please read this thread for more information.

Ghost Input Display introduction and tutorial

Joined
Dec 22, 2018
Messages
15
Location
Antwerp, Belgium
#1
Hey everyone!
The past 2 months I've been working on an input display and since it's finally finished, I thought I'd make a post
explaining its features and how to use it.
Here's a quick video showing what it looks like.


Currently only the wii wheel does not have a dedicated layout, but you can still use the classic/gcn or nunchuck layout. (Sorry wheel players)

Download:
You can get the program here.

How to use it:

You can open ghost files either by clicking the "Open Ghost" button or by dragging and dropping a ghost file onto the program.

The General tab speaks for itself. The more interesting stuff is in the Customise Tab:

The Customise tab allows you to move things around by dragging and dropping.
If you select an element you can scale it and if you have 'custom colours' selected you can even change
the individual colours.
If you don't want a certain button to be there you can simply drag them off the screen.
The canvas can also be resized simply by resizing the application's window.

Recording:

There are 2 ways to capture the input (I recommend nr 2):
  1. Use a green background and record the application with OBS.
    Then remove the green backround with chroma key in a video editor.
    This is fairly simple to do but can sometimes leave some green artifacts.

  2. Use the record tab.
    By default this will create a video with a transparent background, removing the need of a chroma key.
    This can create video files that are quite large: If you use default canvas size then you can expect about 40MB per minute of footage.
    Some video editors don't enable alpha channel (transparency) by default so it's possible you'll have to enable it for that specific videoclip.
Video Editors:

The transparent videos are sadly enough not supported by all video editors.
  • Shotcut: A free video editor and it supports pretty much every file type and codec, so this is a very safe bet
  • Sony Vegas 14: doesn't seem to work
  • Sony Vegas 15: The videoformat must be .MOV and you must have QuickTime installed. Even then it appears to not always work (?)
  • Since I don't have acces to other editors, feel free to tell me when it works/doesn't work on a certain video editor.
Syncing:

To sync the input display with the ghost footage, just try to get the input timer as close as you can to the in game timer.
Doesn't have to be super accurate, it's not that noticable if you're a few milliseconds off.
After you're done syncing you can crop the timer out (or not, if you really want to keep it.)


Technical Background (for those interested) :
The project was written in C#. This was my first time writing in C# and I feel like I've learned quite a lot!
Absolutely great for making applications. I'm used to only making console applications so this was a nice change
of pace.

Atlas' RKG Viewer also helped me a lot in uncovering some unknown specifications of the rkg file format so it
looks like we now know what every important byte does.

Making the record function was a pain in the ass, but I think it's worth it.
A very limited amount of video codecs support alpha channel and out of those few I had to find one
that I could interface with through the application.
What I ended up going for is this system: All frames get written in png form to a directory, then using FFmpeg I compile
all those png's into a video with the PNG codec.
Is it ugly? Maybe
Does it work? Hell yeah

That's pretty much it! If you read everything you're really cool :cool:
 
Last edited:
Joined
Aug 22, 2018
Messages
5
Location
Australia
#4
Just a quality of life recommendation:
allow the right trigger to be changed to the B button. Some people use b button to drift and prefer an option for it, aswell as the B button being much more compact.
Other then that (which is the only real fuss i could find about the program after looking around), this is a great program and really hits the nail hard for it's user friendly interface. Really well done on this.
 
OP
WhatisLoaf
Joined
Dec 22, 2018
Messages
15
Location
Antwerp, Belgium
Thread Starter #5
Just a quality of life recommendation:
allow the right trigger to be changed to the B button. Some people use b button to drift and prefer an option for it, aswell as the B button being much more compact.
Other then that (which is the only real fuss i could find about the program after looking around), this is a great program and really hits the nail hard for it's user friendly interface. Really well done on this.
Definitely a good idea.
I had thought about it before but I couldn't really find a way to integrate it nicely into the program.
Will probably look at implementing it at a later date, as there are some other things that need to be added/need fixing.
And thanks for the kind words! :giggle:
 
Top