USBLGX Banner Assembly Tutorial

I'm going to go into more detail than you may need, depending on your knowledge and skill level.
You obviously don't have to follow everything by the book, this is just supposed to be a documentation of how I do things.

Chapters:

  1. Retrieving necessary graphical assets
  2. Processing and sizing graphics
  3. Retrieving backing music
  4. Processing and trimming backing music
  5. Preparing and submitting the banner(s)

Stuff you'll need:


Chapter 1: Retrieving necessary graphical assets

Given the age of these games, it might be hard to source high quality assets, or assets that fit the aspect ratios you need to work with reasonably. Sometimes, sacrifices will need to be made.

SteamGridDB and LaunchBox Games Database are great resources for finding high-quality game artwork. Still, you should vet whatever you download. Not everything is created equal since these databases are built by the community.

Sometimes, a good run of Google Images might be your best bet, especially for obscure or promotional art that might be a good fit for banner aspects. Since Google has retired the "View Image" functionality a while ago, you may want to get a script or extension to restore this functionality. ImgPeek is one such extension that will work for Chrome or Edge.

All-in-all, even if you can't find the highest quality assets, there are ways to improve things afterward that I will get into in the next chapter.

Chapter 2: Processing and sizing graphics

I'm first going to detail stuff that applies to all images, then drill down to the specific images a banner is composed of.

Before getting into your image editor of choice, you may want to consider submitting before the computerized gods and trying out something like Upscayl. It's a simple Electron GUI for various AI upscaling algorithms, with a slider to compare before and after. It can even clean up artifacts. Try out the different models for different content, even commercially-restricted models should be fine, as these are not commercial works. It works fine on my meager GTX 980- there are online services for this kind of thing if your system can't run it locally, however.

Sometimes, downloaded assets may have details you don't want. Some good ol' elbow grease might be the only thing to do. Clone stamps, smudging etc. Some editors have a content-aware fill available (there is a plugin for paint.net with the same name, and Resynthesizer is another for GIMP). These algos are best for simple things like objects in the sky, to be fair.

Newer Photoshop builds have something called Generative Fill, which is an AI-assisted version of a content-aware fill- it can be better at this kind of thing, but it's making detail that doesn't exist, which has both purity and ethics concerns (not that AI upscaling doesn't). There IS another alternative if you are not put off by this, but it doesn't work as good as I'd hoped. Microsoft Photos has a generative erase built-in now. Even on my Win10 LTSC. It sometimes does things better than content-aware fill, sometimes worse. Give it a try if it's available!

One thing I've noticed now that I've worked on more banners is that sometimes, you just can't find an asset that's in a good aspect for your needs. In this case, you might want to look into seam carving (liquid rescale). This is a content-aware resizing method that can help you change the aspect ratio of an image with less distortion than a traditional resize. It's available in various image editors via plugins. It can also be done in ImageMagick, if that's more to your liking. Just remember, the less distortion you need to do, the better. Even seam carving isn't magic!

Now onto specifics. Let's start with gameBackground.png:
  • This is the background for the fullscreen banner
  • It needs to be 832x456
  • Due to the 108%~ horizontal stretch that happens to the entire banner in 16:9 mode with LinkToTheAsh's template, some stuff on the very side edges won't be visible on the Wii
  • While the sides aren't much of a concern, the top and bottom are- the GC header as well as the USBLGX Settings/Start footer will limit visibility- try to aim content toward the vertical center, even if it means the logo will obscure it more
  • This asset is the one usually in most need of cleanup or upscaling- it's quite a high resolution on the horizontal compared to most you'll find online
Next, let's have a look at gameLogo.png:
  • This is the logo for the fullscreen banner
  • My finalizing script takes care of the sizing and positioning- keep it a decently high resolution of any amount
  • Keep watch for any garbage in the transparencies, some people don't clean them up properly- test it with a magic wand of low tolerance and delete if needed
  • By default, gameLogo.png will also be used for WadderMainSmall.tpl if the equivalent PNG doesn't exist
IconBack.png:
  • This is the background for the icon
  • Needs to be 170x96
  • It should probably be less busy than gameBackground, but this isn't a hard and fast rule
  • Sometimes a flat color is the best choice
  • Due to the lower resolution, you can sometimes get away with using crustier source assets here!
WadderMainSmall.png (Optional):
  • This is the logo for the icon
  • If it doesn't exist, gameLogo.png will be used
  • Like the above mentioned, any decent resolution will do, as it's automatically trimmed and sized by my script
  • Keep watch for garbage in the transparencies here as well
And with that, that's all the graphical assets accounted for.

Chapter 3: Retrieving backing music

There's plenty of angles here. Anything from ripping YouTube videos, to going on Khinsider, or using the official soundtrack that I'm sure you definitely own legally.

A title screen theme or other strongly associated theme is a great choice for this. If you want to keep it short and sweet, there might be a suitable short jingle as well.

Depending on the source you use, you may want to discern for errors. Sometimes people make mistakes or have bad rips! You can sometimes download FLAC from Khinsider, which is preferable to mp3. If you want to rip from YouTube, there are various tools for this. I prefer to use yt-dlp with Deno, but there are online tools as well. You can also set up your audio editor to record just what you need (not going into detail as this is a can of worms), but make sure the video's been buffered in at a decent quality before doing this.

Chapter 4: Processing and trimming backing music

Now that you've gotten your audio, you'll need to do some work on it. You'll have it easiest if you go the LinkToTheAsh route and just use a short jingle that doesn't need trimming or fading, but not every game has a fitting one of these.

Here's what I do (you don't gotta follow it exact, but I'd say the normalize is pretty important):
  1. Trim the audio to the part desired (15-25 seconds), using a spectrogram to lock on to the beats
  2. Normalize the audio to 100% or 0 dBFS
  3. Apply a fadeout taking up about a third of the of the total trimmed runtime, starting at the beginning of a measure for polish
  4. Strip metadata, since it's unneeded
  5. Resample to 32KHz to reduce file size, but keep the stereo (don't be a masochist)
  6. Export as jingle.wav
Anyway, the main things I'd say not to do are:
  • Have audio that suddenly, jarringly cuts out- use a fadeout in these cases
  • Have silence at the start of the file- trim this out if it's notable
  • Have excessive audio artifacts (find a better source!) or distortion/clipping- it sounds awful
I may support audio looping in my script at some point- when I do, I will update this tutorial with details of how to set this up in your submissions so my script can create the looping BNS when generating the banner.

Chapter 5: Preparing and submitting the banner(s)

With all followed, you should have these files:
  • gameBackground.png
  • gameLogo.png
  • IconBack.png
  • WadderMainSmall.png (optional)
  • jingle.wav
With all these files gathered, you're ready to zip them up. Be sure to have these files and only these files selected, and compress them to a zip file. They should be at the root (not in a containing folder). The zip's file name can be anything!

Go on over to the submissions page and follow the directions.

P.S.: It would be awful nice of you to provide a _config.txt alongside the above mentioned files for e-mail multi-submissions.
Download an example here.
You can also download a template zip with all the files mentioned in this tutorial, as well as some extra goodies to help with submissions.

Thanks for following this guide. If you need extra help, feel free to contact me.