2013-11-04 01:06:36 +00:00
|
|
|
|
using BizHawk.Emulation.Common;
|
|
|
|
|
using BizHawk.Emulation.DiscSystem;
|
2013-10-27 16:26:37 +00:00
|
|
|
|
|
|
|
|
|
namespace BizHawk.Client.Common
|
2013-10-25 00:59:34 +00:00
|
|
|
|
{
|
|
|
|
|
public static class Global
|
|
|
|
|
{
|
|
|
|
|
public static IEmulator Emulator;
|
2013-10-27 16:26:37 +00:00
|
|
|
|
public static CoreComm CoreComm;
|
|
|
|
|
|
2013-10-25 00:59:34 +00:00
|
|
|
|
public static Config Config;
|
|
|
|
|
public static GameInfo Game;
|
2013-11-16 16:30:20 +00:00
|
|
|
|
public static CheatCollection CheatList;
|
2013-11-01 23:17:30 +00:00
|
|
|
|
public static FirmwareManager FirmwareManager;
|
2013-12-27 01:19:38 +00:00
|
|
|
|
public static Rewinder Rewinder;
|
2013-10-25 00:59:34 +00:00
|
|
|
|
|
|
|
|
|
//Movie
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// the global MovieSession can use this to deal with multitrack player remapping (should this be here? maybe it should be in MovieSession)
|
|
|
|
|
/// </summary>
|
|
|
|
|
public static MultitrackRewiringControllerAdapter MultitrackRewiringControllerAdapter = new MultitrackRewiringControllerAdapter();
|
|
|
|
|
public static MovieSession MovieSession = new MovieSession();
|
2013-10-27 07:54:00 +00:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// whether throttling is force-disabled by use of fast forward
|
|
|
|
|
/// </summary>
|
|
|
|
|
public static bool ForceNoThrottle;
|
2013-10-27 16:26:37 +00:00
|
|
|
|
|
|
|
|
|
public static Controller NullControls;
|
|
|
|
|
public static AutofireController AutofireNullControls;
|
|
|
|
|
|
|
|
|
|
//the movie will be spliced inbetween these if it is present
|
|
|
|
|
public static CopyControllerAdapter MovieInputSourceAdapter = new CopyControllerAdapter();
|
|
|
|
|
public static CopyControllerAdapter MovieOutputHardpoint = new CopyControllerAdapter();
|
|
|
|
|
|
|
|
|
|
//dont take my word for it, since the final word is actually in RewireInputChain, but here is a guide...
|
|
|
|
|
//user -> Input -> ActiveController -> UDLR -> StickyXORPlayerInputAdapter -> TurboAdapter(TBD) -> Lua(?TBD?) -> ..
|
|
|
|
|
//.. -> MultitrackRewiringControllerAdapter -> MovieInputSourceAdapter -> (MovieSession) -> MovieOutputAdapter -> ControllerOutput(1) -> Game
|
|
|
|
|
//(1)->Input Display
|
|
|
|
|
|
|
|
|
|
//the original source controller, bound to the user, sort of the "input" port for the chain, i think
|
|
|
|
|
public static Controller ActiveController;
|
|
|
|
|
|
|
|
|
|
//rapid fire version on the user controller, has its own key bindings and is OR'ed against ActiveController
|
|
|
|
|
public static AutofireController AutoFireController;
|
|
|
|
|
|
|
|
|
|
//the "output" port for the controller chain.
|
|
|
|
|
public static CopyControllerAdapter ControllerOutput = new CopyControllerAdapter();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static string GetOutputControllersAsMnemonic()
|
|
|
|
|
{
|
|
|
|
|
MnemonicsGenerator mg = new MnemonicsGenerator();
|
|
|
|
|
mg.SetSource(ControllerOutput);
|
|
|
|
|
return mg.GetControllersAsMnemonic();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static DiscHopper DiscHopper = new DiscHopper();
|
2013-11-01 22:56:55 +00:00
|
|
|
|
|
2013-11-03 16:47:21 +00:00
|
|
|
|
public static UD_LR_ControllerAdapter UD_LR_ControllerAdapter = new UD_LR_ControllerAdapter();
|
|
|
|
|
|
2013-12-07 00:53:06 +00:00
|
|
|
|
public static AutoFireStickyXorAdapter AutofireStickyXORAdapter = new AutoFireStickyXorAdapter();
|
2013-11-03 16:47:21 +00:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// will OR together two IControllers
|
|
|
|
|
/// </summary>
|
|
|
|
|
public static ORAdapter OrControllerAdapter = new ORAdapter();
|
|
|
|
|
|
2013-11-01 22:56:55 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// provides an opportunity to mutate the player's input in an autohold style
|
|
|
|
|
/// </summary>
|
2013-12-07 00:53:06 +00:00
|
|
|
|
public static StickyXorAdapter StickyXORAdapter = new StickyXorAdapter();
|
2013-11-01 22:56:55 +00:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Forces any controller button to Off, useful for things like Joypad.Set
|
|
|
|
|
/// </summary>
|
|
|
|
|
public static ForceOffAdaptor ForceOffAdaptor = new ForceOffAdaptor();
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// fire off one-frame logical button clicks here. useful for things like ti-83 virtual pad and reset buttons
|
|
|
|
|
/// </summary>
|
|
|
|
|
public static ClickyVirtualPadController ClickyVirtualPadController = new ClickyVirtualPadController();
|
2013-11-03 16:47:21 +00:00
|
|
|
|
|
|
|
|
|
public static SimpleController MovieOutputController = new SimpleController();
|
|
|
|
|
|
|
|
|
|
public static Controller ClientControls;
|
2013-12-24 21:37:51 +00:00
|
|
|
|
|
|
|
|
|
// Input state which has been estine for game controller inputs are coalesce here
|
|
|
|
|
// This relies on a client specific implementation!
|
|
|
|
|
public static SimpleController ControllerInputCoalescer;
|
2013-10-25 00:59:34 +00:00
|
|
|
|
}
|
|
|
|
|
}
|