Monday, December 9, 2019

Contra Anniversary Collection





This consists of a series of scaling and aspect ratio mods for Contra Anniversary Collection. It doesn't have any 3D feature at the present time and it needs dgVoodoo to convert DX9 to DX11. Tested with "dgVoodoo2_62" version.


Features (all of them are optional, but some of them are enabled by default)
- Perfect 1:1 pixel aspect ratio.
- Optional 4:3 aspect ratio intended for the NES and SNES games. It is pixel perfect when the size multiplier is x6 (or multiples of x6). This is what you get with the F4 hotkey when your resolution is 1440p.
- Quick switching to the highest integer multiple that fits the screen vertically. This doesn't break menus and it detects automatically the native resolution of each game console.
- Point filtering or anisotropic filtering for the scaling feature. Point filtering by default, which provides clean and perfectly sharp pixels.
- Game size multipliers, from x1 to infinity, no matter if it fits the screen or not.
- Output size is always at 1920x1080 by default even if the desktop resolution is higher (you see black bars) or lower (cut content in the menus), with any aspect ratio. This is because all other resolutions in the Collection are either an upscale or a downscale and not really running at those resolutions. What I do keeps pixels clean and perfect.
- All the previously mentioned game size scaling features are done with an external shader that upscales the entire image, but it's only enabled under certain conditions (for example, when menus aren't visible).


Known issues
- My upscaling methods aren't prepared to deal with the filters you can choose ingame. Don't use them. Also keep in mind that it doesn't matter what aspect ratio you choose in the game (except for the arcade games), because my mod converts all of them to 1:1.


Installation
- Download this file and extract its contents in the "Contra Anniversary Collection" folder, where "game.exe" is.
- Download the latest version of dgVoodoo. I have tested the "dgVoodoo2_62" version. I can't ensure my mods will work with a different version.
- Copy the "D3D9.dll" file from the "MS\x86" dgVoodoo folder to the "Contra Anniversary Collection" folder.
- Open "dgVoodooCpl.exe" to configure the game like this (better not touch the texture filtering option). These screenshots are from the Castlevania Anniversary Collection, but settings are the same:



- After applying the settings, it should have generated a "dgVoodoo.conf" file in the "Contra Anniversary Collection" folder.
- Launch the game.
- Important: for the two Contra arcade games, you need to use the Pixel Perfect option in the game, because I can't fix the aspect ratio automatically for them.


Hotkeys
- F1: lower scaling multiple. x1 is the minimum. Overriden by the F4 hotkey if it's used.
- F2: higher scaling multiple. No limits. Overriden by the F4 hotkey if it's used.
- F3: unmodified emulated game size. It is modified to x1 size by default.
- F4: highest integer multiple emulated game size. Not enabled by default.
- F5: 4:3 aspect ratio, intended for the NES and SNES games. Not enabled by default. It can still affect the image if you use the F3 hotkey.
- F6: switch between point filtering (clean pixels) and anisotropic filtering (smooth and blurry pixels). Point filtering by default.
- 5 (not the numpad): this disables the corrected output size I made. Keep in mind that all the other hotkeys count on you leaving this setting untouched.

F10 resets all settings to their default state.


If you liked the fix and want to contribute for more future fixes, you can donate to this PayPal account: masterotakusuko@gmail.com

3 comments:

  1. The tall one would be cool for a MAME cabinet with a vertically oriented screen.

    ReplyDelete
    Replies
    1. I've just tried it with my monitor in vertical position, at 1440x2560. The highest size multiplier I can get without cutting content is x6. Horizontally, I can get x5. Not much gain. If the arcade games were 20 pixels narrower (204 instead of 224), a x7 multiplier would fit just fine vertically.

      Delete
  2. It should work because I tested lots of resolutions... and I should try it tomorrow by rotating my monitor.

    ReplyDelete