Fade
Contents |
- Description:
- Description:
- The Fade feature gives you the ability to fade or animate away from your front end, into a solid color or picture(s) of your choice. Meanwhile, the application will load in the background until the module calls for fade to exit or the application overtakes fade in fullscreen mode.
- On exit of your application, Fade will attempt to fade or animate itself into focus, then exit the application and fade or animate back into your front end. The goal is to have a more pleasant transition between the front end and the application.
Requirements:
- Must use a module that has fade support.
- Must be enabled in your settings either globally, or for the system you want it on.
- Must have libraries and any other additional files in your Module Extensions folder.
- .NET Framework 3.5 or Visual C++ 2010 Redistributable Package installed for ZipHandler.dll support (this shows 7z progress during fade)
Limitations:
- True fullscreen applications will lock your video and will overtake Fade. This is by design and nothing you can do about it. It's up to you if you want to enable it for these systems or not. This does not happen in windowed or windowed fullscreen mode if your application supports it.
- Flickering can occur in true fullscreen applications when Fade is unable to overtake the application.
Details:
Create a folder in RocketLauncher\Media\Fade\Systemname\_Default. RocketLauncher will search and load images for each of its Layers if found. Example: RocketLauncher\Media\Fade\MAME\_Default\Layer 1.png
- Layer 1.png (This would show as the background image)
- Layer 2.png (This is a static image, and can be placed anywhere around the screen)
- Layer 3.png (This is a dynamic image of which can have an animation applied to it)
- Layer 4 (#).png (This is a set of images, when played, create an animation. One image = 1 frame. Frame 1 = "Layer 4 (1).png", frame 2 = "Layer 4 (2).png", and so on.)
- Layer -1.png (This would show as the background image during Fade_Out)
Optionally, you can place per-rom layer images in a subfolder named after the rom, and RocketLauncher will use it instead. This allows custom per-game images (like control images) to be shown before loading the game. Example: RocketLauncher\Media\Fade\MAME\88games\Layer 1.png
There is also a global fade image folder that RocketLauncher will look in if nothing is found in the system fade folder. This Fade_Image_Path is defined in the Global RocketLauncher.ini. Place any of the Layer # images in there to load when the above images are not found. Default Location: RocketLauncher\Media\Fade\_Default
Note: Transparency is supported on all images and on all layers. So if you are creative, you can have some very nice looking effects by utilizing the layering properties and settings.
Note 2: Image types supported are png, gif, bmp, and jpg. It is suggested you only use image types that support transparency however.
Note 3: You can have multiple layer 4 animations located at the same fade folder. They will be chosen aleatory at each game launch. Just follow the filename convention: start the image files with the word "Layer 4" followed by the animation frame inside parenthesis and add whatever description you want for the animation after the parenthesis. The files with the same description string will define the animation group. For example, name your files "Layer 4 (1) - set1.png", "Layer 4 (2) - set1.png" and "Layer 4 (3) - set1.png" for the first animation set and "Layer 4 (1) alternative.png", "Layer 4 (2) alternative.png" and "Layer 4 (3) alternative.png" for the second animation group.
Key Table:
Key | Default Value | Description |
Fade_In | false | Enable Fade support when leaving your front end and starting the emulator |
Fade_In_Duration | 500 | In milliseconds, how long it takes for Fade_In to appear and disappear |
Fade_In_Transition_Animation | DefaultAnimateFadeIn | The animation to use when transitioning from your Front End to the emu (This function must exist in "Lib\Fade Animations.ahk") |
Fade_In_Delay | 0 | In milliseconds, the minimum amount of time the Fade_In gui must be up when not using 7z.
|
Fade_In_Exit_Delay | 0 | In milliseconds, the amount of time to delay the Fade_In screen from closing while the emulator loads in the background
|
Fade_Out | false | Enable Fade support when exiting the emulator and returning to your front end |
Fade_Out_Extra_Screen | false | If true, adds a brief temporary GUI window the same color as what you have set for layer 1 in an attempt to preven flashing of your desktop or front end when an emulator exits from fullscreen.
|
Fade_Out_Duration | 500 | In milliseconds, how long it takes for Fade_Out to appear and disappear |
Fade_Out_Transition_Animation | DefaultAnimateFadeOut | The animation to use when transitioning from the emu to your Front End (This function must exist in "Lib\Fade Animations.ahk") |
Fade_Out_Delay | 0 | In milliseconds, the minimum amount of time the Fade_Out gui must be up when not using 7z |
Fade_Out_Exit_Delay | 0 | In milliseconds, the amount of time to delay the Fade_Out screen from closing before returning to your FE. This is useful if for some reason it takes awhile to close your game. |
Fade_Layer_Interpolation | 7 | Controls the amount of interpolation used on Layers 1 & 2
|
Fade_Layer_1_Color | FF000000 | Background color when not using an image on layer 1. In ARGB format, first two characters denote the opacity. Here are some examples. |
Fade_Layer_1_Align_Image | Align to Top Left | Aligns the Background picture. Choices are:
|
Fade_Layer_2_Alignment | Bottom Right Corner | Positions layer 2 image on screen. Choices are No Alignment, Center, Top Left Corner, Top Right Corner, Bottom Left Corner, Bottom Right Corner, Top Center, Bottom Center, Left Center, Right Center |
Fade_Layer_2_X | 300 | X location to position layer 2 image if Fade_Layer_2_Alignment is not set |
Fade_Layer_2_Y | 300 | Y location to position layer 2 image if Fade_Layer_2_Alignment is not set |
Fade_Layer_2_Adjust | 1 | Adjust size of layer 2 image (1=full size) |
Fade_Layer_2_Padding | 0 | In pixels, moves the Layer 2 image away from the edge of the screen. Automatically adjusts negative/postive values depending on what quadrant the image is in |
Fade_Layer_3_Alignment | Center | Positions layer 3 image on screen. Choices are No Alignment, Center, Top Left Corner, Top Right Corner, Bottom Left Corner, Bottom Right Corner, Top Center, Bottom Center, Left Center, Right Center |
Fade_Layer_3_X | 300 | X location to position layer 3 image if Fade_Layer_3_Alignment is not set |
Fade_Layer_3_Y | 300 | Y location to position layer 3 image if Fade_Layer_3_Alignment is not set |
Fade_Layer_3_Adjust | 0.75 | Adjust size of layer 3 image (1=full size) |
Fade_Layer_3_Padding | 0 | In pixels, moves the Layer 3 image away from the edge of the screen. Automatically adjusts negative/postive values depending on what quadrant the image is in |
Fade_Layer_3_Speed | 750 | In milliseconds, how long it takes for the non-7z Layer 3 animation to complete. |
Fade_Layer_3_Animation | DefaultFadeAnimation | The animation to use when 7z is disabled, or 7z is enabled but not being used because a rom doesn't need to be extracted - Default is DefaultFadeAnimation |
Fade_Layer_3_7z_Animation | DefaultFadeAnimation | The animation to use when 7z is enabled and rom will be extracted by 7z - Default is DefaultFadeAnimation |
Fade_Layer_3_Show_7z_Progress | true | If true, and you have Fade_In and 7z_Enabled both enabled, Layer 3 will show progress of the current extraction |
Fade_Layer_3_Type | imageandbar | The type of 7z animation used. Options are bar, image, or imageandbar. |
Fade_Layer_3_Repeat | 1 | Number of times to repeat the dynamic Layer 3 when not using 7z. 0 = static image |
Fade_Layer_4_Pos | Above Layer 3 - Left | Where the layer 4 image gets placed on the screen. Choices are: No Alignment, Center, Top Left Corner, Top Right Corner, Bottom Left Corner, Bottom Right Corner, Top Center, Bottom Center, Left Center, Right Center, Above Layer 3 - Left, Above Layer 3 - Center or Above Layer 3 - Right |
Fade_Layer_4_X | 100 | X adjustment to position layer 4 image |
Fade_Layer_4_Y | 100 | Y adjustment to position layer 4 image |
Fade_Layer_4_Adjust | 0.75 | Adjust the size of the layer 4 image (1=full size) |
Fade_Layer_4_Padding | 0 | In pixels, moves the Layer 4 animation away from the edge of the screen. Automatically adjusts negative/postive values depending on what quadrant the image is in |
Fade_Layer_4_FPS | 10 | In milliseconds, how often the layer 4 animation loops. Larger # = slower animation |
Fade_Animated_Gif_Transparent_Color | FFFFFF | The RGB of the color in the animated GIF you want to make transparent.
|
Fade_Bar_Window | false | If true, shows a rectangle window around the progress bar. It helps bring focus to the bar. |
Fade_Bar_Window_X | X location to position the bar's canvas. If blank, bar will be centered. | |
Fade_Bar_Window_Y | Y location to position the bar's canvas. If blank, bar will be centered. | |
Fade_Bar_Window_Width | 600 | Width of the bar's window. This also controls the bar's width. |
Fade_Bar_Window_Height | 120 | Height of the bar's window. |
Fade_Bar_Window_Radius | 20 | Rounds the edges of the bar window. 0 is squared; higher you go, more rounded it looks. At 200 the window disappears. |
Fade_Bar_Window_Margin | 20 | Margin to the left/right of bar. This many pixels must be shown of the bar's window. It also controls the relative X location of the bar on it's canvas. |
Fade_Bar_Window_Hatch_Style | 8 | Hatch style for the bar's window. Try numbers from 0 to 53 for dIfferent hatch styles. You can see the different styles here. |
Fade_Bar_Back | true | If true, the bar itself will have a background that gets filled as the bar progresses. |
Fade_Bar_Back_Color | FF555555 | The ARGB of the bar's background in hexadecimal. First 2 characters denote the alpha, the last 6 are the RGB color. |
Fade_Bar_Height | 20 | Height of the progress bar. This also affects the Y for the bar and text 1 & 2. |
Fade_Bar_Radius | 5 | Rounds the edges of the bar. 0 is squared; higher you go, more rounded it looks. After 10 you start getting wierd effects. |
Fade_Bar_Color | DD00BFFF | The ARGB of the bar in hexadecimal. First 2 characters denote the alpha, the last 6 are the RGB color. |
Fade_Bar_Hatch_Style | 3 | Hatch style for the bar. Try numbers from 0 to 53 for dIfferent hatch styles. You can see the different styles here. |
Fade_Bar_Percentage_Text | true | If true, shows the percentage amount extracted when using a progress bar |
Fade_Bar_Info_Text | true | If true, shows additional information (if any) related to the current extraction when using a progress bar. |
Fade_Bar_X_Offset | 0 | In pixels, how much to horizontally offset the bar on it's canvas |
Fade_Bar_Y_Offset | 100 | In pixels, how much to vertically offset the bar on it's canvas |
Fade_Progress_Duration | 0 | In milliseconds, time for the progress bar to reach 100% on non-7z fade screens or 7z fade screens when 7z Progress is set to custom. If zero, the time is calculated automatically by RocketLauncher to reflect the Fade In Delay, Fade In Exit Delay, and the Progress Animation Speed values.
|
Fade_Rom_Info_Description | text | There are four options for this key:
|
Fade_Rom_Info_System_Name | text | There are four options for this key:
|
Fade_Rom_Info_Year | text | There are four options for this key:
|
Fade_Rom_Info_Manufacturer | text | There are four options for this key:
|
Fade_Rom_Info_Genre | text | There are four options for this key:
|
Fade_Rom_Info_Rating | text | There are four options for this key:
|
Fade_Rom_Info_Order | SystemName|Year|Manufacturer|Genre|Rating | The order you want the text to be shown on your Fade In screen |
Fade_Rom_Info_Text_Placement | corners | The region to place the Rom Info text. Choices are: user defined, corners, topRight, topLeft, bottomRight or bottomLeft |
Fade_Rom_Info_Text_Margin | 5 | The amount of pixels to push the Rom Info text from the edge of the screen. |
Fade_Rom_Info_Text_1_Options | cFF555555 r4 s20 Bold | Text formatting options to apply to the 1st Rom Info text. See the additional formatting options below.
|
Fade_Rom_Info_Text_2_Options | cFF555555 r4 s20 Bold | Text formatting options to apply to the 2nd Rom Info text. See the additional formatting options below.
|
Fade_Rom_Info_Text_3_Options | cFF555555 r4 s20 Bold | Text formatting options to apply to the 3rd Rom Info text. See the additional formatting options below.
|
Fade_Rom_Info_Text_4_Options | cFF555555 r4 s20 Bold | Text formatting options to apply to the 4th Rom Info text. See the additional formatting options below.
|
Fade_Rom_Info_Text_5_Options | cFF555555 r4 s20 Bold | Text formatting options to apply to the 5th Rom Info text. See the additional formatting options below.
|
Fade_Rom_Info_Text_6_Options | cFF555555 r4 s20 Bold | Text formatting options to apply to the 6th Rom Info text. See the additional formatting options below.
|
Fade_Stats_Number_of_Times_Played | text with label | There are three options for this key:
|
Fade_Stats_Last_Time_Played | text with label | There are three options for this key:
|
Fade_Stats_Average_Time_Played | text with label | There are three options for this key:
|
Fade_Stats_Total_Time_Played | text with label | There are three options for this key:
|
Fade_Stats_System_Total_Played_Time | text with label | There are three options for this key:
|
Fade_Stats_Total_Global_Played_Time | text with label | There are three options for this key:
|
Fade_Stats_Info_Order | Last_Time_Played|Average_Time_Played| Total_Time_Played|System_Total_Played_Time|Total_Global_Played_Time | The order you want the statistics text to be shown on your Fade In screen |
Fade_Stats_Info_Text_Placement | TopLeft | The region to place the Statistics Info text. Choices are: user defined, corners, topRight, topLeft, bottomRight or bottomLeft |
Fade_Stats_Info_Text_Margin | 5 | The amount of pixels to push the Statistics Info text from the edge of the screen. |
Fade_Stats_Info_Text_1_Options | cFF555555 r4 s20 Bold | Text formatting options to apply to the 1st Statistics Info text. See the additional formatting options below.
|
Fade_Stats_Info_Text_2_Options | cFF555555 r4 s20 Bold | Text formatting options to apply to the 2nd Statistics Info text. See the additional formatting options below.
|
Fade_Stats_Info_Text_3_Options | cFF555555 r4 s20 Bold | Text formatting options to apply to the 3rd Statistics Info text. See the additional formatting options below.
|
Fade_Stats_Info_Text_4_Options | cFF555555 r4 s20 Bold | Text formatting options to apply to the 4th Statistics Info text. See the additional formatting options below.
|
Fade_Stats_Info_Text_5_Options | cFF555555 r4 s20 Bold | Text formatting options to apply to the 5th Statistics Info text. See the additional formatting options below.
|
Fade_Stats_Info_Text_6_Options | cFF555555 r4 s20 Bold | Text formatting options to apply to the 6th Statistics Info text. See the additional formatting options below.
|
Fade_Text_1_X | 0 | The X location of the canvas text 1 will be drawn on. If blank or 0, default animation will calculate the X based off the X of the Layer 3 animation or text will follow the progress bar to the end if using a bar. |
Fade_Text_1_Y | 0 | The Y location of the canvas text 1 will be drawn on. If blank, default animation will calculate the Y based off the Y of the Layer 3 animation. |
Fade_Text_1_Options | cFFFFFFFF r4 s20 Right Bold | Set the text 1 options |
Fade_Text_1 | Loading Game | When using the default progress bar, this is the text under the bar while it is extracting. |
Fade_Text_2_X | 0 | The X location of the canvas text 2 will be drawn on. If blank, default animation will calculate the X based off the X of the Layer 3 animation |
Fade_Text_2_Y | 0 | The Y location of the canvas text 2 will be drawn on. If blank, default animation will calculate the Y based off the Y of the Layer 3 animation |
Fade_Text_2_Options | cFFFFFFFF r4 s20 Right Bold | Set the text 2 options |
Fade_Text_2 | Extraction Complete | When using the default progress bar, this is the text under the bar after it is done extracting. |
Fade_Font | Arial | Specify the Font to use for text Layers 4/5. Default is Arial as most systems should have this installed |
Fade_Interrupt_Key | ||
Fade_System_And_Rom_Layers_Only | false | If true, will not use Layer images from your global Fade_Image_Path. Will only use rom or system specific images. |
Additional formatting options for Fade_Rom_Info_Text_Options, Fade_Text_1_Options and Fade_Text_2_Options:
- w (width) - area you force the text to stay constrained to. If p is used after the value, it denotes the percentage of the image width So w90p, means to allow the text to use 90% of the image width. If p is not used, the value represents pixels
- c (color) - in ARGB, preceded with the opacity. So dd000000 would be partial black, and ff000000 would be solid black. Preceed the color with a c to denote it is a color (cFF000000) - Here are some ARGB examples.
- r (quality) - following chart explains the different effects you can apply
0 | SystemDefault |
1 | SingleBitPerPixelGridFit |
2 | SingleBitPerPixel |
3 | AntiAliasGridFit |
4 | AnitAlias |
- s (size) - size of the Font
- formatting options - Top, Up, Bottom, Down, vCenter, vCentre, Centre, Center, Regular, Bold, Italic, BoldItalic, Underline, Strikeout, NoWrap (you can use as many as you like, but careful with the positioning options for obvious reasons)
The Default Animations:
Included with RocketLauncher are some default animations to give you a taste of what you can do with fade:
Transitions:
- DefaultAnimateFadeIn
- This performs a simple fade from the front end, and into the GDI layers
- DefaultAnimateFadeOut
- This performs a simple fade to the emulator once layer 3 is done animating and/or your emulator is done loading (depends on your settings).
- AnimateFadeInLegacy
- This simulates the legacy fade system by showing only the layer 1 background image using ahk standard guis rather then GDI ones
- AnimateFadeOutLegacy
- Same as the FadeInLegacy above, but fades to the emulator once layer 3 is done animating and/or your emulator is done loading (depends on your settings).
Transitions take place four times:
- When you select a game from your front end
- When your layer 3 animation is done, then showing the emulator after it's loaded
- When you press your Exit_Emulator_Key
- When the the emulator finished closing and the module exits, returning you to your front end.
Layer 3 Animations:
- DefaultFadeAnimation
- Reveals an image controllable by Fade_Layer_3_Repeat and Fade_Layer_3_Speed when Fade_Layer_3_Show_7z_Progressis false. Image is revealed from left to right from your Fade_Image_Path. This can be per-game named after your rom, or just a "Layer #.png" (or bmp/gif/jpg) for the entire system.
- If Fade_Layer_3_Show_7z_Progress is true, reveals an image based on the current extraction taking place by 7z.exe. The further along the extraction is, the more the image is revealed.
- Can show an image, bar, or both by setting your choice for Fade_Layer_3_Type
- If type is set to bar, will show a progress bar of the current 7z extraction. This bar animation also shows some text, keeping you updated on the current file being extracted and percentage until finished. This text can be changed in your inis (Fade_Text_1 & Fade_Text_2). All the Fade_Bar_ settings help customize this animation to your liking.
- Customizable text layer to show rom information of the selected game.
- Layer 4 can show animated image frames or an animated GIF during Fade In.
Layer 3 and 4 are the layers that animations appear on. This is where GDI programmers, combined with artists, can get creative. The amount of time layer 3 takes place depends on if you are using a 7z animation to show progress or you just want an animation to loop through itself any number of times.
You can read more about the different layers in the Programmers section below.
Programmers:
Those talented enough to want a truly customized experience can create their own animations to control Layer 3. Included with fade is a Fade Animations.ahk that is found in your Module Extensions folder. The animation functions and labels in there are duplicates of the defaults compiled in RocketLauncher. I commented them so you can understand what's going on. You can pretty much do anything you want, even add more layers. But be mindful that the more layers or conditionals you have, the slower an animation will appear. Less is more, especially on older PCs. Think of the loop as FPS, the more you have going on in each loop, the less FPS you will have.
Here is a index of the current layers used in the default Fade animation:
Layer | Description | GUI # |
1 | bottom (background) (image or color) | 1 |
2 | middle (static image) | 2 |
3 | top (dynamic image) | 3 |
4 | multiple images tied together to create an animated object | 4 |
5 | text | 5 |
-1 | bottom Fade_Out (background) (image or color) | 8 |
-2 | bottom Fade_Out (reserved for future use) | 9 |
- Transition animations that are used to show the fade effect are functions and must remain such as they have to run slightly different depending on direction of the fade.
- Transitions must be named so the last word is either "In" or "Out". RocketLauncherUI parses the name and this tells it what drop down boxes to put your transition in. If it doesn't find those 2 words, it assumes the transition can be used for both in and out.
- Layer 3 animations must be Labels so we have the ability to jump out if the user presses an exit key.
- In the 7z section of the animation you can see how I used the text layer to show 7z statistics by reading COM updates from a dll. It shows a percentage of completion, while also showing the file currently extracting.
- Pay attention to the Global variables in the animations provided. Use these to control all the elements on the screen. There are a lot, but you need a lot to make these animations happen while being customizable.
- If you need user-adjustable settings for your animation, the variable holding the path to Fade Animations.ini is %fadeAnimationsIni%. Place all your settings in it's own section for each animation. Doing it this way will ensure if a user updates his Fade Animations.ahk, settings won't be lost.
- If you need to add timers or additional labels and/or functions and do not want them appearing in RocketLauncherUI's Animation drop down selections, prefix the function/label with an underscore "_". So if you have a function named _MyFunction, it can be used for your animation while RocketLauncherUI will know it is not an animation that should be selectable.