Warning! This tool is highly experimental and it’s not meant to be used over the main copy of your project. Always use it on a copy which you make separately for scaling. We don’t accept any responsibilities for any damage. Use solely at your own risk.

 

This page is dedicated to our free tool which helps with scaling Wintermute Engine games into different resolutions. Current version of the tool supports the following features:

  1. Automatic WPR file loading
  2. Scene, Window, Entity, Sprite and Settings file automatically rescaling to the new resolution
  3. Nice automatic Image scaling using ImageResizer library (only jpg and png files supported)
  4. Experimental bitmap font scaling (usually unusable, but for quick tests can be useful)
  5. Script bench

Script bench is a set of tools to automatically process .script files and batch modify the code to incorporate scaling. Remember that it’s always better to write your code as prepared for scaling, but script bench can ease the pain of going through the scripts manually.

Currently supported features are:

  1. Code pattern filtering - find occurences of the code you need to modify for scaling (eg. actor.WalkTo or ent.PlayTheora)
  2. Code injection - injects code pattern into method (eg. actor.WalkTo(100,100); will turn into actor.WalkTo(100 * Game.GlobalScale, 100 * Game.GlobalScale);
  3. Code embracing - puts parenthesis and pattern to the right side of an expression. (eg. window.X = 512 * dX; will turn into window.X = (512 * dX) * Game.GlobalScale; )
  4. Code encapsulation -  allows using a new method to handle the scaling for you by extracting the caller and using it as the first parameter of a new method. (eg. ent.PlayTheora(file); can be encapsulated into Game.PlayScaledTheora(ent, file);
  5. Direct line editing  – the tool also allows modification of any found line
  6. Mass saving - all the script lines across the whole project will be saved at once.

I’ve created a tutorial videos to show how the tool works so you can see the tool in the real production. I apologize for the sound as it was recorded through my screencast software and using mere webcam. But I hope it won’t distract you too much from the tool.

1. Using the basic functions

2. Using the Script bench

 

You can download the tool here! (version 0.0.0.6)

In case you run into problems, leave me an email (preferably with exact example of what you’ve been doing)

at jan.kavan[ a t ]cbe-software.com and please include WME Scaler: as the first part of the subject.

 

CHANGELOG

0.0.0.6

+ Added option to select JPG scaling imprecision mode (stretch, crop for now) to avoid white artifacts

0.0.0.5

+ Added option to filter single numerical assignment (eg. .X = 500;)

+  Added option to filter out lines started with comments

+ Added common code patterns (* Game.GlobalScale, Game.PlayScaledTheora) to contextual F1 menu for Embrace, Encapsulate and Inject

FIX: Fixed a crash with some filtering combinations

0.0.0.4

+ Added option not to create backup files while scaling

+ Added quality option for JPG files scaling (default 90)

0.0.0.3

+ Added option not to scale theora masks (fixes visual glitches in the second tutorial)

FIX: ignore whitespace when doing script bench queries

0.0.0.2

+ inventory.def parsing

+ responses.def parsing

+ added scaling of ITEM_WIDTH, ITEM_HEIGHT and SPACING

FIX: handmade window file parsing

0.0.0.1

- Initial release

 

FAQ

Q: Why some of my windows look weird?

A: Scale the fonts correctly! Basically SizeToFit or HeightToFit can really mess up your windows layout.

Q: The bitmap font scaler does funky things

A: Yes. It does. Basically I will remove it when I don’t need it myself because it doesn’t work well. Or maybe I will come with some way how to make the font scaling work better. There is an issue with WME fonts that you always have to have blank pixel outline and the scaler doesn’t always respect that so the result looks funny. And many other reasons why automatic scaling doesn’t work.

 

If you for some strange reason feel grateful for having this tool or you simply wish to support further development, you can donate some of your hard earned currency. :)