When using the kill task hotkey, wait for tasks to actually close before returning to the frontend and re-initializing the sound device
Fix -1 index error during time transitions
Fix regression with the "disable key" feature
Pause internal timers when launching games
Update building debris properly
Normalize the Rampage monster and R-Type ship speed at different screen sizes/aspect ratios
Don't reload movies when looping; just reset the play position
Update to .NET Framework 4.7
Added desktop user interface
Added customizable user interface
Improved building debris collision detection for classic theme
Fixed config utility from turning non-folder list items into folder list items
Added logic to not show videos when they're less than the length of the fade in/out effects
Improved config file loading
Asynchronous image loading so that loading large images doesn't stall the UI
Fix clipping issues in surround monitor mode or when running at less than the monitor's full resolution in full screen mode
Optimizations and dead code removal
Add voice recognition feature (this can be bound to an input as "BIG_BLUE_SPEECH" in Big Blue Configuration)
Fix video audio fade out when selecting a game
Improve program detection when enabling the option to force closing the program; the new logic is to find all sub-processes of the program as well as any binaries in the same folder as the program being run
Optimize file system folder/directory traversal
Big Blue can now run on machines that have no speakers or audio devices
Update SharpDX to latest
Disable DPI awareness to workaround Windows scaling issues
Add support for lists based on file system folders/directories
Outline list text in night and dawn variations of the theme for better contrast with the background
Don't allow menu hotkeys to work when the menu is already open and the frontend paused
Optimize image loading and support more image types
Added option to enable or disable list text anti-aliasing
Added option to enable or disable looping of videos
Added multi-item move feature to Big Blue Configuration utility
Fixed videos occasionally not looping correctly
Redesigned list to allow infinite nested lists
Redesigned many Big Blue Configuration windows to support the new list structure
Images in lists are now loaded dynamically instead of cached up front when selecting a list; lists with tens of thousands of items are now possible without using a lot of memory
Added option to display snapshots and videos at their correct aspect ratio or stretch to fill the space
Added threading for asynchronous playing of audio samples and loading of list images
List item titles are now nicely truncated with an ellipsis (...) when they don't fit
Added the ability to bulk delete controls in configuration utility
Select the first program template by default in the "MAME Add" window of the configuration utility
More error handling when launching a program and a nice little surprise when a program can't be launched
Optimized list rendering
Improved DirectInput handling and added support for Z axis and Z rotation inputs
Bulk add and MAME add now respect the program's kill hotkey setting
Added open/close menu sound effects
Add more list margin settings to allow for 0 margin lists
Adding missing instruction card monitor and flyer monitor options to various configuration windows
Replaced "emulator" label with "program" and "game" label with "item"; Big Blue is a generic program launcher now and can be used as a media player as well as an arcade cabinet frontend
Many code clean ups
Added direct input binding to restart, shutdown, and quit to desktop
Added the ability to disable the main menu
Minor optimizations and code cleanup
Register joysticks as well as gamepads with RawInput
Don't bother processing XInput devices when using a DirectInput device when no XInput devices are present
Include joysticks and gamepads in the Input Delay functionality (before, only keyboards and mouse were included)
Added DirectInput support for non-XInput gamepads and joysticks
Added built-in support for awful games that don't open and close processes properly (fuck you, Street Fighter V)
Fixed an error where paging didn't work if you didn't select a default list
Improved multi-monitor detection when opening Big Blue from secondary windows
Optimized collision detection methods
Clean stretch for clock graphics
Improved panning/speaker selection methods
Fixed XInput support that broke during the switch to 64-bit
Added support for binding to trigger buttons for XInput joysticks
Fixed "full path" option when using program templates
Improved naming conventions in Big Blue configuration utility
Improved positioning of mini-game UI elements on surround monitor setups
Added support for 5.1 and 7.1 surround speaker setups (this is most noticeable on the R-Type ship as it moves, but many other sounds are now positioned based on the speaker setup)
Fixed R-Type laser getting stuck at the far corner of the screen if you shot the laser at the wrong time (didn't notice because of overscan)
Removed the last of the non-integer scaled graphics; all graphics are clean now
Improvements to the built-in clock behavior
Optimized assets; binary is significantly smaller now
Redid number graphics
Added built-in clock to show you the current time
Fully configurable Main Menu (font, padding, size, language)
Support task killing with programs that spawn child processes
Better screenshots in snap folder
Added support for shitty programs that launch the real binary as a secondary child process (fuck you, Guilty Gear Xrd)
Minor optimizations
Fixed pixels in Dawn graphics that weren't alpha blended
Fixed frontend not respecting the volume settings from the configuration utility
Big Blue is now 64-bit only (it's 2016)
Added support for surround monitor configurations to display Big Blue on multiple monitors (horizontal or vertical spanning)
Rewrote sound engine to use XAudio2 and SharpDX; Big Blue is now ASIO MAME certified™
Added fourth theme/time of day: dawn
Broke up options in Big Blue Configuration Utility into separate windows
Added full control over game list display options
Added clean stretch option
Added the option to select a fixed time of day instead of dynamically changing the theme
Optimized configuration utility
Fixed an error in the sorting code
Replaced more art assets with higher quality versions
Upgraded to .NET 4.6.1
Added support for configuring the game list margins and padding
Normalized the blood spurt effect so that its trajectory is the same at all resolutions
Added support for 16:9 aspect ratio snap shots and videos
Allow selecting snap shot/video aspect ratio independently from frontend aspect ratio
Support 4:3 aspect ratios when rotated for users who will mount large LCDs vertically in their cabinets and then rotate the image to play games 4:3
Improved rendering of snapshots and videos so that there are no longer gaps between the frame and the image at weird resolutions
Fixed a rare error that occurred after a player won a round in the versus mode where the video didn't reset properly
Recreated Haggar graphics with clean stretching so that the images are sharper
Synced configuration options with Big Blue Config
Updated to latest USB ids
New button mappings for selecting a game randomly, jumping to the first game in the list, and jumping to the last game in the list
Decoupled snapshot portrait mode from screen rotation
More robust screen rotation options to support setups with large vertically mounted LCDs for 4:3 games
Fixed World Warrior VS screen not rendering properly
Fixed 1 pixel offset in Haggar's animation frames at 4k+ resolutions
Automatically scroll to the bottom of the list when binding controls in the config utility
Fixed a crash in the config utility
Configurable fonts
Fixed error when moving game in configuration utility
Video fade in/fade out improvements
R-Type ship and Rampage monsters reset positions when returning from a game
Video fade in timer doesn't start until the frontend itself has fully faded in first
Instead of abruptly looping, when videos end, they fade out to the snapshot image
Video fade in/fade out times have been slightly adjusted and normalized
Video audio now fades in and out with the video
Game list navigation logic has changed pretty significantly; you can now "page" backward even when you're on the first item, and you can "page" forward when you're on the last item
Paging has been normalized; it's now always going to take you to first game that's off the screen
Updated USB ids
Updated the Big Blue configuration utility to work with the newly merged MAME and MESS listxml format
Big Big configuration utility's "Add MAME" form dynamically populates the list of manufacturers from all the unique entries in the listxml output instead of being a hard coded list
If your default game list wasn't the first list, returning to the categories menu had the wrong selection
If you're holding down the R-Type warp button while selecting a game to launch, the warp sound no longer continues to loop after the game's been selected
Fix starting position of R-Type lasers to match the original arcade game
Normalize position of clouds/sun/moon across all resolutions
Optimize main game loop
Updated Linux USB IDs to the latest version
Fixed force quit.
Added sound effect for Rampage monsters slipping and falling
Added extra frame of animation to foreground fighter punch
Fixed snapshot flicker effect for high refresh rates (100hz+)
Rewrote foreground fighter controls to allow the player to punch at variable speeds
Fixed minute flickering on foreground fighters if player just kept hammering the input
Fixed shutdown sequence not starting if you initiated it in free-for-all mode while a Rampage monster was dying
Respawn monsters during shut down sequence before the point of no return in free-for-all mode
Added a new "Free-for-All" mode that lets the R-Type ship and Rampage monsters fight endlessly while selecting games. Player 1 always has control over the game list in this mode.
Hide "Press Start" blinking text once a game has started to launch
Bring R-9A out of warp and stop the fighter from combo punching when a game starts to launch
Don't allow escape to main menu until the frontend is fully visible after returning from a game
Fixed an error that allowed Player 2 to join the game while Player 1 was launching a game from the list.
Allow remapping of XInput devices in the configuration utility
Allow mapping of the same keys to different keyboards for frontend control
Optimizations for Damnd animation on secondary monitors
Fix mapping of the Alt key in the configuration utility
More image caching
Can no longer open multiple instances of Big Blue at the same time
Big Blue will automatically focus the window on start even if keyboard keys are being pressed when Big Blue is launching.
Added shell launcher utility; this is for setups where you want to replace the Windows shell with Big Blue; add a shell entry in the registry for BigBlueShellLauncher.exe
Enable inputs after fade in animation completes
When quitting back to the desktop, Big Blue now checks to see whether Windows Explorer is running and restarts it if it isn't. This is for setups that change the Windows shell to Big Blue to hide Windows.
Big Blue now supports 4 monitors for secondary displays (marquees, flyers, instruction cards, and main display)
Stop video audio when launching a game
Improved XInput gamepad support
Fixed some bugs with portrait mode
Fixed some bugs with 4:3 pillarbox mode that got introduced when I added multi-monitor support
Fixed Damnd aspect ratio for different monitor orientations
Game list font size can be configured regardless of resolution/stretching options
Redid the smashed building animations to more closely match the original Rampage arcade game
Bug fixes and cleanup
Added separate volume controls for both the frontend/mini-game and the videos, so you can set either one at arbitrary volumes
Added Damnd to the exit sequence's marquee window
Added sound effects for selecting a category, going back to the category list, and selecting a game
Time transitions are pauseable now
Added option to turn trapping the mouse cursor on and off
Both the categories and game list save their position now, so if you don't select a different list, you won't lose your place
Video optimizations
Videos will no longer get interrupted if you keep pressing "previous page" on the first item or "next page" on the last item in a list
Added XInput support; you can even exit from games by pressing the Xbox "Guide" button
Video preview support (requires Windows Media Player); I might switch this to use VLC later, but Media Player on Windows is so fast, it's hard to justify using anything else
Windowed mode
Multi-monitor support
Each category and game can now have a marquee image defined that displays with the current selection; this marquee can display either on a secondary display for "dynamic marquee" cabinets using ultra-wide LCDs or in the background of a primary display in windowed mode
Mouse support (up to 5 mouse buttons supported)
Support for multiple mice and keyboards
Ability to change the frontend's resolution in the configuration utility
Global hotkey support
Global volume adjustments
Option to either show or hide the border in windowed mode
Rewrote input handling system to use the Raw Input API
Day to sunset to night transitions now happen dynamically
Updated configuration utility to support binding multiple devices to inputs in the frontend
Configuration utility now parses Linux USB's USB device list to report human-readable names for devices
Rewrote the "input trapping" feature to use a Low Level Keyboard Hook so that it can now trap even system keys such as the Windows key
Fixed the "PRESS START" graphic displaying during the shutdown sequence
Optimized many graphics and events
Optimized the R-Type animation
Adjusted the timing of the R-Type explosion so that the explosion sound effect can completely finish before the fight decision is shown
Reduced unnecessary use of alpha blending to improve performance on awful computers you should have upgraded a long time ago
The end of a versus match no longer stops sound effects but pauses and resumes them after the fight decision is shown
Fixed a bug where neither player could control the menu after a double knockout; new behavior is for the previous champion to maintain control of the menu in the event of a draw game/double knockout
Added the ability to disable all keyboard inputs for a configurable duration when you launch a program
Normalized the sky layer gradient relative to the height of the crowd
Changed text scaling behavior so that text is always scaled at high resolutions even when stretch is disabled (fonts were too small at 3840x2160+ before)
Added option to hide mouse cursor or not
Escape key is no longer hard coded; override key will now be whatever you have mapped to Exit in Big Blue
Changed Escape key override behavior; it now tries to close the process first and only kills it if that fails
Big Blue now gives you the option to override the behavior of the Escape key after you've launched a program; this gives you the ability to close emulators like M2, which don't exit when you press the Escape key.
Fixed a typo in the R-9A winner text (it was spelled R9-A by mistake).
Updated the configuration utility so that it can filter MAME games by refresh rate
Big Blue now automatically hides the Windows cursor when you launch the program and restores the default Windows cursor when you exit the program.
Fixed a bug where the theme song could play twice if you paused the frontend immediately after returning from a launched program.
Additional optimizations to reduce overhead while a launched program is running
Tweaked the gamma of the graphics; it was too bright before
Fixed a rare bug that could make the wrong animation play during the shutdown sequence
In single-player mode, the Rampage characters will now stop moving while they punch.
The R-Type ship can now set the Rampage characters on fire with its plasma trail.
Fixed sorting of MAME list after parsing MAME's list XML
Disable controls while loading game list from MAME
Position blood splat on Rampage monster more accurately based on the position of the laser
Rewrote asset loading
Sounds are now cached on load
Fixed blood sprites being visible at the wrong part of the screen at certain resolutions
Lizzie and Ralph are playable
Street Fighter crowd runs away when the building explodes now
Added missing R9-A explosion animation frames
Added blood spurt animation to the fighter's mouth
Rampage monsters and R9-A's cockpit glow in the dark at night now
Added music to the versus game
Clean stretching for integer resolution scaling
Most graphics were re-ripped to be higher quality
World Warrior, Champion Edition, and Hyperfighting background images are the same size now, and the grid behind the World Warrior image is no longer off center
Punch sound effect plays even when George is in the bushes or above the first window
Synchronized the building collapse sound effect with the animation better
Buildings crack two chunks at a time and building collapses two stories at a time in portrait mode now
Removed silence at the beginning and end of sounds to reduce file sizes
Removed many unused assets from the binary to reduce the size a little bit
Removed alternate building smash sound effect; it didn't fit
Fixed longstanding bug that prevented the building smash sound effect from playing
Added alternate building smash sound effect; sound effect is chosen randomly
Removed pixel shader; Big Blue no longer needs a pixel shader 2.0 capable video card for full graphical fidelity
Added pre-generated graphics for sunset and night
R-Type lasers, explosion, and muzzle flash are now always bright at sunset and night
Added SF2: Hyperfighting crowd graphics
Adjusted alignment of bush and crowd graphics to eliminate tiny gap at very low resolutions
Reduced the volume of the building smash sound effect
George and R9-A controls no longer interrupt the movement of the game list
If the exit sequence is running, the first input is no longer trapped when you press a button; it will fire normally
Normalized the speed of game list traversal so it'd be refresh rate independent; the game list no longer moves at the speed of light when you hold down the key
Game list navigation has an acceleration curve now
Minor optimizations
Config utility is now 32bit instead of 64bit for increased compatibility with ghetto machines
Fixed second building crack sound effect not firing during the shutdown sequence
Always center the selected category/game in the lists
Asynchronously load game lists so that there's no stutter when you select one
Big Blue configuration utility can now read MAME's list XML output
New interface for adding games from MAME
Added migration feature that lets you move Big Blue entries from one location to another
Fixed snapshot not resetting after a 2 player game
Improved config UI scroll behavior
Added new shutdown/restart sequence to give people time to decide whether they really want to shut down or restart their machine
Added support for game lists; you can now have multiple lists, but you can still configure Big Blue to work with only a single list if you want to keep it simple
Big Blue now allows you to configure programs to run both before the main game is launched and after the main game is launched
Dropped support for Windows XP; GroovyMAME works in Windows 7 now; I wanted to do some asynchronous coding for Big Blue's game lists, and there's no reason to cripple the program for a busted, out-of-date OS
Added GUI configuration utility to maintain Big Blue
Fixed a rare crash when shooting lasers.
Rewrote R-Type laser code to remove a hack and improve performance
Normalized debris falling speed regardless of which part of the building you destroy
When a new game starts, all previous R-Type lasers are now wiped out
Snapshots are now 4:3 so that the images won't be distorted; new dimensions are 562x422
Dynamically add extra space between games in the list when running at resolutions that would otherwise leave excessive gaps at the bottom of the screen
Added a new config option that lets you select the game list Big Blue uses; this allows you to have multiple game lists for horizontal and vertical games, for example
Removed the baked-in shadow from the snapshot border graphics
Major optimizations to the pixel shaders; sunset/night performance should be almost indistinguishable from day performance now
Various optimizations and caching added to improve performance
Snapshots are now loaded up front, so Big Blue uses more memory on startup, but if you scrolled through the whole game list before, you'd use the same amount of memory anyway
Pixel shader was applied to "FIGHT!" graphics on accident
Big Blue is no longer "always on top" of the Windows desktop
Big Blue now automatically refocuses the window after exiting the program it launched
Added more error handling and defaults so that Big Blue will still function even if config.xml is completely missing
New rotation options: 0 degrees (off), 90 degrees, 180 degrees, and 270 degrees
Broke up program and snapshots into two separate archives because I was hitting the Google Sites file size limit
Fixed alignment of debris in portrait mode
Added speed modifier so that George doesn't climb the building at the speed of light when in portrait mode.
If George dies while he's behind the energy bars, the energy bars no longer stay transparent through the end of the round.
When the time runs out during a versus match, the numbers beneath the energy bar revert to their normal colors just like SF2.
Added vertical game XML file and started adding snapshots for vertical games.
When running in portrait/rotated mode, Big Blue will now change the game snapshot to 3:4 aspect ratio so that screenshots of vertical games won't be distorted
SF2-style energy bars are now generated programmatically instead of using a sprite rip from the original game; this allows Big Blue to display the energy bars without any gaps at any resolution without any resolution specific hacks
Snapshot border now uses an opacity layer instead of baking the shadow into the image
Added portrait mode SF2 image for the snapshot during a versus game
Big Blue can now rotate left or right for vertical screen setups; you can also just set Windows to portrait mode in your Nvidia or AMD driver.
Consolidated some of the game list provisioning code with the normal rendering code.
Fixed inconsistent game list margin size.
The margin around the game list now scales with resolution; this prevents the margin from being way too large for low resolutions such as 320x240.
The number of pixels the screen moves during the screen shake when George lands now scales with resolution; this prevents a 9.0 earthquake from happening when George lands at low resolutions.
Revised pausing code so the frontend can be paused at any time including the VS screen transitions
Frontend now fades in on start
The screensaver now has to be 1 minute or greater
Adjusted round clock to tick every 800ms instead of 1 second to match SF2's clock
Revised game rules, interface, and flow:
It is now possible for George and R9-A to kill each other simultaneously, which results in a double knockout.
If both George and R9-A have the same amount of health when the clock reaches 0, it'll automatically restart the fight; the previous winner doesn't automatically win in this scenario.
Fight doesn't end until the next tick after 0 to match Street Fighter 2 behavior.
The death animations must complete before a fight ends.
The health bars now reflect the damage incurred by getting punched, shot, or crushed by debris
Fixed a bug where the R-Type ship's bullets don't move if you paused and unpaused the frontend really quickly while a new fight was starting
Added "GEORGE WINS" and "R9-A WINS" animated text
Added "DOUBLE K.O." graphics
Added "DRAW GAME" graphic
"HERE COMES A NEW CHALLENGER!!" animated text now stops animating when you pause the frontend.
Pixel shaders now run on a separate thread.
Coming out of the screen saver now recalculates the time of day and updates the theme if necessary.
Pausing the frontend while a new challenger is joining the game no longer causes the "PRESS START" text to appear during a fight.
Pausing and unpausing the frontend while a new challenger is joining the game no longer causes the animation frames to cycle.
Added a new sound effect for George getting shot by R9-A.
Fixed a minor alignment issue with the life bars at 1600x1200 resolution.
Added a screen shaking effect when George hits the ground.
Added a new sound effect for George hitting the ground.
Shooting George while he's spectating/foreground fighters are in the middle of a combo no longer makes George display the wrong animation while he's falling.
Fixed a texture alignment issue with the life bars at 800x600 resolution.
Made Big Blue resolution independent.
Made the pause feature pause the sky and screen flickering effects.
Added pixel shader for a color modulation effect.
Added sunset and night background graphics.
Added time of day detection to show the right background at the right time of day.
Added support for 4k monitors.
Centered text in the game list.
Added "near death" animation frame for George when he has low health and is spectating.
Added multiple animation sequences for George's death. If he kills himself by using all his resources or the time runs out and he has less health, he now looks down before falling.
Added mini-game to the frontend.
Added versus screen.
Added "Here comes a new challenger!" animation.
Added George and R-Type victory ditties.
Added SF2 style energy bar.
Switched audio engine to irrKlang.
Rewrote input handling.
Added R-Type "warp" ability.
Wrote custom list control
Removed the screen static effect while moving through games quickly.
Changed the blue and gold colors to match the Capcom logo.
Added support for 640x480.
Added screen saver for CRTs.
Made the R-Type ship playable.
Added downward punching animation frames to George.
Added collision detection on the building debris so that George can destroy the R-Type ship by punching the building.
Added the ability for George to punch and destroy the SF2 building.
Initial version released.