Official release thread for WindowCast core

Thank you for this! I was able to use super model 2 with my daytona usa overlay :slight_smile:

5 Likes

That looks really nice! :grin:

The same procedure should work in portrait mode. . . there is one additional parameter that tells the shader that your monitor orientation is portrait.

2 Likes

LOVING WINDOWCAST!!! I added a link to this thread in the description of my new Star Wars Battle Pod 4K Vertical Overlay :smiling_face_with_three_hearts:

WIP :grin:

Lots of fun ideas and things happening here! Come visit and sub!

7 Likes

I’m having some trouble installing this on Retroarch. When I click on the .txt file, it tries to get me to use a different core. Any ideas?

Trying to improve the look in Castlevania Rebirth, with Widow Cast Core. I think there is some shader that can make it more polished. Has anyone tried a combination, resolution, preset shader that was better?

2 Likes

I notice this core often makes the window become unresponsive when you use particular bezel shaders, such as “MBZ__0__SMOOTH-ADV” and various koko-aio ones

1 Like

I mentioned this the other day. MegaBezel’s advanced presets don’t seem to work with it.

strange for me it works fine if used with MBZ__0__SMOOTH-ADV__GDV

2 Likes

Hey. Anyone figure out how to get this working with LaunchBox? I couldn’t make heads or tails of the ‘wincast’ wrapper, unfortunately…

What everybody has to keep in mind with the core is that system power matters. It is the Core + Emulator/Game + Shader. I have trouble running the Core, PS2 Emulator and ADV presets together but fine with just PS2 and ADV preset.

1 Like

Check out @p3st’s earlier post

2 Likes

It’s not an ideal solution - but that’s for later, I can’t get it to work as it is. RA just freezes without ever showing its face. I have to kill the process. Nothing suspicious in the log either.

A ‘class name’ is an internal thing that every window on Windows has but it isn’t normally shown. You can find these with a tool like https://www.nirsoft.net/utils/winlister.htm.

That said, you don’t actually need to find ‘class names’ to make WindowCast work. WindowCast basically has logic that reads the .txt file you load as your “content” and it will try to find a window to most closely matches whatever was written on the line in that text file. That’s based on several metrics of that window, including it’s title, class name, program name of the owning application, etc.

It essentially uses a scoring system for every window you have open on how closely it matches what’s written on the lines in that file. So if you write “AM2R”, say, then a window with “AM2R” in it’s title, or it’s class name, or it’s ‘program name’ will get a high score and it’ll be more likely to pick that window over other windows that will score worse.

IDK if that makes things any clearer?

3 Likes

For those interested in the technical details of window selection, the main logic goes something like this:

  1. Each line in the .txt file, called a ‘partial’ is used to score every open window, and select one candidate window or ‘scored window’ with the best score for that ‘partial’.
  2. These are then weighted by the priorities you specify in the .txt file (see the README about how to set priorities in that file). Basically it’s just score * priority value. If you don’t set priorities then the priority values are all 1, and this does nothing.
  3. The list of ‘scored windows’ is sorted so the window with the best weighted score overall is what gets selected.

Each window is scored roughly like this:

  1. Get a few pieces of information about the window; it’s title, class name, and the ‘product name’ and ‘file description’ fields stored in the metadata for .exe for the program that owns it.
  2. Using partial_ratio() from the rapidfuzz library, it gets a fuzzy matching score between each of those pieces of information, basically a number between 0 and 100 on how well that piece of text matches the given ‘partial’.
  3. It first takes the largest score value from the following;
    • The score for the ‘product name’ + 30.
    • The score for the window title + 20.
    • The score for the ‘file description’ + 10.
    • The score for the ‘class name’ + 0.
  4. Finally a few other modifications are made to that score;
    • If the window is ‘visible’, i.e. not minimized, it’s score is multiplied by 2, so as to greatly prefer visible windows.
    • The length of the window’s title is added to the score so as to slightly prefer windows with longer titles.
    • If product name exactly matches “Microsoft Windows Operating System”, the score is multiplied by 0.5, so as to disprefer capturing windows from the OS itself.
    • If class name exactly matches “Chrome_Widget”, the score is multiplied by 0.5, so as to disprefer capturing windows from Chromium-based browsers and Electron apps like VS Code.

This logic was mostly developed by testing and tweaking to try and capture game or emulator windows most of the time.

7 Likes

Thank you once again for WindowCast!

Makes just about anything possible with overlay creation!

3 Likes

Thanks for your amazing work! Even if everything doesn’t work instantly its still absolutely wonderful to be able to use retroarch’s mega bezels with the ps2 stand alone emulator.

Sorry if you’ve touched on this earlier but for certain windows games with controller input I can’t get anything to register on the RA screen. So far out of what i’ve tried I only have this problem with the Legend of Mana remaster but its frustrating all the same. I haven’t tried SaGa Frontier too. Is there a solution for games we can’t enable background button presses for?

2 Likes

Your missing a L in your link (which cause a 404) : https://www.nirsoft.net/utils/winlister.html

Something tells me performance has nothing to do with this bro. Lol.

Went ahead and did a test. I could get 3_STD to load but it was really slow and couldn’t get out of the quick menu.

Please add click-thru so that games that pause in the background with function and please add the path to the game exe so we can specify in the text file which game to run and we can have different text files per game so that it will be pretty much automatic. Final Fantasy VI old version steam is working BUT i cant move because of the embedded pause on defocus

1 Like