Showing preview only (4,948K chars total). Download the full file or copy to clipboard to get everything.
Repository: argonlefou/DemulShooter
Branch: master
Commit: 81109c14d226
Files: 622
Total size: 4.6 MB
Directory structure:
gitextract_lulljexd/
├── .editorconfig
├── .gitignore
├── DemulShooter/
│ ├── DemulShooter.csproj
│ ├── DemulShooterWindow.cs
│ ├── Ds.settings
│ ├── Game_WndSpray.cs
│ ├── Games/
│ │ ├── Game.cs
│ │ ├── Game_ArcadePcWaterSprite2.cs
│ │ ├── Game_ArcadepcFireHero.cs
│ │ ├── Game_ArcadepcGhostBusters.cs
│ │ ├── Game_ArcadepcHsfr.cs
│ │ ├── Game_ArcadepcMechaTornado.cs
│ │ ├── Game_ArcadepcPvzLastStand.cs
│ │ ├── Game_ArcadepcRobinHood.cs
│ │ ├── Game_ArcadepcTopGun.cs
│ │ ├── Game_ArcadepcWaterWar2.cs
│ │ ├── Game_ArcadepcWws.cs
│ │ ├── Game_CxbxGsquad.cs
│ │ ├── Game_CxbxHod3.cs
│ │ ├── Game_CxbxVcop3.cs
│ │ ├── Game_CxbxVcop3_Old.cs
│ │ ├── Game_Demul.cs
│ │ ├── Game_DemulAtomiswave.cs
│ │ ├── Game_DemulHikaru.cs
│ │ ├── Game_DemulJvs.cs
│ │ ├── Game_DemulManicpnc.cs
│ │ ├── Game_DemulNaomi.cs
│ │ ├── Game_Dolphin4.cs
│ │ ├── Game_Dolphin5.cs
│ │ ├── Game_Es4PointBlankX.cs
│ │ ├── Game_GameWaxAkuma.cs
│ │ ├── Game_GvrAliens.cs
│ │ ├── Game_GvrAliensHasp.cs
│ │ ├── Game_GvrFarCry.cs
│ │ ├── Game_GvrFearLand.cs
│ │ ├── Game_KonamiCastlevania.cs
│ │ ├── Game_KonamiCoopers9.cs
│ │ ├── Game_KonamiGashaaaan2.cs
│ │ ├── Game_KonamiLethalEnforcer3.cs
│ │ ├── Game_KonamiWartran.cs
│ │ ├── Game_Lindbergh2spicy.cs
│ │ ├── Game_LindberghGsquadEvo.cs
│ │ ├── Game_LindberghHotd4.cs
│ │ ├── Game_LindberghHotd4Ex.cs
│ │ ├── Game_LindberghHotd4Sp.cs
│ │ ├── Game_LindberghHotdEx.cs
│ │ ├── Game_LindberghLgj.cs
│ │ ├── Game_LindberghLgjsp.cs
│ │ ├── Game_LindberghRambo.cs
│ │ ├── Game_Model2Bel.cs
│ │ ├── Game_Model2Gunblade.cs
│ │ ├── Game_Model2Hotd.cs
│ │ ├── Game_Model2Rchase2.cs
│ │ ├── Game_Model2Vcop.cs
│ │ ├── Game_Model2Vcop2.cs
│ │ ├── Game_PpmPoliceTrainer2.cs
│ │ ├── Game_Re2Transformers2.cs
│ │ ├── Game_RtAliensArmageddon.cs
│ │ ├── Game_RtJurassicPark.cs
│ │ ├── Game_RtTargetTerror.cs
│ │ ├── Game_RtTerminatorSalvation.cs
│ │ ├── Game_RtWalkingDead.cs
│ │ ├── Game_RwGunman.cs
│ │ ├── Game_RwLGI.cs
│ │ ├── Game_RwLGI3D.cs
│ │ ├── Game_RwOpGhost.cs
│ │ ├── Game_RwSDR.cs
│ │ ├── Game_RwSGG.cs
│ │ ├── Game_RwTargetBravo.cs
│ │ ├── Game_RwTransformers.cs
│ │ ├── Game_TtxBlockKingBallShooter.cs
│ │ ├── Game_TtxEadp.cs
│ │ ├── Game_TtxGaiaAttack4.cs
│ │ ├── Game_TtxGundam.cs
│ │ ├── Game_TtxGundam_V2.cs
│ │ ├── Game_TtxGungun2.cs
│ │ ├── Game_TtxHauntedMuseum.cs
│ │ ├── Game_TtxHauntedMuseum2.cs
│ │ ├── Game_TtxSha.cs
│ │ ├── Game_WndAdCop95.cs
│ │ ├── Game_WndAdCopOverseas.cs
│ │ ├── Game_WndAlienSafari.cs
│ │ ├── Game_WndArtIsDead.cs
│ │ ├── Game_WndBE.cs
│ │ ├── Game_WndBlueEstate.cs
│ │ ├── Game_WndBonbon95.cs
│ │ ├── Game_WndBugBusters.cs
│ │ ├── Game_WndColtWildWestShootout.cs
│ │ ├── Game_WndFriction.cs
│ │ ├── Game_WndHeavyFire3Pc.cs
│ │ ├── Game_WndHeavyFire4Pc.cs
│ │ ├── Game_WndHod2pc.cs
│ │ ├── Game_WndHod3pc.cs
│ │ ├── Game_WndHotdoPc.cs
│ │ ├── Game_WndMadBullets.cs
│ │ ├── Game_WndProjectGreenBeat.cs
│ │ ├── Game_WndReload.cs
│ │ └── Game__Unity.cs
│ ├── Program.cs
│ ├── Properties/
│ │ ├── AssemblyInfo.cs
│ │ ├── Resources.Designer.cs
│ │ ├── Resources.resx
│ │ ├── Settings.Designer.cs
│ │ └── Settings.settings
│ ├── Resources/
│ │ ├── x360kb_hfirea1p.ini
│ │ └── x360kb_hfirea2p.ini
│ └── app.config
├── DemulShooter.sln
├── DemulShooterX64/
│ ├── DemulShooterWindowX64.cs
│ ├── DemulShooterX64.csproj
│ ├── Games/
│ │ ├── Game.cs
│ │ ├── Game_AllsHodSd.cs
│ │ ├── Game_ArcadePcMechaDino.cs
│ │ ├── Game_ArcadePcMissionImpossible.cs
│ │ ├── Game_ArcadepcBullseye.cs
│ │ ├── Game_ArcadepcDinoInvasion.cs
│ │ ├── Game_ArcadepcDrakon.cs
│ │ ├── Game_ArcadepcDrakon_NoPlugin.cs
│ │ ├── Game_ArcadepcElevatorActionInvasion.cs
│ │ ├── Game_ArcadepcMIB.cs
│ │ ├── Game_ArcadepcMarsSortie.cs
│ │ ├── Game_ArcadepcNightHunterArcade.cs
│ │ ├── Game_ArcadepcOnePoint.cs
│ │ ├── Game_ArcadepcRaccoonRampage.cs
│ │ ├── Game_ArcadepcRha.cs
│ │ ├── Game_ArcadepcSkullOfShadow.cs
│ │ ├── Game_ArcadepcTopGun2.cs
│ │ ├── Game_ArcadepcTra.cs
│ │ ├── Game_ArcadepcWisdomZombies.cs
│ │ ├── Game_Es3Lla.cs
│ │ ├── Game_Es3Tc5.cs
│ │ ├── Game_Flycast.cs
│ │ ├── Game_FlycastAtomiswave.cs
│ │ ├── Game_FlycastNaomi.cs
│ │ ├── Game_FlycastNinjaslt.cs
│ │ ├── Game_NuLuigiMansion.cs
│ │ ├── Game_NuLuigiMansion_v2.cs
│ │ ├── Game_RtNerfArcade.cs
│ │ ├── Game_S357DarkEscape.cs
│ │ ├── Game_S357DeadStormPirates.cs
│ │ ├── Game_S357RazingStorm.cs
│ │ ├── Game_S357SailorZombie.cs
│ │ ├── Game_WndBhapc.cs
│ │ ├── Game_WndBigBuckHunterUltimate.cs
│ │ ├── Game_WndBlueEstate.cs
│ │ ├── Game_WndDcop.cs
│ │ ├── Game_WndHotdremakeArcade.cs
│ │ ├── Game_WndOpWolfReturn.cs
│ │ └── Game__Unity.cs
│ ├── Program.cs
│ ├── Properties/
│ │ ├── AssemblyInfo.cs
│ │ ├── Resources.Designer.cs
│ │ └── Resources.resx
│ └── app.config
├── DemulShooter_GUI/
│ ├── DemulShooter_GUI.csproj
│ ├── GUI_AnalogCalibration.Designer.cs
│ ├── GUI_AnalogCalibration.cs
│ ├── GUI_AnalogCalibration.resx
│ ├── GUI_Button.Designer.cs
│ ├── GUI_Button.cs
│ ├── GUI_Button.resx
│ ├── GUI_Player.Designer.cs
│ ├── GUI_Player.cs
│ ├── GUI_Player.resx
│ ├── GUI_RawInputHID.Designer.cs
│ ├── GUI_RawInputHID.cs
│ ├── GUI_RawInputHID.resx
│ ├── GUI_RawInputMouse.Designer.cs
│ ├── GUI_RawInputMouse.cs
│ ├── GUI_RawInputMouse.resx
│ ├── Game_Bhapc - Copy.cs
│ ├── Program.cs
│ ├── Properties/
│ │ ├── AssemblyInfo.cs
│ │ ├── Resources.Designer.cs
│ │ ├── Resources.resx
│ │ ├── Settings.Designer.cs
│ │ └── Settings.settings
│ ├── Resources/
│ │ ├── Crosshair.cur
│ │ ├── WiimoteNew_v4.ini
│ │ ├── WiimoteNew_v5.ini
│ │ ├── v5-kusa-Nk1ztL1zd9hqYxZvsSzanK-00001G
│ │ ├── v5-kusa-RfXcExAKkmrdG4qseqx2b8-00001G
│ │ ├── v5-kusa-YS0mZH4vvSfUP58FQH907h-00001G
│ │ ├── v5-kusa-aQwdyxfu7HwmKZwJpsrgjQ-00001G
│ │ ├── v5-kusa-i7aj8qVvJVSC4AVE3TbxET-00001G
│ │ ├── v5-kusa-qkvp7tpoTGacuznXZ31HmQ-00001G
│ │ └── v5-kusa-rvYuWdKw9d618McpKm75ir-00001G
│ ├── Wnd_DemulShooterGui.Designer.cs
│ ├── Wnd_DemulShooterGui.cs
│ ├── Wnd_DemulShooterGui.resx
│ └── app.config
├── DsCore/
│ ├── Config/
│ │ ├── Configurator.cs
│ │ └── PlayerSettings.cs
│ ├── DsCore.csproj
│ ├── INIFile.cs
│ ├── IPC/
│ │ ├── DsTcpData.cs
│ │ ├── DsTcp_Client.cs
│ │ ├── DsTcp_TcpPacket.cs
│ │ ├── MMFH_HotdRemakeArcade.cs
│ │ ├── MMF_DataStruct.cs
│ │ ├── MappedMemoryFileHelper.cs
│ │ └── MappedMemoryFile_Helper_old.cs
│ ├── Logger.cs
│ ├── MameOutput/
│ │ ├── AsyncGameOutput.cs
│ │ ├── BlinkGameOutput.cs
│ │ ├── GameOutput.cs
│ │ ├── MMT.cs
│ │ ├── Network/
│ │ │ ├── Net_OutputClient.cs
│ │ │ └── Net_OutputHelper.cs
│ │ ├── OutputId.cs
│ │ ├── SyncBlinkingGameOutput.cs
│ │ └── WindowMessage/
│ │ ├── Wm_OutputClient.cs
│ │ ├── Wm_OutputDataStruct.cs
│ │ └── Wm_OutputHelper.cs
│ ├── Memory/
│ │ ├── Codecave.cs
│ │ ├── InjectionStruct.cs
│ │ └── NopStruct.cs
│ ├── MemoryX64/
│ │ ├── Codecave.cs
│ │ ├── InjectionStruct.cs
│ │ └── NopStruct.cs
│ ├── RawInput/
│ │ ├── Hid/
│ │ │ ├── HidPButtonCaps.cs
│ │ │ ├── HidPCaps.cs
│ │ │ ├── HidPReportType.cs
│ │ │ ├── HidPValueCaps.cs
│ │ │ ├── HidUsage.cs
│ │ │ ├── HidUsageAndPage.cs
│ │ │ ├── HidUsagePage.cs
│ │ │ └── NtStatus.cs
│ │ ├── RawInputController.cs
│ │ ├── RawInputHelper.cs
│ │ └── User32/
│ │ ├── RawHid.cs
│ │ ├── RawInputDataKeyboard.cs
│ │ ├── RawInputDataMouse.cs
│ │ ├── RawInputDevice.cs
│ │ ├── RawInputDeviceFlag.cs
│ │ ├── RawInputDeviceInfo.cs
│ │ ├── RawInputDeviceList.cs
│ │ ├── RawInputDeviceType.cs
│ │ ├── RawInputHeader.cs
│ │ └── RawInputUiCommand.cs
│ ├── Win32/
│ │ ├── CopyDataStruct.cs
│ │ ├── FileMapAccessType.cs
│ │ ├── HardwareScanCode.cs
│ │ ├── Input.cs
│ │ ├── KbdLlHookStruct.cs
│ │ ├── MemoryAllocType.cs
│ │ ├── MemoryFreeType.cs
│ │ ├── MemoryPageProtect.cs
│ │ ├── MsLlHookStruct.cs
│ │ ├── PageProtection.cs
│ │ ├── Point.cs
│ │ ├── QueryUserNotificationState.cs
│ │ ├── Rect.cs
│ │ ├── SystemMetricsIndex.cs
│ │ ├── VirtualKeyCode.cs
│ │ ├── VirtualKeyMapType.cs
│ │ ├── Win32Api.cs
│ │ ├── Win32Define.cs
│ │ └── WndClassEx.cs
│ ├── XInput/
│ │ ├── XInputBatteryInformation.cs
│ │ ├── XInputCapabilities.cs
│ │ ├── XInputDeviceSubtype.cs
│ │ ├── XInputGamepad.cs
│ │ ├── XInputHandler.cs
│ │ ├── XInputState.cs
│ │ ├── XInputVibration.cs
│ │ └── XinputButtonFlags.cs
│ └── XOutput/
│ └── XOutput.cs
├── DsDiag/
│ ├── DsDiag.csproj
│ ├── Ds_Diag.Designer.cs
│ ├── Ds_Diag.cs
│ ├── Ds_Diag.resx
│ ├── Ds_Diag_Button.Designer.cs
│ ├── Ds_Diag_Button.cs
│ ├── Ds_Diag_Button.resx
│ ├── Program.cs
│ ├── Properties/
│ │ ├── AssemblyInfo.cs
│ │ ├── Resources.Designer.cs
│ │ ├── Resources.resx
│ │ ├── Settings.Designer.cs
│ │ └── Settings.settings
│ └── app.config
├── README.md
└── UnityPlugins/
├── UnityPlugin_BepInEx_DCOP/
│ ├── DCOP_BepInEx_DemulShooter_Plugin.ini
│ ├── DemulShooter_Plugin.cs
│ ├── INIFile.cs
│ ├── Patch/
│ │ ├── Uduino/
│ │ │ ├── mUduinoConnection_DesktopSerial.cs
│ │ │ └── mUduinoManager.cs
│ │ ├── _Unity.cs
│ │ ├── mGunScript.cs
│ │ ├── mHighscoreManager.cs
│ │ ├── mLifeTracker.cs
│ │ ├── mPauseGame.cs
│ │ ├── mSetMousecursor.cs
│ │ ├── mU_hitboxHit.cs
│ │ ├── mU_onContinueCountDown.cs
│ │ ├── mU_onPlayerShoot.cs
│ │ └── mU_policeLight.cs
│ ├── PluginController.cs
│ ├── PluginControllerButton.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── TcpData.cs
│ ├── TcpInputData.cs
│ ├── TcpOutputData.cs
│ ├── TcpPacket.cs
│ ├── UnityLibs/
│ │ └── List_of_dll_to_copy_here.txt
│ ├── UnityPlugin_BepInEx_DCOP.csproj
│ └── UnityPlugin_BepInEx_DCOP.sln
├── UnityPlugin_BepInEx_DRK/
│ ├── DemulShooter_Plugin.cs
│ ├── Drakon_BepInEx_DemulShooter_Plugin.ini
│ ├── INIFile.cs
│ ├── Patch/
│ │ ├── SBK/
│ │ │ ├── Matrix/
│ │ │ │ └── mMatrixManager.cs
│ │ │ ├── PneumaticSeatsystem/
│ │ │ │ └── mPneumaticSeatManager.cs
│ │ │ ├── RS232/
│ │ │ │ └── mRS232DLL.cs
│ │ │ ├── Skyride_Turret/
│ │ │ │ └── mTurret.cs
│ │ │ ├── TurretSystem/
│ │ │ │ └── mTurretManager.cs
│ │ │ └── mApplicationManager.cs
│ │ ├── _Unity.cs
│ │ ├── mChooseLevelWindow.cs
│ │ ├── mContinueWindow.cs
│ │ ├── mHudWindow.cs
│ │ ├── mInactivePlayerState.cs
│ │ ├── mInputsManager.cs
│ │ ├── mLaser2D.cs
│ │ ├── mPlayerWindow.cs
│ │ ├── mTarget.cs
│ │ ├── mTitleWindow.cs
│ │ └── mUnityEngine.cs
│ ├── PluginController.cs
│ ├── PluginControllerButton.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── TcpData.cs
│ ├── TcpInputData.cs
│ ├── TcpOutputData.cs
│ ├── TcpPacket.cs
│ ├── UnityLibs/
│ │ └── List_of_dll_to_copy_here.txt
│ ├── UnityPlugin_BepInEx_Drakon.csproj
│ └── UnityPlugin_BepInEx_Drakon.sln
├── UnityPlugin_BepInEx_MARSS/
│ ├── DemulShooter_Plugin.cs
│ ├── INIFile.cs
│ ├── MarsSortie_BepInEx_DemulShooter_Plugin.ini
│ ├── Patch/
│ │ ├── MRCQ/
│ │ │ ├── mGameDatabase.cs
│ │ │ ├── mHardware.cs
│ │ │ ├── mLocalization.cs
│ │ │ ├── mSignalKey.cs
│ │ │ ├── mSuperDogManager.cs
│ │ │ └── mSystemError.cs
│ │ ├── Now/
│ │ │ ├── mBulletCounter.cs
│ │ │ └── mPlayerWeapon.cs
│ │ └── mArcadeShowCursor.cs
│ ├── PluginController.cs
│ ├── PluginControllerButton.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── TcpData.cs
│ ├── TcpInputData.cs
│ ├── TcpOutputData.cs
│ ├── TcpPacket.cs
│ ├── UnityLibs/
│ │ └── List_of_dll_to_copy_here.txt
│ ├── UnityPlugin_BepInEx_MarsSortie.csproj
│ └── UnityPlugin_BepInEx_MarsSortie.sln
├── UnityPlugin_BepInEx_MIA/
│ ├── DemulShooter_Plugin.cs
│ ├── INIFile.cs
│ ├── MissionImpossible_BepInEx_DemulShooter_Plugin.ini
│ ├── Patch/
│ │ ├── UGGameShell/
│ │ │ ├── mGame.cs
│ │ │ ├── mGameSetting.cs
│ │ │ └── mShellData.cs
│ │ ├── _Unity.cs
│ │ ├── mBootSequence.cs
│ │ ├── mConfigManager.cs
│ │ ├── mGameLogManager.cs
│ │ ├── mGameObjPoolManager.cs
│ │ ├── mHistoryDataManager.cs
│ │ ├── mInputManager.cs
│ │ ├── mModecontroller.cs
│ │ ├── mPlayer.cs
│ │ ├── mPlayerGunBase.cs
│ │ ├── mShellManager.cs
│ │ ├── mUGNetConnector.cs
│ │ ├── mUIManager.cs
│ │ └── mUIShootPoint.cs
│ ├── PluginController.cs
│ ├── PluginControllerButton.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── TcpData.cs
│ ├── TcpInputData.cs
│ ├── TcpOutputData.cs
│ ├── TcpPacket.cs
│ ├── UnityLibs/
│ │ └── List_of_dll_to_copy_here.txt
│ ├── UnityPlugin_BepInEx_MissionImpossible.csproj
│ └── UnityPlugin_BepInEx_MissionImpossible.sln
├── UnityPlugin_BepInEx_MIB/
│ ├── DemulShooter_Plugin.cs
│ ├── INIFile.cs
│ ├── MIB_BepInEx_DemulShooter_Plugin.ini
│ ├── Patch/
│ │ ├── MIB/
│ │ │ ├── mMIBClient.cs
│ │ │ ├── mMIBCore.cs
│ │ │ └── mMIBGameSettings.cs
│ │ ├── _Unity.cs
│ │ ├── mCreditsUI.cs
│ │ ├── mGlobal.cs
│ │ ├── mGun.cs
│ │ ├── mGunRig.cs
│ │ ├── mInitialisation.cs
│ │ ├── mLaserEmitter.cs
│ │ ├── mLights.cs
│ │ ├── mPatchTemplate.cs
│ │ ├── mRS232.cs
│ │ ├── mUI.cs
│ │ ├── mUIPlayerCrosshair.cs
│ │ └── mUnityEngine.cs
│ ├── PluginController.cs
│ ├── PluginControllerButton.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── TcpData.cs
│ ├── TcpInputData.cs
│ ├── TcpOutputData.cs
│ ├── TcpPacket.cs
│ ├── UnityLibs/
│ │ └── List_of_dll_to_copy_here.txt
│ ├── UnityPlugin_BepInEx_MIB.csproj
│ ├── UnityPlugin_BepInEx_MIB.sln
│ └── mAmwaysOnTop.cs
├── UnityPlugin_BepInEx_NHA2/
│ ├── DemulShooter_Plugin.cs
│ ├── INIFile.cs
│ ├── NightHunter2_BepInEx_DemulShooter_Plugin.ini
│ ├── Patch/
│ │ ├── _Unity.cs
│ │ ├── mGame Device_data_gun_core.cs
│ │ ├── mconfig_gun.cs
│ │ ├── mdog_check_new.cs
│ │ ├── mgame_device_sub_gun.cs
│ │ ├── mgame_mark_3d_obj.cs
│ │ ├── mgame_player_is_hit.cs
│ │ ├── mgun_body.cs
│ │ ├── mgun_body_tx_wuti.cs
│ │ ├── minput_manage.cs
│ │ ├── minput_obj_change_bullet.cs
│ │ ├── mnew_game_gui_connect_player_slider.cs
│ │ ├── mshow_info_manage_for_objs.cs
│ │ ├── mtest_screen.cs
│ │ ├── mzhichi_hanshu_pos.cs
│ │ └── mzzp_houtai_manage_check_control.cs
│ ├── PluginController.cs
│ ├── PluginControllerButton.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── TcpData.cs
│ ├── TcpInputData.cs
│ ├── TcpOutputData.cs
│ ├── TcpPacket.cs
│ ├── UnityLibs/
│ │ └── List_of_dll_to_copy_here.txt
│ ├── UnityPlugin_BepInEx_NHA2.csproj
│ └── UnityPlugin_BepInEx_NHA2.sln
├── UnityPlugin_BepInEx_OWR/
│ ├── DemulShooter_Plugin.cs
│ ├── INIFile.cs
│ ├── OperationWolf_BepInEx_DemulShooter_Plugin.ini
│ ├── Patch/
│ │ ├── _Unity.cs
│ │ ├── mCursorMouseMouve.cs
│ │ ├── mGameManager.cs
│ │ ├── mInterfaceModule.cs
│ │ ├── mPlayer.cs
│ │ ├── mPlayerInOutModule.cs
│ │ ├── mScreenDuckHunt_InOutSystem.cs
│ │ ├── mScreenMouseLook_InOutSystem.cs
│ │ ├── mScreenView.cs
│ │ └── mWeapon.cs
│ ├── PluginController.cs
│ ├── PluginControllerButton.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── TcpData.cs
│ ├── TcpInputData.cs
│ ├── TcpOutputData.cs
│ ├── TcpPacket.cs
│ ├── UnityLibs/
│ │ └── List_of_dll_to_copy_here.txt
│ ├── UnityPlugin_BepInEx_OperationWolf.csproj
│ └── UnityPlugin_BepInEx_OperationWolf.sln
├── UnityPlugin_BepInEx_PBX/
│ ├── DemulShooter_Plugin.cs
│ ├── INIFile.cs
│ ├── PluginController.cs
│ ├── PluginControllerButton.cs
│ ├── PointBlankX_BepInEx_DemulShooter_Plugin.ini
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── TcpData.cs
│ ├── TcpInputData.cs
│ ├── TcpOutputData.cs
│ ├── TcpPacket.cs
│ ├── UnityLibs/
│ │ └── List_of_dll_to_copy_here.txt
│ ├── UnityPlugin_BepInEx_PointBlankX.csproj
│ ├── UnityPlugin_BepInEx_PointBlankX.sln
│ └── patch/
│ ├── _Unity.cs
│ ├── mBNUsioController.cs
│ ├── mBootSceneController.cs
│ ├── mConfig.cs
│ ├── mErrorMessageHandler.cs
│ ├── mGlobalData.cs
│ ├── mInputWrapper.cs
│ ├── mPlayer.cs
│ ├── mTitleController.cs
│ └── mUIPlayerPanel.cs
├── UnityPlugin_BepInEx_PVZ/
│ ├── DemulShooter_Plugin.cs
│ ├── INIFile.cs
│ ├── Patch/
│ │ ├── _Unity.cs
│ │ ├── mInput.cs
│ │ ├── mPvzCore.cs
│ │ └── mPvzCrosshair.cs
│ ├── PluginController.cs
│ ├── PluginControllerButton.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── PvZ_BepInEx_DemulShooter_Plugin.ini
│ ├── TcpData.cs
│ ├── TcpInputData.cs
│ ├── TcpOutputData.cs
│ ├── TcpPacket.cs
│ ├── UnityLibs/
│ │ └── List_of_dll_to_copy_here.txt
│ ├── UnityPlugin_BepInEx_PVZ.csproj
│ └── UnityPlugin_BepInEx_PVZ.sln
├── UnityPlugin_BepInEx_RHA/
│ ├── Demulshooter_Plugin.cs
│ ├── INIFile.cs
│ ├── Patch/
│ │ ├── NAEMGFFONID.cs
│ │ ├── SBK/
│ │ │ ├── Matrix/
│ │ │ │ └── mMatrixManager.cs
│ │ │ ├── Sixensecore/
│ │ │ │ └── mDevice.cs
│ │ │ └── mApplicationManager.cs
│ │ ├── _Unity.cs
│ │ ├── mArcadeGamePlayManager.cs
│ │ ├── mArcadeManager.cs
│ │ ├── mCrosshairWindow.cs
│ │ ├── mGunDetection.cs
│ │ ├── mKaboomAdrioFxPlusFourFeeders.cs
│ │ ├── mKaboomManager.cs
│ │ ├── mLEDManager.cs
│ │ ├── mLanguageLocalizer.cs
│ │ ├── mLevelSelectorWindow.cs
│ │ ├── mNewInputManager.cs
│ │ ├── mPlayerManager.cs
│ │ ├── mPlayerPrefs.cs
│ │ ├── mSBKInputManager.cs
│ │ ├── mWorldManager.cs
│ │ └── mWorldSelectorWindow.cs
│ ├── PluginController.cs
│ ├── PluginControllerButton.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── RabbidsHollywood_BepInEx_DemulShooter_Plugin.ini
│ ├── TcpData.cs
│ ├── TcpInputData.cs
│ ├── TcpOutputData.cs
│ ├── TcpPacket.cs
│ ├── UnityLibs/
│ │ └── List_of_dll_to_copy_here.txt
│ ├── UnityPlugin_BepInEx_RabbidsHollywood.csproj
│ └── UnityPlugin_BepInEx_RabbidsHollywood.sln
├── UnityPlugin_BepInEx_RTNA/
│ ├── DemulShooter_Plugin.cs
│ ├── INIFile.cs
│ ├── NerfArcade_BepInEx_DemulShooter_Plugin.ini
│ ├── Patch/
│ │ ├── _Unity.cs
│ │ ├── mGame.cs
│ │ ├── mIOManager.cs
│ │ ├── mPlayerInfo.cs
│ │ ├── mPlayerReticle.cs
│ │ ├── mSys_Linux.cs
│ │ └── mUnityNatives.cs
│ ├── PluginController.cs
│ ├── PluginControllerButton.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── TcpData.cs
│ ├── TcpInputData.cs
│ ├── TcpOutputData.cs
│ ├── TcpPacket.cs
│ ├── UnityLibs/
│ │ └── List_of_dll_to_copy_here.txt
│ ├── UnityPlugin_BepInEx_NerfArcade.csproj
│ └── UnityPlugin_BepInEx_NerfArcade.sln
├── UnityPlugin_BepInEx_TRA/
│ ├── DemulShooter_Plugin.cs
│ ├── INIFile.cs
│ ├── Patch/
│ │ ├── SBK/
│ │ │ └── Encryption/
│ │ │ └── mDataTransform.cs
│ │ ├── TRA/
│ │ │ └── Timeline/
│ │ │ └── Skip/
│ │ │ └── mSkipMixerBehaviour.cs
│ │ ├── _Unity.cs
│ │ ├── mArcadeManager.cs
│ │ ├── mCheatsManager.cs
│ │ ├── mCrosshairWindow.cs
│ │ ├── mInputManager.cs
│ │ ├── mKaboomAdrioFxPlusFourFeeders.cs
│ │ ├── mKaboomManager.cs
│ │ ├── mLEDManager.cs
│ │ ├── mLanguageLocalizer.cs
│ │ ├── mOperatorMenu.cs
│ │ ├── mPlayer.cs
│ │ ├── mPlayerManager.cs
│ │ └── mSBKInputManager.cs
│ ├── PluginController.cs
│ ├── PluginControllerButton.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── TcpData.cs
│ ├── TcpInputData.cs
│ ├── TcpOutputData.cs
│ ├── TcpPacket.cs
│ ├── TombRaider_BepInEx_DemulShooter_Plugin.ini
│ ├── UnityLibs/
│ │ └── List_of_dll_to_copy_here.txt
│ ├── UnityPlugin_BepInEx_TombRaider.csproj
│ └── UnityPlugin_BepInEx_TombRaider.sln
└── UnityPlugin_BepInEx_WWS/
├── Demulshooter_Plugin.cs
├── INIFile.cs
├── Patch/
│ ├── MVSDK/
│ │ └── mBaseGun.cs
│ ├── _Unity.cs
│ ├── mBaseCamera.cs
│ ├── mBaseCom.cs
│ ├── mGameBeginUIController.cs
│ ├── mGameChooseUI2.cs
│ ├── mGameStart.cs
│ ├── mGameUIController.cs
│ ├── mInputController.cs
│ ├── mLSerialPort.cs
│ ├── mMVSettings.cs
│ ├── mPlayerData.cs
│ ├── mPlayerUIController.cs
│ ├── mSettingController.cs
│ ├── mShootController.cs
│ └── mShowGamePointController.cs
├── PluginController.cs
├── PluginControllerButton.cs
├── Properties/
│ └── AssemblyInfo.cs
├── TcpData.cs
├── TcpInputData.cs
├── TcpOutputData.cs
├── TcpPacket.cs
├── UnityLibs/
│ └── List_of_dll_to_copy_here.txt
├── UnityPlugin_BepInEx_WWS.csproj
├── UnityPlugin_BepInEx_WWS.sln
└── WildWestShootout_BepInEx_DemulShooter_Plugin.ini
================================================
FILE CONTENTS
================================================
================================================
FILE: .editorconfig
================================================
# Supprimer la ligne ci-dessous si vous voulez hériter les paramètres .editorconfig des répertoires supérieurs
root = true
# Fichiers C#
[*.cs]
#### Options EditorConfig principales ####
# Indentation et espacement
indent_size = 4
indent_style = space
tab_width = 4
# Préférences de nouvelle ligne
end_of_line = crlf
insert_final_newline = false
#### Conventions de codage .NET ####
# Organiser les instructions Using
dotnet_separate_import_directive_groups = false
dotnet_sort_system_directives_first = true
file_header_template = unset
# Préférences de this. et Me.
dotnet_style_qualification_for_event = false
dotnet_style_qualification_for_field = false
dotnet_style_qualification_for_method = false
dotnet_style_qualification_for_property = false
# Préférences des mots clés de langage par rapport aux types BCL
dotnet_style_predefined_type_for_locals_parameters_members = true
dotnet_style_predefined_type_for_member_access = true
# Préférences de parenthèses
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity
dotnet_style_parentheses_in_other_operators = never_if_unnecessary
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity
# Préférences de modificateur
dotnet_style_require_accessibility_modifiers = for_non_interface_members
# Préférences de niveau expression
dotnet_style_coalesce_expression = true
dotnet_style_collection_initializer = false
dotnet_style_explicit_tuple_names = true
dotnet_style_namespace_match_folder = true
dotnet_style_null_propagation = true
dotnet_style_object_initializer = true
dotnet_style_operator_placement_when_wrapping = beginning_of_line
dotnet_style_prefer_auto_properties = true
dotnet_style_prefer_collection_expression = when_types_loosely_match
dotnet_style_prefer_compound_assignment = true
dotnet_style_prefer_conditional_expression_over_assignment = true
dotnet_style_prefer_conditional_expression_over_return = true
dotnet_style_prefer_foreach_explicit_cast_in_source = when_strongly_typed
dotnet_style_prefer_inferred_anonymous_type_member_names = true
dotnet_style_prefer_inferred_tuple_names = true
dotnet_style_prefer_is_null_check_over_reference_equality_method = true
dotnet_style_prefer_simplified_boolean_expressions = true
dotnet_style_prefer_simplified_interpolation = true
# Préférences de champ
dotnet_style_readonly_field = false:none
# Préférences de paramètre
dotnet_code_quality_unused_parameters = all
# Préférences de suppression
dotnet_remove_unnecessary_suppression_exclusions = none
# Préférences de nouvelle ligne
dotnet_style_allow_multiple_blank_lines_experimental = true
dotnet_style_allow_statement_immediately_after_block_experimental = true
#### Conventions de codage C# ####
# Préférences de var
csharp_style_var_elsewhere = false
csharp_style_var_for_built_in_types = false
csharp_style_var_when_type_is_apparent = false
# Membres expression-bodied
csharp_style_expression_bodied_accessors = true
csharp_style_expression_bodied_constructors = false
csharp_style_expression_bodied_indexers = true
csharp_style_expression_bodied_lambdas = true
csharp_style_expression_bodied_local_functions = false
csharp_style_expression_bodied_methods = false
csharp_style_expression_bodied_operators = false
csharp_style_expression_bodied_properties = true
# Préférences correspondants au modèle
csharp_style_pattern_matching_over_as_with_null_check = true
csharp_style_pattern_matching_over_is_with_cast_check = true
csharp_style_prefer_extended_property_pattern = true
csharp_style_prefer_not_pattern = true
csharp_style_prefer_pattern_matching = true
csharp_style_prefer_switch_expression = true
# Préférences de vérification de valeur Null
csharp_style_conditional_delegate_call = true
# Préférences de modificateur
csharp_prefer_static_local_function = true
csharp_preferred_modifier_order = public,private,protected,internal,file,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,required,volatile,async
csharp_style_prefer_readonly_struct = true
csharp_style_prefer_readonly_struct_member = true
# Préférences de bloc de code
csharp_prefer_braces = true
csharp_prefer_simple_using_statement = true
csharp_style_namespace_declarations = block_scoped
csharp_style_prefer_method_group_conversion = true
csharp_style_prefer_primary_constructors = true
csharp_style_prefer_top_level_statements = true
# Préférences de niveau expression
csharp_prefer_simple_default_expression = true
csharp_style_deconstructed_variable_declaration = true
csharp_style_implicit_object_creation_when_type_is_apparent = true
csharp_style_inlined_variable_declaration = true
csharp_style_prefer_index_operator = true
csharp_style_prefer_local_over_anonymous_function = true
csharp_style_prefer_null_check_over_type_check = true
csharp_style_prefer_range_operator = true
csharp_style_prefer_tuple_swap = true
csharp_style_prefer_utf8_string_literals = true
csharp_style_throw_expression = true
csharp_style_unused_value_assignment_preference = discard_variable
csharp_style_unused_value_expression_statement_preference = discard_variable
# Préférences pour la directive 'using'
csharp_using_directive_placement = outside_namespace
# Préférences de nouvelle ligne
csharp_style_allow_blank_line_after_colon_in_constructor_initializer_experimental = true
csharp_style_allow_blank_line_after_token_in_arrow_expression_clause_experimental = true
csharp_style_allow_blank_line_after_token_in_conditional_expression_experimental = true
csharp_style_allow_blank_lines_between_consecutive_braces_experimental = true
csharp_style_allow_embedded_statements_on_same_line_experimental = true
#### Règles de formatage C# ####
# Préférences de nouvelle ligne
csharp_new_line_before_catch = true
csharp_new_line_before_else = true
csharp_new_line_before_finally = true
csharp_new_line_before_members_in_anonymous_types = true
csharp_new_line_before_members_in_object_initializers = true
csharp_new_line_before_open_brace = all
csharp_new_line_between_query_expression_clauses = true
# Préférences de mise en retrait
csharp_indent_block_contents = true
csharp_indent_braces = false
csharp_indent_case_contents = true
csharp_indent_case_contents_when_block = true
csharp_indent_labels = one_less_than_current
csharp_indent_switch_labels = true
# Préférences d'espace
csharp_space_after_cast = false
csharp_space_after_colon_in_inheritance_clause = true
csharp_space_after_comma = true
csharp_space_after_dot = false
csharp_space_after_keywords_in_control_flow_statements = true
csharp_space_after_semicolon_in_for_statement = true
csharp_space_around_binary_operators = before_and_after
csharp_space_around_declaration_statements = false
csharp_space_before_colon_in_inheritance_clause = true
csharp_space_before_comma = false
csharp_space_before_dot = false
csharp_space_before_open_square_brackets = false
csharp_space_before_semicolon_in_for_statement = false
csharp_space_between_empty_square_brackets = false
csharp_space_between_method_call_empty_parameter_list_parentheses = false
csharp_space_between_method_call_name_and_opening_parenthesis = false
csharp_space_between_method_call_parameter_list_parentheses = false
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
csharp_space_between_method_declaration_name_and_open_parenthesis = false
csharp_space_between_method_declaration_parameter_list_parentheses = false
csharp_space_between_parentheses = false
csharp_space_between_square_brackets = false
# Préférences d'enveloppement
csharp_preserve_single_line_blocks = true
csharp_preserve_single_line_statements = true
#### Styles de nommage ####
# Règles de nommage
dotnet_naming_rule.interface_should_be_commence_par_i.severity = suggestion
dotnet_naming_rule.interface_should_be_commence_par_i.symbols = interface
dotnet_naming_rule.interface_should_be_commence_par_i.style = commence_par_i
dotnet_naming_rule.types_should_be_casse_pascal.severity = suggestion
dotnet_naming_rule.types_should_be_casse_pascal.symbols = types
dotnet_naming_rule.types_should_be_casse_pascal.style = casse_pascal
dotnet_naming_rule.membres_autres_que_des_champs_should_be_casse_pascal.severity = suggestion
dotnet_naming_rule.membres_autres_que_des_champs_should_be_casse_pascal.symbols = membres_autres_que_des_champs
dotnet_naming_rule.membres_autres_que_des_champs_should_be_casse_pascal.style = casse_pascal
# Spécifications de symboles
dotnet_naming_symbols.interface.applicable_kinds = interface
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.interface.required_modifiers =
dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.types.required_modifiers =
dotnet_naming_symbols.membres_autres_que_des_champs.applicable_kinds = property, event, method
dotnet_naming_symbols.membres_autres_que_des_champs.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.membres_autres_que_des_champs.required_modifiers =
# Styles de nommage
dotnet_naming_style.casse_pascal.required_prefix =
dotnet_naming_style.casse_pascal.required_suffix =
dotnet_naming_style.casse_pascal.word_separator =
dotnet_naming_style.casse_pascal.capitalization = pascal_case
dotnet_naming_style.commence_par_i.required_prefix = I
dotnet_naming_style.commence_par_i.required_suffix =
dotnet_naming_style.commence_par_i.word_separator =
dotnet_naming_style.commence_par_i.capitalization = pascal_case
================================================
FILE: .gitignore
================================================
# Created by https://www.gitignore.io/api/visualstudio
### VisualStudio ###
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates
#Licenced DLL for Unity plugin
Assembly-CSharp.dll
UnityEngine.dll
UnityEngine.Networking.dll
UnityEngine.UI.dll
UnityEngine*.dll
Virtuallyz*.dll
Unity*.dll
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
# Visual Studio 2015/2017 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# Visual Studio 2017 auto generated files
Generated\ Files/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUNIT
*.VisualState.xml
TestResult.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# Benchmark Results
BenchmarkDotNet.Artifacts/
# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/
# StyleCop
StyleCopReport.xml
# Files built by Visual Studio
*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# Visual Studio Trace Files
*.e2e
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding add-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# AxoCover is a Code Coverage Tool
.axoCover/*
!.axoCover/settings.json
# Visual Studio code coverage results
*.coverage
*.coveragexml
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/
# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
!**/[Pp]ackages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/[Pp]ackages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/
# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs
# Including strong name files can present a security risk
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
#*.snk
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
ServiceFabricBackup/
*.rptproj.bak
# SQL Server files
*.mdf
*.ldf
*.ndf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# Paket dependency manager
.paket/paket.exe
paket-files/
# FAKE - F# Make
.fake/
# JetBrains Rider
.idea/
*.sln.iml
# CodeRush
.cr/
# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc
# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config
# Tabs Studio
*.tss
# Telerik's JustMock configuration file
*.jmconfig
# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs
# OpenCover UI analysis results
OpenCover/
# Azure Stream Analytics local run output
ASALocalRun/
# MSBuild Binary and Structured Log
*.binlog
# NVidia Nsight GPU debugger configuration file
*.nvuser
# MFractors (Xamarin productivity tool) working folder
.mfractor/
### VisualStudio Patch ###
# By default, sensitive information, such as encrypted password
# should be stored in the .pubxml.user file.
*.pubxml.user
# End of https://www.gitignore.io/api/visualstudio
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
# Visual Studio 2015/2017 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# Visual Studio 2017 auto generated files
Generated\ Files/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUNIT
*.VisualState.xml
TestResult.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# Benchmark Results
BenchmarkDotNet.Artifacts/
# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/
**/Properties/launchSettings.json
# StyleCop
StyleCopReport.xml
# Files built by Visual Studio
*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# Visual Studio Trace Files
*.e2e
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding add-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# AxoCover is a Code Coverage Tool
.axoCover/*
!.axoCover/settings.json
# Visual Studio code coverage results
*.coverage
*.coveragexml
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/
# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
!**/[Pp]ackages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/[Pp]ackages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/
# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs
# Including strong name files can present a security risk
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
#*.snk
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
ServiceFabricBackup/
# SQL Server files
*.mdf
*.ldf
*.ndf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# Paket dependency manager
.paket/paket.exe
paket-files/
# FAKE - F# Make
.fake/
# JetBrains Rider
.idea/
*.sln.iml
# CodeRush
.cr/
# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc
# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config
# Tabs Studio
*.tss
# Telerik's JustMock configuration file
*.jmconfig
# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs
# OpenCover UI analysis results
OpenCover/
# Azure Stream Analytics local run output
ASALocalRun/
# MSBuild Binary and Structured Log
*.binlog
# NVidia Nsight GPU debugger configuration file
*.nvuser
================================================
FILE: DemulShooter/DemulShooter.csproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{D99B7B7F-8B86-4AA0-A6F8-62A81F603599}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>DemulShooter</RootNamespace>
<AssemblyName>DemulShooter</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<TargetFrameworkProfile>
</TargetFrameworkProfile>
<FileAlignment>512</FileAlignment>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<PlatformTarget>x86</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<PlatformTarget>x86</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup>
<StartupObject />
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>DemulShooter_Icon.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Drawing" />
<Reference Include="System.Management" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Games\Game_ArcadepcFireHero.cs" />
<Compile Include="Games\Game_ArcadepcHsfr.cs" />
<Compile Include="Games\Game_ArcadepcMechaTornado.cs" />
<Compile Include="Games\Game_ArcadepcPvzLastStand.cs" />
<Compile Include="Games\Game_ArcadepcRobinHood.cs" />
<Compile Include="Games\Game_ArcadepcTopGun.cs" />
<Compile Include="Games\Game_ArcadepcWaterSprite2.cs" />
<Compile Include="Games\Game_ArcadepcWaterWar2.cs" />
<Compile Include="Games\Game_ArcadepcWws.cs" />
<Compile Include="Games\Game_CxbxGsquad.cs" />
<Compile Include="Games\Game_CxbxHod3.cs" />
<Compile Include="Games\Game_CxbxVcop3.cs" />
<Compile Include="Games\Game_ArcadepcGhostBusters.cs" />
<Compile Include="Games\Game_Es4PointBlankX.cs" />
<Compile Include="Games\Game_KonamiCastlevania.cs" />
<Compile Include="Games\Game_KonamiCoopers9.cs" />
<Compile Include="Games\Game_KonamiGashaaaan2.cs" />
<Compile Include="Games\Game_KonamiLethalEnforcer3.cs" />
<Compile Include="Games\Game_KonamiWartran.cs" />
<Compile Include="Games\Game_Lindbergh2spicy.cs" />
<Compile Include="Games\Game_LindberghGsquadEvo.cs" />
<Compile Include="Games\Game_LindberghHotd4.cs" />
<Compile Include="Games\Game_LindberghHotd4Sp.cs" />
<Compile Include="Games\Game_LindberghHotdEx.cs" />
<Compile Include="Games\Game_LindberghLgj.cs" />
<Compile Include="Games\Game_LindberghLgjsp.cs" />
<Compile Include="Games\Game_LindberghRambo.cs" />
<Compile Include="Games\Game_PpmPoliceTrainer2.cs" />
<Compile Include="Games\Game_RtJurassicPark.cs" />
<Compile Include="Games\Game_Re2Transformers2.cs" />
<Compile Include="Games\Game_RtAliensArmageddon.cs" />
<Compile Include="Games\Game_RtTargetTerror.cs" />
<Compile Include="Games\Game_RtTerminatorSalvation.cs" />
<Compile Include="Games\Game_RtWalkingDead.cs" />
<Compile Include="Games\Game_RwGunman.cs" />
<Compile Include="Games\Game_RwTargetBravo.cs" />
<Compile Include="Games\Game_TtxGundam_V2.cs" />
<Compile Include="Games\Game_GameWaxAkuma.cs" />
<Compile Include="Games\Game_WndAdCop95.cs" />
<Compile Include="Games\Game_WndAdCopOverseas.cs" />
<Compile Include="Games\Game_WndAlienSafari.cs" />
<Compile Include="Games\Game_WndBlueEstate.cs" />
<Compile Include="Games\Game_WndBonbon95.cs" />
<Compile Include="Games\Game_WndBugBusters.cs" />
<Compile Include="Games\Game_WndColtWildWestShootout.cs" />
<Compile Include="Games\Game_WndFriction.cs" />
<Compile Include="Games\Game_Model2Vcop.cs" />
<Compile Include="Games\Game_Model2Hotd.cs" />
<Compile Include="Games\Game_Model2Gunblade.cs" />
<Compile Include="Games\Game_Model2Vcop2.cs" />
<Compile Include="Games\Game_Model2Bel.cs" />
<Compile Include="Games\Game_Model2Rchase2.cs" />
<Compile Include="Games\Game.cs" />
<Compile Include="Games\Game_WndArtIsDead.cs" />
<Compile Include="Games\Game_WndBE.cs" />
<Compile Include="Games\Game_CxbxVcop3_Old.cs" />
<Compile Include="Games\Game_Demul.cs" />
<Compile Include="Games\Game_DemulAtomiswave.cs" />
<Compile Include="Games\Game_DemulHikaru.cs" />
<Compile Include="Games\Game_DemulJvs.cs" />
<Compile Include="Games\Game_DemulManicpnc.cs" />
<Compile Include="Games\Game_DemulNaomi.cs" />
<Compile Include="Games\Game_Dolphin4.cs" />
<Compile Include="Games\Game_Dolphin5.cs" />
<Compile Include="Games\Game_GvrAliens.cs" />
<Compile Include="Games\Game_GvrAliensHasp.cs" />
<Compile Include="Games\Game_GvrFarCry.cs" />
<Compile Include="Games\Game_GvrFearLand.cs" />
<Compile Include="Games\Game_WndHeavyFire3Pc.cs" />
<Compile Include="Games\Game_WndHeavyFire4Pc.cs" />
<Compile Include="Games\Game_WndHod2pc.cs" />
<Compile Include="Games\Game_WndHod3pc.cs" />
<Compile Include="Games\Game_WndHotdoPc.cs" />
<Compile Include="Games\Game_WndMadBullets.cs" />
<Compile Include="Games\Game_WndProjectGreenBeat.cs" />
<Compile Include="Games\Game_WndReload.cs" />
<Compile Include="Games\Game_RwLGI.cs" />
<Compile Include="Games\Game_RwLGI3D.cs" />
<Compile Include="Games\Game_RwOpGhost.cs" />
<Compile Include="Games\Game_RwSDR.cs" />
<Compile Include="Games\Game_RwSGG.cs" />
<Compile Include="Games\Game_RwTransformers.cs" />
<Compile Include="Games\Game_TtxEadp.cs" />
<Compile Include="Games\Game_TtxGaiaAttack4.cs" />
<Compile Include="Games\Game_TtxGundam.cs" />
<Compile Include="Games\Game_TtxGungun2.cs" />
<Compile Include="Games\Game_TtxHauntedMuseum.cs" />
<Compile Include="Games\Game_TtxHauntedMuseum2.cs" />
<Compile Include="Games\Game_TtxSha.cs" />
<Compile Include="Games\Game__Unity.cs" />
<Compile Include="Game_WndSpray.cs" />
<Compile Include="Games\Game_TtxBlockKingBallShooter.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
<DependentUpon>Settings.settings</DependentUpon>
</Compile>
<Compile Include="DemulShooterWindow.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\DsCore\DsCore.csproj">
<Project>{BD88CC4D-2944-43F8-85C3-A274A45487AF}</Project>
<Name>DsCore</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="DemulShooter_Icon.ico" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<None Include="Resources\x360kb_hfirea1p.ini" />
<None Include="Resources\x360kb_hfirea2p.ini" />
</ItemGroup>
<ItemGroup>
<None Include="DemulShooter_Hooked_Icon.ico" />
</ItemGroup>
<ItemGroup>
<None Include="DemulShooter_UnHooked_Icon.ico" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<Target Name="Date" BeforeTargets="BeforeBuild">
<WriteLinesToFile File="$(IntermediateOutputPath)gen.cs" Lines="static partial class Builtin { public static long CompileTime = $([System.DateTime]::UtcNow.Ticks) %3B }" Overwrite="true" />
<ItemGroup>
<Compile Include="$(IntermediateOutputPath)gen.cs" />
</ItemGroup>
</Target>
</Project>
================================================
FILE: DemulShooter/DemulShooterWindow.cs
================================================
using System;
using System.Diagnostics;
using System.Globalization;
using System.Runtime.InteropServices;
using System.Security.Principal;
using System.Threading;
using System.Windows.Forms;
using DemulShooter.Games;
using DsCore;
using DsCore.Config;
using DsCore.MameOutput;
using DsCore.RawInput;
using DsCore.Win32;
namespace DemulShooter
{
delegate IntPtr WndProc(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam);
public class DemulShooterWindow : ApplicationContext
{
//A Message-Loop only window will be created to be able to receive WM_INPUT messages
private IntPtr _RawMessageWnd_hWnd = IntPtr.Zero;
private WndProc delegWndProc;
private const string DEMULSHOOTER_CONF_FILENAME = "config.ini";
private string _UserDefinedIniFile = string.Empty;
//Timer for Hooking TimeOut
private System.Timers.Timer _TimerHookTimeout;
//Tray Icon
private ContextMenu _TrayIconMenu;
private System.Windows.Forms.NotifyIcon _TrayIcon;
//Available RawInput devices (filters by thir Type)
private RawInputController[] _AvailableControllers;
//Low-Level Hooks
private Win32API.HookProc _MouseHookProc;
private IntPtr _MouseHookID = IntPtr.Zero;
private Win32API.HookProc _KeyboardHookProc;
private IntPtr _KeyboardHookID = IntPtr.Zero;
//Output (MameHooker)
private Wm_OutputHelper _Wm_OutputHelper;
//Output (Network)
private Net_OutputHelper _Net_OutputHelper;
private Thread _OutputUpdateLoop;
//Game options
private Game _Game;
private string _Rom = String.Empty;
private string _Target = String.Empty;
private UInt32 _Ddinumber = 3;
private string _DemulVersion = String.Empty;
private bool _HardFfl = false;
private double _ForceScalingX = 1.0;
private bool _NoInput = false;
//InterProcessCommunication (Memory Mapped Files)
private const String DEMULSHOOTER_INPUTS_MMF_NAME = "DemulShooter_MMF_Inputs";
private const String DEMULSHOOTER_OUTPUTS_MMF_NAME = "DemulShooter_MMF_Outputs";
private const String DEMULSHOOTER_INPUTS_MUTEX_NAME = "DemulShooter_Inputs_Mutex";
private const String DEMULSHOOTER_OUTPUTS_MUTEX_NAME = "DemulShooter_Outputs_Mutex";
private bool _EnableInputsIpc = false;
private bool _EnableOutputsIpc = false;
private DsCore.IPC.MemoryMappedFileHelper_Old _MMF_Inputs;
private DsCore.IPC.MemoryMappedFileHelper_Old _MMF_Outputs;
public DemulShooterWindow(string[] Args, bool isVerbose, bool enableTrace)
{
//Stop program if Demulshooter already running
Process[] pDemulShooter = Process.GetProcessesByName("DemulShooter");
if (pDemulShooter.Length > 1)
{
MessageBox.Show("Another instance of DemulShooter is already running.\nPlease terminate it before launching a new one", "DemulShooter", MessageBoxButtons.OK, MessageBoxIcon.Error);
Environment.Exit(0);
}
//Creating TrayIcon and TrayIcon "Exit" menu
Application.ApplicationExit += new EventHandler(OnApplicationExit);
InitializeComponent();
//Creating the timeout Timer
_TimerHookTimeout = new System.Timers.Timer();
_TimerHookTimeout.Enabled = false;
_TimerHookTimeout.Elapsed += tHookTimeOut_Elapsed;
Logger.IsEnabled = isVerbose;
Logger.IsTraceEnabled = enableTrace;
Logger.InitLogFileName();
Logger.WriteLog("");
Logger.WriteLog("---------------- Program Start -- DemulShooter v" + System.Reflection.Assembly.GetEntryAssembly().GetName().Version.ToString() + " ----------------");
// Parsing commandline arguments
for (int i = 0; i < Args.Length; i++)
{
Logger.WriteLog("Cmdline arg " + i + " : " + Args[i]);
if (Args[i].ToLower().StartsWith("-ddinumber"))
{
try
{
//-1 to transform to a 0-based index for later calculation
_Ddinumber = UInt32.Parse((Args[i].Split('='))[1].Trim()) - 1;
}
catch
{
Logger.WriteLog("-ddinumber parameter not good, it will keep default value");
}
}
else if (Args[i].ToLower().StartsWith("-forcescalingx"))
{
String sX = (Args[i].Split('='))[1].Trim();
try
{
if (sX.Contains("/") && sX.Split('/').Length > 1)
{
double d1 = Double.Parse(sX.Split('/')[0]);
double d2 = Double.Parse(sX.Split('/')[1]);
_ForceScalingX = d1 / d2;
}
else
_ForceScalingX = Double.Parse(sX, CultureInfo.InvariantCulture);
Logger.WriteLog("-ForceScalingX parameter set to " + _ForceScalingX.ToString());
}
catch
{
Logger.WriteLog("Can't set -ForceScalingX option : " + sX + " is not a valid value");
}
}
else if (Args[i].ToLower().Equals("-hardffl"))
{
_HardFfl = true;
}
else if (Args[i].ToLower().Equals("-ipcinputs"))
{
_EnableInputsIpc = true;
}
else if (Args[i].ToLower().Equals("-ipcoutputs"))
{
_EnableOutputsIpc = true;
}
else if (Args[i].ToLower().Equals("-noinput"))
{
_NoInput = true;
}
else if (Args[i].ToLower().StartsWith("-profile"))
{
_UserDefinedIniFile = (Args[i].Split('='))[1].Trim();
}
else if (Args[i].ToLower().StartsWith("-rom"))
{
_Rom = (Args[i].Split('='))[1].Trim();
}
else if (Args[i].ToLower().StartsWith("-target"))
{
_Target = (Args[i].Split('='))[1].Trim();
if (_Target.StartsWith("demul"))
{
_DemulVersion = _Target.Substring(5, 3);
}
}
}
if (_TrayIcon != null)
_TrayIcon.Text += "[" + _Target + "] [" + _Rom + "]";
Logger.WriteLog("Running as Administrator : " + IsRunningAsAdmin().ToString());
//Finding plugged devices
_AvailableControllers = RawInputHelper.GetRawInputDevices(new RawInputDeviceType[] { RawInputDeviceType.RIM_TYPEHID, RawInputDeviceType.RIM_TYPEMOUSE });
Logger.WriteLog("Found " + _AvailableControllers.Length + " available RawInput devices :");
foreach (RawInputController c in _AvailableControllers)
{
try
{
Logger.WriteLog(" + [" + c.DeviceType.ToString() + "] " + c.DeviceName);
}
catch (Exception ex)
{
Logger.WriteLog("ERROR : " + ex.Message.ToString());
}
}
//Reading config file to get parameters
if (_UserDefinedIniFile != string.Empty)
Configurator.GetInstance().ReadDsConfig(_UserDefinedIniFile);
else
Configurator.GetInstance().ReadDsConfig(AppDomain.CurrentDomain.BaseDirectory + @"\" + DEMULSHOOTER_CONF_FILENAME);
foreach (PlayerSettings Player in Configurator.GetInstance().PlayersSettings)
{
Logger.WriteLog("P" + Player.ID + " mode = " + Player.Mode);
if (Player.Mode == PlayerSettings.PLAYER_MODE_RAWINPUT)
{
bool bControllerfound = false;
Logger.WriteLog("P" + Player.ID + " device = " + Player.DeviceName);
foreach (RawInputController Controller in _AvailableControllers)
{
//Usually , the device name never change and it's easy to find back a controller
if (Controller.DeviceName == Player.DeviceName)
{
Player.RIController = Controller;
Player.RIController.Selected_AxisX = Player.HidAxisX;
Player.RIController.Selected_AxisY = Player.HidAxisY;
Player.RIController.Selected_OnScreenTriggerButton = Player.HidButton_OnScreenTrigger;
Player.RIController.Selected_ActionButton = Player.HidButton_Action;
Player.RIController.Selected_OffScreenTriggerButton = Player.HidButton_OffScreenTrigger;
Logger.WriteLog("P" + Player.ID + " device plugged and found, Handle = 0x" + Controller.DeviceHandle);
Logger.WriteLog("P" + Player.ID + " device : " + Controller.ManufacturerName + " / " + Controller.ProductName);
bControllerfound = true;
break;
}
}
//Unfortunatelly, on a few cases (SONY DS4 for example), a part of the device name changes so we will check again
//with what seems to be a fixed part of the name
if (!bControllerfound)
{
/*foreach (RawInputController Controller in _AvailableControllers)
{
//Usually , the device name never change and it's easy to find back a controller
if (Controller.DeviceName == Player.DeviceName)
{
Player.RIController = Controller;
Player.RIController.Set_AxisX(Player.HidAxisX);
Player.RIController.Set_AxisY(Player.HidAxisY);
Player.RIController.Set_Button_OnScreenTrigger_Index(Player.HidButton_OnScreenTrigger_Index);
Player.RIController.Set_Button_Action_Index(Player.HidButton_Action_Index);
Player.RIController.Set_Button_OffScreenTrigger_Index(Player.HidButton_OffScreenTrigger_Index);
Logger.WriteLog("P" + Player.ID + " device plugged and found, Handle = 0x" + Controller.DeviceHandle);
Logger.WriteLog("P" + Player.ID + " device : " + Controller.ProductName + " / " + Controller.DeviceName);
bControllerfound = true;
break;
}
}*/
}
}
else
Logger.WriteLog("P" + Player.ID + " Gamepad ID = " + Player.GamepadID);
}
//Info on Monitor (max resolution)
//// Disabled for now -- may cause trouble on some computer( ???)
/*
try
{
var scope = new System.Management.ManagementScope();
var q = new System.Management.ObjectQuery("SELECT * FROM CIM_VideoControllerResolution");
String Maxres = String.Empty;
using (var searcher = new System.Management.ManagementObjectSearcher(scope, q))
{
var results = searcher.Get();
foreach (var item in results)
{
Maxres = item["Caption"].ToString();
}
}
Logger.WriteLog("Monitor maximum resolution = " + Maxres);
}
catch (Exception Ex)
{
Logger.WriteLog("Error detecting monitor maximum resolution : " + Ex.Message.ToString());
}
*/
//Setting up IPC for inputs/outputs
if (_EnableInputsIpc)
{
_MMF_Inputs = new DsCore.IPC.MemoryMappedFileHelper_Old(DEMULSHOOTER_INPUTS_MUTEX_NAME);
_MMF_Inputs.MMFInit(DEMULSHOOTER_INPUTS_MMF_NAME, 2048);
}
if (_EnableOutputsIpc)
{
_MMF_Outputs = new DsCore.IPC.MemoryMappedFileHelper_Old(DEMULSHOOTER_OUTPUTS_MUTEX_NAME);
_MMF_Outputs.MMFInit(DEMULSHOOTER_OUTPUTS_MMF_NAME, 2048);
}
CreateRawMessageWindow();
//Register to RawInput thanks to the previously created window Handle
RawInputDevice[] rid = new RawInputDevice[3];
rid[0].UsagePage = HidUsagePage.GENERIC;
rid[0].Usage = HidUsage.Joystick;
rid[0].dwFlags = RawInputDeviceFlags.RIDEV_INPUTSINK;
rid[0].hwndTarget = _RawMessageWnd_hWnd;
rid[1].UsagePage = HidUsagePage.GENERIC;
rid[1].Usage = HidUsage.Mouse;
rid[1].dwFlags = RawInputDeviceFlags.RIDEV_INPUTSINK;
rid[1].hwndTarget = _RawMessageWnd_hWnd;
rid[2].UsagePage = HidUsagePage.GENERIC;
rid[2].Usage = HidUsage.Gamepad;
rid[2].dwFlags = RawInputDeviceFlags.RIDEV_INPUTSINK;
rid[2].hwndTarget = _RawMessageWnd_hWnd;
if (!Win32API.RegisterRawInputDevices(rid, (uint)rid.Length, (uint)Marshal.SizeOf(rid[0])))
{
MessageBox.Show("Failed to register raw input device(s).", "DemulShooter Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
Application.Exit();
}
//Starting Mame-style output daemon
if (Configurator.GetInstance().OutputEnabled)
{
Logger.WriteLog("Starting Output daemon...");
if (Configurator.GetInstance().Wm_OutputEnabled)
{
Logger.WriteLog("Creating Window Message Output Helper...");
_Wm_OutputHelper = new Wm_OutputHelper(_RawMessageWnd_hWnd);
_Wm_OutputHelper.Start();
}
if (Configurator.GetInstance().Net_OutputEnabled)
{
Logger.WriteLog("Creating Network Output Helper...");
_Net_OutputHelper = new Net_OutputHelper(_Rom);
_Net_OutputHelper.Start();
}
_OutputUpdateLoop = new Thread(new ThreadStart(ReadAndSendOutput_Thread));
_OutputUpdateLoop.Start();
}
//Starting the fun...
if (_Target.Length > 0 && (_Rom.Length > 0 || _Target.StartsWith("dolphin")))
{
//Install Low-Level mouse hook
ApplyMouseHook();
//Install Low Level keyboard hook
ApplyKeyboardHook();
/*
//Running Xinput daemon if needed
bool EnableXInputProc = false;
foreach (ControllerDevice Device in _ControllerDevices)
{
if (Device.GamepadID != -1)
{
EnableXInputProc = true;
break;
}
}
if (EnableXInputProc)
Bgw_XInput.RunWorkerAsync();
*/
//Coastal Games
if (_Target.Equals("arcadepc"))
{
switch (_Rom.ToLower())
{
case "gbusters":
{
_Game = new Game_ArcadepcGhostBusters(_Rom.ToLower());
} break;
case "pvz":
{
_Game = new Game_ArcadepcPvzLastStand(_Rom.ToLower());
}; break;
case "rhood":
{
_Game = new Game_ArcadepcRobinHood(_Rom.ToLower());
}
; break;
case "wws":
{
_Game = new Game_ArcadepcWws(_Rom.ToLower());
}; break;
default :
break;
}
}
//Chihiro games
else if (_Target.Equals("chihiro"))
{
switch (_Rom.ToLower())
{
case "vcop3_old":
{
_Game = new Game_CxbxVcop3_Old(_Rom.ToLower());
}; break;
case "gsquad":
{
_Game = new Game_CxbxGsquad(_Rom.ToLower());
}; break;
case "hod3":
{
_Game = new Game_CxbxHod3(_Rom.ToLower());
}; break;
case "vcop3":
{
_Game = new Game_CxbxVcop3(_Rom.ToLower());
}; break;
default :
break;
}
}
//Demul games
else if (_Target.StartsWith("demul"))
{
if (_Rom.ToLower().Equals("confmiss") || _Rom.ToLower().Equals("deathcox") || _Rom.ToLower().StartsWith("hotd2")
|| _Rom.ToLower().Equals("lupinsho") || _Rom.ToLower().Equals("mok"))
{
_Game = new Game_DemulNaomi(_Rom.ToLower(), _DemulVersion);
}
else if (_Rom.ToLower().StartsWith("ninjaslt"))
{
_Game = new Game_DemulJvs(_Rom.ToLower(), _DemulVersion);
}
else if (_Rom.ToLower().Equals("braveff"))
{
_Game = new Game_DemulHikaru(_Rom.ToLower(), _DemulVersion);
}
else if (_Rom.ToLower().Equals("manicpnc") || _Rom.ToLower().Equals("pokasuka"))
{
_Game = new Game_DemulManicpnc(_Rom.ToLower());
}
else
{
_Game = new Game_DemulAtomiswave(_Rom.ToLower(), _DemulVersion);
}
}
//Dolphin
else if (_Target.Equals("dolphin5"))
{
_Game = new Game_Dolphin5(_Rom.ToLower(), _Ddinumber);
}
//Es4
else if (_Target.Equals("es4"))
{
switch (_Rom.ToLower())
{
case "pblankx":
{
_Game = new Game_Es4PointBlankX(_Rom.ToLower());
}; break;
default:
break;
}
}
//Gamewax game
else if (_Target.Equals("gamewax"))
{
switch (_Rom.ToLower())
{
case "akuma":
{
_Game = new Game_GameWaxAkuma(_Rom.ToLower());
} break;
default :
break;
}
}
//GlobalVR game
else if (_Target.Equals("globalvr"))
{
switch (_Rom.ToLower())
{
case "aliens":
{
_Game = new Game_GvrAliens(_Rom.ToLower());
} break;
case "farcry":
{
_Game = new Game_GvrFarCry(_Rom.ToLower());
} break;
case "fearland":
{
_Game = new Game_GvrFearLand(_Rom.ToLower(), _HardFfl);
} break;
default:
break;
}
}
//KONAMI Arcade
else if (_Target.Equals("konami"))
{
switch (_Rom.ToLower())
{
case "coop9":
{
_Game = new Game_KonamiCoopers9(_Rom.ToLower());
}
break;
case "gashn2":
{
_Game = new Game_KonamiGashaaaan2(_Rom.ToLower());
}
break;
case "hcv":
{
_Game = new Game_KonamiCastlevania(_Rom.ToLower());
} break;
case "le3":
{
_Game = new Game_KonamiLethalEnforcers3(_Rom.ToLower());
} break;
case "wartran":
{
_Game = new Game_KonamiWartran(_Rom.ToLower());
} break;
default:
break;
}
}
//Lindbergh
else if (_Target.Equals("lindbergh"))
{
switch (_Rom.ToLower())
{
case "2spicy":
{
_Game = new Game_Lindbergh2spicy(_Rom.ToLower());
} break;
case "gsevo":
{
_Game = new Game_LindberghGsquadEvo(_Rom.ToLower());
} break;
case "hotd4":
{
_Game = new Game_LindberghHotd4(_Rom.ToLower());
} break;
case "hotd4sp":
{
_Game = new Game_LindberghHotd4Sp(_Rom.ToLower());
} break;
case "hotdex":
{
_Game = new Game_LindberghHotdEx(_Rom.ToLower());
} break;
case "lgj":
{
_Game = new Game_LindberghLgj(_Rom.ToLower());
} break;
case "lgjsp":
{
_Game = new Game_LindberghLgjsp(_Rom.ToLower());
} break;
case "rambo":
{
_Game = new Game_LindberghRambo(_Rom.ToLower());
} break;
default:
break;
}
}
//All model2 roms share same method
else if (_Target.Equals("model2"))
{
switch (_Rom.ToLower())
{
case "bel":
{
_Game = new Game_Model2Bel(_Rom.ToLower());
} break;
case "gunblade":
{
_Game = new Game_Model2Gunblade(_Rom.ToLower());
} break;
case "hotd":
{
_Game = new Game_Model2Hotd(_Rom.ToLower());
} break;
case "rchase2":
{
_Game = new Game_Model2Rchase2(_Rom.ToLower());
} break;
case "vcop":
{
_Game = new Game_Model2Vcop(_Rom.ToLower());
} break;
case "vcop2":
{
_Game = new Game_Model2Vcop2(_Rom.ToLower());
} break;
default:
break;
}
}
//All model2 roms share same method
else if (_Target.Equals("ppmarket"))
{
switch (_Rom.ToLower())
{
case "policetr2":
{
_Game = new Game_PpmPoliceTrainer2(_Rom.ToLower());
} break;
default:
break;
}
}
//Raw Thrill Games
else if (_Target.Equals("rawthrill"))
{
switch (_Rom.ToLower())
{
case "aa":
{
_Game = new Game_RtAliensArmageddon(_Rom.ToLower());
} break;
case "jp":
{
_Game = new Game_RtJurassicPark(_Rom.ToLower());
} break;
case "ts":
{
_Game = new Game_RtTerminatorSalvation(_Rom.ToLower());
} break;
case "ttg":
{
_Game = new Game_RtTargetTerror(_Rom.ToLower());
}; break;
case "wd":
{
_Game = new Game_RtWalkingDead(_Rom.ToLower());
} break;
default :
break;
}
}
else if (_Target.Equals("ringedge2"))
{
switch (_Rom.ToLower())
{
case "tsr":
{
_Game = new Game_Re2Transformers2(_Rom.ToLower());
}; break;
}
}
//Ring system
else if (_Target.Equals("ringwide"))
{
switch (_Rom.ToLower())
{
case "sgg":
{
_Game = new Game_RwSGG(_Rom.ToLower());
} break;
case "lgi":
{
_Game = new Game_RwLGI(_Rom.ToLower());
} break;
case "lgi3d":
{
_Game = new Game_RwLGI3D(_Rom.ToLower());
} break;
case "mng":
{
_Game = new Game_RwGunman(_Rom.ToLower());
}; break;
case "og":
{
_Game = new Game_RwOpGhost(_Rom.ToLower());
} break;
case "sdr":
{
_Game = new Game_RwSDR(_Rom.ToLower());
}; break;
case "tb":
{
_Game = new Game_RwTargetBravo(_Rom.ToLower());
} ; break;
case "tha":
{
_Game = new Game_RwTransformers(_Rom.ToLower());
}; break;
default:
break;
}
}
//TTX game
else if (_Target.Equals("ttx"))
{
switch (_Rom.ToLower())
{
case "bkbs":
{
_Game = new Game_TtxBlockKingBallShooter(_Rom.ToLower());
} break;
case "eadp":
{
_Game = new Game_TtxEadp(_Rom.ToLower());
} break;
case "gattack4":
{
_Game = new Game_TtxGaiaAttack4(_Rom.ToLower());
} break;
case "gsoz":
{
_Game = new Game_TtxGundam_V2(_Rom.ToLower());
} break;
case "gsoz2p":
{
_Game = new Game_TtxGundam_V2(_Rom.ToLower());
} break;
case "hmuseum":
{
_Game = new Game_TtxHauntedMuseum(_Rom.ToLower());
} break;
case "hmuseum2":
{
_Game = new Game_TtxHauntedMuseum2(_Rom.ToLower(), _HardFfl);
}break;
case "mgungun2":
{
_Game = new Game_TtxGungun2(_Rom.ToLower());
} break;
case "sha":
{
_Game = new Game_TtxSha(_Rom.ToLower());
} break;
default:
break;
}
}
//Windows Games
else if (_Target.Equals("windows"))
{
switch (_Rom.ToLower())
{
case "ads":
{
_Game = new Game_WndAlienSafari(_Rom.ToLower());
} break;
case "artdead":
{
_Game = new Game_WndArtIsDead(_Rom.ToLower());
} break;
case "coltwws":
{
_Game = new Game_WndColtWildWestShootout(_Rom.ToLower());
} break;
case "bugbust":
{
_Game = new Game_WndBugBusters(_Rom.ToLower());
} break;
case "friction":
{
_Game = new Game_WndFriction(_Rom.ToLower());
} break;
case "hfa":
{
_Game = new Game_WndHeavyFire3Pc(_Rom.ToLower());
}; break;
case "hfss":
{
_Game = new Game_WndHeavyFire4Pc(_Rom.ToLower());
}; break;
case "hod2pc":
{
_Game = new Game_WndHod2pc(_Rom.ToLower());
}; break;
case "hod3pc":
{
_Game = new Game_WndHod3pc(_Rom.ToLower());
}; break;
case "hodo":
{
_Game = new Game_WndHotdoPc(_Rom.ToLower());
}; break;
case "madbul":
{
_Game = new Game_WndMadBullets(_Rom.ToLower());
}; break;
case "pgbeat":
{
_Game = new Game_WndProjectGreenBeat(_Rom.ToLower());
}; break;
case "reload":
{
_Game = new Game_WndReload(_Rom.ToLower());
}; break;
default:
break;
}
}
//W.I.P Games
else if (_Target.Equals("wip"))
{
switch (_Rom.ToLower())
{
case "adcop":
{
_Game = new Game_WndAdCop95(_Rom.ToLower());
}; break;
case "adcopsea":
{
_Game = new Game_WndAdCopOverseas(_Rom.ToLower());
}; break;
case "bonbon":
{
_Game = new Game_WndBonbon95(_Rom.ToLower());
}; break;
case "spray":
{
_Game = new Game_WndSpray(_Rom.ToLower());
}; break;
case "fha":
{
_Game = new Game_ArcadepcFireHero(_Rom.ToLower());
}
break;
case "hsfr":
{
_Game = new Game_ArcadepcHsfr(_Rom.ToLower());
}break;
case "mecht":
{
_Game = new Game_ArcadepcMechaTornado(_Rom.ToLower());
}break;
case "topgun":
{
_Game = new Game_ArcadepcTopGun(_Rom.ToLower());
}
break;
case "hwspr2":
{
_Game = new Game_ArcadepcWaterSprite2(_Rom.ToLower());
}; break;
case "hwwar2":
{
_Game = new Game_ArcadepcWaterWar2(_Rom.ToLower());
}; break;
case "be":
{
_Game = new Game_WndBlueEstate(_Rom.ToLower());
};break;
default:
break;
}
}
if (_Game != null)
_Game.OnGameHooked += new Game.GameHookedHandler(OnGameHooked);
//starting the TimeOut Timer
if (Configurator.GetInstance().HookTimeout != 0)
{
_TimerHookTimeout.Interval = (Configurator.GetInstance().HookTimeout * 1000);
_TimerHookTimeout.Start();
}
}
}
/// <summary>
/// Check if user has Elevated rights (Admin)
/// </summary>
/// <returns></returns>
private bool IsRunningAsAdmin()
{
bool isElevated;
try
{
using (WindowsIdentity identity = WindowsIdentity.GetCurrent())
{
WindowsPrincipal principal = new WindowsPrincipal(identity);
isElevated = principal.IsInRole(WindowsBuiltInRole.Administrator);
}
return isElevated;
}
catch (Exception Ex)
{
Logger.WriteLog("Error checking Admin rights for current user : " + Ex.Message.ToString());
return false;
}
}
/// <summary>
/// Create a messageLoop-only Window (invsible) to treat WM_* messages
/// </summary>
/// <returns></returns>
public bool CreateRawMessageWindow()
{
delegWndProc = myWndProc;
WNDCLASSEX wind_class = new WNDCLASSEX();
wind_class.cbSize = Marshal.SizeOf(typeof(WNDCLASSEX));
wind_class.style = 0;
wind_class.hbrBackground = IntPtr.Zero;
wind_class.cbClsExtra = 0;
wind_class.cbWndExtra = 0;
wind_class.hInstance = Marshal.GetHINSTANCE(this.GetType().Module); // alternative: Process.GetCurrentProcess().Handle;
wind_class.hIcon = IntPtr.Zero;
wind_class.hCursor = IntPtr.Zero;
wind_class.lpszMenuName = null;
wind_class.lpszClassName = "RI_MsgLoop";
wind_class.lpfnWndProc = Marshal.GetFunctionPointerForDelegate(delegWndProc);
wind_class.hIconSm = IntPtr.Zero;
ushort regResult = Win32API.RegisterClassEx(ref wind_class);
if (regResult == 0)
{
uint error = Win32API.GetLastError();
return false;
}
string wndClass = wind_class.lpszClassName;
//This version worked and resulted in a non-zero hWnd
//_hWnd = CreateWindowEx(0, regResult, "Hello Win32", WS_OVERLAPPEDWINDOW | WS_VISIBLE, 0, 0, 300, 400, IntPtr.Zero, IntPtr.Zero, wind_class.hInstance, IntPtr.Zero);
IntPtr HWND_MESSAGE = new IntPtr(-3);
_RawMessageWnd_hWnd = Win32API.CreateWindowEx(0, regResult, "DemulShooter_RawInputWnd", 0, 0, 0, 0, 0, HWND_MESSAGE, IntPtr.Zero, wind_class.hInstance, IntPtr.Zero);
if (_RawMessageWnd_hWnd == ((IntPtr)0))
{
uint error = Win32API.GetLastError();
return false;
}
return true;
//The explicit message pump is not necessary, messages are obviously dispatched by the framework.
//However, if the while loop is implemented, the functions are called... Windows mysteries...
//MSG msg;
//while (GetMessage(out msg, IntPtr.Zero, 0, 0) != 0)
//{
// TranslateMessage(ref msg);
// DispatchMessage(ref msg);
//}
}
/// <summary>
/// Window Message-Loop
/// </summary>
private IntPtr myWndProc(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam)
{
if (Configurator.GetInstance().OutputEnabled && Configurator.GetInstance().Wm_OutputEnabled && _Wm_OutputHelper != null)
{
if (msg == _Wm_OutputHelper.MameOutput_RegisterClient)
{
_Wm_OutputHelper.RegisterClient(wParam, (UInt32)lParam);
}
else if (msg == _Wm_OutputHelper.MameOutput_UnregisterClient)
{
_Wm_OutputHelper.UnregisterClient(wParam, (UInt32)lParam);
}
else if (msg == _Wm_OutputHelper.MameOutput_GetIdString)
{
uint Id = (uint)lParam;
Logger.WriteLog("MameHooker GetIdString message received for ID=" + Id.ToString());
if (Id == 0)
{
/*if (_Game.ProcessHooked)
_Wm_OutputHelper.SendIdString(wParam, _Rom, 0);
else
_Wm_OutputHelper.SendIdString(wParam, "___empty", 0);*/
_Wm_OutputHelper.SendIdString(wParam, _Rom, 0);
_Wm_OutputHelper.RomNameSent = true;
}
else
{
if (_Game != null && _Game.Outputs.Count > 0)
{
String s = _Game.GetOutputDescriptionFromId(Id);
_Wm_OutputHelper.SendIdString(wParam, s, Id);
}
}
}
}
switch (msg)
{
case Win32Define.WM_INPUT:
{
ProcessRawInputMessage(lParam);
}
break;
case Win32Define.WM_QUIT:
{
Logger.WriteLog("myWndProc() => WM_QUIT message received !");
} break;
default:
break;
}
return Win32API.DefWindowProc(hWnd, msg, wParam, lParam);
}
/// <summary>
/// Processing of the RawInput message :
/// - Detection of the device creating the event
/// - Retrieve data
/// - Scale Raw axis values to Screen -> ClientWindow -> Game values
/// - Send axis values and buttons to the Game
/// </summary>
/// <param name="RawInputHandle"></param>
private void ProcessRawInputMessage(IntPtr RawInputHandle)
{
foreach (RawInputController Controller in _AvailableControllers)
{
if (Controller.isSourceOfRawInputMessage(RawInputHandle))
{
foreach (PlayerSettings Player in Configurator.GetInstance().PlayersSettings)
{
if (Player.DeviceName == Controller.DeviceName)
{
if (_Game != null && _Game.ProcessHooked)
{
Controller.ProcessRawInputData(RawInputHandle);
Logger.WriteLog("RawData event for Player #" + Player.ID.ToString() + ":");
Logger.WriteLog("Device rawinput data (Hex) = [ " + Player.RIController.Computed_X.ToString("X8") + ", " + Player.RIController.Computed_Y.ToString("X8") + " ]");
//Overrriding RAWINPUT data (relative movement) for single mouse by a call to GetCursorPos WIN32 API
//That way we can get mouse position as if it's Absolute position
if (Controller.DeviceType == RawInputDeviceType.RIM_TYPEMOUSE && Controller.IsRelativeCoordinates)
{
Logger.WriteLog("Relative positionning detected, switching to cursor position :");
POINT p = new POINT();
if (Win32API.GetCursorPos(out p))
{
Logger.WriteLog("WM_MOUSEMOVE Cursor position = [ " + p.X + "," + p.Y + " ]");
Player.RIController.Computed_X = p.X;
Player.RIController.Computed_Y = p.Y;
Logger.WriteLog("OnScreen Cursor Position (Px) = [ " + Player.RIController.Computed_X + ", " + Player.RIController.Computed_Y + " ]");
}
else
{
Logger.WriteLog("WM_MOUSEMOVE : GetCursorPos() returned error");
return;
}
}
if (_EnableInputsIpc)
_MMF_Inputs.UpdateRawPlayerData(Player.ID, (UInt32)Player.RIController.Computed_X, (UInt32)Player.RIController.Computed_Y);
_Game.GetScreenResolution();
Logger.WriteLog("PrimaryScreen Size (Px) = [ " + _Game.ScreenWidth + "x" + _Game.ScreenHeight + " ]");
if (!Controller.IsRelativeCoordinates)
{
//If manual calibration override for analog guns
if (Player.RIController.DeviceType == RawInputDeviceType.RIM_TYPEHID && Player.AnalogAxisRangeOverride)
{
Logger.WriteLog("Overriding player axis range values : X => [ " + Player.AnalogManual_Xmin.ToString() + ", " + Player.AnalogManual_Xmax.ToString() + " ], Y => [ " + Player.AnalogManual_Ymin.ToString() + ", " + Player.AnalogManual_Ymax.ToString() + " ]");
Player.RIController.Computed_X = _Game.ScreenScale(Player.RIController.Computed_X, Player.AnalogManual_Xmin, Player.AnalogManual_Xmax, 0, _Game.ScreenWidth);
Player.RIController.Computed_Y = _Game.ScreenScale(Player.RIController.Computed_Y, Player.AnalogManual_Ymin, Player.AnalogManual_Ymax, 0, _Game.ScreenHeight);
}
else
{
Player.RIController.Computed_X = _Game.ScreenScale(Player.RIController.Computed_X, Player.RIController.Axis_X_Min, Player.RIController.Axis_X_Max, 0, _Game.ScreenWidth);
Player.RIController.Computed_Y = _Game.ScreenScale(Player.RIController.Computed_Y, Player.RIController.Axis_Y_Min, Player.RIController.Axis_Y_Max, 0, _Game.ScreenHeight);
}
//Optionnal invert axis
if (Player.InvertAxis_X)
Player.RIController.Computed_X = _Game.ScreenWidth - Player.RIController.Computed_X;
if (Player.InvertAxis_Y)
Player.RIController.Computed_Y = _Game.ScreenHeight - Player.RIController.Computed_Y;
Logger.WriteLog("OnScreen Cursor Position (Px) = [ " + Player.RIController.Computed_X + ", " + Player.RIController.Computed_Y + " ]");
if (Configurator.GetInstance().Act_Labs_Offset_Enable)
{
Player.RIController.Computed_X += Player.Act_Labs_Offset_X;
Player.RIController.Computed_Y += Player.Act_Labs_Offset_Y;
Logger.WriteLog("ActLabs adaptated OnScreen Cursor Position (Px) = [ " + Player.RIController.Computed_X + ", " + Player.RIController.Computed_Y + " ]");
}
}
//Change X asxis scaling based on user requirements
if (_ForceScalingX != 1.0)
{
Logger.WriteLog("Forcing X Scaling = " + _ForceScalingX.ToString());
double HalfScreenSize = (double)_Game.ScreenWidth / 2.0;
double NewX = (((double)Player.RIController.Computed_X - HalfScreenSize) * _ForceScalingX) + HalfScreenSize;
Player.RIController.Computed_X = Convert.ToInt32(NewX);
Logger.WriteLog("Forced scaled OnScreen Cursor Position (Px) = [ " + Player.RIController.Computed_X + ", " + Player.RIController.Computed_Y + " ]");
}
_Game.IsFullscreen = _Game.GetFullscreenStatus();
if (!_Game.IsFullscreen)
{
Logger.WriteLog("ClientWindow Style = Windowed");
//Retrieve info for debug/replay purpose
_Game.GetClientwindowInfo();
if (!_Game.ClientScale(Player))
{
Logger.WriteLog("Error converting screen location to client location");
return;
}
Logger.WriteLog("ClientWindow Location (px) = [ " + _Game.clientWindowLocation.X.ToString() + ", " + _Game.clientWindowLocation.Y.ToString() + " ]");
Logger.WriteLog("ClientWindow Size (px) = [ " + (_Game.WindowRect.Right - _Game.WindowRect.Left).ToString() + "x" + (_Game.WindowRect.Bottom - _Game.WindowRect.Top).ToString() + " ]");
Logger.WriteLog("OnClient Cursor Position (Px) = [ " + Player.RIController.Computed_X + ", " + Player.RIController.Computed_Y + " ]");
if (!_Game.GetClientRect())
{
Logger.WriteLog("Error getting client Rect");
return;
}
}
else
{
Logger.WriteLog("ClientWindow Style = FullScreen");
//No need to translate coordinates from screen -> client and risk error.
//As fuulscreen, we will consider window size = screen size
Rect r = new Rect();
r.Top = 0;
r.Left = 0;
r.Bottom = _Game.ScreenHeight;
r.Right = _Game.ScreenWidth;
_Game.ClientRect = r;
}
if (!_Game.GameScale(Player))
{
Logger.WriteLog("Error converting client location to game location");
return;
}
Logger.WriteLog("Game Position (Hex) = [ " + Player.RIController.Computed_X.ToString("X4") + ", " + Player.RIController.Computed_Y.ToString("X4") + " ]");
Logger.WriteLog("Game Position (Dec) = [ " + Player.RIController.Computed_X.ToString() + ", " + Player.RIController.Computed_Y.ToString() + " ]");
if (Controller.Computed_Buttons != 0)
Logger.WriteLog("Controller Buttons Events : " + Player.RIController.Computed_Buttons.ToString());
Logger.WriteLog("-");
if (!_NoInput)
_Game.SendInput(Player);
if (_EnableInputsIpc)
{
_MMF_Inputs.UpdateComputedPlayerData(Player.ID, Player.RIController.Computed_X, Player.RIController.Computed_Y, Player.RIController.Hid_Buttons);
if (_MMF_Inputs.WriteData() != 0)
Logger.WriteLog("Succesfully copied P" + Player.ID.ToString() + " data to MMF " + _MMF_Inputs.MemoryFileName);
}
}
}
}
}
}
}
/// <summary>
/// Output handling thread :
/// This infinite loop will check the targeted game values and send them to registerd Output clients
/// </summary>
private void ReadAndSendOutput_Thread()
{
while (true)
{
if (_Game != null && _Game.ProcessHooked)
{
_Game.UpdateOutputValues();
if (Configurator.GetInstance().Wm_OutputEnabled && _Wm_OutputHelper != null && _Wm_OutputHelper.RomNameSent)
_Wm_OutputHelper.SendValues(_Game.Outputs);
if (Configurator.GetInstance().Net_OutputEnabled && _Net_OutputHelper!= null)
_Net_OutputHelper.BroadcastValues(_Game.Outputs);
}
DsCore.Win32.Win32API.MM_BeginPeriod(1);
Thread.Sleep(Configurator.GetInstance().OutputPollingDelay);
DsCore.Win32.Win32API.MM_EndPeriod(1);
}
}
/// <summary>
/// GUI Init : mostly TrayIcon + Menu
/// </summary>
private void InitializeComponent()
{
//Tray Icon
//Looking for explorer.exe process, if not skip TrayIcon to make the program work
Process[] pExplorer = Process.GetProcessesByName("explorer");
if (pExplorer.Length > 0)
{
_TrayIcon = new NotifyIcon();
_TrayIcon.Text = "DemulShooter";
_TrayIcon.Icon = DemulShooter.Properties.Resources.DemulShooter_UnHooked_Icon;
_TrayIconMenu = new ContextMenu();
_TrayIconMenu.MenuItems.Add("Exit", OnTrayExitSelected);
_TrayIcon.ContextMenu = _TrayIconMenu;
_TrayIcon.Visible = true;
}
}
/// <summary>
/// Exit from TrayIcon menu entry
/// </summary>
private void OnTrayExitSelected(object sender, EventArgs e)
{
Application.Exit();
}
private void OnGameHooked(object sender, EventArgs e)
{
if (_TrayIcon != null)
{
_TrayIcon.Icon = DemulShooter.Properties.Resources.DemulShooter_Hooked_Icon;
_TrayIcon.Text += "[Hooked]";
}
//Stopping the Timeout timer
_TimerHookTimeout.Stop();
if (_Wm_OutputHelper != null)
{
_Game.SetMamePauseState(false);
_Wm_OutputHelper.SendValues(_Game.Outputs);
}
//Sending info to the Net_OutputHelper if existing
if (_Net_OutputHelper != null)
{
_Net_OutputHelper.SetGameHookedState(true);
_Net_OutputHelper.BroadcatStartMessage();
}
}
private void OnApplicationExit(object sender, EventArgs e)
{
Logger.WriteLog("Cleaning things before exiting application...");
CleanAppBeforeExit();
}
/// <summary>
/// Application Exit cleanup
/// </summary>
private void CleanAppBeforeExit()
{
if (_OutputUpdateLoop != null)
_OutputUpdateLoop.Abort();
if (_Wm_OutputHelper != null)
{
//Simply sending MameStop may cause MameHooker to not release dll properly
//MAME goes from MameStop to MameStart with PAUSE enabled and "__empty" rom
//Which is not possible here due to the WndProc quitting before getting MameHooker request ??
// Solution would be to Send a new MameStart with no values before MAmeStopping again
_Game.SetMamePauseState(true);
_Wm_OutputHelper.SendValues(_Game.Outputs);
_Wm_OutputHelper.Stop();
_Wm_OutputHelper.Start();
_Wm_OutputHelper.Stop();
}
if (_Net_OutputHelper != null)
{
_Net_OutputHelper.Stop();
}
//Cleanup so that the icon will be removed when the application is closed
if (_TrayIcon != null)
{
_TrayIcon.Visible = false;
_TrayIcon.Dispose();
}
}
/// <summary>
/// Low-level mouse hook.
/// Some game will need this to block mouse inputs so that we can inject our own values.
/// </summary>
protected void ApplyMouseHook()
{
_MouseHookProc = new Win32API.HookProc(MouseHookCallback);
using (Process curProcess = Process.GetCurrentProcess())
using (ProcessModule curModule = curProcess.MainModule)
_MouseHookID = Win32API.SetWindowsHookEx(Win32Define.WH_MOUSE_LL, _MouseHookProc, Win32API.GetModuleHandle(curModule.ModuleName), 0);
if (_MouseHookID == IntPtr.Zero)
{
Logger.WriteLog("MouseHook Error : " + Marshal.GetLastWin32Error());
}
else
{
Logger.WriteLog("LowLevelMouseHook installed !");
}
}
private IntPtr MouseHookCallback(int nCode, IntPtr wParam, IntPtr lParam)
{
/*if (_UseSingleMouse)
{
if (nCode >= 0 && (UInt32)wParam == Win32Define.WM_MOUSEMOVE)
{
MSLLHOOKSTRUCT s = (MSLLHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(MSLLHOOKSTRUCT));
int x = s.pt.X;
int y = s.pt.Y;
}
}*/
if (_Game != null && _Game.ProcessHooked)
return _Game.MouseHookCallback(_MouseHookID, nCode, wParam, lParam);
else
return Win32API.CallNextHookEx(_MouseHookID, nCode, wParam, lParam);
}
protected void RemoveMouseHook()
{
Win32API.UnhookWindowsHookEx(_MouseHookID);
}
/// <summary>
/// Low-level Keyboard hook.
/// </summary>
protected void ApplyKeyboardHook()
{
_KeyboardHookProc = new Win32API.HookProc(KeyboardHookCallback);
using (Process curProcess = Process.GetCurrentProcess())
using (ProcessModule curModule = curProcess.MainModule)
_KeyboardHookID = Win32API.SetWindowsHookEx(Win32Define.WH_KEYBOARD_LL, _KeyboardHookProc, Win32API.GetModuleHandle(curModule.ModuleName), 0);
if (_KeyboardHookID == IntPtr.Zero)
{
Logger.WriteLog("KeyboardHook Error : " + Marshal.GetLastWin32Error());
}
else
{
Logger.WriteLog("LowLevel-KeyboardHook installed !");
}
}
protected virtual IntPtr KeyboardHookCallback(int nCode, IntPtr wParam, IntPtr lParam)
{
if (_Game != null && _Game.ProcessHooked && !_NoInput)
{
try
{
Logger.WriteLog("KeyboardHook Event : wParam = 0x " + wParam.ToString("X8") + ", lParam = 0x" + lParam.ToString("X8"));
//First step : use the Hook to determine if a virtual Middle/Right button has been pushed
if ((UInt32)wParam == Win32Define.WM_KEYDOWN)
{
Logger.WriteLog("KeyboardHook Event : WM_KEYDOWN event detected");
KBDLLHOOKSTRUCT s = (KBDLLHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(KBDLLHOOKSTRUCT));
Logger.WriteLog("KBDLLHOOKSTRUCT : " + s.ToString());
foreach (PlayerSettings Player in Configurator.GetInstance().PlayersSettings)
{
if (Player.isVirtualMouseButtonsEnabled && Player.RIController != null)
{
if (s.scanCode == Player.DIK_VirtualMouseButton_Left)
{
Logger.WriteLog("Player " + Player.ID + "VirtualMouseButton_Left detected");
Player.RIController.Computed_Buttons = RawInputcontrollerButtonEvent.OnScreenTriggerDown;
_Game.SendInput(Player);
}
else if (s.scanCode == Player.DIK_VirtualMouseButton_Middle)
{
Logger.WriteLog("Player " + Player.ID + "VirtualMouseButton_Middle detected");
Player.RIController.Computed_Buttons = RawInputcontrollerButtonEvent.ActionDown;
_Game.SendInput(Player);
}
else if (s.scanCode == Player.DIK_VirtualMouseButton_Right)
{
Logger.WriteLog("Player " + Player.ID + "VirtualMouseButton_Right detected");
Player.RIController.Computed_Buttons = RawInputcontrollerButtonEvent.OffScreenTriggerDown;
_Game.SendInput(Player);
}
}
}
Logger.WriteLog("-");
}
if ((UInt32)wParam == Win32Define.WM_KEYUP)
{
Logger.WriteLog("KeyboardHook Event : WM_KEYUP event detected");
KBDLLHOOKSTRUCT s = (KBDLLHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(KBDLLHOOKSTRUCT));
Logger.WriteLog("KBDLLHOOKSTRUCT : " + s.ToString());
foreach (PlayerSettings Player in Configurator.GetInstance().PlayersSettings)
{
if (Player.isVirtualMouseButtonsEnabled && Player.RIController != null)
{
if (s.scanCode == Player.DIK_VirtualMouseButton_Left)
{
Logger.WriteLog("Player " + Player.ID + "VirtualMouseButton_Left detected");
Player.RIController.Computed_Buttons = RawInputcontrollerButtonEvent.OnScreenTriggerUp;
_Game.SendInput(Player);
}
else if (s.scanCode == Player.DIK_VirtualMouseButton_Middle)
{
Logger.WriteLog("Player " + Player.ID + "VirtualMouseButton_Middle detected");
Player.RIController.Computed_Buttons = RawInputcontrollerButtonEvent.ActionUp;
_Game.SendInput(Player);
}
else if (s.scanCode == Player.DIK_VirtualMouseButton_Right)
{
Logger.WriteLog("Player " + Player.ID + "VirtualMouseButton_Right detected");
Player.RIController.Computed_Buttons = RawInputcontrollerButtonEvent.OffScreenTriggerUp;
_Game.SendInput(Player);
}
}
}
Logger.WriteLog("-");
}
//Second step : forward the event to the Game
return _Game.KeyboardHookCallback(_MouseHookID, nCode, wParam, lParam);
}
catch (Exception Ex)
{
Logger.WriteLog("Error handling KeyboardHookCallback : " + Ex.Message.ToString());
return _Game.KeyboardHookCallback(_MouseHookID, nCode, wParam, lParam);
}
}
else
return Win32API.CallNextHookEx(_KeyboardHookID, nCode, wParam, lParam);
}
protected void RemoveKeyboardHook()
{
Win32API.UnhookWindowsHookEx(_KeyboardHookID);
}
//quit application if TimeOut enabled for game hooking
private void tHookTimeOut_Elapsed(Object Sender, EventArgs e)
{
Logger.WriteLog("Hook timeout expired, exiting application.");
CleanAppBeforeExit();
Environment.Exit(0);
}
}
}
================================================
FILE: DemulShooter/Ds.settings
================================================
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="DemulShooter" GeneratedClassName="Ds">
<Profiles />
<Settings>
<Setting Name="Setting1" Type="System.String" Scope="Application">
<Value Profile="(Default)">coucou</Value>
</Setting>
<Setting Name="Setting2" Type="System.Byte" Scope="Application">
<Value Profile="(Default)">50</Value>
</Setting>
</Settings>
</SettingsFile>
================================================
FILE: DemulShooter/Game_WndSpray.cs
================================================
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using DsCore;
using DsCore.Config;
using DsCore.MameOutput;
using DsCore.Memory;
using DsCore.RawInput;
using DsCore.Win32;
namespace DemulShooter
{
class Game_WndSpray : Game
{
//Memory values
private InjectionStruct _CoinKeyCode_InjectionStruct = new InjectionStruct(0x0000A45A, 5);
private NopStruct _Nop_P1IoControls = new NopStruct(0x0000AAA4, 5);
private NopStruct _Nop_P2IoControls = new NopStruct(0x0000AA95, 5);
private NopStruct _Nop_MouseAxis = new NopStruct(0x0000A401, 6);
private UInt32 _Patch_MouseButtons_Offset = 0x0000A3B9;
private UInt32 _P1_X_Offset = 0x0005AC8C;
private UInt32 _P1_Y_Offset = 0x0005AC90;
private UInt32 _P1_Trigger_Offset = 0x0005AC94;
private UInt32 _P2_X_Offset = 0x0005AC70;
private UInt32 _P2_Y_Offset = 0x0005AC74;
private UInt32 _P2_Trigger_Offset = 0x0005AC78;
private UInt32 _P1_Life_Offset = 0x00055094;
private UInt32 _P2_Life_Offset = 0x00055098;
private UInt32 _P1_Ammo_Offset = 0x000520A0;
//private UInt32 _P2_Ammo_Offset = 0x000520A0;
/// <summary>
/// Constructor
/// </summary>
public Game_WndSpray(String RomName)
: base(RomName, "SprayGun")
{
_KnownMd5Prints.Add("Spray v1.0.0.1 - Original exe", "3f73bd67f4247900c12eea7932ea1517");
_tProcess.Start();
Logger.WriteLog("Waiting for Windows " + _RomName + " game to hook.....");
}
/// <summary>
/// Timer event when looking for Process (auto-Hook and auto-close)
/// </summary>
protected override void tProcess_Elapsed(Object Sender, EventArgs e)
{
if (!_ProcessHooked)
{
try
{
Process[] processes = Process.GetProcessesByName(_Target_Process_Name);
if (processes.Length > 0)
{
_TargetProcess = processes[0];
_ProcessHandle = _TargetProcess.Handle;
_TargetProcess_MemoryBaseAddress = _TargetProcess.MainModule.BaseAddress;
if (_TargetProcess_MemoryBaseAddress != IntPtr.Zero)
{
_GameWindowHandle = _TargetProcess.MainWindowHandle;
Logger.WriteLog("Attached to Process " + _Target_Process_Name + ".exe, ProcessHandle = " + _ProcessHandle);
Logger.WriteLog(_Target_Process_Name + ".exe = 0x" + _TargetProcess_MemoryBaseAddress.ToString("X8"));
CheckExeMd5();
Apply_MemoryHacks();
_ProcessHooked = true;
RaiseGameHookedEvent();
}
}
}
catch
{
Logger.WriteLog("Error trying to hook " + _Target_Process_Name + ".exe");
}
}
else
{
Process[] processes = Process.GetProcessesByName(_Target_Process_Name);
if (processes.Length <= 0)
{
_ProcessHooked = false;
_TargetProcess = null;
_ProcessHandle = IntPtr.Zero;
_TargetProcess_MemoryBaseAddress = IntPtr.Zero;
Logger.WriteLog(_Target_Process_Name + ".exe closed");
Application.Exit();
}
}
}
#region Screen
/// <summary>
/// Convert client area pointer location to Game speciffic data for memory injection
/// </summary>
public override bool GameScale(PlayerSettings PlayerData)
{
if (_ProcessHandle != IntPtr.Zero)
{
try
{
double TotalResX = _ClientRect.Right - _ClientRect.Left;
double TotalResY = _ClientRect.Bottom - _ClientRect.Top;
Logger.WriteLog("Game Window Rect (Px) = [ " + TotalResX + "x" + TotalResY + " ]");
//X => [0-640]
//Y => [0-480]
double dMaxX = 640.0;
double dMaxY = 480.0;
PlayerData.RIController.Computed_X = Convert.ToInt16(Math.Round(dMaxX * PlayerData.RIController.Computed_X / TotalResX));
PlayerData.RIController.Computed_Y = Convert.ToInt16(Math.Round(dMaxY * PlayerData.RIController.Computed_Y / TotalResY));
if (PlayerData.RIController.Computed_X < 0)
PlayerData.RIController.Computed_X = 0;
if (PlayerData.RIController.Computed_Y < 0)
PlayerData.RIController.Computed_Y = 0;
if (PlayerData.RIController.Computed_X > (int)dMaxX)
PlayerData.RIController.Computed_X = (int)dMaxX;
if (PlayerData.RIController.Computed_Y > (int)dMaxY)
PlayerData.RIController.Computed_Y = (int)dMaxY;
return true;
}
catch (Exception ex)
{
Logger.WriteLog("Error scaling mouse coordonates to GameFormat : " + ex.Message.ToString());
}
}
return false;
}
#endregion
#region Memory Hack
/// <summary>
/// Genuine Hack, just blocking Axis and Triggers input to replace them.
/// </summary>
protected override void Apply_InputsMemoryHack()
{
SetHack_CoinKey();
//Disabling the calls to the functions overriding controls with IO board
//SetNops((UInt32)_TargetProcess_MemoryBaseAddress, _Nop_P1IoControls);
//SetNops((UInt32)_TargetProcess_MemoryBaseAddress, _Nop_P2IoControls);
//Removing Mouse events to have full controls on P1
//Shunt WM buttons message tests
WriteBytes((UInt32)_TargetProcess_MemoryBaseAddress + _Patch_MouseButtons_Offset, new byte[]{ 0xEB, 0x0D });
//Same thing for Axis
SetNops((UInt32)_TargetProcess_MemoryBaseAddress, _Nop_MouseAxis);
/*SetNops((UInt32)_TargetProcess_MemoryBaseAddress, _Nop_LbuttonUp);
SetNops((UInt32)_TargetProcess_MemoryBaseAddress, _Nop_RbuttonDown);
SetNops((UInt32)_TargetProcess_MemoryBaseAddress, _Nop_RbuttonUp);
SetNops((UInt32)_TargetProcess_MemoryBaseAddress, _Nop_MouseMove);
//If a gamepad is detected, looks like it's looping and overriding values
//This removes the whole loop, maybe just noping +10F5E / +10F70 is enough and less risky ?
SetNops((UInt32)_TargetProcess_MemoryBaseAddress, _Nop_GamePadLoop);
//Some other kind of devices reset buttons states too
SetNops((UInt32)_TargetProcess_MemoryBaseAddress, _Nop_HidLoopTrigger_1);
SetNops((UInt32)_TargetProcess_MemoryBaseAddress, _Nop_HidLoopTrigger_2);
//By default, this PC-version force the coins counter to 9 when displaying the start screen. Removing it....
SetNops((UInt32)_TargetProcess_MemoryBaseAddress, _Nop_InitCoinsCounter);
if (_HideCrosshair)
SetNops((UInt32)_TargetProcess_MemoryBaseAddress, _Nop_ShowCrosshairInGame);*/
Logger.WriteLog("Inputs Memory Hack complete !");
Logger.WriteLog("-");
}
/// <summary>
/// Coin KEY is set to ENTER and Handled in the message loop.
/// The original code is switching from the parameter value, and not simply comparing it, so we need to change the value before the switch.
/// </summary>
private void SetHack_CoinKey()
{
Codecave CaveMemory = new Codecave(_TargetProcess, _TargetProcess.MainModule.BaseAddress);
CaveMemory.Open();
CaveMemory.Alloc(0x800);
List<Byte> Buffer = new List<Byte>();
//cmp dword ptr [ebp+10],35
CaveMemory.Write_StrBytes("83 7D 10 35");
//jne Next
CaveMemory.Write_StrBytes("75 04");
//mov [ebp+10],0000000D
CaveMemory.Write_StrBytes("C6 45 10 0D");
//movsx edx,word ptr [ebp+14]
CaveMemory.Write_StrBytes("0F BF 55 14");
//push edx
CaveMemory.Write_StrBytes("52");
//Inject it
CaveMemory.InjectToOffset(_CoinKeyCode_InjectionStruct, "Coin KEY");
}
#endregion
#region Inputs
/// <summary>
/// Writing Axis and Buttons data in memory
/// </summary>
public override void SendInput(PlayerSettings PlayerData)
{
byte[] bufferX = BitConverter.GetBytes((UInt32)PlayerData.RIController.Computed_X);
byte[] bufferY = BitConverter.GetBytes((UInt32)PlayerData.RIController.Computed_Y);
if (PlayerData.ID == 1)
{
WriteBytes((UInt32)_TargetProcess_MemoryBaseAddress + _P1_X_Offset, bufferX);
WriteBytes((UInt32)_TargetProcess_MemoryBaseAddress + _P1_Y_Offset, bufferY);
if ((PlayerData.RIController.Computed_Buttons & RawInputcontrollerButtonEvent.OnScreenTriggerDown) != 0)
{
WriteByte((UInt32)_TargetProcess_MemoryBaseAddress + _P1_Trigger_Offset, 0x01);
}
if ((PlayerData.RIController.Computed_Buttons & RawInputcontrollerButtonEvent.OnScreenTriggerUp) != 0)
{
WriteByte((UInt32)_TargetProcess_MemoryBaseAddress + _P1_Trigger_Offset, 0x00);
}
//To reload, set back Gaz tank capacity to 1.0f (full)
if ((PlayerData.RIController.Computed_Buttons & RawInputcontrollerButtonEvent.ActionDown) != 0)
{
WriteBytes((UInt32)_TargetProcess_MemoryBaseAddress + _P1_Ammo_Offset, new byte[] { 0x00, 0x00, 0x80, 0x3F }); //1.0f
}
if ((PlayerData.RIController.Computed_Buttons & RawInputcontrollerButtonEvent.ActionUp) != 0)
{
//
}
if ((PlayerData.RIController.Computed_Buttons & RawInputcontrollerButtonEvent.OffScreenTriggerDown) != 0)
{
WriteBytes((UInt32)_TargetProcess_MemoryBaseAddress + _P1_Ammo_Offset, new byte[] { 0x00, 0x00, 0x80, 0x3F }); //1.0f
}
if ((PlayerData.RIController.Computed_Buttons & RawInputcontrollerButtonEvent.OffScreenTriggerUp) != 0)
{
//
}
}
else if (PlayerData.ID == 2)
{
WriteBytes((UInt32)_TargetProcess_MemoryBaseAddress + _P2_X_Offset, bufferX);
WriteBytes((UInt32)_TargetProcess_MemoryBaseAddress + _P2_Y_Offset, bufferY);
if ((PlayerData.RIController.Computed_Buttons & RawInputcontrollerButtonEvent.OnScreenTriggerDown) != 0)
{
WriteByte((UInt32)_TargetProcess_MemoryBaseAddress + _P2_Trigger_Offset, 0x01);
}
if ((PlayerData.RIController.Computed_Buttons & RawInputcontrollerButtonEvent.OnScreenTriggerUp) != 0)
{
WriteByte((UInt32)_TargetProcess_MemoryBaseAddress + _P2_Trigger_Offset, 0x00);
}
//To reload, set back Gaz tank capacity to 1.0f (full)
/*if ((PlayerData.RIController.Computed_Buttons & RawInputcontrollerButtonEvent.ActionDown) != 0)
{
WriteBytes((UInt32)_TargetProcess_MemoryBaseAddress + _P2_Ammo_Offset, new byte[] { 0x00, 0x00, 0x80, 0x3F }); //1.0f
}
if ((PlayerData.RIController.Computed_Buttons & RawInputcontrollerButtonEvent.ActionUp) != 0)
{
//
}
if ((PlayerData.RIController.Computed_Buttons & RawInputcontrollerButtonEvent.OffScreenTriggerDown) != 0)
{
WriteBytes((UInt32)_TargetProcess_MemoryBaseAddress + _P2_Ammo_Offset, new byte[] { 0x00, 0x00, 0x80, 0x3F }); //1.0f
}
if ((PlayerData.RIController.Computed_Buttons & RawInputcontrollerButtonEvent.OffScreenTriggerUp) != 0)
{
//
}*/
}
}
#endregion
}
}
================================================
FILE: DemulShooter/Games/Game.cs
================================================
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Security.Cryptography;
using System.Text;
using System.Timers;
using DsCore;
using DsCore.Config;
using DsCore.MameOutput;
using DsCore.Memory;
using DsCore.Win32;
namespace DemulShooter
{
public class Game
{
public delegate void GameHookedHandler(object sender, EventArgs e);
public event GameHookedHandler OnGameHooked;
//Games options
protected bool _NoAutoFire = false;
protected bool _HideCrosshair = false;
protected bool _HideGuns = false;
protected bool _DisableInputHack = false;
protected bool _DisableWindow = false;
protected string _CustomTargetProcessName = string.Empty;
protected bool _VerboseEnable;
protected bool _WidescreenHack = false ;
#region Process variables
protected System.Timers.Timer _tProcess;
protected String _RomName = string.Empty;
protected Process _TargetProcess;
protected String _Target_Process_Name = String.Empty;
protected IntPtr _TargetProcess_MemoryBaseAddress = IntPtr.Zero;
protected IntPtr _ProcessHandle = IntPtr.Zero;
protected IntPtr _GameWindowHandle = IntPtr.Zero;
//MD5 check of target binaries, may help to know if it's the wrong version or not compatible
protected Dictionary<string, string> _KnownMd5Prints;
protected String _TargetProcess_Md5Hash = string.Empty;
//Output values handling
protected List<GameOutput> _Outputs;
public List<GameOutput> Outputs
{
get { return _Outputs; }
}
protected bool _ProcessHooked;
public bool ProcessHooked
{
get { return _ProcessHooked; }
}
#endregion
#region Custom Databanks
protected UInt32 _InputsDatabank_Address = 0;
protected UInt32 _OutputsDatabank_Address = 0;
#endregion
#region Custom Outputs
protected int _P1_Life = 0;
protected int _P2_Life = 0;
protected int _P3_Life = 0;
protected int _P4_Life = 0;
protected int _P1_Ammo = 0;
protected int _P2_Ammo = 0;
protected int _P3_Ammo = 0;
protected int _P4_Ammo = 0;
protected int _P1_LastLife = 0;
protected int _P2_LastLife = 0;
protected int _P3_LastLife = 0;
protected int _P4_LastLife = 0;
protected int _P1_LastAmmo = 0;
protected int _P2_LastAmmo = 0;
protected int _P3_LastAmmo = 0;
protected int _P4_LastAmmo = 0;
#endregion
/// <summary>
/// Common constructor for every single games
/// </summary>
/// <param name="RomName">DemumShooter [-rom] Parameter</param>
/// <param name="TargetProcessName">Executable name to hook in process list</param>
/// <param name="Verbose">Create a debug.txt file if TRUE</param>
public Game(String RomName, String TargetProcessName)
{
GetGameOptions();
_KnownMd5Prints = new Dictionary<String, String>();
GetScreenResolution();
Logger.WriteLog("Windows screen scaling : " + GetScreenScaling());
_WindowRect = new Rect();
_clientWindowLocation = new POINT(0, 0);
_RomName = RomName;
_ProcessHooked = false;
_Target_Process_Name = _CustomTargetProcessName == string.Empty ? TargetProcessName : _CustomTargetProcessName;
Logger.WriteLog("Target process name : " + _Target_Process_Name + ".exe");
CreateOutputList();
_tProcess = new System.Timers.Timer();
_tProcess.Interval = 500;
_tProcess.Elapsed += new ElapsedEventHandler(tProcess_Elapsed);
_tProcess.Enabled = true;
}
~Game()
{
if (_XOutputManager != null)
{
if (_Player1_X360_Gamepad_Port != 0)
UninstallX360Gamepad(1);
if (_Player2_X360_Gamepad_Port != 0)
UninstallX360Gamepad(2);
}
}
protected virtual void tProcess_Elapsed(Object sender, EventArgs e)
{}
/// <summary>
/// Raise custom event to main window (to change TrayIcon status)
/// </summary>
protected void RaiseGameHookedEvent()
{
// Make sure someone is listening to event
if (OnGameHooked == null) return;
OnGameHooked(this, new EventArgs());
}
private void GetGameOptions()
{
string[] sArgs = Environment.GetCommandLineArgs();
foreach (string sOption in sArgs)
{
if (sOption.ToLower().Equals("-noautofire"))
{
_NoAutoFire = true;
}
else if (sOption.ToLower().Equals("-nocrosshair"))
{
_HideCrosshair = true;
}
else if (sOption.ToLower().Equals("-nogun"))
{
_HideGuns = true;
}
else if (sOption.ToLower().Equals("-noinput"))
{
_DisableInputHack = true;
}
else if (sOption.ToLower().Equals("-noresize"))
{
_DisableWindow = true;
}
else if (sOption.ToLower().StartsWith("-pname="))
{
_CustomTargetProcessName = (sOption.ToLower().Split('='))[1].Trim();
if (_CustomTargetProcessName.EndsWith(".exe"))
_CustomTargetProcessName = _CustomTargetProcessName.Substring(0, _CustomTargetProcessName.Length - 4);
}
else if (sOption.ToLower().Equals("-v"))
{
_VerboseEnable = true;
}
else if (sOption.ToLower().Equals("-widescreen"))
{
_WidescreenHack = true;
}
}
}
#region MD5 Verification
/// <summary>
/// Compute the MD5 hash of the target executable and compare it to the known list of MD5 Hashes
/// This can be usefull if people are using some unknown dump with different memory,
/// or a wrong version of emulator
/// This is absolutely not blocking, just for debuging with output log
/// </summary>
protected void CheckExeMd5()
{
CheckMd5(_TargetProcess.MainModule.FileName);
}
protected void CheckMd5(String TargetFileName)
{
GetMd5HashAsString(TargetFileName);
Logger.WriteLog("MD5 hash of " + TargetFileName + " = " + _TargetProcess_Md5Hash);
String FoundMd5 = String.Empty;
foreach (KeyValuePair<String, String> pair in _KnownMd5Prints)
{
if (pair.Value.ToLower() == _TargetProcess_Md5Hash)
{
FoundMd5 = pair.Key;
break;
}
}
if (FoundMd5 == String.Empty)
{
Logger.WriteLog(@"/!\ MD5 Hash unknown, DemulShooter may not work correctly with this target /!\");
}
else
{
Logger.WriteLog("MD5 Hash is corresponding to a known target = " + FoundMd5);
}
}
/// <summary>
/// Compute the MD5 hash from the target file.
/// </summary>
/// <param name="FileName">Full filepath of the targeted executable.</param>
private void GetMd5HashAsString(String FileName)
{
if (File.Exists(FileName))
{
using (var md5 = MD5.Create())
{
using (var stream = File.OpenRead(FileName))
{
var hash = md5.ComputeHash(stream);
_TargetProcess_Md5Hash = BitConverter.ToString(hash).Replace("-", "").ToLowerInvariant();
}
}
}
}
#endregion
#region Screen
protected int _screenWidth;
public int ScreenWidth
{
get { return _screenWidth; }
}
protected int _screenHeight;
public int ScreenHeight
{
get { return _screenHeight; }
}
protected int _screenCursorPosX;
public int screenCursorPosX
{
get { return _screenCursorPosX; }
set { _screenCursorPosX = value; }
}
protected int _screenCursorPosY;
public int screenCursorPosY
{
get { return _screenCursorPosY; }
set { _screenCursorPosY = value; }
}
protected Rect _WindowRect;
public Rect WindowRect
{
get { return _WindowRect; }
set { _WindowRect = value; }
}
protected POINT _clientWindowLocation;
public POINT clientWindowLocation
{
get { return _clientWindowLocation; }
set { _clientWindowLocation = value; }
}
protected Rect _ClientRect;
public Rect ClientRect
{
get { return _ClientRect; }
set { _ClientRect = value; }
}
protected bool _IsFullscreen;
public bool IsFullscreen
{
get { return _IsFullscreen; }
set { _IsFullscreen = value; }
}
/// <summary>
/// HKEY_CURRENT_USER\Control Panel\Desktop\
///Key: LogPixels
///Values:
///96 – Smaller 100%
///120 – Medium 125%
///144 - Larger 150%
///192 – Extra Large 200%
///240 – Custom 250%
///288 – Custom 300%
///384 – Custom 400%
///480 – Custom 500%*/
/// </summary>
private string GetScreenScaling()
{
IntPtr desktopDc = Win32API.GetDC(IntPtr.Zero);
// Get native resolution
//#DEFINE LOGPIXELSX 88
//#DEFINE LOGPIXELSY 90
int horizontalDPI = Win32API.GetDeviceCaps(desktopDc, 88);
int verticalDPI = Win32API.GetDeviceCaps(desktopDc, 90);
return (horizontalDPI * 100 / 96).ToString() + "% (HorizontalDPI=" + horizontalDPI + ", VerticalDPI=" + verticalDPI + ")";
/*switch (horizontalDPI.ToString())
{
case "96": return "100%";
case "120": return "125%";
case "144": return "150%";
case "192": return "200%";
case "240": return "250%";
case "288": return "300%";
case "384": return "400%";
case "480": return "500%";
default: return @"Unknown value : " + horizontalDPI.ToString();
}*/
}
public virtual bool GetFullscreenStatus()
{
QUERY_USER_NOTIFICATION_STATE state;
int r = Win32API.SHQueryUserNotificationState(out state);
if (r == 0)
{
Logger.WriteLog("NotificationState: " + state.ToString());
switch (state)
{
// A screen saver is displayed, the machine is locked, or a nonactive Fast User Switching session is in progress.
case QUERY_USER_NOTIFICATION_STATE.QUNS_NOT_PRESENT: return false;
// A full-screen application is running or Presentation Settings are applied. Presentation Settings allow a user to put their machine into a state fit for an uninterrupted presentation, such as a set of PowerPoint slides, with a single click.
case QUERY_USER_NOTIFICATION_STATE.QUNS_BUSY: return true;
// A full-screen (exclusive mode) Direct3D application is running.
case QUERY_USER_NOTIFICATION_STATE.QUNS_RUNNING_D3D_FULL_SCREEN: return true;
// The user has activated Windows presentation settings to block notifications and pop-up messages.
case QUERY_USER_NOTIFICATION_STATE.QUNS_PRESENTATION_MODE: return false;
// None of the other states are found, notifications can be freely sent.
case QUERY_USER_NOTIFICATION_STATE.QUNS_ACCEPTS_NOTIFICATIONS: return false;
// We are in OOBE quiet period
case QUERY_USER_NOTIFICATION_STATE.QUNS_QUIET_TIME: return false;
// A Windows Store app is running.
case QUERY_USER_NOTIFICATION_STATE.QUNS_APP: return false;
default: return false;
}
}
else
{
Logger.WriteLog("Error running SHQueryUserNotificationState: " + r.ToString());
return false;
}
}
public virtual void GetScreenResolution()
{
_screenWidth = Win32API.GetSystemMetrics(SystemMetricsIndex.SM_CXSCREEN);
_screenHeight = Win32API.GetSystemMetrics(SystemMetricsIndex.SM_CYSCREEN);
/*_screenWidth = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width;
_screenHeight = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height;*/
}
public void GetScreenresolution2()
{
IntPtr hDesktop = Win32API.GetDesktopWindow();
Rect DesktopRect = new Rect();
Win32API.GetWindowRect(hDesktop, ref DesktopRect);
_screenWidth = DesktopRect.Right;
_screenHeight = DesktopRect.Bottom;
}
/// <summary>
/// Contains value inside min-max range
/// </summary>
protected int Clamp(int val, int minVal, int maxVal)
{
if (val > maxVal) return maxVal;
else if (val < minVal) return minVal;
else return val;
}
/// <summary>
/// Transforming 0x0000-0xFFFF absolute rawdata to absolute x,y position on Desktop resolution
/// </summary>
public int ScreenScale(int val, int fromMinVal, int fromMaxVal, int toMinVal, int toMaxVal)
{
return ScreenScale(val, fromMinVal, fromMinVal, fromMaxVal, toMinVal, toMinVal, toMaxVal);
}
protected int ScreenScale(int val, int fromMinVal, int fromOffVal, int fromMaxVal, int toMinVal, int toOffVal, int toMaxVal)
{
double fromRange;
double frac;
if (fromMaxVal > fromMinVal)
{
val = Clamp(val, fromMinVal, fromMaxVal);
if (val > fromOffVal)
{
fromRange = (double)(fromMaxVal - fromOffVal);
frac = (double)(val - fromOffVal) / fromRange;
}
else if (val < fromOffVal)
{
fromRange = (double)(fromOffVal - fromMinVal);
frac = (double)(val - fromOffVal) / fromRange;
}
else
return toOffVal;
}
else if (fromMinVal > fromMaxVal)
{
val = Clamp(val, fromMaxVal, fromMinVal);
if (val > fromOffVal)
{
fromRange = (double)(fromMinVal - fromOffVal);
frac = (double)(fromOffVal - val) / fromRange;
}
else if (val < fromOffVal)
{
fromRange = (double)(fromOffVal - fromMaxVal);
frac = (double)(fromOffVal - val) / fromRange;
}
else
return toOffVal;
}
else
return toOffVal;
double toRange;
if (toMaxVal > toMinVal)
{
if (frac >= 0)
toRange = (double)(toMaxVal - toOffVal);
else
toRange = (double)(toOffVal - toMinVal);
return toOffVal + (int)(toRange * frac);
}
else
{
if (frac >= 0)
toRange = (double)(toOffVal - toMaxVal);
else
toRange = (double)(toMinVal - toOffVal);
return toOffVal - (int)(toRange * frac);
}
}
/// <summary>
/// Convert screen location of pointer to Client area location
/// </summary>
public virtual bool ClientScale(PlayerSettings PlayerData)
{
//Retrieve info for debug/replay purpose
GetClientwindowInfo();
//Convert Screen location to Client location
if (_TargetProcess != null)
{
POINT p = new POINT(PlayerData.RIController.Computed_X, PlayerData.RIController.Computed_Y);
if (Win32API.ScreenToClient(_GameWindowHandle, ref p))
{
PlayerData.RIController.Computed_X = (p.X);
PlayerData.RIController.Computed_Y = (p.Y);
return true;
}
else
return false;
}
else
return false;
}
public void GetClientwindowInfo()
{
if (_TargetProcess != null)
{
if (Win32API.GetWindowRect(_GameWindowHandle, ref _WindowRect))
{
_clientWindowLocation.X = _WindowRect.Left;
_clientWindowLocation.Y = _WindowRect.Top;
}
else
{
_clientWindowLocation.X = 0;
_clientWindowLocation.Y = 0;
}
}
}
/// <summary>
/// Get the Client rect to translate axis coordinate to game coordinates
/// Only used in windowed Mode
/// </summary>
public virtual bool GetClientRect()
{
//Window size
_ClientRect = new Rect();
if (Win32API.GetClientRect(_GameWindowHandle, ref _ClientRect))
return true;
else
return false;
}
/// <summary>
/// Convert client area pointer location to Game speciffic data for memory injection
/// </summary>
public virtual bool GameScale(PlayerSettings PlayerData)
{
if (_ProcessHandle != IntPtr.Zero)
{
try
{
double TotalResX = _ClientRect.Right - _ClientRect.Left;
double TotalResY = _ClientRect.Bottom - _ClientRect.Top;
Logger.WriteLog("Game Window Rect (Px) = [ " + TotalResX + "x" + TotalResY + " ]");
if (PlayerData.RIController.Computed_X < 0)
PlayerData.RIController.Computed_X = 0;
if (PlayerData.RIController.Computed_Y < 0)
PlayerData.RIController.Computed_Y = 0;
if (PlayerData.RIController.Computed_X > (int)TotalResX)
PlayerData.RIController.Computed_X= (int)TotalResX;
if (PlayerData.RIController.Computed_Y > (int)TotalResX)
PlayerData.RIController.Computed_X = (int)TotalResY;
return true;
}
catch (Exception ex)
{
Logger.WriteLog("Error scaling mouse coordonates to GameFormat : " + ex.Message.ToString());
}
}
return false;
}
#endregion
#region Game Configuration
/// <summary>
/// Read memory values in .cfg file, whose name depends on the targeted system
/// Used for DEMUL targets
/// </summary>
protected virtual void ReadGameData()
{ }
/// <summary>
/// Read memory values in .cfg file, whose name depends on the MD5 hash of the targeted exe.
/// Mostly used for PC games
/// </summary>
/// <param name="GameData_Folder"></param>
protected virtual void ReadGameDataFromMd5Hash(String GameData_Folder)
{
String ConfigFile = AppDomain.CurrentDomain.BaseDirectory + GameData_Folder + @"\" + _TargetProcess_Md5Hash + ".cfg";
if (File.Exists(ConfigFile))
{
Logger.WriteLog("Reading game memory setting from " + ConfigFile);
using (StreamReader sr = new StreamReader(ConfigFile))
{
String line;
String FieldName = String.Empty;
line = sr.ReadLine();
while (line != null)
{
if (!line.StartsWith(";"))
{
String[] buffer = line.Split('=');
if (buffer.Length > 1)
{
try
{
FieldName = "_" + buffer[0].Trim();
if (buffer[0].Contains("Nop"))
{
NopStruct n = new NopStruct(buffer[1].Trim());
this.GetType().GetField(FieldName, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.IgnoreCase).SetValue(this, n);
Logger.WriteLog(FieldName + " successfully set to following value : 0x" + n.MemoryOffset.ToString("X8") + "|" + n.Length.ToString());
}
else if (buffer[0].Contains("InjectionStruct"))
{
InjectionStruct n = new InjectionStruct(buffer[1].Trim());
this.GetType().GetField(FieldName, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.IgnoreCase).SetValue(this, n);
Logger.WriteLog(FieldName + " successfully set to following value : 0x" + n.InjectionOffset.ToString("X8") + "|" + n.Length.ToString());
}
else if (buffer[0].Contains("DIK"))
{
HardwareScanCode sc = (HardwareScanCode)Enum.Parse(typeof(HardwareScanCode), buffer[1].Trim());
this.GetType().GetField(FieldName, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.IgnoreCase).SetValue(this, sc);
Logger.WriteLog(FieldName + " successfully set to following value :" + sc.ToString());
}
else if (buffer[0].Contains("VK"))
{
VirtualKeyCode vk = (VirtualKeyCode)Enum.Parse(typeof(VirtualKeyCode), buffer[1].Trim());
this.GetType().GetField(FieldName, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.IgnoreCase).SetValue(this, vk);
Logger.WriteLog(FieldName + " successfully set to following value :" + vk.ToString());
}
else
{
UInt32 v = UInt32.Parse(buffer[1].Substring(3).Trim(), NumberStyles.HexNumber);
this.GetType().GetField(FieldName, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.IgnoreCase).SetValue(this, v);
Logger.WriteLog(FieldName + " successfully set to following value : 0x" + v.ToString("X8"));
}
}
catch (Exception ex)
{
Logger.WriteLog("Error reading game data for " + FieldName + " : " + ex.Message.ToString());
}
}
}
line = sr.ReadLine();
}
sr.Close();
}
}
else
{
Logger.WriteLog("File not found : " + ConfigFile);
}
}
#endregion
#region Memory Hack x86
protected virtual void Apply_MemoryHacks()
{
if (!_DisableInputHack)
Apply_InputsMemoryHack();
else
Logger.WriteLog("Input Hack disabled");
Apply_OutputsMemoryHack();
if (_HideCrosshair)
{
Logger.WriteLog("Applying No-Crosshair hack...");
Apply_NoCrosshairMemoryHack();
}
}
protected virtual void Apply_InputsMemoryHack()
{}
protected virtual void Create_InputsDataBank()
{
try
{
Codecave CaveMemoryInputs = new Codecave(_TargetProcess, _TargetProcess_MemoryBaseAddress);
CaveMemoryInputs.Open();
CaveMemoryInputs.Alloc(0x800);
_InputsDatabank_Address = CaveMemoryInputs.CaveAddress;
Logger.WriteLog("Custom input data will be stored at : 0x" + CaveMemoryInputs.CaveAddress.ToString("X8"));
}
catch (Exception Ex)
{
Logger.WriteLog("Impossible to create Inputs Databank : " + Ex.Message);
}
}
protected virtual void Apply_OutputsMemoryHack()
{}
protected virtual void Create_OutputsDataBank()
{
try{
Codecave CaveMemoryOutputs = new Codecave(_TargetProcess, _TargetProcess_MemoryBaseAddress);
CaveMemoryOutputs.Open();
CaveMemoryOutputs.Alloc(0x800);
_OutputsDatabank_Address = CaveMemoryOutputs.CaveAddress;
Logger.WriteLog("Custom output data will be stored at : 0x" + CaveMemoryOutputs.CaveAddress.ToString("X8"));
}
catch (Exception Ex)
{
Logger.WriteLog("Impossible to create Outputs Databank : " + Ex.Message);
}
}
protected virtual void Apply_NoCrosshairMemoryHack()
{}
public virtual void SendInput(PlayerSettings PlayerData)
{}
protected Byte ReadByte(UInt32 Address)
{
byte[] Buffer = { 0 };
UInt32 bytesRead = 0;
if (!Win32API.ReadProcessMemory(_ProcessHandle, Address, Buffer, 1, ref bytesRead))
{
Logger.WriteLog("Cannot read memory at address 0x" + Address.ToString("X8"));
}
return Buffer[0];
}
protected Byte[] ReadBytes(UInt32 Address, UInt32 BytesCount)
{
byte[] Buffer = new byte[BytesCount];
UInt32 bytesRead = 0;
if (!Win32API.ReadProcessMemory(_ProcessHandle, Address, Buffer, (UInt32)Buffer.Length, ref bytesRead))
{
Logger.WriteLog("Cannot read memory at address 0x" + Address.ToString("X8"));
}
return Buffer;
}
protected UInt32 ReadPtr(UInt32 PtrAddress)
{
byte[] Buffer = ReadBytes(PtrAddress, 4);
return BitConverter.ToUInt32(Buffer, 0);
}
protected UInt32 ReadPtrChain(UInt32 BaseAddress, UInt32[] Offsets)
{
byte[] Buffer = ReadBytes(BaseAddress, 4);
UInt32 Ptr = BitConverter.ToUInt32(Buffer, 0);
if (Ptr == 0)
{
return 0;
}
else
{
for (int i = 0; i < Offsets.Length; i++)
{
Buffer = ReadBytes(Ptr + Offsets[i], 4);
Ptr = BitConverter.ToUInt32(Buffer, 0);
if (Ptr == 0)
return 0;
}
}
return Ptr;
}
protected bool WriteByte(UInt32 Address, byte Value)
{
UInt32 bytesWritten = 0;
Byte[] Buffer = { Value };
if (Win32API.WriteProcessMemory(_ProcessHandle, Address, Buffer, 1, ref bytesWritten))
{
if (bytesWritten == 1)
return true;
else
return false;
}
else
return false;
}
protected bool WriteBytes(UInt32 Address, byte[] Buffer)
{
UInt32 bytesWritten = 0;
if (Win32API.WriteProcessMemory(_ProcessHandle, Address, Buffer, (UInt32)Buffer.Length, ref bytesWritten))
{
if (bytesWritten == Buffer.Length)
return true;
else
return false;
}
else
return false;
}
protected void SetNops(UInt32 BaseAddress, NopStruct Nop)
{
for (UInt32 i = 0; i < Nop.Length; i++)
{
UInt32 Address = (UInt32)BaseAddress + Nop.MemoryOffset + i;
if (!WriteByte(Address, 0x90))
{
Logger.WriteLog("Impossible to NOP address 0x" + Address.ToString("X8"));
break;
}
}
}
protected void Apply_OR_ByteMask(UInt32 MemoryAddress, byte Mask)
{
byte b = ReadByte(MemoryAddress);
b |= Mask;
WriteByte(MemoryAddress, b);
}
protected void Apply_AND_ByteMask(UInt32 MemoryAddress, byte Mask)
{
byte b = ReadByte(MemoryAddress);
b &= Mask;
WriteByte(MemoryAddress, b);
}
#endregion
#region MAME-Like Outputs
protected virtual void CreateOutputList()
{
_Outputs = new List<GameOutput>();
}
public virtual void UpdateOutputValues()
{ }
public void SetMamePauseState(bool PauseState)
{
if (PauseState)
SetOutputValue(OutputId.MamePause, 1);
else
SetOutputValue(OutputId.MamePause, 0);
}
/// <summary>
/// Return a GameOutput object corresponding to a desired GameOutputId
/// </summary>
/// <param name="Id">Desired GameOutputId</param>
/// <returns>Desired GameOutput object</returns>
protected GameOutput GetOutputById(OutputId Id)
{
foreach (GameOutput CurrentOutput in _Outputs)
{
if (CurrentOutput.Id == (uint)Id)
return CurrentOutput;
}
return null;
}
/// <summary>
/// Update a value for the desired GameOutput
/// </summary>
/// <param name="Id">GameOutput Id to update</param>
/// <param name="Value">Value to update the GameOutput object</param>
protected void SetOutputValue(OutputId Id, int Value)
{
foreach (GameOutput CurrentOutput in _Outputs)
{
if (CurrentOutput.Id == (uint)Id)
{
CurrentOutput.OutputValue = Value;
break;
}
}
}
/// <summary>
/// Return the Text description for a desired Id
/// </summary>
/// <param name="Id">Desired GameOutput Id</param>
/// <returns>GameOutput string description</returns>
public String GetOutputDescriptionFromId(uint Id)
{
foreach (GameOutput o in _Outputs)
{
if (o.Id == Id)
return o.Name;
}
return String.Empty;
}
#endregion
#region XOutput
protected XOutput _XOutputManager = null;
protected int _Player1_X360_Gamepad_Port = 0;
protected int _Player2_X360_Gamepad_Port = 0;
/// <summary>
/// Create and plug a virtual XInput device
/// </summary>
/// <param name="Player">XInput ID of the device to create and plug (From 1 To 4)</param>
protected virtual void InstallX360Gamepad(int Player)
{
if (_XOutputManager != null)
{
if (_XOutputManager.isVBusExists())
{
for (int i = 1; i < 5; i++)
{
if (_XOutputManager.PlugIn(i))
{
if (Player == 1)
{
Logger.WriteLog("Plugged P1 virtual Gamepad to port " + i.ToString());
_Player1_X360_Gamepad_Port = i;
}
else if (Player == 2)
{
Logger.WriteLog("Plugged P2 virtual Gamepad to port " + i.ToString());
_Player2_X360_Gamepad_Port = i;
}
break;
}
else
Logger.WriteLog("Failed to plug virtual GamePad to port " + i.ToString() + ". (Port already used ?)");
}
}
else
{
Logger.WriteLog("ScpBus driver not found or not installed");
}
}
else
{
Logger.WriteLog("XOutputManager Creation Failed !");
}
}
protected bool UninstallX360Gamepad(int Player)
{
if (_XOutputManager != null)
{
if (Player == 1 && _Player1_X360_Gamepad_Port != 0)
{
if (_XOutputManager.Unplug(_Player1_X360_Gamepad_Port, true))
{
Logger.WriteLog("Succesfully unplug P1 virtual Gamepad on port " + _Player1_X360_Gamepad_Port.ToString());
return true;
}
else
{
Logger.WriteLog("Failed to unplug P1 virtual Gamepad on port " + _Player1_X360_Gamepad_Port.ToString());
return false;
}
}
else if (Player == 2 && _Player2_X360_Gamepad_Port != 0)
{
if (_XOutputManager.Unplug(_Player2_X360_Gamepad_Port, true))
{
Logger.WriteLog("Succesfully unplug P2 virtual Gamepad on port " + _Player2_X360_Gamepad_Port.ToString());
return true;
}
else
{
Logger.WriteLog("Failed to unplug P2 virtual Gamepad on port " + _Player2_X360_Gamepad_Port.ToString());
return false;
}
}
}
return true;
}
#endregion
#region Keyboard SendKeys
/// <summary>
/// Simulate a keyboard key action (up or down)
/// </summary>
/// <param name="Keycode">Hardware ScanCode of the key to simulate</param>
/// <param name="KeybdInputFlags">State of the key. (0=Down, 1 = Up)</param>
private void SendKey(HardwareScanCode Keycode, KeybdInputFlags KeybdInputFlags)
{
INPUT[] InputData = new INPUT[1];
InputData[0].type = InputType.INPUT_KEYBOARD;
InputData[0].ki.wScan = Keycode;
InputData[0].ki.dwFlags = KeybdInputFlags;
InputData[0].ki.time = 0;
InputData[0].ki.dwExtraInfo = IntPtr.Zero;
if ( Win32API.SendInput(1, InputData, Marshal.SizeOf(typeof(INPUT))) == 0)
{
Logger.WriteLog("SendInput API failed : wScan=" + Keycode.ToString() + ", dwFlags=" + KeybdInputFlags.ToString());
Logger.WriteLog("GetLastError returned : " + Marshal.GetLastWin32Error().ToString());
}
}
/// <summary>
/// Send KeyUp and KeyDown separated by a desired delay
/// </summary>
/// <param name="Keycode">DirectInput Keycode (hardware scan code)</param>
/// <param name="DelayPressed">Delay in milliseconds</param>
protected void SendKeyStroke(HardwareScanCode Keycode, int DelayPressed)
{
SendKeyDown(Keycode);
System.Threading.Thread.Sleep(DelayPressed);
SendKeyUp(Keycode);
}
protected void SendKeyDown(HardwareScanCode Keycode)
{
SendKey(Keycode, KeybdInputFlags.KEYEVENTF_SCANCODE);
}
protected void SendKeyUp(HardwareScanCode Keycode)
{
SendKey(Keycode, KeybdInputFlags.KEYEVENTF_KEYUP | KeybdInputFlags.KEYEVENTF_SCANCODE);
}
/// <summary>
/// VirtualKeyCode inputs to send
/// </summary>
/// <param name="Keycode"></param>
protected void Send_VK_KeyDown(VirtualKeyCode Keycode)
{
Win32API.keybd_event(Keycode, 0, KeybdInputFlags.KEYEVENTF_EXTENDEDKEY | 0, 0);
}
protected void Send_VK_KeyUp(VirtualKeyCode Keycode)
{
Win32API.keybd_event(Keycode, 0, KeybdInputFlags.KEYEVENTF_EXTENDEDKEY | KeybdInputFlags.KEYEVENTF_KEYUP, 0);
}
/// <summary>
/// Convert a HardwareScanCode to a corresponding VirtualKeyCode
/// </summary>
/// <param name="ScanCode">Hardware Scancode to convert</param>
/// <returns></returns>
public VirtualKeyCode MapScanCodeToVirtualKeyCode(HardwareScanCode ScanCode)
{
UInt32 Vk = Win32API.MapVirtualKey((UInt32)ScanCode, VirtualKeyMapType.MAPVK_VSC_TO_VK);
return (VirtualKeyCode)Vk;
}
/// <summary>
/// Convert a VirtualScanCode to a corresponding HardwareScanCode
/// </summary>
/// <param name="ScanCode">Hardware Scancode to convert</param>
/// <returns></returns>
public HardwareScanCode MapScanCodeToVirtualKeyCode(VirtualKeyCode ScanCode)
{
UInt32 Vk = Win32API.MapVirtualKey((UInt32)ScanCode, VirtualKeyMapType.MAPVK_VK_TO_VSC);
return (HardwareScanCode)Vk;
}
#endregion
#region LowLevel Hooks
/// <summary>
/// Low-Level mouse hook callback to process data.
/// This procedure will be override by each Game according to it's needs
/// </summary>
public virtual IntPtr MouseHookCallback(IntPtr MouseHookID, int nCode, IntPtr wParam, IntPtr lParam)
{
return Win32API.CallNextHookEx(MouseHookID, nCode, wParam, lParam);
}
/// <summary>
/// Low-Level keyboard hook callback to process data.
/// This procedure will be override by each Game according to it's needs
/// </summary>
public virtual IntPtr KeyboardHookCallback(IntPtr KeyboardHookID, int nCode, IntPtr wParam, IntPtr lParam)
{
return Win32API.CallNextHookEx(KeyboardHookID, nCode, wParam, lParam);
}
#endregion
/// <summary>
/// Select a specific window from the target process where the title contains a wanted string
/// </summary>
/// <param name="TargetWindowTitle"></param>
/// <returns></returns>
protected bool FindGameWindow_Contains(string TargetWindowTitle)
{
foreach (IntPtr handle in EnumerateProcessWindowHandles(_TargetProcess.Id))
{
int length = Win32API.GetWindowTextLength(handle);
if (length >= 0)
{
StringBuilder builder = new StringBuilder(length);
Win32API.GetWindowText(handle, builder, length + 1);
string WindowTitle = builder.ToString();
Logger.WriteLog("Found a window : Handle = 0x" + handle.ToString("X8") + ", Title = " + WindowTitle);
if (WindowTitle.StartsWith("FPS:") || WindowTitle.ToLower().Contains(TargetWindowTitle.ToLower()))
{
_GameWindowHandle = handle;
Logger.WriteLog("=> Selecting 0x" + handle.ToString("X8") + " as game Window Handle");
Logger.WriteLog("Attached to Process " + _Target_Process_Name + ".exe, ProcessHandle = " + _ProcessHandle);
Logger.WriteLog(_Target_Process_Name + ".exe = 0x" + _TargetProcess_MemoryBaseAddress.ToString("X16"));
Logger.WriteLog("MainWindowHandle = 0x" + _TargetProcess.MainWindowHandle.ToString("X16"));
Logger.WriteLog("MainWindowTitle = " + _TargetProcess.MainWindowTitle);
return true;
}
}
}
return false;
}
/// <summary>
/// Select a specific window from the target process where the title is excatly the specific string
/// </summary>
/// <param name="TargetWindowTitle"></param>
/// <returns></returns>
protected bool FindGameWindow_Equals(string TargetWindowTitle)
{
foreach (IntPtr handle in EnumerateProcessWindowHandles(_TargetProcess.Id))
{
int length = Win32API.GetWindowTextLength(handle);
if (length >= 0)
{
StringBuilder builder = new StringBuilder(length);
Win32API.GetWindowText(handle, builder, length + 1);
string WindowTitle = builder.ToString();
Logger.WriteLog("Found a window : Handle = 0x" + handle.ToString("X8") + ", Title = " + WindowTitle);
if (WindowTitle.StartsWith("FPS:") || WindowTitle.Equals(TargetWindowTitle))
{
_GameWindowHandle = handle;
Logger.WriteLog("=> Selecting 0x" + handle.ToString("X8") + " as game Window Handle");
Logger.WriteLog("Attached to Process " + _Target_Process_Name + ".exe, ProcessHandle = " + _ProcessHandle);
Logger.WriteLog(_Target_Process_Name + ".exe = 0x" + _TargetProcess_MemoryBaseAddress.ToString("X16"));
Logger.WriteLog("MainWindowHandle = 0x" + _TargetProcess.MainWindowHandle.ToString("X16"));
Logger.WriteLog("MainWindowTitle" + _TargetProcess.MainWindowTitle);
return true;
}
}
}
return false;
}
/// <summary>
/// Get the list of Windows for a given process
/// </summary>
protected static IEnumerable<IntPtr> EnumerateProcessWindowHandles(int processId)
{
List<IntPtr> handles = new List<IntPtr>();
foreach (ProcessThread thread in Process.GetProcessById(processId).Threads)
{
Win32API.EnumThreadWindows(thread.Id, (hWnd, lParam) => { handles.Add(hWnd); return true; }, IntPtr.Zero);
}
return handles;
}
/// <summary>
/// Get the Window Title
/// </summary>
/// <returns></returns>
protected string Get_GameWindowTitle()
{
string sTitle = string.Empty;
int length = Win32API.GetWindowTextLength(_GameWindowHandle);
if (length >= 0)
{
StringBuilder builder = new StringBuilder(length);
Win32API.GetWindowText(_GameWindowHandle, builder, length + 1);
sTitle = builder.ToString();
}
return sTitle;
}
/// <summary>
/// Check a series of bytes agains some awaited values
/// </summary>
protected bool CheckBytes(UInt32 AddressToCheck, byte[] BytesToFind)
{
Logger.WriteLog("Checking Bytes at 0x" + AddressToCheck.ToString("X8") + "...");
byte[] ReadBuffer = ReadBytes(AddressToCheck, (uint)BytesToFind.Length);
for (int i = 0; i < BytesToFind.Length; i++)
{
Logger.WriteLog("Read: 0x" + ReadBuffer[i].ToString("X2") + ", Awaited: 0x" + BytesToFind[i].ToString("X2"));
if (ReadBuffer[i] != BytesToFind[i])
return false;
}
return true;
}
}
}
================================================
FILE: DemulShooter/Games/Game_ArcadePcWaterSprite2.cs
================================================
using System;
using System.Collections.Generic;
using DsCore;
using DsCore.Config;
using DsCore.IPC;
using DsCore.MameOutput;
namespace DemulShooter.Games
{
public class Game_ArcadepcWaterSprite2 : Game__Unity
{
private class InputData : Base_InputData
{
public float[] Axis_X = null;
public float[] Axis_Y = null;
public InputData(int PlayerNumber) : base(PlayerNumber)
{
}
}
private class OutputData : Base_OutputData
{
public byte[] IsPlaying = null;
public byte[] WaterFire = null;
public byte WaterPump = 0;
public byte GameLed = 0;
public byte[] StartLed = null;
public byte[] TicketFeeder = null;
public byte[] BigGun = null;
public byte[] Damaged = null;
public int[] Credits = null;
public OutputData(int PlayerNumber) : base(PlayerNumber)
{
}
}
private const int MAX_PLAYERS = 2;
/// <summary>
/// Constructor
/// </summary>
public Game_ArcadepcWaterSprite2(String RomName)
: base(RomName, "SpriteT2_EN", "SpriteT2_EN")
{
_KnownMd5Prints.Add("Happy Water Sprite 2 - v1.2", "f5cda675424c894c781e82cf9c4d61b0");
_InputData = new InputData(MAX_PLAYERS);
_OutputData = new OutputData(MAX_PLAYERS);
_tProcess.Start();
Logger.WriteLog("Waiting for " + _RomName + " game to hook.....");
}
#region Inputs
/// <summary>
/// Writing Axis and Buttons data in memory
/// </summary>
public override void SendInput(PlayerSettings PlayerData)
{
if (!_DisableInputHack && PlayerData.ID <= MAX_PLAYERS)
{
float AxisX = PlayerData.RIController.Computed_X;
float AxisY = PlayerData.RIController.Computed_Y;
((InputData)_InputData).Axis_X[PlayerData.ID - 1] = AxisX;
((InputData)_InputData).Axis_Y[PlayerData.ID - 1] = AxisY;
if (_HideCrosshair)
_InputData.HideCrosshairs = 1;
else
_InputData.HideCrosshairs = 0;
_Tcpclient.SendMessage(_InputData.ToByteArray());
}
}
#endregion
#region Outputs
/// <summary>
/// Create the Output list that we will be looking for and forward to MameHooker
/// </summary>
protected override void CreateOutputList()
{
_Outputs = new List<GameOutput>();
_Outputs.Add(new SyncBlinkingGameOutput(OutputId.P1_LmpStart, 100));
_Outputs.Add(new SyncBlinkingGameOutput(OutputId.P2_LmpStart, 100));
_Outputs.Add(new GameOutput(OutputId.P1_WaterFire));
_Outputs.Add(new GameOutput(OutputId.P2_WaterFire));
_Outputs.Add(new GameOutput(OutputId.WaterPump));
_Outputs.Add(new GameOutput(OutputId.LmpUpperCtrlPanel));
_Outputs.Add(new GameOutput(OutputId.P1_BigGun));
_Outputs.Add(new GameOutput(OutputId.P2_BigGun));
_Outputs.Add(new GameOutput(OutputId.P1_TicketFeeder));
_Outputs.Add(new GameOutput(OutputId.P2_TicketFeeder));
_Outputs.Add(new AsyncGameOutput(OutputId.P1_Damaged, Configurator.GetInstance().OutputCustomDamagedDelay, 100, 0));
_Outputs.Add(new AsyncGameOutput(OutputId.P2_Damaged, Configurator.GetInstance().OutputCustomDamagedDelay, 100, 0));
_Outputs.Add(new GameOutput(OutputId.P1_Credits));
_Outputs.Add(new GameOutput(OutputId.P2_Credits));
}
/// <summary>
/// Update all Outputs values before sending them to MameHooker
/// </summary>
public override void UpdateOutputValues()
{
//Nothing to do here, update will be done by the Tcp packet received event
}
protected override void DsTcp_Client_PacketReceived(Object Sender, DsTcp_Client.PacketReceivedEventArgs e)
{
if (e.Packet.GetHeader() == DsTcp_TcpPacket.PacketHeader.Outputs)
{
_OutputData.Update(e.Packet.GetPayload());
SetOutputValue(OutputId.P1_LmpStart, GetBlinkingLightState(((OutputData)_OutputData).StartLed[0]));
SetOutputValue(OutputId.P2_LmpStart, GetBlinkingLightState(((OutputData)_OutputData).StartLed[1]));
SetOutputValue(OutputId.P1_WaterFire, ((OutputData)_OutputData).WaterFire[0]);
SetOutputValue(OutputId.P2_WaterFire, ((OutputData)_OutputData).WaterFire[1]);
SetOutputValue(OutputId.WaterPump, ((OutputData)_OutputData).WaterPump);
SetOutputValue(OutputId.LmpUpperCtrlPanel, ((OutputData)_OutputData).GameLed);
SetOutputValue(OutputId.P1_BigGun, ((OutputData)_OutputData).BigGun[0]);
SetOutputValue(OutputId.P2_BigGun, ((OutputData)_OutputData).BigGun[1]);
SetOutputValue(OutputId.P1_TicketFeeder, ((OutputData)_OutputData).TicketFeeder[0]);
SetOutputValue(OutputId.P2_TicketFeeder, ((OutputData)_OutputData).TicketFeeder[1]);
if (((OutputData)_OutputData).Damaged[0] == 1)
SetOutputValue(OutputId.P1_Damaged, 1);
if (((OutputData)_OutputData).Damaged[1] == 1)
SetOutputValue(OutputId.P2_Damaged, 1);
SetOutputValue(OutputId.P1_Credits, (int)((OutputData)_OutputData).Credits[0]);
SetOutputValue(OutputId.P2_Credits, (int)((OutputData)_OutputData).Credits[1]);
}
}
//Game sets values as this :
//0 = OFF
//1 = CONSTANT ON
//2 = BLINK
//We need -1 instead of 2 for custom blinking output state
private int GetBlinkingLightState(byte ReadValue)
{
if (ReadValue == 2)
return -1;
else
return ReadValue;
}
#endregion
}
}
================================================
FILE: DemulShooter/Games/Game_ArcadepcFireHero.cs
================================================
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Management.Instrumentation;
using System.Reflection;
using DsCore;
using DsCore.Config;
using DsCore.IPC;
using DsCore.MameOutput;
namespace DemulShooter.Games
{
public class Game_ArcadepcFireHero : Game__Unity
{
private class InputData : Base_InputData
{
public float[] Axis_X = null;
public float[] Axis_Y = null;
public InputData(int PlayerNumber) : base(PlayerNumber)
{
}
}
private class OutputData : Base_OutputData
{
public byte[] IsPlaying = null;
public byte[] StartLed = null;
public byte Leftflash = 0;
public byte Rightflash = 0;
public byte ConsoleLight = 0;
public byte FireLight = 0;
public byte Fog = 0;
public byte WaterPump = 0;
public byte[] GunShake = null;
public byte[] SmallGun = null;
public byte[] BigGun = null;
public byte[] WaterRotate = null;
public byte[] Ticket = null;
public float[] Life = null;
public byte[] Damaged = null;
public int[] Credits = null;
public OutputData(int PlayerNumber) : base(PlayerNumber)
{
}
}
private const int MAX_PLAYERS = 2;
/// <summary>
/// Constructor
/// </summary>
public Game_ArcadepcFireHero(String RomName)
: base(RomName, "FireHero", "FireFighter2")
{
_KnownMd5Prints.Add("Fire Hero v1.4.6", "a1b853ec0d1a597afc41ac7a448166f3");
_InputData = new InputData(MAX_PLAYERS);
_OutputData = new OutputData(MAX_PLAYERS);
_tProcess.Start();
Logger.WriteLog("Waiting for " + _RomName + " game to hook.....");
}
/// <summary>
/// Overriding the Procedure as the game Window Title can be changed in the game ini files
/// So looking in those file to know what we are looking for
/// </summary>
protected override void tProcess_Elapsed(Object Sender, EventArgs e)
{
if (!_ProcessHooked)
{
try
{
Process[] processes = Process.GetProcessesByName(_Target_Process_Name);
if (processes.Length > 0)
{
_TargetProcess = processes[0];
_ProcessHandle = _TargetProcess.Handle;
_TargetProcess_MemoryBaseAddress = _TargetProcess.MainModule.BaseAddress;
//Looking for the game's window based on it's Title
_GameWindowHandle = IntPtr.Zero;
if (_TargetProcess_MemoryBaseAddress != IntPtr.Zero)
{
// The game may start with other Windows than the main one (BepInEx console, other stuff.....) so we need to filter
// the displayed window according to the Title, if DemulShooter is started before the game, to hook the correct one
String PlayerSetting_FilePath = _TargetProcess.MainModule.FileName.Replace(_Target_Process_Name + ".exe", _Target_Process_Name + @"_Data\StreamingAssets\Setting\PlayerSetting.ini");
Logger.WriteLog(PlayerSetting_FilePath);
if (File.Exists(PlayerSetting_FilePath))
{
try
{
INIFile Player_IniFile = new INIFile(PlayerSetting_FilePath);
_MainWindowTitle = Player_IniFile.IniReadValue("Window", "Title");
Logger.WriteLog("Found " + PlayerSetting_FilePath + " value to change Window Title to : " + _MainWindowTitle);
}
catch (Exception Ex)
{
Logger.WriteLog("Error reading config file : " + PlayerSetting_FilePath);
Logger.WriteLog(Ex.Message.ToString());
}
}
else
{
Logger.WriteLog(PlayerSetting_FilePath + " not found");
}
if (FindGameWindow_Equals(_MainWindowTitle))
{
String AssemblyDllPath = _TargetProcess.MainModule.FileName.Replace(_Target_Process_Name + ".exe", _Target_Process_Name + @"_Data\Managed\Assembly-CSharp.dll");
CheckMd5(AssemblyDllPath);
//Start TcpClient to dial with Unity Game
_Tcpclient = new DsTcp_Client("127.0.0.1", DsTcp_Client.DS_TCP_CLIENT_PORT);
_Tcpclient.PacketReceived += DsTcp_Client_PacketReceived;
_Tcpclient.TcpConnected += DsTcp_client_TcpConnected;
_Tcpclient.Connect();
if (_DisableInputHack)
Logger.WriteLog("Input Hack disabled");
_ProcessHooked = true;
RaiseGameHookedEvent();
}
else
{
Logger.WriteLog("Game Window not found");
return;
}
}
}
}
catch
{
Logger.WriteLog("Error trying to hook " + _Target_Process_Name + ".exe");
}
}
else
{
Process[] processes = Process.GetProcessesByName(_Target_Process_Name);
if (processes.Length <= 0)
{
_ProcessHooked = false;
_TargetProcess = null;
_ProcessHandle = IntPtr.Zero;
_TargetProcess_MemoryBaseAddress = IntPtr.Zero;
Logger.WriteLog(_Target_Process_Name + ".exe closed");
System.Windows.Forms.Application.Exit();
}
}
}
#region Inputs
/// <summary>
/// Writing Axis and Buttons data in memory
/// </summary>
public override void SendInput(PlayerSettings PlayerData)
{
if (!_DisableInputHack && PlayerData.ID <= MAX_PLAYERS)
{
float AxisX = PlayerData.RIController.Computed_X;
float AxisY = PlayerData.RIController.Computed_Y;
((InputData)_InputData).Axis_X[PlayerData.ID - 1] = AxisX;
((InputData)_InputData).Axis_Y[PlayerData.ID - 1] = AxisY;
if (_HideCrosshair)
_InputData.HideCrosshairs = 1;
else
_InputData.HideCrosshairs = 0;
_Tcpclient.SendMessage(_InputData.ToByteArray());
}
}
#endregion
#region Outputs
/// <summary>
/// Create the Output list that we will be looking for and forward to MameHooker
/// </summary>
protected override void CreateOutputList()
{
_Outputs = new List<GameOutput>();
_Outputs.Add(new GameOutput(OutputId.P1_LmpStart));
_Outputs.Add(new GameOutput(OutputId.P2_LmpStart));
_Outputs.Add(new GameOutput(OutputId.LmpLeft));
_Outputs.Add(new GameOutput(OutputId.LmpRight));
_Outputs.Add(new GameOutput(OutputId.Lmp_RedLight));
_Outputs.Add(new GameOutput(OutputId.LmpPanel));
_Outputs.Add(new GameOutput(OutputId.WaterPump));
_Outputs.Add(new GameOutput(OutputId.P1_WaterFire));
_Outputs.Add(new GameOutput(OutputId.P2_WaterFire));
_Outputs.Add(new GameOutput(OutputId.P1_BigGun));
_Outputs.Add(new GameOutput(OutputId.P2_BigGun));
_Outputs.Add(new GameOutput(OutputId.P1_WaterRotate));
_Outputs.Add(new GameOutput(OutputId.P2_WaterRotate));
_Outputs.Add(new GameOutput(OutputId.SmokeSwitch));
_Outputs.Add(new GameOutput(OutputId.P1_GunMotor));
_Outputs.Add(new GameOutput(OutputId.P2_GunMotor));
_Outputs.Add(new GameOutput(OutputId.P1_Life));
_Outputs.Add(new GameOutput(OutputId.P2_Life));
_Outputs.Add(new GameOutput(OutputId.P1_Damaged));
_Outputs.Add(new GameOutput(OutputId.P2_Damaged));
_Outputs.Add(new GameOutput(OutputId.P1_Credits));
_Outputs.Add(new GameOutput(OutputId.P2_Credits));
}
/// <summary>
/// Update all Outputs values before sending them to MameHooker
/// </summary>
public override void UpdateOutputValues()
{
//Nothing to do here, update will be done by the Tcp packet received event
}
protected override void DsTcp_Client_PacketReceived(Object Sender, DsTcp_Client.PacketReceivedEventArgs e)
{
if (e.Packet.GetHeader() == DsTcp_TcpPacket.PacketHeader.Outputs)
{
_OutputData.Update(e.Packet.GetPayload());
SetOutputValue(OutputId.P1_LmpStart, ((OutputData)_OutputData).StartLed[0]);
SetOutputValue(OutputId.P2_LmpStart, ((OutputData)_OutputData).StartLed[1]);
SetOutputValue(OutputId.LmpLeft, ((OutputData)_OutputData).Leftflash);
SetOutputValue(OutputId.LmpRight, ((OutputData)_OutputData).Rightflash);
SetOutputValue(OutputId.Lmp_RedLight, ((OutputData)_OutputData).FireLight);
SetOutputValue(OutputId.LmpPanel, ((OutputData)_OutputData).ConsoleLight);
SetOutputValue(OutputId.WaterPump, ((OutputData)_OutputData).WaterPump);
SetOutputValue(OutputId.P1_WaterFire, ((OutputData)_OutputData).SmallGun[0]);
SetOutputValue(OutputId.P2_WaterFire, ((OutputData)_OutputData).SmallGun[1]);
SetOutputValue(OutputId.P1_BigGun, ((OutputData)_OutputData).BigGun[0]);
SetOutputValue(OutputId.P2_BigGun, ((OutputData)_OutputData).BigGun[1]);
SetOutputValue(OutputId.P1_WaterRotate, ((OutputData)_OutputData).WaterRotate[0]);
SetOutputValue(OutputId.P2_WaterRotate, ((OutputData)_OutputData).WaterRotate[1]);
SetOutputValue(OutputId.SmokeSwitch, ((OutputData)_OutputData).Fog);
SetOutputValue(OutputId.P1_GunMotor, ((OutputData)_OutputData).GunShake[0]);
SetOutputValue(OutputId.P2_GunMotor, ((OutputData)_OutputData).GunShake[1]);
SetOutputValue(OutputId.P1_Life, (int)((OutputData)_OutputData).Life[0]);
SetOutputValue(OutputId.P2_Life, (int)((OutputData)_OutputData).Life[1]);
SetOutputValue(OutputId.P1_Damaged, ((OutputData)_OutputData).Damaged[0]);
SetOutputValue(OutputId.P2_Damaged, ((OutputData)_OutputData).Damaged[1]);
SetOutputValue(OutputId.P1_Credits, ((OutputData)_OutputData).Credits[0]);
SetOutputValue(OutputId.P2_Credits, ((OutputData)_OutputData).Credits[1]);
}
}
#endregion
}
}
================================================
FILE: DemulShooter/Games/Game_ArcadepcGhostBusters.cs
================================================
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Windows.Forms;
using DsCore;
using DsCore.Config;
using DsCore.MameOutput;
using DsCore.Memory;
namespace DemulShooter
{
class Game_ArcadepcGhostBusters : Game
{
private const String GAMEDATA_FOLDER = @"MemoryData\ice\gbusters";
//Rom loaded + Rom version check
private UInt32 _RomLoaded_check_Instruction_v115 = 0x08197EF5;
private UInt32 _RomLoaded_check_Instruction_v117 = 0x08198B4C;
private UInt32 _CrosshairHack_Address = 0x0806673D;
private UInt32 _Lamp_LeftGunTip_Address = 0x08F16668;
private UInt32 _Lamp_LeftGunBack_Address = 0x08F16680;
private UInt32 _Lamp_RightGunTip_Address = 0x08F16670;
private UInt32 _Lamp_RightGunBack_Address = 0x08F1668C;
private UInt32 _AgitatorMotorState_Address = 0x08F16698;
private UInt32 _AgitatorMotorDirection_Address = 0x08F16694;
private UInt32 _P1_BallShooterStatus_Address = 0x08F16650;
private UInt32 _P2_BallShooterStatus_Address = 0x08F16654;
private InjectionStruct _BallShooter_InjectionStruct = new InjectionStruct(0x08190191, 9);
private UInt32 _P1_RecoilStatus_CaveAddress = 0;
private UInt32 _P2_RecoilStatus_CaveAddress = 0;
/// <summary>
/// Constructor
/// </summary>
/// public Naomi_Game(String DemulVersion, bool Verbose, bool DisableWindow)
public Game_ArcadepcGhostBusters(String RomName)
: base(RomName, "BudgieLoader")
{
//Only for documentation, version check is done by reading code position in memory, as we don't have access to the ELF path
_KnownMd5Prints.Add("Ghostbusters - v1.15", "8de0a59ff3c10420959038d6769b646c");
_KnownMd5Prints.Add("Ghostbusters - v1.17", "ce10cf8f57b0fffd7fc5437622033b3a");
_tProcess.Start();
Logger.WriteLog("Waiting for Lindbergh " + _RomName + " game to hook.....");
}
// <summary>
/// Timer event when looking for Process (auto-Hook and auto-close)
/// </summary>
protected override void tProcess_Elapsed(Object Sender, EventArgs e)
{
if (!_ProcessHooked)
{
try
{
Process[] processes = Process.GetProcessesByName(_Target_Process_Name);
if (processes.Length > 0)
{
_TargetProcess = processes[0];
_ProcessHandle = _TargetProcess.Handle;
_TargetProcess_MemoryBaseAddress = _TargetProcess.MainModule.BaseAddress;
if (_TargetProcess_MemoryBaseAddress != IntPtr.Zero)
{
//To make sure BurgieLoader has loaded the rom entirely, we're looking for some random instruction to be present in memory before starting
//And this instruction is also helping us detecting whether the game file is v1.15 or v1.17 binary, to call the corresponding hack
byte[] buffer = ReadBytes(_RomLoaded_check_Instruction_v117, 5);
if (buffer[0] == 0x89 && buffer[1] == 0x04 && buffer[2] == 0x95 && buffer[3] == 0xC4 && buffer[4] == 0x65)
{
_GameWindowHandle = _TargetProcess.MainWindowHandle;
Logger.WriteLog("Ghostbusters - v1.17 binary detected");
_TargetProcess_Md5Hash = _KnownMd5Prints["Ghostbusters - v1.17"];
Logger.WriteLog("Attached to Process " + _Target_Process_Name + ".exe, ProcessHandle = " + _ProcessHandle);
Logger.WriteLog(_Target_Process_Name + ".exe = 0x" + _TargetProcess_MemoryBaseAddress.ToString("X8"));
ReadGameDataFromMd5Hash(GAMEDATA_FOLDER);
Apply_MemoryHacks();
_ProcessHooked = true;
RaiseGameHookedEvent();
}
else
{
buffer = ReadBytes(_RomLoaded_check_Instruction_v115, 5);
if (buffer[0] == 0x89 && buffer[1] == 0x04 && buffer[2] == 0x95 && buffer[3] == 0xC4 && buffer[4] == 0x65)
{
_GameWindowHandle = _TargetProcess.MainWindowHandle;
Logger.WriteLog("Ghostbusters - v1.15 binary detected");
_TargetProcess_Md5Hash = _KnownMd5Prints["Ghostbusters - v1.15"];
Logger.WriteLog("Attached to Process " + _Target_Process_Name + ".exe, ProcessHandle = " + _ProcessHandle);
Logger.WriteLog(_Target_Process_Name + ".exe = 0x" + _TargetProcess_MemoryBaseAddress.ToString("X8"));
ReadGameDataFromMd5Hash(GAMEDATA_FOLDER);
Apply_MemoryHacks();
_ProcessHooked = true;
RaiseGameHookedEvent();
}
else
{
Logger.WriteLog("Game not Loaded, waiting...");
}
}
}
}
}
catch
{
Logger.WriteLog("Error trying to hook " + _Target_Process_Name + ".exe");
}
}
else
{
Process[] processes = Process.GetProcessesByName(_Target_Process_Name);
if (processes.Length <= 0)
{
_ProcessHooked = false;
_TargetProcess = null;
_ProcessHandle = IntPtr.Zero;
_TargetProcess_MemoryBaseAddress = IntPtr.Zero;
Logger.WriteLog(_Target_Process_Name + ".exe closed");
Application.Exit();
}
}
}
#region Memory Hack
protected override void Apply_OutputsMemoryHack()
{
Create_OutputsDataBank();
_P1_RecoilStatus_CaveAddress = _OutputsDatabank_Address;
_P2_RecoilStatus_CaveAddress = _OutputsDatabank_Address + 4;
SetHack_Recoil();
Logger.WriteLog("Outputs Memory Hack complete !");
Logger.WriteLog("-");
}
/// <summary>
/// Intercept call to change Ball Shooting event value
/// </summary>
private void SetHack_Recoil()
{
Codecave CaveMemory = new Codecave(_TargetProcess, _TargetProcess.MainModule.BaseAddress);
CaveMemory.Open();
CaveMemory.Alloc(0x800);
List<Byte> Buffer = new List<Byte>();
//mov eax, [ebp+08]
CaveMemory.Write_StrBytes("8B 45 08");
//mov edx,[ebp+0C]
CaveMemory.Write_StrBytes("8B 55 0C");
//cmp eax,00000004
CaveMemory.Write_StrBytes("3D 04 00 00 00");
//je P1
CaveMemory.Write_StrBytes("74 09");
//cmp edx,00000005
CaveMemory.Write_StrBytes("3D 05 00 00 00");
//je P2
CaveMemory.Write_StrBytes("74 0D");
//jmp Exit
CaveMemory.Write_StrBytes("EB 14");
//P1:
//push eax
CaveMemory.Write_StrBytes("50");
//mov eax, _P1_RecoilStatus_CaveAddress
CaveMemory.Write_StrBytes("B8");
CaveMemory.Write_Bytes(BitConverter.GetBytes(_P1_RecoilStatus_CaveAddress));
//mov [eax], edx
CaveMemory.Write_StrBytes("09 10");
//pop eax
CaveMemory.Write_StrBytes("58");
//jmp Exit
CaveMemory.Write_StrBytes("EB 09");
//P2:
//push eax
CaveMemory.Write_StrBytes("50");
//mov eax, _P2_RecoilStatus_CaveAddress
CaveMemory.Write_StrBytes("B8");
CaveMemory.Write_Bytes(BitConverter.GetBytes(_P2_RecoilStatus_CaveAddress));
//mov [eax], edx
CaveMemory.Write_StrBytes("09 10");
//pop eax
CaveMemory.Write_StrBytes("58");
//Exit:
//add eax, 24
CaveMemory.Write_StrBytes("83 C0 24");
CaveMemory.InjectToAddress(_BallShooter_InjectionStruct, "Recoil");
}
protected override void Apply_NoCrosshairMemoryHack()
{
if (_HideCrosshair)
{
//Replacing crosshair X value in ECX by -300.0f
WriteBytes(_CrosshairHack_Address, new byte[] { 0xB9, 0x00, 0x00, 0x96, 0xC3, 0x90, 0x90 });
}
else
{
//Putting back original code for crosshairs
//mov ecx,[ecx*8+08AD232C]
WriteBytes(_CrosshairHack_Address, new byte[] { 0x8B, 0x0C, 0xCD, 0x2C, 0x23, 0xAD, 0x08 });
}
}
#endregion
#region Outputs
/// <summary>
/// Create the Output list that we will be looking for and forward to MameHooker
/// </summary>
protected override void CreateOutputList()
{
//Gun motor : Is activated permanently while trigger is pressed
_Outputs = new List<GameOutput>();
_Outputs.Add(new GameOutput(OutputId.P1_LmpGunTip));
_Outputs.Add(new GameOutput(OutputId.P1_LmpGunBack));
_Outputs.Add(new GameOutput(OutputId.P2_LmpGunTip));
_Outputs.Add(new GameOutput(OutputId.P2_LmpGunBack));
_Outputs.Add(new GameOutput(OutputId.BallAgitator_State));
_Outputs.Add(new GameOutput(OutputId.BallAgitator_Direction));
_Outputs.Add(new GameOutput(OutputId.P1_BallShooter));
_Outputs.Add(new GameOutput(OutputId.P2_BallShooter));
//Custom Outputs
_Outputs.Add(new AsyncGameOutput(OutputId.P1_CtmRecoil, Configurator.GetInstance().OutputCustomRecoilOnDelay, Configurator.GetInstance().OutputCustomRecoilOffDelay, 0));
_Outputs.Add(new AsyncGameOutput(OutputId.P2_CtmRecoil, Configurator.GetInstance().OutputCustomRecoilOnDelay, Configurator.GetInstance().OutputCustomRecoilOffDelay, 0));
}
/// <summary>
/// Update all Outputs values before sending them to MameHooker
/// </summary>
public override void UpdateOutputValues()
{
//Lamp Values
SetOutputValue(OutputId.P1_LmpGunTip, GetLampValueAsInt(_Lamp_LeftGunTip_Address));
SetOutputValue(OutputId.P1_LmpGunBack, GetLampValueAsInt(_Lamp_LeftGunBack_Address));
SetOutputValue(OutputId.P2_LmpGunTip, GetLampValueAsInt(_Lamp_RightGunTip_Address));
SetOutputValue(OutputId.P2_LmpGunBack, GetLampValueAsInt(_Lamp_RightGunBack_Address));
//Ball Agitator motor : one outputs gets the state (spinning or not) and the other one get the direction (0 = Right, 1 = Left)
SetOutputValue(OutputId.BallAgitator_State, GetMotorValueAsInt(_AgitatorMotorState_Address));
SetOutputValue(OutputId.BallAgitator_Direction, GetMotorValueAsInt(_AgitatorMotorDirection_Address));
//BallShooter status
SetOutputValue(OutputId.P1_BallShooter, ReadByte(_P1_BallShooterStatus_Address));
SetOutputValue(OutputId.P2_BallShooter, ReadByte(_P2_BallShooterStatus_Address));
if (ReadByte(_P1_RecoilStatus_CaveAddress) > 0)
{
SetOutputValue(OutputId.P1_CtmRecoil, 1);
WriteByte(_P1_RecoilStatus_CaveAddress, 0);
}
if (ReadByte(_P2_RecoilStatus_CaveAddress) > 0)
{
SetOutputValue(OutputId.P2_CtmRecoil, 1);
WriteByte(_P2_RecoilStatus_CaveAddress, 0);
}
}
//Lamp values are between 0 and 0x7FF
private int GetLampValueAsInt(UInt32 LmpAddress)
{
Int32 iLmpValue = BitConverter.ToInt32(ReadBytes(LmpAddress, 4), 0);
return (int)((float)iLmpValue / 2047.0f * 100.0f);
}
//Motor values are between 0 and 0xFFF
private int GetMotorValueAsInt(UInt32 LmpAddress)
{
Int32 iMtrValue = BitConverter.ToInt32(ReadBytes(LmpAddress, 4), 0);
return (int)((float)iMtrValue / 4095.0f * 100.0f);
}
#endregion
}
}
================================================
FILE: DemulShooter/Games/Game_ArcadepcHsfr.cs
================================================
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Windows.Forms;
using DsCore;
using DsCore.Config;
using DsCore.MameOutput;
using DsCore.Memory;
namespace DemulShooter
{
class Game_ArcadepcHsfr : Game
{
/*** MEMORY ADDRESSES **/
private InjectionStruct _UAfControlManager_MoveGunController_InjectionStruct = new InjectionStruct(0x0042E9DB, 5);
//Outputs
private InjectionStruct _UafGameManager_Update_InjectionStruct = new InjectionStruct(0x0043A14A, 6);
private InjectionStruct _UafControlManager_OpenLight_InjectionStruct = new InjectionStruct(0x00428844, 6);
private InjectionStruct _UafControlManager_CloseLight_InjectionStruct = new InjectionStruct(0x00428A34, 6);
private InjectionStruct _UafControlManager_StartSeatShake_InjectionStruct = new InjectionStruct(0x00430CB8, 6);
private InjectionStruct _UafControlManager_CloseSeatShake_InjectionStruct = new InjectionStruct(0x00430E48, 6);
private InjectionStruct _UafControlManager_StartShakeApparatusOut_InjectionStruct = new InjectionStruct(0x00430A48, 6);
private InjectionStruct _UafControlManager_CloseShake_InjectionStruct = new InjectionStruct(0x00430978, 6);
private InjectionStruct _UafControlManager_WaterMistControl_InjectionStruct = new InjectionStruct(0x0042FA03, 6);
private InjectionStruct _UafControlManager_Update_InjectionStruct = new InjectionStruct(0x00428DB2, 5);
private InjectionStruct _SgPlayer_PlayEffectHitted_InjectionStruct = new InjectionStruct(0x003BD333, 6);
//Custom Input Address
private UInt32 _AxisX_Array_CaveAddress;
private UInt32 _AxisY_Array_CaveAddress;
private UInt32 _Light_Array_CaveAddress;
private UInt32 _Motor_Array_CaveAddress;
private UInt32 _DamageArray_CaveAddress;
private UInt32 _UafGameManager_Instance_CaveAddress;
private UInt32 _UafControlManager_Instance_CaveAddress;
private UInt32 _WaterMistState_CaveAddress;
private IntPtr _GameAssemblyDll_BaseAddress = IntPtr.Zero;
/// <summary>
/// Constructor
/// </summary>
public Game_ArcadepcHsfr(String RomName)
: base(RomName, "FireHero")
{
_KnownMd5Prints.Add("Hot Shots Fire Rescue - v3.3.20221123r.60.1PUMP", "eec51a30066a2a19fa7d3ad494518eab");
_tProcess.Start();
Logger.WriteLog("Waiting for Coastal " + _RomName + " game to hook.....");
}
/// <summary>
/// Timer event when looking for Process (auto-Hook and auto-close)
/// </summary>
protected override void tProcess_Elapsed(Object Sender, EventArgs e)
{
if (!_ProcessHooked)
{
try
{
Process[] processes = Process.GetProcessesByName(_Target_Process_Name);
if (processes.Length > 0)
{
_TargetProcess = processes[0];
_ProcessHandle = _TargetProcess.Handle;
_TargetProcess_MemoryBaseAddress = _TargetProcess.MainModule.BaseAddress;
//Looking for the game's window based on it's Title
_GameWindowHandle = IntPtr.Zero;
if (_TargetProcess_MemoryBaseAddress != IntPtr.Zero)
{
ProcessModuleCollection c = _TargetProcess.Modules;
foreach (ProcessModule m in c)
{
if (m.ModuleName.ToLower().Equals("gameassembly.dll"))
{
_GameAssemblyDll_BaseAddress = m.BaseAddress;
if (_GameAssemblyDll_BaseAddress != IntPtr.Zero)
{
// The game may start with other Windows than the main one (BepInEx console, other stuff.....) so we need to filter
// the displayed window according to the Title, if DemulShooter is started before the game, to hook the correct one
if (FindGameWindow_Equals("FireHero"))
{
String AssemblyDllPath = _TargetProcess.MainModule.FileName.Replace(_Target_Process_Name + ".exe", "GameAssembly.dll");
CheckMd5(AssemblyDllPath);
Apply_MemoryHacks();
_ProcessHooked = true;
RaiseGameHookedEvent();
}
else
{
Logger.WriteLog("Game Window not found");
return;
}
}
}
}
}
}
}
catch
{
Logger.WriteLog("Error trying to hook " + _Target_Process_Name + ".exe");
}
}
else
{
Process[] processes = Process.GetProcessesByName(_Target_Process_Name);
if (processes.Length <= 0)
{
_ProcessHooked = false;
_TargetProcess = null;
_ProcessHandle = IntPtr.Zero;
_TargetProcess_MemoryBaseAddress = IntPtr.Zero;
Logger.WriteLog(_Target_Process_Name + ".exe closed");
Application.Exit();
}
}
}
#region Screen
/// <summary>
/// Convert client area pointer location to Game speciffic data for memory injection
/// Game is using 2 differents axis :
/// 1 For the shooting target and collision (which is the window size boundaries)
/// 1 To display crosshair on screen (which seems to be 1920 for X and Y changes according to the window ratio
/// Origin is Bottom-Left (inverted from Windows Lightgun data origins, Top-Left)
/// The regular PlayerData.RIController.Computed_X and PlayerData.RIController.Computed_Y will store shooting values
/// Other private fields will store Crosshair display values
/// </summary>
public override bool GameScale(PlayerSettings PlayerData)
{
if (_ProcessHandle != IntPtr.Zero)
{
try
{
double TotalResX = _ClientRect.Right - _ClientRect.Left;
double TotalResY = _ClientRect.Bottom - _ClientRect.Top;
Logger.WriteLog("Game Window Rect (Px) = [ " + TotalResX + "x" + TotalResY + " ]");
double dRatio = TotalResX / TotalResY;
gitextract_lulljexd/
├── .editorconfig
├── .gitignore
├── DemulShooter/
│ ├── DemulShooter.csproj
│ ├── DemulShooterWindow.cs
│ ├── Ds.settings
│ ├── Game_WndSpray.cs
│ ├── Games/
│ │ ├── Game.cs
│ │ ├── Game_ArcadePcWaterSprite2.cs
│ │ ├── Game_ArcadepcFireHero.cs
│ │ ├── Game_ArcadepcGhostBusters.cs
│ │ ├── Game_ArcadepcHsfr.cs
│ │ ├── Game_ArcadepcMechaTornado.cs
│ │ ├── Game_ArcadepcPvzLastStand.cs
│ │ ├── Game_ArcadepcRobinHood.cs
│ │ ├── Game_ArcadepcTopGun.cs
│ │ ├── Game_ArcadepcWaterWar2.cs
│ │ ├── Game_ArcadepcWws.cs
│ │ ├── Game_CxbxGsquad.cs
│ │ ├── Game_CxbxHod3.cs
│ │ ├── Game_CxbxVcop3.cs
│ │ ├── Game_CxbxVcop3_Old.cs
│ │ ├── Game_Demul.cs
│ │ ├── Game_DemulAtomiswave.cs
│ │ ├── Game_DemulHikaru.cs
│ │ ├── Game_DemulJvs.cs
│ │ ├── Game_DemulManicpnc.cs
│ │ ├── Game_DemulNaomi.cs
│ │ ├── Game_Dolphin4.cs
│ │ ├── Game_Dolphin5.cs
│ │ ├── Game_Es4PointBlankX.cs
│ │ ├── Game_GameWaxAkuma.cs
│ │ ├── Game_GvrAliens.cs
│ │ ├── Game_GvrAliensHasp.cs
│ │ ├── Game_GvrFarCry.cs
│ │ ├── Game_GvrFearLand.cs
│ │ ├── Game_KonamiCastlevania.cs
│ │ ├── Game_KonamiCoopers9.cs
│ │ ├── Game_KonamiGashaaaan2.cs
│ │ ├── Game_KonamiLethalEnforcer3.cs
│ │ ├── Game_KonamiWartran.cs
│ │ ├── Game_Lindbergh2spicy.cs
│ │ ├── Game_LindberghGsquadEvo.cs
│ │ ├── Game_LindberghHotd4.cs
│ │ ├── Game_LindberghHotd4Ex.cs
│ │ ├── Game_LindberghHotd4Sp.cs
│ │ ├── Game_LindberghHotdEx.cs
│ │ ├── Game_LindberghLgj.cs
│ │ ├── Game_LindberghLgjsp.cs
│ │ ├── Game_LindberghRambo.cs
│ │ ├── Game_Model2Bel.cs
│ │ ├── Game_Model2Gunblade.cs
│ │ ├── Game_Model2Hotd.cs
│ │ ├── Game_Model2Rchase2.cs
│ │ ├── Game_Model2Vcop.cs
│ │ ├── Game_Model2Vcop2.cs
│ │ ├── Game_PpmPoliceTrainer2.cs
│ │ ├── Game_Re2Transformers2.cs
│ │ ├── Game_RtAliensArmageddon.cs
│ │ ├── Game_RtJurassicPark.cs
│ │ ├── Game_RtTargetTerror.cs
│ │ ├── Game_RtTerminatorSalvation.cs
│ │ ├── Game_RtWalkingDead.cs
│ │ ├── Game_RwGunman.cs
│ │ ├── Game_RwLGI.cs
│ │ ├── Game_RwLGI3D.cs
│ │ ├── Game_RwOpGhost.cs
│ │ ├── Game_RwSDR.cs
│ │ ├── Game_RwSGG.cs
│ │ ├── Game_RwTargetBravo.cs
│ │ ├── Game_RwTransformers.cs
│ │ ├── Game_TtxBlockKingBallShooter.cs
│ │ ├── Game_TtxEadp.cs
│ │ ├── Game_TtxGaiaAttack4.cs
│ │ ├── Game_TtxGundam.cs
│ │ ├── Game_TtxGundam_V2.cs
│ │ ├── Game_TtxGungun2.cs
│ │ ├── Game_TtxHauntedMuseum.cs
│ │ ├── Game_TtxHauntedMuseum2.cs
│ │ ├── Game_TtxSha.cs
│ │ ├── Game_WndAdCop95.cs
│ │ ├── Game_WndAdCopOverseas.cs
│ │ ├── Game_WndAlienSafari.cs
│ │ ├── Game_WndArtIsDead.cs
│ │ ├── Game_WndBE.cs
│ │ ├── Game_WndBlueEstate.cs
│ │ ├── Game_WndBonbon95.cs
│ │ ├── Game_WndBugBusters.cs
│ │ ├── Game_WndColtWildWestShootout.cs
│ │ ├── Game_WndFriction.cs
│ │ ├── Game_WndHeavyFire3Pc.cs
│ │ ├── Game_WndHeavyFire4Pc.cs
│ │ ├── Game_WndHod2pc.cs
│ │ ├── Game_WndHod3pc.cs
│ │ ├── Game_WndHotdoPc.cs
│ │ ├── Game_WndMadBullets.cs
│ │ ├── Game_WndProjectGreenBeat.cs
│ │ ├── Game_WndReload.cs
│ │ └── Game__Unity.cs
│ ├── Program.cs
│ ├── Properties/
│ │ ├── AssemblyInfo.cs
│ │ ├── Resources.Designer.cs
│ │ ├── Resources.resx
│ │ ├── Settings.Designer.cs
│ │ └── Settings.settings
│ ├── Resources/
│ │ ├── x360kb_hfirea1p.ini
│ │ └── x360kb_hfirea2p.ini
│ └── app.config
├── DemulShooter.sln
├── DemulShooterX64/
│ ├── DemulShooterWindowX64.cs
│ ├── DemulShooterX64.csproj
│ ├── Games/
│ │ ├── Game.cs
│ │ ├── Game_AllsHodSd.cs
│ │ ├── Game_ArcadePcMechaDino.cs
│ │ ├── Game_ArcadePcMissionImpossible.cs
│ │ ├── Game_ArcadepcBullseye.cs
│ │ ├── Game_ArcadepcDinoInvasion.cs
│ │ ├── Game_ArcadepcDrakon.cs
│ │ ├── Game_ArcadepcDrakon_NoPlugin.cs
│ │ ├── Game_ArcadepcElevatorActionInvasion.cs
│ │ ├── Game_ArcadepcMIB.cs
│ │ ├── Game_ArcadepcMarsSortie.cs
│ │ ├── Game_ArcadepcNightHunterArcade.cs
│ │ ├── Game_ArcadepcOnePoint.cs
│ │ ├── Game_ArcadepcRaccoonRampage.cs
│ │ ├── Game_ArcadepcRha.cs
│ │ ├── Game_ArcadepcSkullOfShadow.cs
│ │ ├── Game_ArcadepcTopGun2.cs
│ │ ├── Game_ArcadepcTra.cs
│ │ ├── Game_ArcadepcWisdomZombies.cs
│ │ ├── Game_Es3Lla.cs
│ │ ├── Game_Es3Tc5.cs
│ │ ├── Game_Flycast.cs
│ │ ├── Game_FlycastAtomiswave.cs
│ │ ├── Game_FlycastNaomi.cs
│ │ ├── Game_FlycastNinjaslt.cs
│ │ ├── Game_NuLuigiMansion.cs
│ │ ├── Game_NuLuigiMansion_v2.cs
│ │ ├── Game_RtNerfArcade.cs
│ │ ├── Game_S357DarkEscape.cs
│ │ ├── Game_S357DeadStormPirates.cs
│ │ ├── Game_S357RazingStorm.cs
│ │ ├── Game_S357SailorZombie.cs
│ │ ├── Game_WndBhapc.cs
│ │ ├── Game_WndBigBuckHunterUltimate.cs
│ │ ├── Game_WndBlueEstate.cs
│ │ ├── Game_WndDcop.cs
│ │ ├── Game_WndHotdremakeArcade.cs
│ │ ├── Game_WndOpWolfReturn.cs
│ │ └── Game__Unity.cs
│ ├── Program.cs
│ ├── Properties/
│ │ ├── AssemblyInfo.cs
│ │ ├── Resources.Designer.cs
│ │ └── Resources.resx
│ └── app.config
├── DemulShooter_GUI/
│ ├── DemulShooter_GUI.csproj
│ ├── GUI_AnalogCalibration.Designer.cs
│ ├── GUI_AnalogCalibration.cs
│ ├── GUI_AnalogCalibration.resx
│ ├── GUI_Button.Designer.cs
│ ├── GUI_Button.cs
│ ├── GUI_Button.resx
│ ├── GUI_Player.Designer.cs
│ ├── GUI_Player.cs
│ ├── GUI_Player.resx
│ ├── GUI_RawInputHID.Designer.cs
│ ├── GUI_RawInputHID.cs
│ ├── GUI_RawInputHID.resx
│ ├── GUI_RawInputMouse.Designer.cs
│ ├── GUI_RawInputMouse.cs
│ ├── GUI_RawInputMouse.resx
│ ├── Game_Bhapc - Copy.cs
│ ├── Program.cs
│ ├── Properties/
│ │ ├── AssemblyInfo.cs
│ │ ├── Resources.Designer.cs
│ │ ├── Resources.resx
│ │ ├── Settings.Designer.cs
│ │ └── Settings.settings
│ ├── Resources/
│ │ ├── Crosshair.cur
│ │ ├── WiimoteNew_v4.ini
│ │ ├── WiimoteNew_v5.ini
│ │ ├── v5-kusa-Nk1ztL1zd9hqYxZvsSzanK-00001G
│ │ ├── v5-kusa-RfXcExAKkmrdG4qseqx2b8-00001G
│ │ ├── v5-kusa-YS0mZH4vvSfUP58FQH907h-00001G
│ │ ├── v5-kusa-aQwdyxfu7HwmKZwJpsrgjQ-00001G
│ │ ├── v5-kusa-i7aj8qVvJVSC4AVE3TbxET-00001G
│ │ ├── v5-kusa-qkvp7tpoTGacuznXZ31HmQ-00001G
│ │ └── v5-kusa-rvYuWdKw9d618McpKm75ir-00001G
│ ├── Wnd_DemulShooterGui.Designer.cs
│ ├── Wnd_DemulShooterGui.cs
│ ├── Wnd_DemulShooterGui.resx
│ └── app.config
├── DsCore/
│ ├── Config/
│ │ ├── Configurator.cs
│ │ └── PlayerSettings.cs
│ ├── DsCore.csproj
│ ├── INIFile.cs
│ ├── IPC/
│ │ ├── DsTcpData.cs
│ │ ├── DsTcp_Client.cs
│ │ ├── DsTcp_TcpPacket.cs
│ │ ├── MMFH_HotdRemakeArcade.cs
│ │ ├── MMF_DataStruct.cs
│ │ ├── MappedMemoryFileHelper.cs
│ │ └── MappedMemoryFile_Helper_old.cs
│ ├── Logger.cs
│ ├── MameOutput/
│ │ ├── AsyncGameOutput.cs
│ │ ├── BlinkGameOutput.cs
│ │ ├── GameOutput.cs
│ │ ├── MMT.cs
│ │ ├── Network/
│ │ │ ├── Net_OutputClient.cs
│ │ │ └── Net_OutputHelper.cs
│ │ ├── OutputId.cs
│ │ ├── SyncBlinkingGameOutput.cs
│ │ └── WindowMessage/
│ │ ├── Wm_OutputClient.cs
│ │ ├── Wm_OutputDataStruct.cs
│ │ └── Wm_OutputHelper.cs
│ ├── Memory/
│ │ ├── Codecave.cs
│ │ ├── InjectionStruct.cs
│ │ └── NopStruct.cs
│ ├── MemoryX64/
│ │ ├── Codecave.cs
│ │ ├── InjectionStruct.cs
│ │ └── NopStruct.cs
│ ├── RawInput/
│ │ ├── Hid/
│ │ │ ├── HidPButtonCaps.cs
│ │ │ ├── HidPCaps.cs
│ │ │ ├── HidPReportType.cs
│ │ │ ├── HidPValueCaps.cs
│ │ │ ├── HidUsage.cs
│ │ │ ├── HidUsageAndPage.cs
│ │ │ ├── HidUsagePage.cs
│ │ │ └── NtStatus.cs
│ │ ├── RawInputController.cs
│ │ ├── RawInputHelper.cs
│ │ └── User32/
│ │ ├── RawHid.cs
│ │ ├── RawInputDataKeyboard.cs
│ │ ├── RawInputDataMouse.cs
│ │ ├── RawInputDevice.cs
│ │ ├── RawInputDeviceFlag.cs
│ │ ├── RawInputDeviceInfo.cs
│ │ ├── RawInputDeviceList.cs
│ │ ├── RawInputDeviceType.cs
│ │ ├── RawInputHeader.cs
│ │ └── RawInputUiCommand.cs
│ ├── Win32/
│ │ ├── CopyDataStruct.cs
│ │ ├── FileMapAccessType.cs
│ │ ├── HardwareScanCode.cs
│ │ ├── Input.cs
│ │ ├── KbdLlHookStruct.cs
│ │ ├── MemoryAllocType.cs
│ │ ├── MemoryFreeType.cs
│ │ ├── MemoryPageProtect.cs
│ │ ├── MsLlHookStruct.cs
│ │ ├── PageProtection.cs
│ │ ├── Point.cs
│ │ ├── QueryUserNotificationState.cs
│ │ ├── Rect.cs
│ │ ├── SystemMetricsIndex.cs
│ │ ├── VirtualKeyCode.cs
│ │ ├── VirtualKeyMapType.cs
│ │ ├── Win32Api.cs
│ │ ├── Win32Define.cs
│ │ └── WndClassEx.cs
│ ├── XInput/
│ │ ├── XInputBatteryInformation.cs
│ │ ├── XInputCapabilities.cs
│ │ ├── XInputDeviceSubtype.cs
│ │ ├── XInputGamepad.cs
│ │ ├── XInputHandler.cs
│ │ ├── XInputState.cs
│ │ ├── XInputVibration.cs
│ │ └── XinputButtonFlags.cs
│ └── XOutput/
│ └── XOutput.cs
├── DsDiag/
│ ├── DsDiag.csproj
│ ├── Ds_Diag.Designer.cs
│ ├── Ds_Diag.cs
│ ├── Ds_Diag.resx
│ ├── Ds_Diag_Button.Designer.cs
│ ├── Ds_Diag_Button.cs
│ ├── Ds_Diag_Button.resx
│ ├── Program.cs
│ ├── Properties/
│ │ ├── AssemblyInfo.cs
│ │ ├── Resources.Designer.cs
│ │ ├── Resources.resx
│ │ ├── Settings.Designer.cs
│ │ └── Settings.settings
│ └── app.config
├── README.md
└── UnityPlugins/
├── UnityPlugin_BepInEx_DCOP/
│ ├── DCOP_BepInEx_DemulShooter_Plugin.ini
│ ├── DemulShooter_Plugin.cs
│ ├── INIFile.cs
│ ├── Patch/
│ │ ├── Uduino/
│ │ │ ├── mUduinoConnection_DesktopSerial.cs
│ │ │ └── mUduinoManager.cs
│ │ ├── _Unity.cs
│ │ ├── mGunScript.cs
│ │ ├── mHighscoreManager.cs
│ │ ├── mLifeTracker.cs
│ │ ├── mPauseGame.cs
│ │ ├── mSetMousecursor.cs
│ │ ├── mU_hitboxHit.cs
│ │ ├── mU_onContinueCountDown.cs
│ │ ├── mU_onPlayerShoot.cs
│ │ └── mU_policeLight.cs
│ ├── PluginController.cs
│ ├── PluginControllerButton.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── TcpData.cs
│ ├── TcpInputData.cs
│ ├── TcpOutputData.cs
│ ├── TcpPacket.cs
│ ├── UnityLibs/
│ │ └── List_of_dll_to_copy_here.txt
│ ├── UnityPlugin_BepInEx_DCOP.csproj
│ └── UnityPlugin_BepInEx_DCOP.sln
├── UnityPlugin_BepInEx_DRK/
│ ├── DemulShooter_Plugin.cs
│ ├── Drakon_BepInEx_DemulShooter_Plugin.ini
│ ├── INIFile.cs
│ ├── Patch/
│ │ ├── SBK/
│ │ │ ├── Matrix/
│ │ │ │ └── mMatrixManager.cs
│ │ │ ├── PneumaticSeatsystem/
│ │ │ │ └── mPneumaticSeatManager.cs
│ │ │ ├── RS232/
│ │ │ │ └── mRS232DLL.cs
│ │ │ ├── Skyride_Turret/
│ │ │ │ └── mTurret.cs
│ │ │ ├── TurretSystem/
│ │ │ │ └── mTurretManager.cs
│ │ │ └── mApplicationManager.cs
│ │ ├── _Unity.cs
│ │ ├── mChooseLevelWindow.cs
│ │ ├── mContinueWindow.cs
│ │ ├── mHudWindow.cs
│ │ ├── mInactivePlayerState.cs
│ │ ├── mInputsManager.cs
│ │ ├── mLaser2D.cs
│ │ ├── mPlayerWindow.cs
│ │ ├── mTarget.cs
│ │ ├── mTitleWindow.cs
│ │ └── mUnityEngine.cs
│ ├── PluginController.cs
│ ├── PluginControllerButton.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── TcpData.cs
│ ├── TcpInputData.cs
│ ├── TcpOutputData.cs
│ ├── TcpPacket.cs
│ ├── UnityLibs/
│ │ └── List_of_dll_to_copy_here.txt
│ ├── UnityPlugin_BepInEx_Drakon.csproj
│ └── UnityPlugin_BepInEx_Drakon.sln
├── UnityPlugin_BepInEx_MARSS/
│ ├── DemulShooter_Plugin.cs
│ ├── INIFile.cs
│ ├── MarsSortie_BepInEx_DemulShooter_Plugin.ini
│ ├── Patch/
│ │ ├── MRCQ/
│ │ │ ├── mGameDatabase.cs
│ │ │ ├── mHardware.cs
│ │ │ ├── mLocalization.cs
│ │ │ ├── mSignalKey.cs
│ │ │ ├── mSuperDogManager.cs
│ │ │ └── mSystemError.cs
│ │ ├── Now/
│ │ │ ├── mBulletCounter.cs
│ │ │ └── mPlayerWeapon.cs
│ │ └── mArcadeShowCursor.cs
│ ├── PluginController.cs
│ ├── PluginControllerButton.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── TcpData.cs
│ ├── TcpInputData.cs
│ ├── TcpOutputData.cs
│ ├── TcpPacket.cs
│ ├── UnityLibs/
│ │ └── List_of_dll_to_copy_here.txt
│ ├── UnityPlugin_BepInEx_MarsSortie.csproj
│ └── UnityPlugin_BepInEx_MarsSortie.sln
├── UnityPlugin_BepInEx_MIA/
│ ├── DemulShooter_Plugin.cs
│ ├── INIFile.cs
│ ├── MissionImpossible_BepInEx_DemulShooter_Plugin.ini
│ ├── Patch/
│ │ ├── UGGameShell/
│ │ │ ├── mGame.cs
│ │ │ ├── mGameSetting.cs
│ │ │ └── mShellData.cs
│ │ ├── _Unity.cs
│ │ ├── mBootSequence.cs
│ │ ├── mConfigManager.cs
│ │ ├── mGameLogManager.cs
│ │ ├── mGameObjPoolManager.cs
│ │ ├── mHistoryDataManager.cs
│ │ ├── mInputManager.cs
│ │ ├── mModecontroller.cs
│ │ ├── mPlayer.cs
│ │ ├── mPlayerGunBase.cs
│ │ ├── mShellManager.cs
│ │ ├── mUGNetConnector.cs
│ │ ├── mUIManager.cs
│ │ └── mUIShootPoint.cs
│ ├── PluginController.cs
│ ├── PluginControllerButton.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── TcpData.cs
│ ├── TcpInputData.cs
│ ├── TcpOutputData.cs
│ ├── TcpPacket.cs
│ ├── UnityLibs/
│ │ └── List_of_dll_to_copy_here.txt
│ ├── UnityPlugin_BepInEx_MissionImpossible.csproj
│ └── UnityPlugin_BepInEx_MissionImpossible.sln
├── UnityPlugin_BepInEx_MIB/
│ ├── DemulShooter_Plugin.cs
│ ├── INIFile.cs
│ ├── MIB_BepInEx_DemulShooter_Plugin.ini
│ ├── Patch/
│ │ ├── MIB/
│ │ │ ├── mMIBClient.cs
│ │ │ ├── mMIBCore.cs
│ │ │ └── mMIBGameSettings.cs
│ │ ├── _Unity.cs
│ │ ├── mCreditsUI.cs
│ │ ├── mGlobal.cs
│ │ ├── mGun.cs
│ │ ├── mGunRig.cs
│ │ ├── mInitialisation.cs
│ │ ├── mLaserEmitter.cs
│ │ ├── mLights.cs
│ │ ├── mPatchTemplate.cs
│ │ ├── mRS232.cs
│ │ ├── mUI.cs
│ │ ├── mUIPlayerCrosshair.cs
│ │ └── mUnityEngine.cs
│ ├── PluginController.cs
│ ├── PluginControllerButton.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── TcpData.cs
│ ├── TcpInputData.cs
│ ├── TcpOutputData.cs
│ ├── TcpPacket.cs
│ ├── UnityLibs/
│ │ └── List_of_dll_to_copy_here.txt
│ ├── UnityPlugin_BepInEx_MIB.csproj
│ ├── UnityPlugin_BepInEx_MIB.sln
│ └── mAmwaysOnTop.cs
├── UnityPlugin_BepInEx_NHA2/
│ ├── DemulShooter_Plugin.cs
│ ├── INIFile.cs
│ ├── NightHunter2_BepInEx_DemulShooter_Plugin.ini
│ ├── Patch/
│ │ ├── _Unity.cs
│ │ ├── mGame Device_data_gun_core.cs
│ │ ├── mconfig_gun.cs
│ │ ├── mdog_check_new.cs
│ │ ├── mgame_device_sub_gun.cs
│ │ ├── mgame_mark_3d_obj.cs
│ │ ├── mgame_player_is_hit.cs
│ │ ├── mgun_body.cs
│ │ ├── mgun_body_tx_wuti.cs
│ │ ├── minput_manage.cs
│ │ ├── minput_obj_change_bullet.cs
│ │ ├── mnew_game_gui_connect_player_slider.cs
│ │ ├── mshow_info_manage_for_objs.cs
│ │ ├── mtest_screen.cs
│ │ ├── mzhichi_hanshu_pos.cs
│ │ └── mzzp_houtai_manage_check_control.cs
│ ├── PluginController.cs
│ ├── PluginControllerButton.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── TcpData.cs
│ ├── TcpInputData.cs
│ ├── TcpOutputData.cs
│ ├── TcpPacket.cs
│ ├── UnityLibs/
│ │ └── List_of_dll_to_copy_here.txt
│ ├── UnityPlugin_BepInEx_NHA2.csproj
│ └── UnityPlugin_BepInEx_NHA2.sln
├── UnityPlugin_BepInEx_OWR/
│ ├── DemulShooter_Plugin.cs
│ ├── INIFile.cs
│ ├── OperationWolf_BepInEx_DemulShooter_Plugin.ini
│ ├── Patch/
│ │ ├── _Unity.cs
│ │ ├── mCursorMouseMouve.cs
│ │ ├── mGameManager.cs
│ │ ├── mInterfaceModule.cs
│ │ ├── mPlayer.cs
│ │ ├── mPlayerInOutModule.cs
│ │ ├── mScreenDuckHunt_InOutSystem.cs
│ │ ├── mScreenMouseLook_InOutSystem.cs
│ │ ├── mScreenView.cs
│ │ └── mWeapon.cs
│ ├── PluginController.cs
│ ├── PluginControllerButton.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── TcpData.cs
│ ├── TcpInputData.cs
│ ├── TcpOutputData.cs
│ ├── TcpPacket.cs
│ ├── UnityLibs/
│ │ └── List_of_dll_to_copy_here.txt
│ ├── UnityPlugin_BepInEx_OperationWolf.csproj
│ └── UnityPlugin_BepInEx_OperationWolf.sln
├── UnityPlugin_BepInEx_PBX/
│ ├── DemulShooter_Plugin.cs
│ ├── INIFile.cs
│ ├── PluginController.cs
│ ├── PluginControllerButton.cs
│ ├── PointBlankX_BepInEx_DemulShooter_Plugin.ini
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── TcpData.cs
│ ├── TcpInputData.cs
│ ├── TcpOutputData.cs
│ ├── TcpPacket.cs
│ ├── UnityLibs/
│ │ └── List_of_dll_to_copy_here.txt
│ ├── UnityPlugin_BepInEx_PointBlankX.csproj
│ ├── UnityPlugin_BepInEx_PointBlankX.sln
│ └── patch/
│ ├── _Unity.cs
│ ├── mBNUsioController.cs
│ ├── mBootSceneController.cs
│ ├── mConfig.cs
│ ├── mErrorMessageHandler.cs
│ ├── mGlobalData.cs
│ ├── mInputWrapper.cs
│ ├── mPlayer.cs
│ ├── mTitleController.cs
│ └── mUIPlayerPanel.cs
├── UnityPlugin_BepInEx_PVZ/
│ ├── DemulShooter_Plugin.cs
│ ├── INIFile.cs
│ ├── Patch/
│ │ ├── _Unity.cs
│ │ ├── mInput.cs
│ │ ├── mPvzCore.cs
│ │ └── mPvzCrosshair.cs
│ ├── PluginController.cs
│ ├── PluginControllerButton.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── PvZ_BepInEx_DemulShooter_Plugin.ini
│ ├── TcpData.cs
│ ├── TcpInputData.cs
│ ├── TcpOutputData.cs
│ ├── TcpPacket.cs
│ ├── UnityLibs/
│ │ └── List_of_dll_to_copy_here.txt
│ ├── UnityPlugin_BepInEx_PVZ.csproj
│ └── UnityPlugin_BepInEx_PVZ.sln
├── UnityPlugin_BepInEx_RHA/
│ ├── Demulshooter_Plugin.cs
│ ├── INIFile.cs
│ ├── Patch/
│ │ ├── NAEMGFFONID.cs
│ │ ├── SBK/
│ │ │ ├── Matrix/
│ │ │ │ └── mMatrixManager.cs
│ │ │ ├── Sixensecore/
│ │ │ │ └── mDevice.cs
│ │ │ └── mApplicationManager.cs
│ │ ├── _Unity.cs
│ │ ├── mArcadeGamePlayManager.cs
│ │ ├── mArcadeManager.cs
│ │ ├── mCrosshairWindow.cs
│ │ ├── mGunDetection.cs
│ │ ├── mKaboomAdrioFxPlusFourFeeders.cs
│ │ ├── mKaboomManager.cs
│ │ ├── mLEDManager.cs
│ │ ├── mLanguageLocalizer.cs
│ │ ├── mLevelSelectorWindow.cs
│ │ ├── mNewInputManager.cs
│ │ ├── mPlayerManager.cs
│ │ ├── mPlayerPrefs.cs
│ │ ├── mSBKInputManager.cs
│ │ ├── mWorldManager.cs
│ │ └── mWorldSelectorWindow.cs
│ ├── PluginController.cs
│ ├── PluginControllerButton.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── RabbidsHollywood_BepInEx_DemulShooter_Plugin.ini
│ ├── TcpData.cs
│ ├── TcpInputData.cs
│ ├── TcpOutputData.cs
│ ├── TcpPacket.cs
│ ├── UnityLibs/
│ │ └── List_of_dll_to_copy_here.txt
│ ├── UnityPlugin_BepInEx_RabbidsHollywood.csproj
│ └── UnityPlugin_BepInEx_RabbidsHollywood.sln
├── UnityPlugin_BepInEx_RTNA/
│ ├── DemulShooter_Plugin.cs
│ ├── INIFile.cs
│ ├── NerfArcade_BepInEx_DemulShooter_Plugin.ini
│ ├── Patch/
│ │ ├── _Unity.cs
│ │ ├── mGame.cs
│ │ ├── mIOManager.cs
│ │ ├── mPlayerInfo.cs
│ │ ├── mPlayerReticle.cs
│ │ ├── mSys_Linux.cs
│ │ └── mUnityNatives.cs
│ ├── PluginController.cs
│ ├── PluginControllerButton.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── TcpData.cs
│ ├── TcpInputData.cs
│ ├── TcpOutputData.cs
│ ├── TcpPacket.cs
│ ├── UnityLibs/
│ │ └── List_of_dll_to_copy_here.txt
│ ├── UnityPlugin_BepInEx_NerfArcade.csproj
│ └── UnityPlugin_BepInEx_NerfArcade.sln
├── UnityPlugin_BepInEx_TRA/
│ ├── DemulShooter_Plugin.cs
│ ├── INIFile.cs
│ ├── Patch/
│ │ ├── SBK/
│ │ │ └── Encryption/
│ │ │ └── mDataTransform.cs
│ │ ├── TRA/
│ │ │ └── Timeline/
│ │ │ └── Skip/
│ │ │ └── mSkipMixerBehaviour.cs
│ │ ├── _Unity.cs
│ │ ├── mArcadeManager.cs
│ │ ├── mCheatsManager.cs
│ │ ├── mCrosshairWindow.cs
│ │ ├── mInputManager.cs
│ │ ├── mKaboomAdrioFxPlusFourFeeders.cs
│ │ ├── mKaboomManager.cs
│ │ ├── mLEDManager.cs
│ │ ├── mLanguageLocalizer.cs
│ │ ├── mOperatorMenu.cs
│ │ ├── mPlayer.cs
│ │ ├── mPlayerManager.cs
│ │ └── mSBKInputManager.cs
│ ├── PluginController.cs
│ ├── PluginControllerButton.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── TcpData.cs
│ ├── TcpInputData.cs
│ ├── TcpOutputData.cs
│ ├── TcpPacket.cs
│ ├── TombRaider_BepInEx_DemulShooter_Plugin.ini
│ ├── UnityLibs/
│ │ └── List_of_dll_to_copy_here.txt
│ ├── UnityPlugin_BepInEx_TombRaider.csproj
│ └── UnityPlugin_BepInEx_TombRaider.sln
└── UnityPlugin_BepInEx_WWS/
├── Demulshooter_Plugin.cs
├── INIFile.cs
├── Patch/
│ ├── MVSDK/
│ │ └── mBaseGun.cs
│ ├── _Unity.cs
│ ├── mBaseCamera.cs
│ ├── mBaseCom.cs
│ ├── mGameBeginUIController.cs
│ ├── mGameChooseUI2.cs
│ ├── mGameStart.cs
│ ├── mGameUIController.cs
│ ├── mInputController.cs
│ ├── mLSerialPort.cs
│ ├── mMVSettings.cs
│ ├── mPlayerData.cs
│ ├── mPlayerUIController.cs
│ ├── mSettingController.cs
│ ├── mShootController.cs
│ └── mShowGamePointController.cs
├── PluginController.cs
├── PluginControllerButton.cs
├── Properties/
│ └── AssemblyInfo.cs
├── TcpData.cs
├── TcpInputData.cs
├── TcpOutputData.cs
├── TcpPacket.cs
├── UnityLibs/
│ └── List_of_dll_to_copy_here.txt
├── UnityPlugin_BepInEx_WWS.csproj
├── UnityPlugin_BepInEx_WWS.sln
└── WildWestShootout_BepInEx_DemulShooter_Plugin.ini
Showing preview only (341K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3713 symbols across 506 files)
FILE: DemulShooter/DemulShooterWindow.cs
class DemulShooterWindow (line 19) | public class DemulShooterWindow : ApplicationContext
method DemulShooterWindow (line 70) | public DemulShooterWindow(string[] Args, bool isVerbose, bool enableTr...
method IsRunningAsAdmin (line 884) | private bool IsRunningAsAdmin()
method CreateRawMessageWindow (line 907) | public bool CreateRawMessageWindow()
method myWndProc (line 960) | private IntPtr myWndProc(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr ...
method ProcessRawInputMessage (line 1022) | private void ProcessRawInputMessage(IntPtr RawInputHandle)
method ReadAndSendOutput_Thread (line 1177) | private void ReadAndSendOutput_Thread()
method InitializeComponent (line 1200) | private void InitializeComponent()
method OnTrayExitSelected (line 1220) | private void OnTrayExitSelected(object sender, EventArgs e)
method OnGameHooked (line 1225) | private void OnGameHooked(object sender, EventArgs e)
method OnApplicationExit (line 1250) | private void OnApplicationExit(object sender, EventArgs e)
method CleanAppBeforeExit (line 1259) | private void CleanAppBeforeExit()
method ApplyMouseHook (line 1294) | protected void ApplyMouseHook()
method MouseHookCallback (line 1309) | private IntPtr MouseHookCallback(int nCode, IntPtr wParam, IntPtr lParam)
method RemoveMouseHook (line 1326) | protected void RemoveMouseHook()
method ApplyKeyboardHook (line 1334) | protected void ApplyKeyboardHook()
method KeyboardHookCallback (line 1349) | protected virtual IntPtr KeyboardHookCallback(int nCode, IntPtr wParam...
method RemoveKeyboardHook (line 1432) | protected void RemoveKeyboardHook()
method tHookTimeOut_Elapsed (line 1438) | private void tHookTimeOut_Elapsed(Object Sender, EventArgs e)
FILE: DemulShooter/Game_WndSpray.cs
class Game_WndSpray (line 14) | class Game_WndSpray : Game
method Game_WndSpray (line 36) | public Game_WndSpray(String RomName)
method tProcess_Elapsed (line 48) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 98) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 142) | protected override void Apply_InputsMemoryHack()
method SetHack_CoinKey (line 183) | private void SetHack_CoinKey()
method SendInput (line 211) | public override void SendInput(PlayerSettings PlayerData)
FILE: DemulShooter/Games/Game.cs
class Game (line 19) | public class Game
method Game (line 99) | public Game(String RomName, String TargetProcessName)
method tProcess_Elapsed (line 134) | protected virtual void tProcess_Elapsed(Object sender, EventArgs e)
method RaiseGameHookedEvent (line 140) | protected void RaiseGameHookedEvent()
method GetGameOptions (line 148) | private void GetGameOptions()
method CheckExeMd5 (line 199) | protected void CheckExeMd5()
method CheckMd5 (line 203) | protected void CheckMd5(String TargetFileName)
method GetMd5HashAsString (line 233) | private void GetMd5HashAsString(String FileName)
method GetScreenScaling (line 312) | private string GetScreenScaling()
method GetFullscreenStatus (line 338) | public virtual bool GetFullscreenStatus()
method GetScreenResolution (line 378) | public virtual void GetScreenResolution()
method GetScreenresolution2 (line 386) | public void GetScreenresolution2()
method Clamp (line 398) | protected int Clamp(int val, int minVal, int maxVal)
method ScreenScale (line 408) | public int ScreenScale(int val, int fromMinVal, int fromMaxVal, int to...
method ScreenScale (line 412) | protected int ScreenScale(int val, int fromMinVal, int fromOffVal, int...
method ClientScale (line 472) | public virtual bool ClientScale(PlayerSettings PlayerData)
method GetClientwindowInfo (line 494) | public void GetClientwindowInfo()
method GetClientRect (line 515) | public virtual bool GetClientRect()
method GameScale (line 529) | public virtual bool GameScale(PlayerSettings PlayerData)
method ReadGameData (line 565) | protected virtual void ReadGameData()
method ReadGameDataFromMd5Hash (line 573) | protected virtual void ReadGameDataFromMd5Hash(String GameData_Folder)
method Apply_MemoryHacks (line 646) | protected virtual void Apply_MemoryHacks()
method Apply_InputsMemoryHack (line 662) | protected virtual void Apply_InputsMemoryHack()
method Create_InputsDataBank (line 665) | protected virtual void Create_InputsDataBank()
method Apply_OutputsMemoryHack (line 681) | protected virtual void Apply_OutputsMemoryHack()
method Create_OutputsDataBank (line 684) | protected virtual void Create_OutputsDataBank()
method Apply_NoCrosshairMemoryHack (line 699) | protected virtual void Apply_NoCrosshairMemoryHack()
method SendInput (line 702) | public virtual void SendInput(PlayerSettings PlayerData)
method ReadByte (line 705) | protected Byte ReadByte(UInt32 Address)
method ReadBytes (line 716) | protected Byte[] ReadBytes(UInt32 Address, UInt32 BytesCount)
method ReadPtr (line 727) | protected UInt32 ReadPtr(UInt32 PtrAddress)
method ReadPtrChain (line 733) | protected UInt32 ReadPtrChain(UInt32 BaseAddress, UInt32[] Offsets)
method WriteByte (line 757) | protected bool WriteByte(UInt32 Address, byte Value)
method WriteBytes (line 772) | protected bool WriteBytes(UInt32 Address, byte[] Buffer)
method SetNops (line 786) | protected void SetNops(UInt32 BaseAddress, NopStruct Nop)
method Apply_OR_ByteMask (line 799) | protected void Apply_OR_ByteMask(UInt32 MemoryAddress, byte Mask)
method Apply_AND_ByteMask (line 806) | protected void Apply_AND_ByteMask(UInt32 MemoryAddress, byte Mask)
method CreateOutputList (line 817) | protected virtual void CreateOutputList()
method UpdateOutputValues (line 822) | public virtual void UpdateOutputValues()
method SetMamePauseState (line 825) | public void SetMamePauseState(bool PauseState)
method GetOutputById (line 838) | protected GameOutput GetOutputById(OutputId Id)
method SetOutputValue (line 853) | protected void SetOutputValue(OutputId Id, int Value)
method GetOutputDescriptionFromId (line 870) | public String GetOutputDescriptionFromId(uint Id)
method InstallX360Gamepad (line 892) | protected virtual void InstallX360Gamepad(int Player)
method UninstallX360Gamepad (line 929) | protected bool UninstallX360Gamepad(int Player)
method SendKey (line 972) | private void SendKey(HardwareScanCode Keycode, KeybdInputFlags KeybdIn...
method SendKeyStroke (line 994) | protected void SendKeyStroke(HardwareScanCode Keycode, int DelayPressed)
method SendKeyDown (line 1000) | protected void SendKeyDown(HardwareScanCode Keycode)
method SendKeyUp (line 1004) | protected void SendKeyUp(HardwareScanCode Keycode)
method Send_VK_KeyDown (line 1013) | protected void Send_VK_KeyDown(VirtualKeyCode Keycode)
method Send_VK_KeyUp (line 1017) | protected void Send_VK_KeyUp(VirtualKeyCode Keycode)
method MapScanCodeToVirtualKeyCode (line 1027) | public VirtualKeyCode MapScanCodeToVirtualKeyCode(HardwareScanCode Sca...
method MapScanCodeToVirtualKeyCode (line 1038) | public HardwareScanCode MapScanCodeToVirtualKeyCode(VirtualKeyCode Sca...
method MouseHookCallback (line 1052) | public virtual IntPtr MouseHookCallback(IntPtr MouseHookID, int nCode,...
method KeyboardHookCallback (line 1061) | public virtual IntPtr KeyboardHookCallback(IntPtr KeyboardHookID, int ...
method FindGameWindow_Contains (line 1073) | protected bool FindGameWindow_Contains(string TargetWindowTitle)
method FindGameWindow_Equals (line 1105) | protected bool FindGameWindow_Equals(string TargetWindowTitle)
method EnumerateProcessWindowHandles (line 1135) | protected static IEnumerable<IntPtr> EnumerateProcessWindowHandles(int...
method Get_GameWindowTitle (line 1150) | protected string Get_GameWindowTitle()
method CheckBytes (line 1166) | protected bool CheckBytes(UInt32 AddressToCheck, byte[] BytesToFind)
FILE: DemulShooter/Games/Game_ArcadePcWaterSprite2.cs
class Game_ArcadepcWaterSprite2 (line 10) | public class Game_ArcadepcWaterSprite2 : Game__Unity
class InputData (line 12) | private class InputData : Base_InputData
method InputData (line 17) | public InputData(int PlayerNumber) : base(PlayerNumber)
class OutputData (line 22) | private class OutputData : Base_OutputData
method OutputData (line 34) | public OutputData(int PlayerNumber) : base(PlayerNumber)
method Game_ArcadepcWaterSprite2 (line 44) | public Game_ArcadepcWaterSprite2(String RomName)
method SendInput (line 61) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 87) | protected override void CreateOutputList()
method UpdateOutputValues (line 109) | public override void UpdateOutputValues()
method DsTcp_Client_PacketReceived (line 114) | protected override void DsTcp_Client_PacketReceived(Object Sender, DsT...
method GetBlinkingLightState (line 150) | private int GetBlinkingLightState(byte ReadValue)
FILE: DemulShooter/Games/Game_ArcadepcFireHero.cs
class Game_ArcadepcFireHero (line 14) | public class Game_ArcadepcFireHero : Game__Unity
class InputData (line 16) | private class InputData : Base_InputData
method InputData (line 21) | public InputData(int PlayerNumber) : base(PlayerNumber)
class OutputData (line 26) | private class OutputData : Base_OutputData
method OutputData (line 45) | public OutputData(int PlayerNumber) : base(PlayerNumber)
method Game_ArcadepcFireHero (line 55) | public Game_ArcadepcFireHero(String RomName)
method tProcess_Elapsed (line 71) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method SendInput (line 161) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 187) | protected override void CreateOutputList()
method UpdateOutputValues (line 218) | public override void UpdateOutputValues()
method DsTcp_Client_PacketReceived (line 223) | protected override void DsTcp_Client_PacketReceived(Object Sender, DsT...
FILE: DemulShooter/Games/Game_ArcadepcGhostBusters.cs
class Game_ArcadepcGhostBusters (line 12) | class Game_ArcadepcGhostBusters : Game
method Game_ArcadepcGhostBusters (line 38) | public Game_ArcadepcGhostBusters(String RomName)
method tProcess_Elapsed (line 52) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method Apply_OutputsMemoryHack (line 127) | protected override void Apply_OutputsMemoryHack()
method SetHack_Recoil (line 142) | private void SetHack_Recoil()
method Apply_NoCrosshairMemoryHack (line 191) | protected override void Apply_NoCrosshairMemoryHack()
method CreateOutputList (line 213) | protected override void CreateOutputList()
method UpdateOutputValues (line 234) | public override void UpdateOutputValues()
method GetLampValueAsInt (line 265) | private int GetLampValueAsInt(UInt32 LmpAddress)
method GetMotorValueAsInt (line 272) | private int GetMotorValueAsInt(UInt32 LmpAddress)
FILE: DemulShooter/Games/Game_ArcadepcHsfr.cs
class Game_ArcadepcHsfr (line 12) | class Game_ArcadepcHsfr : Game
method Game_ArcadepcHsfr (line 44) | public Game_ArcadepcHsfr(String RomName)
method tProcess_Elapsed (line 55) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 132) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 179) | protected override void Apply_InputsMemoryHack()
method SetHack_Axis (line 195) | private void SetHack_Axis()
method Apply_OutputsMemoryHack (line 239) | protected override void Apply_OutputsMemoryHack()
method SetHack_GetGameManagerInstance (line 268) | private void SetHack_GetGameManagerInstance()
method SetHack_LightsOn (line 289) | private void SetHack_LightsOn()
method SetHack_LightsOff (line 320) | private void SetHack_LightsOff()
method SetHack_SeatOn (line 355) | private void SetHack_SeatOn()
method SetHack_SeatOff (line 374) | private void SetHack_SeatOff()
method SetHack_GunShakeOn (line 397) | private void SetHack_GunShakeOn()
method SetHack_GunShakeOff (line 415) | private void SetHack_GunShakeOff()
method SetHack_Damage (line 438) | private void SetHack_Damage()
method SetHack_MistState (line 474) | private void SetHack_MistState()
method SetHack_ControlManagerInstance (line 497) | private void SetHack_ControlManagerInstance()
method SendInput (line 522) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 538) | protected override void CreateOutputList()
method UpdateOutputValues (line 579) | public override void UpdateOutputValues()
method GetBlinkingLightState (line 690) | private int GetBlinkingLightState(byte ReadValue)
FILE: DemulShooter/Games/Game_ArcadepcMechaTornado.cs
class Game_ArcadepcMechaTornado (line 11) | public class Game_ArcadepcMechaTornado : Game__Unity
class InputData (line 13) | private class InputData : Base_InputData
method InputData (line 19) | public InputData(int PlayerNumber) : base(PlayerNumber)
class OutputData (line 24) | private class OutputData : Base_OutputData
method OutputData (line 39) | public OutputData(int PlayerNumber) : base(PlayerNumber)
method Game_ArcadepcMechaTornado (line 49) | public Game_ArcadepcMechaTornado(String RomName)
method SendInput (line 66) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 97) | protected override void CreateOutputList()
method UpdateOutputValues (line 147) | public override void UpdateOutputValues()
method DsTcp_Client_PacketReceived (line 152) | protected override void DsTcp_Client_PacketReceived(Object Sender, DsT...
FILE: DemulShooter/Games/Game_ArcadepcPvzLastStand.cs
class Game_ArcadepcPvzLastStand (line 19) | internal class Game_ArcadepcPvzLastStand : Game
class InputData (line 21) | private class InputData : DsTcpData
method InputData (line 29) | public InputData(int PlayerNumber) : base(PlayerNumber)
method Game_ArcadepcPvzLastStand (line 63) | public Game_ArcadepcPvzLastStand(String RomName)
method tProcess_Elapsed (line 79) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method DsTcp_client_TcpConnected (line 145) | private void DsTcp_client_TcpConnected(Object Sender, EventArgs e)
method GameScale (line 162) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_OutputsMemoryHack (line 194) | protected override void Apply_OutputsMemoryHack()
method SetHack_Damage (line 209) | private void SetHack_Damage()
method SendInput (line 234) | public override void SendInput(PlayerSettings PlayerData)
method KeyboardHookCallback (line 265) | public override IntPtr KeyboardHookCallback(IntPtr KeyboardHookID, int...
method CreateOutputList (line 303) | protected override void CreateOutputList()
method UpdateOutputValues (line 323) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_ArcadepcRobinHood.cs
class Game_ArcadepcRobinHood (line 12) | internal class Game_ArcadepcRobinHood : Game
type OutputType (line 22) | private enum OutputType : int
method Game_ArcadepcRobinHood (line 36) | public Game_ArcadepcRobinHood(String RomName)
method tProcess_Elapsed (line 49) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method Apply_OutputsMemoryHack (line 97) | protected override void Apply_OutputsMemoryHack()
method SetHack_RecopyOutputs (line 119) | private void SetHack_RecopyOutputs()
method CreateOutputList (line 175) | protected override void CreateOutputList()
method UpdateOutputValues (line 188) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_ArcadepcTopGun.cs
class Game_ArcadepcTopGun (line 12) | public class Game_ArcadepcTopGun : Game__Unity
class InputData (line 14) | private class InputData : Base_InputData
method InputData (line 20) | public InputData(int PlayerNumber) : base(PlayerNumber)
class OutputData (line 25) | private class OutputData : Base_OutputData
method OutputData (line 39) | public OutputData(int PlayerNumber) : base(PlayerNumber)
method Game_ArcadepcTopGun (line 49) | public Game_ArcadepcTopGun(String RomName)
method SendInput (line 66) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 97) | protected override void CreateOutputList()
method UpdateOutputValues (line 108) | public override void UpdateOutputValues()
method DsTcp_Client_PacketReceived (line 113) | protected override void DsTcp_Client_PacketReceived(Object Sender, DsT...
FILE: DemulShooter/Games/Game_ArcadepcWaterWar2.cs
class Game_ArcadepcWaterWar2 (line 10) | public class Game_ArcadepcWaterWar2 : Game__Unity
class InputData (line 12) | private class InputData : Base_InputData
method InputData (line 17) | public InputData(int PlayerNumber) : base(PlayerNumber)
class OutputData (line 22) | private class OutputData : Base_OutputData
method OutputData (line 31) | public OutputData(int PlayerNumber) : base(PlayerNumber)
method Game_ArcadepcWaterWar2 (line 41) | public Game_ArcadepcWaterWar2(String RomName)
method SendInput (line 58) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 84) | protected override void CreateOutputList()
method UpdateOutputValues (line 103) | public override void UpdateOutputValues()
method DsTcp_Client_PacketReceived (line 108) | protected override void DsTcp_Client_PacketReceived(Object Sender, DsT...
FILE: DemulShooter/Games/Game_ArcadepcWws.cs
class Game_ArcadepcWws (line 11) | public class Game_ArcadepcWws : Game__Unity
class InputData (line 13) | private class InputData : Base_InputData
method InputData (line 20) | public InputData(int PlayerNumber) : base(PlayerNumber)
class OutputData (line 25) | private class OutputData : Base_OutputData
method OutputData (line 34) | public OutputData(int PlayerNumber) : base(PlayerNumber)
method Game_ArcadepcWws (line 44) | public Game_ArcadepcWws(String RomName)
method SendInput (line 61) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 97) | protected override void CreateOutputList()
method UpdateOutputValues (line 117) | public override void UpdateOutputValues()
method DsTcp_Client_PacketReceived (line 122) | protected override void DsTcp_Client_PacketReceived(Object Sender, DsT...
FILE: DemulShooter/Games/Game_CxbxGsquad.cs
class Game_CxbxGsquad (line 22) | class Game_CxbxGsquad : Game
method Game_CxbxGsquad (line 44) | public Game_CxbxGsquad(String RomName)
method tProcess_Elapsed (line 55) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 110) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 150) | protected override void Apply_InputsMemoryHack()
method SetHack_Buttons (line 167) | private void SetHack_Buttons()
method SetHack_Axis (line 188) | private void SetHack_Axis()
method SetHack_Calibration (line 207) | private void SetHack_Calibration()
method SendInput (line 220) | public override void SendInput(PlayerSettings PlayerData)
method KeyboardHookCallback (line 276) | public override IntPtr KeyboardHookCallback(IntPtr KeyboardHookID, int...
method CreateOutputList (line 327) | protected override void CreateOutputList()
method UpdateOutputValues (line 354) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_CxbxHod3.cs
class Game_CxbxHod3 (line 22) | class Game_CxbxHod3 : Game
method Game_CxbxHod3 (line 67) | public Game_CxbxHod3(String RomName)
method tProcess_Elapsed (line 78) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 133) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 177) | protected override void Apply_InputsMemoryHack()
method SetHack_Buttons (line 193) | private void SetHack_Buttons()
method SetHack_Axis_X (line 205) | private void SetHack_Axis_X()
method SetHack_Axis_Y (line 226) | private void SetHack_Axis_Y()
method SendInput (line 254) | public override void SendInput(PlayerSettings PlayerData)
method KeyboardHookCallback (line 289) | public override IntPtr KeyboardHookCallback(IntPtr KeyboardHookID, int...
method CreateOutputList (line 322) | protected override void CreateOutputList()
method UpdateOutputValues (line 343) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_CxbxVcop3.cs
class Game_CxbxVcop3 (line 22) | class Game_CxbxVcop3 : Game
method Game_CxbxVcop3 (line 44) | public Game_CxbxVcop3(String RomName)
method tProcess_Elapsed (line 56) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 111) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 151) | protected override void Apply_InputsMemoryHack()
method SetHack_Buttons (line 168) | private void SetHack_Buttons()
method SetHack_Axis (line 186) | private void SetHack_Axis()
method SetHack_Calibration (line 205) | private void SetHack_Calibration()
method SendInput (line 219) | public override void SendInput(PlayerSettings PlayerData)
method KeyboardHookCallback (line 275) | public override IntPtr KeyboardHookCallback(IntPtr KeyboardHookID, int...
method CreateOutputList (line 326) | protected override void CreateOutputList()
method UpdateOutputValues (line 351) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_CxbxVcop3_Old.cs
class Game_CxbxVcop3_Old (line 21) | public class Game_CxbxVcop3_Old : Game
method Game_CxbxVcop3_Old (line 45) | public Game_CxbxVcop3_Old(String RomName)
method tProcess_Elapsed (line 55) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 110) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 154) | protected override void Apply_InputsMemoryHack()
method SetHack_Buttons (line 166) | private void SetHack_Buttons()
method SendInput (line 276) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 330) | protected override void CreateOutputList()
method UpdateOutputValues (line 354) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_Demul.cs
class Game_Demul (line 15) | class Game_Demul : Game
method Game_Demul (line 46) | public Game_Demul(String RomName, String SystemName, String DemulVersion)
method tProcess_Elapsed (line 68) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method ReadGameData (line 153) | protected override void ReadGameData()
method ReadWidescreenData (line 202) | private void ReadWidescreenData()
method GameScale (line 252) | public override bool GameScale(PlayerSettings PlayerData)
method SetHack_057 (line 316) | protected virtual void SetHack_057()
method SetHack_07 (line 319) | protected virtual void SetHack_07()
method MouseHookCallback (line 332) | public override IntPtr MouseHookCallback(IntPtr MouseHookID, int nCode...
class WidescreenData (line 346) | class WidescreenData
method WidescreenData (line 352) | public WidescreenData()
FILE: DemulShooter/Games/Game_DemulAtomiswave.cs
class Game_DemulAtomiswave (line 13) | class Game_DemulAtomiswave : Game
method Game_DemulAtomiswave (line 38) | public Game_DemulAtomiswave(String RomName, String DemulVersion)
method tProcess_Elapsed (line 55) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 143) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 238) | protected override void Apply_InputsMemoryHack()
method SendInput (line 340) | public override void SendInput(PlayerSettings PlayerData)
method MouseHookCallback (line 447) | public override IntPtr MouseHookCallback(IntPtr MouseHookID, int nCode...
FILE: DemulShooter/Games/Game_DemulHikaru.cs
class Game_DemulHikaru (line 12) | class Game_DemulHikaru : Game_Demul
method Game_DemulHikaru (line 14) | public Game_DemulHikaru(String Rom, String DemulVersion)
method SetHack_07 (line 20) | protected override void SetHack_07()
method SendInput (line 118) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 175) | protected override void CreateOutputList()
method UpdateOutputValues (line 191) | public override void UpdateOutputValues()
method Compute_Braveff_Outputs (line 197) | private void Compute_Braveff_Outputs()
FILE: DemulShooter/Games/Game_DemulJvs.cs
class Game_DemulJvs (line 12) | class Game_DemulJvs : Game_Demul
method Game_DemulJvs (line 20) | public Game_DemulJvs(String Rom, String DemulVersion)
method SetHack_057 (line 54) | protected override void SetHack_057()
method SetHack_07 (line 179) | protected override void SetHack_07()
method SendInput (line 308) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 388) | protected override void CreateOutputList()
method UpdateOutputValues (line 411) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_DemulManicpnc.cs
class Game_DemulManicpnc (line 14) | class Game_DemulManicpnc : Game
method Game_DemulManicpnc (line 29) | public Game_DemulManicpnc(String RomName)
method tProcess_Elapsed (line 50) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 131) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 227) | protected override void Apply_InputsMemoryHack()
method SetHack_ButtonsAndAxis (line 237) | private void SetHack_ButtonsAndAxis()
method SendInput (line 283) | public override void SendInput(PlayerSettings PlayerData)
method MouseHookCallback (line 348) | public override IntPtr MouseHookCallback(IntPtr MouseHookID, int nCode...
method tHoldTriggerP1_Elapsed (line 367) | private void tHoldTriggerP1_Elapsed(Object Sender, EventArgs e)
method tHoldTriggerP2_Elapsed (line 372) | private void tHoldTriggerP2_Elapsed(Object Sender, EventArgs e)
method CreateOutputList (line 385) | protected override void CreateOutputList()
method UpdateOutputValues (line 398) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_DemulNaomi.cs
class Game_DemulNaomi (line 12) | class Game_DemulNaomi : Game_Demul
method Game_DemulNaomi (line 14) | public Game_DemulNaomi(String RomName, String DemulVersion)
method SetHack_057 (line 20) | protected override void SetHack_057()
method SetHack_07 (line 101) | protected override void SetHack_07()
method SendInput (line 218) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 292) | protected override void CreateOutputList()
method UpdateOutputValues (line 313) | public override void UpdateOutputValues()
method Compute_Confmiss_Outputs (line 331) | private void Compute_Confmiss_Outputs()
method Compute_Deathcox_Outputs (line 406) | private void Compute_Deathcox_Outputs()
method Compute_Hotd2_Outputs (line 478) | private void Compute_Hotd2_Outputs(UInt32 DataPtr)
method Compute_Lupinsho_Outputs (line 549) | private void Compute_Lupinsho_Outputs()
method Compute_Mok_Outputs (line 625) | private void Compute_Mok_Outputs()
FILE: DemulShooter/Games/Game_Dolphin4.cs
class Game_Dolphin4 (line 13) | class Game_Dolphin4 : Game
method Game_Dolphin4 (line 45) | public Game_Dolphin4(String RomName, UInt32 DinputNumber)
method tProcess_Elapsed (line 58) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 108) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 172) | protected override void Apply_InputsMemoryHack()
method SendInput (line 286) | public override void SendInput(PlayerSettings PlayerData)
FILE: DemulShooter/Games/Game_Dolphin5.cs
class Game_Dolphin5 (line 11) | class Game_Dolphin5 : Game
method Game_Dolphin5 (line 38) | public Game_Dolphin5(String RomName, UInt32 DinputNumber)
method tProcess_Elapsed (line 50) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 101) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 165) | protected override void Apply_InputsMemoryHack()
method SendInput (line 221) | public override void SendInput(PlayerSettings PlayerData)
FILE: DemulShooter/Games/Game_Es4PointBlankX.cs
class Game_Es4PointBlankX (line 11) | internal class Game_Es4PointBlankX : Game__Unity
class InputData (line 13) | private class InputData : Base_InputData
method InputData (line 19) | public InputData(int PlayerNumber) : base(PlayerNumber)
class OutputData (line 24) | private class OutputData : Base_OutputData
method OutputData (line 33) | public OutputData(int PlayerNumber) : base(PlayerNumber)
method Game_Es4PointBlankX (line 43) | public Game_Es4PointBlankX(String RomName)
method SendInput (line 61) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 92) | protected override void CreateOutputList()
method UpdateOutputValues (line 111) | public override void UpdateOutputValues()
method DsTcp_Client_PacketReceived (line 116) | protected override void DsTcp_Client_PacketReceived(Object Sender, DsT...
FILE: DemulShooter/Games/Game_GameWaxAkuma.cs
class Game_GameWaxAkuma (line 13) | class Game_GameWaxAkuma : Game
method Game_GameWaxAkuma (line 56) | public Game_GameWaxAkuma(String RomName)
method tProcess_Elapsed (line 69) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 119) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 158) | protected override void Apply_InputsMemoryHack()
method SetHack_P1Trigger (line 179) | private void SetHack_P1Trigger()
method SetHack_P2Trigger (line 228) | private void SetHack_P2Trigger()
method SendInput (line 281) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 323) | protected override void CreateOutputList()
method UpdateOutputValues (line 346) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_GvrAliens.cs
class Game_GvrAliens (line 14) | class Game_GvrAliens : Game
method Game_GvrAliens (line 37) | public Game_GvrAliens(String RomName)
method tProcess_Elapsed (line 49) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 99) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 142) | protected override void Apply_InputsMemoryHack()
method Apply_OutputsMemoryHack (line 155) | protected override void Apply_OutputsMemoryHack()
method SetHack_CustomRecoilOutput (line 171) | private void SetHack_CustomRecoilOutput()
method SendInput (line 207) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 261) | protected override void CreateOutputList()
method UpdateOutputValues (line 290) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_GvrAliensHasp.cs
class Game_GvrAliensHasp (line 11) | class Game_GvrAliensHasp : Game
method Game_GvrAliensHasp (line 30) | public Game_GvrAliensHasp(string RomName)
method tProcess_Elapsed (line 44) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 94) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 137) | protected override void Apply_InputsMemoryHack()
method SendInput (line 157) | public override void SendInput(PlayerSettings PlayerData)
FILE: DemulShooter/Games/Game_GvrFarCry.cs
class Game_GvrFarCry (line 12) | class Game_GvrFarCry : Game
method Game_GvrFarCry (line 44) | public Game_GvrFarCry(String RomName)
method tProcess_Elapsed (line 58) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method Apply_OutputsMemoryHack (line 109) | protected override void Apply_OutputsMemoryHack()
method SetHack_ReadPlayerNotPlaying (line 142) | private void SetHack_ReadPlayerNotPlaying()
method SetHack_ReadPlayerPlaying (line 175) | private void SetHack_ReadPlayerPlaying()
method SetHack_ReadPlayerLife (line 206) | private void SetHack_ReadPlayerLife()
method SetHack_ReadPlayerShots (line 238) | private void SetHack_ReadPlayerShots()
method SetHack_ReadPlayerKillsDigit (line 271) | private void SetHack_ReadPlayerKillsDigit()
method SetHack_ReadRumble (line 326) | private void SetHack_ReadRumble()
method CreateOutputList (line 364) | protected override void CreateOutputList()
method UpdateOutputValues (line 388) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_GvrFearLand.cs
class Game_GvrFearLand (line 14) | class Game_GvrFearLand : Game
method Game_GvrFearLand (line 42) | public Game_GvrFearLand(String RomName, bool AlternativeGameplay)
method tProcess_Elapsed (line 59) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 109) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 166) | protected override void Apply_InputsMemoryHack()
method SetHack_Axis (line 197) | private void SetHack_Axis()
method SetHack_Trigger (line 262) | private void SetHack_Trigger()
method SendInput (line 353) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 419) | protected override void CreateOutputList()
method UpdateOutputValues (line 450) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_KonamiCastlevania.cs
class Game_KonamiCastlevania (line 15) | class Game_KonamiCastlevania : Game
method Game_KonamiCastlevania (line 59) | public Game_KonamiCastlevania(String RomName)
method tProcess_Elapsed (line 71) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method ClientScale (line 132) | public override bool ClientScale(PlayerSettings PlayerData)
method GameScale (line 154) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 194) | protected override void Apply_InputsMemoryHack()
method SetHack_Buttons (line 217) | private void SetHack_Buttons()
method SendInput (line 252) | public override void SendInput(PlayerSettings PlayerData)
method KeyboardHookCallback (line 299) | public override IntPtr KeyboardHookCallback(IntPtr KeyboardHookID, int...
method CreateOutputList (line 374) | protected override void CreateOutputList()
method UpdateOutputValues (line 403) | public override void UpdateOutputValues()
method GetLampAnalogValue (line 501) | private byte GetLampAnalogValue(UInt32 OutputLampAddress)
FILE: DemulShooter/Games/Game_KonamiCoopers9.cs
class Game_KonamiCoopers9 (line 12) | class Game_KonamiCoopers9 : Game
method Game_KonamiCoopers9 (line 33) | public Game_KonamiCoopers9(String RomName)
method tProcess_Elapsed (line 47) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method Apply_OutputsMemoryHack (line 94) | protected override void Apply_OutputsMemoryHack()
method SetHack_Recoil (line 117) | private void SetHack_Recoil(InjectionStruct Target)
method CreateOutputList (line 150) | protected override void CreateOutputList()
method UpdateOutputValues (line 172) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_KonamiGashaaaan2.cs
class Game_KonamiGashaaaan2 (line 12) | class Game_KonamiGashaaaan2 : Game
method Game_KonamiGashaaaan2 (line 31) | public Game_KonamiGashaaaan2(String RomName)
method tProcess_Elapsed (line 42) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method Apply_OutputsMemoryHack (line 89) | protected override void Apply_OutputsMemoryHack()
method SetHack_ig2ACLibIOSetLamp (line 110) | private void SetHack_ig2ACLibIOSetLamp()
method SetHack_ig2ACLibIOCoinBlockerOpen (line 140) | private void SetHack_ig2ACLibIOCoinBlockerOpen()
method SetHack_ig2ACLibIOCoinBlockerClose (line 159) | private void SetHack_ig2ACLibIOCoinBlockerClose()
method SetHack_ig2ACLibIOSetBallSupply (line 179) | private void SetHack_ig2ACLibIOSetBallSupply()
method SetHack_ig2ACLibIOSetBallSupplyStop (line 205) | private void SetHack_ig2ACLibIOSetBallSupplyStop()
method CreateOutputList (line 234) | protected override void CreateOutputList()
method UpdateOutputValues (line 255) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_KonamiLethalEnforcer3.cs
class Game_KonamiLethalEnforcers3 (line 15) | class Game_KonamiLethalEnforcers3 : Game
method Game_KonamiLethalEnforcers3 (line 86) | public Game_KonamiLethalEnforcers3(String RomName)
method tProcess_Elapsed (line 99) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 156) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 216) | protected override void Apply_InputsMemoryHack()
method SendInput (line 242) | public override void SendInput(PlayerSettings PlayerData)
method SetButtonBistable (line 329) | private void SetButtonBistable(UInt32 ButtonOffset)
method KeyboardHookCallback (line 339) | public override IntPtr KeyboardHookCallback(IntPtr KeyboardHookID, int...
method CreateOutputList (line 424) | protected override void CreateOutputList()
method UpdateOutputValues (line 449) | public override void UpdateOutputValues()
method GetLampAnalogValue (line 551) | private byte GetLampAnalogValue(UInt32 OutputLampAddress)
FILE: DemulShooter/Games/Game_KonamiWartran.cs
class Game_KonamiWartran (line 11) | class Game_KonamiWartran : Game
method Game_KonamiWartran (line 41) | public Game_KonamiWartran(String RomName)
method tProcess_Elapsed (line 53) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method CreateOutputList (line 106) | protected override void CreateOutputList()
method UpdateOutputValues (line 141) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_Lindbergh2spicy.cs
class Game_Lindbergh2spicy (line 16) | class Game_Lindbergh2spicy : Game
method Game_Lindbergh2spicy (line 43) | public Game_Lindbergh2spicy(String RomName)
method tProcess_Elapsed (line 55) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 136) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 176) | protected override void Apply_InputsMemoryHack()
method SetHack_JvsRawAxes (line 197) | private void SetHack_JvsRawAxes()
method SetHack_Buttons (line 221) | private void SetHack_Buttons()
method SendInput (line 256) | public override void SendInput(PlayerSettings PlayerData)
method KeyboardHookCallback (line 292) | public override IntPtr KeyboardHookCallback(IntPtr KeyboardHookID, int...
method CreateOutputList (line 330) | protected override void CreateOutputList()
method UpdateOutputValues (line 354) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_LindberghGsquadEvo.cs
class Game_LindberghGsquadEvo (line 14) | class Game_LindberghGsquadEvo : Game
method Game_LindberghGsquadEvo (line 47) | public Game_LindberghGsquadEvo(String RomName)
method tProcess_Elapsed (line 59) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 140) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 179) | protected override void Apply_InputsMemoryHack()
method SetHack_Axes (line 195) | private void SetHack_Axes()
method SetHack_Buttons (line 219) | private void SetHack_Buttons()
method Apply_OutputsMemoryHack (line 252) | protected override void Apply_OutputsMemoryHack()
method SetHack_Damage (line 265) | private void SetHack_Damage()
method SendInput (line 298) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 370) | protected override void CreateOutputList()
method UpdateOutputValues (line 392) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_LindberghHotd4.cs
class Game_LindberghHotd4 (line 14) | class Game_LindberghHotd4 : Game
method Game_LindberghHotd4 (line 40) | public Game_LindberghHotd4(String RomName)
method tProcess_Elapsed (line 54) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 144) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 183) | protected override void Apply_InputsMemoryHack()
method SetHack_Axes (line 201) | private void SetHack_Axes()
method SetHack_AdjustedAxes (line 239) | private void SetHack_AdjustedAxes()
method SetHack_Buttons (line 302) | private void SetHack_Buttons()
method SendInput (line 340) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 419) | protected override void CreateOutputList()
method UpdateOutputValues (line 443) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_LindberghHotd4Ex.cs
class Game_LindberghHotd4Ex (line 15) | class Game_LindberghHotd4Ex : Game
method Game_LindberghHotd4Ex (line 34) | public Game_LindberghHotd4Ex(String RomName, bool DisableInputHack, bo...
method tProcess_Elapsed (line 44) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method CreateOutputList (line 101) | protected override void CreateOutputList()
method UpdateOutputValues (line 130) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_LindberghHotd4Sp.cs
class Game_LindberghHotd4Sp (line 14) | class Game_LindberghHotd4Sp : Game
method Game_LindberghHotd4Sp (line 43) | public Game_LindberghHotd4Sp(String RomName)
method tProcess_Elapsed (line 55) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 136) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 175) | protected override void Apply_InputsMemoryHack()
method SetHack_Axes (line 197) | private void SetHack_Axes()
method SetHack_AdjustedAxes (line 220) | private void SetHack_AdjustedAxes()
method SetHack_Buttons (line 283) | private void SetHack_Buttons()
method SendInput (line 321) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 378) | protected override void CreateOutputList()
method UpdateOutputValues (line 408) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_LindberghHotdEx.cs
class Game_LindberghHotdEx (line 14) | class Game_LindberghHotdEx : Game
method Game_LindberghHotdEx (line 41) | public Game_LindberghHotdEx(String RomName)
method tProcess_Elapsed (line 54) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 136) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 175) | protected override void Apply_InputsMemoryHack()
method SetHack_Axes (line 190) | private void SetHack_Axes()
method SetHack_Buttons (line 214) | private void SetHack_Buttons()
method SendInput (line 252) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 307) | protected override void CreateOutputList()
method UpdateOutputValues (line 336) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_LindberghLgj.cs
class Game_LindberghLgj (line 14) | class Game_LindberghLgj : Game
method Game_LindberghLgj (line 51) | public Game_LindberghLgj(String RomName)
method tProcess_Elapsed (line 64) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 151) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 190) | protected override void Apply_InputsMemoryHack()
method SetHack_Axes (line 208) | private void SetHack_Axes()
method SetHack_Buttons (line 232) | private void SetHack_Buttons()
method Apply_OutputsMemoryHack (line 266) | protected override void Apply_OutputsMemoryHack()
method SetHack_Recoil (line 281) | private void SetHack_Recoil()
method Apply_NoCrosshairMemoryHack (line 311) | protected override void Apply_NoCrosshairMemoryHack()
method SendInput (line 323) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 373) | protected override void CreateOutputList()
method UpdateOutputValues (line 395) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_LindberghLgjsp.cs
class Game_LindberghLgjsp (line 15) | class Game_LindberghLgjsp : Game
method Game_LindberghLgjsp (line 50) | public Game_LindberghLgjsp(String RomName)
method tProcess_Elapsed (line 62) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 143) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 182) | protected override void Apply_InputsMemoryHack()
method SetHack_Axes (line 200) | private void SetHack_Axes()
method SetHack_Buttons (line 224) | private void SetHack_Buttons()
method Apply_OutputsMemoryHack (line 258) | protected override void Apply_OutputsMemoryHack()
method SetHack_Recoil (line 273) | private void SetHack_Recoil()
method Apply_NoCrosshairMemoryHack (line 303) | protected override void Apply_NoCrosshairMemoryHack()
method SendInput (line 315) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 365) | protected override void CreateOutputList()
method UpdateOutputValues (line 387) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_LindberghRambo.cs
class Game_LindberghRambo (line 14) | public class Game_LindberghRambo : Game
method Game_LindberghRambo (line 41) | public Game_LindberghRambo(String RomName)
method tProcess_Elapsed (line 55) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 145) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 184) | protected override void Apply_InputsMemoryHack()
method SetHack_JvsRawAxes (line 199) | private void SetHack_JvsRawAxes()
method SetHack_AdjustedAxes (line 222) | private void SetHack_AdjustedAxes()
method SetHack_Buttons (line 287) | private void SetHack_Buttons()
method Apply_NoCrosshairMemoryHack (line 321) | protected override void Apply_NoCrosshairMemoryHack()
method SendInput (line 334) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 395) | protected override void CreateOutputList()
method UpdateOutputValues (line 417) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_Model2Bel.cs
class Game_Model2Bel (line 12) | class Game_Model2Bel : Game
method Game_Model2Bel (line 32) | public Game_Model2Bel(String RomName)
method tProcess_Elapsed (line 45) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 100) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 140) | protected override void Apply_InputsMemoryHack()
method SendInput (line 174) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 218) | protected override void CreateOutputList()
method UpdateOutputValues (line 242) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_Model2Gunblade.cs
class Game_Model2Gunblade (line 12) | class Game_Model2Gunblade : Game
method Game_Model2Gunblade (line 33) | public Game_Model2Gunblade(String RomName)
method tProcess_Elapsed (line 46) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 101) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 141) | protected override void Apply_InputsMemoryHack()
method SendInput (line 175) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 219) | protected override void CreateOutputList()
method UpdateOutputValues (line 239) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_Model2Hotd.cs
class Game_Model2Hotd (line 13) | class Game_Model2Hotd : Game
method Game_Model2Hotd (line 40) | public Game_Model2Hotd(String RomName)
method tProcess_Elapsed (line 53) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 107) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 148) | protected override void Apply_InputsMemoryHack()
method SendInput (line 186) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 242) | protected override void CreateOutputList()
method UpdateOutputValues (line 263) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_Model2Rchase2.cs
class Game_Model2Rchase2 (line 12) | class Game_Model2Rchase2 : Game
method Game_Model2Rchase2 (line 33) | public Game_Model2Rchase2(String RomName)
method tProcess_Elapsed (line 46) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 101) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 145) | protected override void Apply_InputsMemoryHack()
method SendInput (line 179) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 223) | protected override void CreateOutputList()
method UpdateOutputValues (line 238) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_Model2Vcop.cs
class Game_Model2Vcop (line 14) | class Game_Model2Vcop : Game
method Game_Model2Vcop (line 36) | public Game_Model2Vcop(String RomName)
method tProcess_Elapsed (line 49) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 104) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 145) | protected override void Apply_InputsMemoryHack()
method SetHack_P1Axis (line 178) | private void SetHack_P1Axis(UInt32 InjectionOffset, UInt32 Length)
method SetHack_P2Axis (line 210) | private void SetHack_P2Axis(UInt32 InjectionOffset, UInt32 Length)
method SendInput (line 249) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 305) | protected override void CreateOutputList()
method UpdateOutputValues (line 326) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_Model2Vcop2.cs
class Game_Model2Vcop2 (line 13) | class Game_Model2Vcop2 : Game
method Game_Model2Vcop2 (line 37) | public Game_Model2Vcop2(String RomName)
method tProcess_Elapsed (line 50) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 105) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 146) | protected override void Apply_InputsMemoryHack()
method SetHack_P1Axis (line 179) | private void SetHack_P1Axis()
method SetHack_P2Axis (line 197) | private void SetHack_P2Axis()
method SendInput (line 222) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 278) | protected override void CreateOutputList()
method UpdateOutputValues (line 299) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_PpmPoliceTrainer2.cs
class Game_PpmPoliceTrainer2 (line 13) | class Game_PpmPoliceTrainer2 : Game
method Game_PpmPoliceTrainer2 (line 37) | public Game_PpmPoliceTrainer2(String RomName)
method tProcess_Elapsed (line 48) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method Apply_OutputsMemoryHack (line 109) | protected override void Apply_OutputsMemoryHack()
method SetHack_Recoil_P1 (line 126) | private void SetHack_Recoil_P1()
method SetHack_Recoil_P2 (line 175) | private void SetHack_Recoil_P2()
method CreateOutputList (line 227) | protected override void CreateOutputList()
method UpdateOutputValues (line 249) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_Re2Transformers2.cs
class Game_Re2Transformers2 (line 15) | class Game_Re2Transformers2 : Game
method Game_Re2Transformers2 (line 75) | public Game_Re2Transformers2(String RomName)
method tProcess_Elapsed (line 87) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 143) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 185) | protected override void Apply_InputsMemoryHack()
method SetHack_Axis (line 224) | private void SetHack_Axis()
method SetHack_Buttons (line 271) | private void SetHack_Buttons()
method SetHack_Credits (line 371) | private void SetHack_Credits()
method SetHack_CorrectReticlePosition (line 405) | private void SetHack_CorrectReticlePosition()
method SetHack_CorrectEnnemyTarget (line 433) | private void SetHack_CorrectEnnemyTarget()
method Apply_OutputsMemoryHack (line 459) | protected override void Apply_OutputsMemoryHack()
method SetHack_Output_StartLamp (line 484) | private void SetHack_Output_StartLamp()
method SetHack_Output_GunLamp (line 506) | private void SetHack_Output_GunLamp()
method SetHack_Recoil (line 534) | private void SetHack_Recoil()
method SetHack_Damage (line 563) | private void SetHack_Damage()
method SetHack_RecoilP1 (line 594) | private void SetHack_RecoilP1()
method SetHack_RecoilP2 (line 599) | private void SetHack_RecoilP2()
method Apply_NoCrosshairMemoryHack (line 610) | protected override void Apply_NoCrosshairMemoryHack()
method SendInput (line 664) | public override void SendInput(PlayerSettings PlayerData)
method KeyboardHookCallback (line 700) | public override IntPtr KeyboardHookCallback(IntPtr KeyboardHookID, int...
method CreateOutputList (line 767) | protected override void CreateOutputList()
method UpdateOutputValues (line 793) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_RtAliensArmageddon.cs
class Game_RtAliensArmageddon (line 12) | class Game_RtAliensArmageddon : Game
method Game_RtAliensArmageddon (line 33) | public Game_RtAliensArmageddon(String RomName)
method tProcess_Elapsed (line 45) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method Apply_OutputsMemoryHack (line 107) | protected override void Apply_OutputsMemoryHack()
method Apply_NoCrosshairMemoryHack (line 143) | protected override void Apply_NoCrosshairMemoryHack()
method Apply_P1NoCrosshair_Hack (line 149) | private void Apply_P1NoCrosshair_Hack()
method Apply_P2NoCrosshair_Hack (line 169) | private void Apply_P2NoCrosshair_Hack()
method CreateOutputList (line 197) | protected override void CreateOutputList()
method UpdateOutputValues (line 236) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_RtJurassicPark.cs
class Game_RtJurassicPark (line 13) | class Game_RtJurassicPark : Game
method Game_RtJurassicPark (line 54) | public Game_RtJurassicPark(String RomName)
method tProcess_Elapsed (line 68) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method Apply_OutputsMemoryHack (line 146) | protected override void Apply_OutputsMemoryHack()
method SetHack_Lasers (line 165) | private void SetHack_Lasers()
method SetHack_Damage (line 197) | private void SetHack_Damage()
method SetHack_Recoil1 (line 244) | private void SetHack_Recoil1()
method SetHack_Recoil2 (line 281) | private void SetHack_Recoil2()
method Apply_NoCrosshairMemoryHack (line 319) | protected override void Apply_NoCrosshairMemoryHack()
method CreateOutputList (line 344) | protected override void CreateOutputList()
method UpdateOutputValues (line 390) | public override void UpdateOutputValues()
method GetLampValueAsInt (line 537) | private int GetLampValueAsInt(int LmpId)
method GameFlow_Get_PlayerRecord (line 550) | private UInt32 GameFlow_Get_PlayerRecord(int PlayerId)
method GameFlow_Get_PlayerActive (line 583) | private bool GameFlow_Get_PlayerActive(int PlayerId)
FILE: DemulShooter/Games/Game_RtTargetTerror.cs
class Game_RtTargetTerror (line 12) | class Game_RtTargetTerror : Game
method Game_RtTargetTerror (line 40) | public Game_RtTargetTerror(String RomName)
method tProcess_Elapsed (line 52) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method Apply_OutputsMemoryHack (line 113) | protected override void Apply_OutputsMemoryHack()
method SetHack_MiniGameRecoil (line 131) | private void SetHack_MiniGameRecoil()
method CreateOutputList (line 159) | protected override void CreateOutputList()
method UpdateOutputValues (line 180) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_RtTerminatorSalvation.cs
class Game_RtTerminatorSalvation (line 13) | class Game_RtTerminatorSalvation : Game
method Game_RtTerminatorSalvation (line 41) | public Game_RtTerminatorSalvation(String RomName)
method tProcess_Elapsed (line 53) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method Apply_OutputsMemoryHack (line 114) | protected override void Apply_OutputsMemoryHack()
method SetHack_Recoil (line 127) | private void SetHack_Recoil()
method CreateOutputList (line 174) | protected override void CreateOutputList()
method UpdateOutputValues (line 208) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_RtWalkingDead.cs
class Game_RtWalkingDead (line 12) | class Game_RtWalkingDead : Game
method Game_RtWalkingDead (line 41) | public Game_RtWalkingDead(String RomName)
method tProcess_Elapsed (line 54) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method Apply_OutputsMemoryHack (line 112) | protected override void Apply_OutputsMemoryHack()
method SetHack_Damage (line 130) | private void SetHack_Damage()
method SetHack_Recoil (line 160) | private void SetHack_Recoil()
method Apply_NoCrosshairMemoryHack (line 190) | protected override void Apply_NoCrosshairMemoryHack()
method CreateOutputList (line 214) | protected override void CreateOutputList()
method UpdateOutputValues (line 258) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_RwGunman.cs
class Game_RwGunman (line 13) | class Game_RwGunman : Game
method Game_RwGunman (line 49) | public Game_RwGunman(String RomName)
method tProcess_Elapsed (line 63) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 114) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 156) | protected override void Apply_InputsMemoryHack()
method SetHack_Axis (line 182) | private void SetHack_Axis()
method SetHack_Buttons (line 225) | private void SetHack_Buttons()
method Apply_OutputsMemoryHack (line 260) | protected override void Apply_OutputsMemoryHack()
method SetHack_Lamp (line 278) | private void SetHack_Lamp()
method Apply_NoCrosshairMemoryHack (line 304) | protected override void Apply_NoCrosshairMemoryHack()
method SetHack_NoCrosshair (line 315) | private void SetHack_NoCrosshair(InjectionStruct PlayerInjectionStruct...
method SendInput (line 338) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 393) | protected override void CreateOutputList()
method UpdateOutputValues (line 424) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_RwLGI.cs
class Game_RwLGI (line 14) | class Game_RwLGI : Game
method Game_RwLGI (line 46) | public Game_RwLGI(String RomName)
method tProcess_Elapsed (line 59) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 122) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 168) | protected override void Apply_InputsMemoryHack()
method SetHack_Buttons (line 189) | private void SetHack_Buttons()
method SetHack_Calibration (line 254) | private void SetHack_Calibration()
method Apply_OutputsMemoryHack (line 300) | protected override void Apply_OutputsMemoryHack()
method SendInput (line 350) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 394) | protected override void CreateOutputList()
method UpdateOutputValues (line 420) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_RwLGI3D.cs
class Game_RwLGI3D (line 13) | class Game_RwLGI3D : Game
method Game_RwLGI3D (line 50) | public Game_RwLGI3D(String RomName)
method tProcess_Elapsed (line 63) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 126) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 172) | protected override void Apply_InputsMemoryHack()
method SetHack_Buttons (line 193) | private void SetHack_Buttons()
method SetHack_Calibration (line 246) | private void SetHack_Calibration()
method Apply_OutputsMemoryHack (line 279) | protected override void Apply_OutputsMemoryHack()
method SetHack_Recoil (line 299) | private void SetHack_Recoil()
method SetHack_GetCurrentSequence (line 328) | private void SetHack_GetCurrentSequence()
method SendInput (line 391) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 435) | protected override void CreateOutputList()
method UpdateOutputValues (line 463) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_RwOpGhost.cs
class Game_RwOpGhost (line 15) | class Game_RwOpGhost : Game
method Game_RwOpGhost (line 93) | public Game_RwOpGhost(String RomName)
method tProcess_Elapsed (line 108) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 202) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 242) | protected override void Apply_InputsMemoryHack()
method SetHack_Buttons (line 265) | private void SetHack_Buttons()
method SetHack_Axis (line 310) | private void SetHack_Axis()
method Apply_OutputsMemoryHack (line 358) | protected override void Apply_OutputsMemoryHack()
method SetHack_Recoil (line 379) | private void SetHack_Recoil()
method SetHack_Jvs (line 409) | private void SetHack_Jvs()
method CreateDataBank_Jvs (line 474) | private void CreateDataBank_Jvs()
method SendInput (line 491) | public override void SendInput(PlayerSettings PlayerData)
method KeyboardHookCallback (line 645) | public override IntPtr KeyboardHookCallback(IntPtr KeyboardHookID, int...
method CreateOutputList (line 739) | protected override void CreateOutputList()
method UpdateOutputValues (line 759) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_RwSDR.cs
class Game_RwSDR (line 14) | class Game_RwSDR : Game
method Game_RwSDR (line 41) | public Game_RwSDR(String RomName)
method tProcess_Elapsed (line 56) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 113) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 162) | protected override void Apply_InputsMemoryHack()
method SendInput (line 231) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 265) | protected override void CreateOutputList()
method UpdateOutputValues (line 295) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_RwSGG.cs
class Game_RwSGG (line 14) | class Game_RwSGG : Game
method Game_RwSGG (line 62) | public Game_RwSGG(String RomName)
method tProcess_Elapsed (line 87) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 149) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 190) | protected override void Apply_InputsMemoryHack()
method SetHack_Axis (line 203) | private void SetHack_Axis()
method SetHack_Buttons (line 220) | private void SetHack_Buttons()
method Apply_OutputsMemoryHack (line 280) | protected override void Apply_OutputsMemoryHack()
method SetHack_Recoil_P1 (line 293) | private void SetHack_Recoil_P1()
method SetHack_Recoil_P2 (line 323) | private void SetHack_Recoil_P2()
method SendInput (line 358) | public override void SendInput(PlayerSettings PlayerData)
method _Tmr_NoAutofireP1_Tick (line 415) | private void _Tmr_NoAutofireP1_Tick(Object Sender, EventArgs e)
method _Tmr_NoAutofireP2_Tick (line 421) | private void _Tmr_NoAutofireP2_Tick(Object Sender, EventArgs e)
method CreateOutputList (line 434) | protected override void CreateOutputList()
method UpdateOutputValues (line 459) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_RwTargetBravo.cs
class Game_RwTargetBravo (line 16) | class Game_RwTargetBravo : Game
method Game_RwTargetBravo (line 92) | public Game_RwTargetBravo(String RomName)
method tProcess_Elapsed (line 107) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 203) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 243) | protected override void Apply_InputsMemoryHack()
method SetHack_Buttons (line 266) | private void SetHack_Buttons()
method SetHack_Axis (line 299) | private void SetHack_Axis()
method Apply_OutputsMemoryHack (line 334) | protected override void Apply_OutputsMemoryHack()
method SetHack_Recoil (line 355) | private void SetHack_Recoil()
method SendInput (line 388) | public override void SendInput(PlayerSettings PlayerData)
method KeyboardHookCallback (line 542) | public override IntPtr KeyboardHookCallback(IntPtr KeyboardHookID, int...
method CreateOutputList (line 636) | protected override void CreateOutputList()
method UpdateOutputValues (line 656) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_RwTransformers.cs
class Game_RwTransformers (line 14) | class Game_RwTransformers : Game
method Game_RwTransformers (line 59) | public Game_RwTransformers(String RomName)
method tProcess_Elapsed (line 72) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 127) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 172) | protected override void Apply_InputsMemoryHack()
method SetHack_Buttons (line 195) | private void SetHack_Buttons()
method Apply_OutputsMemoryHack (line 245) | protected override void Apply_OutputsMemoryHack()
method SetHack_RecoilP1 (line 263) | private void SetHack_RecoilP1()
method SetHack_RecoilP2 (line 294) | private void SetHack_RecoilP2()
method SendInput (line 332) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 376) | protected override void CreateOutputList()
method UpdateOutputValues (line 400) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_TtxBlockKingBallShooter.cs
class Game_TtxBlockKingBallShooter (line 14) | class Game_TtxBlockKingBallShooter : Game
method Game_TtxBlockKingBallShooter (line 32) | public Game_TtxBlockKingBallShooter(String RomName)
method tProcess_Elapsed (line 45) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 95) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 150) | protected override void Apply_InputsMemoryHack()
method Apply_OutputsMemoryHack (line 163) | protected override void Apply_OutputsMemoryHack()
method SetHack_CustomDamageOutput (line 177) | private void SetHack_CustomDamageOutput()
method SendInput (line 217) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 239) | protected override void CreateOutputList()
method UpdateOutputValues (line 257) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_TtxEadp.cs
class Game_TtxEadp (line 14) | class Game_TtxEadp : Game
method Game_TtxEadp (line 55) | public Game_TtxEadp(String RomName)
method tProcess_Elapsed (line 68) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 118) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 166) | protected override void Apply_InputsMemoryHack()
method Apply_OutputsMemoryHack (line 191) | protected override void Apply_OutputsMemoryHack()
method SetHack_Damage (line 210) | private void SetHack_Damage()
method SetHack_Recoil (line 253) | private void SetHack_Recoil()
method SendInput (line 290) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 362) | protected override void CreateOutputList()
method UpdateOutputValues (line 387) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_TtxGaiaAttack4.cs
class Game_TtxGaiaAttack4 (line 14) | class Game_TtxGaiaAttack4 : Game
method Game_TtxGaiaAttack4 (line 57) | public Game_TtxGaiaAttack4(String RomName)
method tProcess_Elapsed (line 70) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 120) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 170) | protected override void Apply_InputsMemoryHack()
method SetHack_Axis (line 200) | private void SetHack_Axis()
method SetHack_Trigger (line 267) | private void SetHack_Trigger()
method Apply_OutputsMemoryHack (line 342) | protected override void Apply_OutputsMemoryHack()
method SetHack_Recoil (line 366) | private void SetHack_Recoil()
method SetHack_Damage (line 414) | private void SetHack_Damage(UInt32 InjectionOffset, UInt32 InjectionRe...
method SendInput (line 465) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 519) | protected override void CreateOutputList()
method UpdateOutputValues (line 556) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_TtxGundam.cs
class Game_TtxGundam (line 15) | class Game_TtxGundam : Game
method Game_TtxGundam (line 92) | public Game_TtxGundam(String RomName, bool Pedal1_Enable, HardwareScan...
method tProcess_Elapsed (line 110) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method ClientScale (line 156) | public override bool ClientScale(PlayerSettings PayerData)
method GameScale (line 172) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 268) | protected override void Apply_InputsMemoryHack()
method Apply_OutputsMemoryHack (line 499) | protected override void Apply_OutputsMemoryHack()
method GetRecoilEvent (line 531) | private void GetRecoilEvent(UInt32 Injection_Offset)
method GetDamagedEvent (line 570) | private void GetDamagedEvent(UInt32 Injection_Offset)
method Hack_GetAmmo (line 615) | private void Hack_GetAmmo()
method Hack_GetLife (line 672) | private void Hack_GetLife()
method SendInput (line 715) | public override void SendInput(PlayerSettings PlayerData)
method KeyboardHookCallback (line 853) | public override IntPtr KeyboardHookCallback(IntPtr KeyboardHookID, int...
method CreateOutputList (line 899) | protected override void CreateOutputList()
method UpdateOutputValues (line 923) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_TtxGundam_V2.cs
class Game_TtxGundam_V2 (line 15) | class Game_TtxGundam_V2 : Game
method Game_TtxGundam_V2 (line 86) | public Game_TtxGundam_V2(String RomName)
method tProcess_Elapsed (line 100) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 158) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 247) | protected override void Apply_InputsMemoryHack()
method SetHack_PedalMode (line 277) | private void SetHack_PedalMode()
method Apply_OutputsMemoryHack (line 487) | protected override void Apply_OutputsMemoryHack()
method GetRecoilEvent (line 519) | private void GetRecoilEvent(UInt32 Injection_Offset)
method GetDamagedEvent (line 558) | private void GetDamagedEvent(UInt32 Injection_Offset)
method Hack_GetAmmo (line 603) | private void Hack_GetAmmo()
method Hack_GetLife (line 660) | private void Hack_GetLife()
method SendInput (line 703) | public override void SendInput(PlayerSettings PlayerData)
method KeyboardHookCallback (line 804) | public override IntPtr KeyboardHookCallback(IntPtr KeyboardHookID, int...
method CreateOutputList (line 893) | protected override void CreateOutputList()
method UpdateOutputValues (line 917) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_TtxGungun2.cs
class Game_TtxGungun2 (line 13) | class Game_TtxGungun2 : Game
method Game_TtxGungun2 (line 40) | public Game_TtxGungun2(String RomName)
method tProcess_Elapsed (line 54) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 104) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 148) | protected override void Apply_InputsMemoryHack()
method SendInput (line 172) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 230) | protected override void CreateOutputList()
method UpdateOutputValues (line 246) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_TtxHauntedMuseum.cs
class Game_TtxHauntedMuseum (line 14) | class Game_TtxHauntedMuseum : Game
method Game_TtxHauntedMuseum (line 45) | public Game_TtxHauntedMuseum(String RomName)
method tProcess_Elapsed (line 58) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 108) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 166) | protected override void Apply_InputsMemoryHack()
method SetHack_Axis (line 188) | private void SetHack_Axis()
method SetHack_Trigger (line 250) | private void SetHack_Trigger()
method Apply_OutputsMemoryHack (line 299) | protected override void Apply_OutputsMemoryHack()
method SetHack_Recoil (line 318) | private void SetHack_Recoil()
method SetHack_Damage (line 366) | private void SetHack_Damage()
method SendInput (line 417) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 451) | protected override void CreateOutputList()
method UpdateOutputValues (line 477) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_TtxHauntedMuseum2.cs
class Game_TtxHauntedMuseum2 (line 14) | class Game_TtxHauntedMuseum2 : Game
method Game_TtxHauntedMuseum2 (line 52) | public Game_TtxHauntedMuseum2(String RomName, bool AlternativeGameplay)
method tProcess_Elapsed (line 75) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 126) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 183) | protected override void Apply_InputsMemoryHack()
method SetHack_Axis (line 214) | private void SetHack_Axis()
method SetHack_Trigger (line 279) | private void SetHack_Trigger()
method SendInput (line 370) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 436) | protected override void CreateOutputList()
method UpdateOutputValues (line 467) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_TtxSha.cs
class Game_TtxSha (line 14) | class Game_TtxSha : Game
method Game_TtxSha (line 37) | public Game_TtxSha(String RomName)
method tProcess_Elapsed (line 50) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 106) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 161) | protected override void Apply_InputsMemoryHack()
method SetHack_Triggers (line 189) | private void SetHack_Triggers()
method Apply_OutputsMemoryHack (line 221) | protected override void Apply_OutputsMemoryHack()
method SetHack_Recoil (line 238) | private void SetHack_Recoil()
method SendInput (line 282) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 342) | protected override void CreateOutputList()
method UpdateOutputValues (line 361) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_WndAdCop95.cs
class Game_WndAdCop95 (line 15) | class Game_WndAdCop95 : Game
method Game_WndAdCop95 (line 37) | public Game_WndAdCop95(String RomName)
method tProcess_Elapsed (line 49) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 99) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 143) | protected override void Apply_InputsMemoryHack()
method SetHack_Buttons (line 165) | private void SetHack_Buttons()
method Apply_NoCrosshairMemoryHack (line 203) | protected override void Apply_NoCrosshairMemoryHack()
method SendInput (line 216) | public override void SendInput(PlayerSettings PlayerData)
method KeyboardHookCallback (line 299) | public override IntPtr KeyboardHookCallback(IntPtr KeyboardHookID, int...
method CreateOutputList (line 324) | protected override void CreateOutputList()
method UpdateOutputValues (line 345) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_WndAdCopOverseas.cs
class Game_WndAdCopOverseas (line 15) | class Game_WndAdCopOverseas : Game
method Game_WndAdCopOverseas (line 37) | public Game_WndAdCopOverseas(String RomName)
method tProcess_Elapsed (line 49) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 99) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 143) | protected override void Apply_InputsMemoryHack()
method SetHack_Buttons (line 165) | private void SetHack_Buttons()
method Apply_NoCrosshairMemoryHack (line 203) | protected override void Apply_NoCrosshairMemoryHack()
method SendInput (line 216) | public override void SendInput(PlayerSettings PlayerData)
method KeyboardHookCallback (line 299) | public override IntPtr KeyboardHookCallback(IntPtr KeyboardHookID, int...
method CreateOutputList (line 324) | protected override void CreateOutputList()
method UpdateOutputValues (line 345) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_WndAlienSafari.cs
class Game_WndAlienSafari (line 14) | class Game_WndAlienSafari : Game
method Game_WndAlienSafari (line 47) | public Game_WndAlienSafari(String RomName)
method tProcess_Elapsed (line 61) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 112) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 152) | protected override void Apply_InputsMemoryHack()
method SetHack_Axis (line 173) | private void SetHack_Axis()
method SetHack_Buttons (line 214) | private void SetHack_Buttons()
method Apply_OutputsMemoryHack (line 306) | protected override void Apply_OutputsMemoryHack()
method SetHack_StartLevel (line 325) | private void SetHack_StartLevel()
method SetHack_UpdateOutputs (line 349) | private void SetHack_UpdateOutputs()
method SetHack_EndLevel (line 385) | private void SetHack_EndLevel()
method Apply_NoCrosshairMemoryHack (line 405) | protected override void Apply_NoCrosshairMemoryHack()
method SendInput (line 441) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 483) | protected override void CreateOutputList()
method UpdateOutputValues (line 495) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_WndArtIsDead.cs
class Game_WndArtIsDead (line 11) | public class Game_WndArtIsDead : Game
method Game_WndArtIsDead (line 24) | public Game_WndArtIsDead(String RomName)
method tProcess_Elapsed (line 36) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 86) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 128) | protected override void Apply_InputsMemoryHack()
method SendInput (line 202) | public override void SendInput(PlayerSettings PlayerData)
FILE: DemulShooter/Games/Game_WndBE.cs
class Game_WndBE (line 14) | class Game_WndBE : Game
method Game_WndBE (line 52) | public Game_WndBE(String RomName)
method tProcess_Elapsed (line 82) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 139) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 192) | protected override void Apply_InputsMemoryHack()
method SetHack_P1X (line 215) | private void SetHack_P1X()
method SetHack_P1X_2 (line 252) | private void SetHack_P1X_2()
method SetHack_P1Y (line 293) | private void SetHack_P1Y(UInt32 OriginalProcAddress)
method SetHack_P2Axis (line 335) | private void SetHack_P2Axis(UInt32 OriginalProcAddress)
method SendInput (line 393) | public override void SendInput(PlayerSettings PlayerData)
FILE: DemulShooter/Games/Game_WndBlueEstate.cs
class Game_WndBlueEstate (line 16) | class Game_WndBlueEstate : Game
method Game_WndBlueEstate (line 54) | public Game_WndBlueEstate(String RomName)
method tProcess_Elapsed (line 66) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 126) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 171) | protected override void Apply_InputsMemoryHack()
method SetHack_P1Axis (line 219) | private void SetHack_P1Axis()
method SetHack_XInputGetState (line 248) | private void SetHack_XInputGetState()
method SetHack_P2Axis (line 273) | private void SetHack_P2Axis()
method SetHack_MouseButtons (line 303) | private void SetHack_MouseButtons()
method Apply_OutputsMemoryHack (line 345) | protected override void Apply_OutputsMemoryHack()
method SetHack_Recoil (line 377) | private void SetHack_Recoil()
method SetHack_Damage (line 434) | private void SetHack_Damage()
method SetHack_PlayerInfo (line 479) | private void SetHack_PlayerInfo()
method SendInput (line 589) | public override void SendInput(PlayerSettings PlayerData)
method KeyboardHookCallback (line 650) | public override IntPtr KeyboardHookCallback(IntPtr KeyboardHookID, int...
method CreateOutputList (line 722) | protected override void CreateOutputList()
method UpdateOutputValues (line 738) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_WndBonbon95.cs
class Game_WndBonbon95 (line 15) | class Game_WndBonbon95 : Game
method Game_WndBonbon95 (line 43) | public Game_WndBonbon95(String RomName)
method tProcess_Elapsed (line 55) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 105) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 149) | protected override void Apply_InputsMemoryHack()
method SetHack_P1Controls (line 181) | private void SetHack_P1Controls()
method SetHack_P2Controls (line 224) | private void SetHack_P2Controls()
method Apply_OutputsMemoryHack (line 268) | protected override void Apply_OutputsMemoryHack()
method SetHack_Recoil_P1 (line 284) | private void SetHack_Recoil_P1()
method SetHack_Recoil_P2 (line 307) | private void SetHack_Recoil_P2()
method Apply_NoCrosshairMemoryHack (line 333) | protected override void Apply_NoCrosshairMemoryHack()
method SendInput (line 380) | public override void SendInput(PlayerSettings PlayerData)
method KeyboardHookCallback (line 455) | public override IntPtr KeyboardHookCallback(IntPtr KeyboardHookID, int...
method CreateOutputList (line 480) | protected override void CreateOutputList()
method UpdateOutputValues (line 491) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_WndBugBusters.cs
class Game_WndBugBusters (line 15) | class Game_WndBugBusters : Game
method Game_WndBugBusters (line 63) | public Game_WndBugBusters(String RomName)
method tProcess_Elapsed (line 76) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 126) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 170) | protected override void Apply_InputsMemoryHack()
method SendInput (line 207) | public override void SendInput(PlayerSettings PlayerData)
method KeyboardHookCallback (line 284) | public override IntPtr KeyboardHookCallback(IntPtr KeyboardHookID, int...
method CreateOutputList (line 344) | protected override void CreateOutputList()
method UpdateOutputValues (line 368) | public override void UpdateOutputValues()
method GetGameMode (line 473) | private int GetGameMode()
FILE: DemulShooter/Games/Game_WndColtWildWestShootout.cs
class Game_WndColtWildWestShootout (line 13) | class Game_WndColtWildWestShootout : Game
method Game_WndColtWildWestShootout (line 37) | public Game_WndColtWildWestShootout(String RomName)
method tProcess_Elapsed (line 49) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 100) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 143) | protected override void Apply_InputsMemoryHack()
method Apply_NoCrosshairMemoryHack (line 155) | protected override void Apply_NoCrosshairMemoryHack()
method Apply_CrosshairMod (line 168) | private void Apply_CrosshairMod()
method Apply_GunMod (line 189) | private void Apply_GunMod()
method SendInput (line 199) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 231) | protected override void CreateOutputList()
method UpdateOutputValues (line 245) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_WndFriction.cs
class Game_WndFriction (line 14) | class Game_WndFriction : Game
method Game_WndFriction (line 59) | public Game_WndFriction(String RomName)
method tProcess_Elapsed (line 75) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 152) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 215) | protected override void Apply_InputsMemoryHack()
method SetHack_P1_X (line 259) | private void SetHack_P1_X()
method SetHack_P2_X (line 288) | private void SetHack_P2_X()
method SetHack_P1_Y (line 317) | private void SetHack_P1_Y()
method SetHack_P2_Y (line 346) | private void SetHack_P2_Y()
method SetHack_P1_Trigger (line 382) | private void SetHack_P1_Trigger()
method SetHack_P1_Reload (line 409) | private void SetHack_P1_Reload()
method SetHack_P2_Trigger (line 436) | private void SetHack_P2_Trigger()
method SetHack_P2_Reload (line 463) | private void SetHack_P2_Reload()
method SetHack_X (line 501) | private void SetHack_X()
method SetHack_Y (line 548) | private void SetHack_Y()
method SetHack_Trigger (line 603) | private void SetHack_Trigger()
method SetHack_Reload (line 642) | private void SetHack_Reload()
method SendInput (line 688) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 774) | protected override void CreateOutputList()
method UpdateOutputValues (line 795) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_WndHeavyFire3Pc.cs
class Game_WndHeavyFire3Pc (line 16) | class Game_WndHeavyFire3Pc : Game
method Game_WndHeavyFire3Pc (line 81) | public Game_WndHeavyFire3Pc(String RomName)
method tProcess_Elapsed (line 99) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 152) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 200) | protected override void Apply_InputsMemoryHack()
method SetHack_EnablePlayers_Skidrow (line 240) | private void SetHack_EnablePlayers_Skidrow()
method SetHack_EnablePlayers_Steam (line 272) | private void SetHack_EnablePlayers_Steam()
method SetHack_Mouse_Buttons (line 304) | private void SetHack_Mouse_Buttons()
method SetHack_Mouse_X (line 375) | private void SetHack_Mouse_X()
method SetHack_Mouse_Y (line 404) | private void SetHack_Mouse_Y()
method Apply_OutputsMemoryHack (line 433) | protected override void Apply_OutputsMemoryHack()
method SetHack_IsPlaying (line 452) | private void SetHack_IsPlaying()
method SetHack_Recoil (line 472) | private void SetHack_Recoil()
method SetHack_Ammo (line 499) | private void SetHack_Ammo()
method SetHack_Damage (line 536) | private void SetHack_Damage()
method Apply_NoCrosshairMemoryHack (line 564) | protected override void Apply_NoCrosshairMemoryHack()
method Apply_NoGunsMemoryHack (line 587) | private void Apply_NoGunsMemoryHack()
method SendInput (line 600) | public override void SendInput(PlayerSettings PlayerData)
method KeyboardHookCallback (line 749) | public override IntPtr KeyboardHookCallback(IntPtr KeyboardHookID, int...
method CreateOutputList (line 796) | protected override void CreateOutputList()
method UpdateOutputValues (line 820) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_WndHeavyFire4Pc.cs
class Game_WndHeavyFire4Pc (line 16) | class Game_WndHeavyFire4Pc : Game
method Game_WndHeavyFire4Pc (line 83) | public Game_WndHeavyFire4Pc(String RomName)
method tProcess_Elapsed (line 100) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 153) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 201) | protected override void Apply_InputsMemoryHack()
method SetHack_EnablePlayers_Skidrow (line 244) | private void SetHack_EnablePlayers_Skidrow()
method SetHack_EnablePlayers_Steam (line 276) | private void SetHack_EnablePlayers_Steam()
method SetHack_Mouse_Buttons (line 308) | private void SetHack_Mouse_Buttons()
method SetHack_Mouse_X (line 383) | private void SetHack_Mouse_X()
method SetHack_Mouse_Y (line 412) | private void SetHack_Mouse_Y()
method SetHack_Gamepad_X (line 441) | private void SetHack_Gamepad_X()
method SetHack_Gamepad_Y (line 464) | private void SetHack_Gamepad_Y()
method Apply_OutputsMemoryHack (line 487) | protected override void Apply_OutputsMemoryHack()
method SetHack_IsPlaying (line 506) | private void SetHack_IsPlaying()
method SetHack_Recoil (line 526) | private void SetHack_Recoil()
method SetHack_Ammo (line 555) | private void SetHack_Ammo()
method SetHack_Damage (line 592) | private void SetHack_Damage()
method Apply_NoCrosshairMemoryHack (line 622) | protected override void Apply_NoCrosshairMemoryHack()
method Apply_NoGunsMemoryHack (line 643) | private void Apply_NoGunsMemoryHack()
method SendInput (line 655) | public override void SendInput(PlayerSettings PlayerData)
method KeyboardHookCallback (line 804) | public override IntPtr KeyboardHookCallback(IntPtr KeyboardHookID, int...
method CreateOutputList (line 851) | protected override void CreateOutputList()
method UpdateOutputValues (line 875) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_WndHod2pc.cs
class Game_WndHod2pc (line 16) | class Game_WndHod2pc : Game
method Game_WndHod2pc (line 48) | public Game_WndHod2pc(String RomName)
method tProcess_Elapsed (line 64) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 128) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 175) | protected override void Apply_InputsMemoryHack()
method SendInput (line 191) | public override void SendInput(PlayerSettings PlayerData)
method KeyboardHookCallback (line 242) | public override IntPtr KeyboardHookCallback(IntPtr KeyboardHookID, int...
method CreateOutputList (line 269) | protected override void CreateOutputList()
method UpdateOutputValues (line 290) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_WndHod3pc.cs
class Game_WndHod3pc (line 14) | class Game_WndHod3pc : Game
method Game_WndHod3pc (line 44) | public Game_WndHod3pc(String RomName)
method tProcess_Elapsed (line 62) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 113) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 157) | protected override void Apply_InputsMemoryHack()
method SetHack_Buttons (line 181) | private void SetHack_Buttons()
method SendInput (line 213) | public override void SendInput(PlayerSettings PlayerData)
method MouseHookCallback (line 284) | public override IntPtr MouseHookCallback(IntPtr MouseHookID, int nCode...
method CreateOutputList (line 310) | protected override void CreateOutputList()
method UpdateOutputValues (line 331) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_WndHotdoPc.cs
class Game_WndHotdoPc (line 14) | class Game_WndHotdoPc : Game
method Game_WndHotdoPc (line 30) | public Game_WndHotdoPc(String RomName)
method tProcess_Elapsed (line 44) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method Apply_OutputsMemoryHack (line 92) | protected override void Apply_OutputsMemoryHack()
method SetHack_Recoil (line 111) | private void SetHack_Recoil()
method SetHack_Damage (line 133) | private void SetHack_Damage()
method KeyboardHookCallback (line 159) | public override IntPtr KeyboardHookCallback(IntPtr KeyboardHookID, int...
method CreateOutputList (line 185) | protected override void CreateOutputList()
method UpdateOutputValues (line 199) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_WndMadBullets.cs
class Game_WndMadBullets (line 12) | class Game_WndMadBullets : Game
method Game_WndMadBullets (line 26) | public Game_WndMadBullets(String RomName)
method tProcess_Elapsed (line 39) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method Apply_OutputsMemoryHack (line 87) | protected override void Apply_OutputsMemoryHack()
method SetHack_Recoil (line 105) | private void SetHack_Recoil()
method SetHack_Damage (line 126) | private void SetHack_Damage()
method CreateOutputList (line 151) | protected override void CreateOutputList()
method UpdateOutputValues (line 164) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_WndProjectGreenBeat.cs
class Game_WndProjectGreenBeat (line 13) | public class Game_WndProjectGreenBeat : Game
method Game_WndProjectGreenBeat (line 36) | public Game_WndProjectGreenBeat(String RomName)
method tProcess_Elapsed (line 48) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method FetchAxisAddress (line 107) | private void FetchAxisAddress()
method GameScale (line 124) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 172) | protected override void Apply_InputsMemoryHack()
method SetHack_Axis (line 184) | private void SetHack_Axis()
method SendInput (line 233) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 252) | protected override void CreateOutputList()
method UpdateOutputValues (line 261) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game_WndReload.cs
class Game_WndReload (line 14) | class Game_WndReload : Game
method Game_WndReload (line 64) | public Game_WndReload(String RomName)
method tProcess_Elapsed (line 78) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 140) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 206) | protected override void Apply_InputsMemoryHack()
method Apply_OutputsMemoryHack (line 251) | protected override void Apply_OutputsMemoryHack()
method Apply_NoCrosshairMemoryHack (line 272) | protected override void Apply_NoCrosshairMemoryHack()
method SetHack_P1X_Menu (line 290) | private void SetHack_P1X_Menu()
method SetHack_P1Y_Menu (line 328) | private void SetHack_P1Y_Menu()
method SetHack_P1_Crosshair (line 374) | private void SetHack_P1_Crosshair()
method SetHack_P1_X_Shoot (line 415) | private void SetHack_P1_X_Shoot()
method SetHack_P1_Y_Shoot (line 460) | private void SetHack_P1_Y_Shoot()
method SetHack_Recoil (line 507) | private void SetHack_Recoil()
method SetHack_Ammo (line 530) | private void SetHack_Ammo()
method SetHack_NoCrosshair (line 553) | private void SetHack_NoCrosshair()
method SetHack_P1X_Menu_V2 (line 582) | private void SetHack_P1X_Menu_V2()
method SetHack_P1Y_Menu_V2 (line 618) | private void SetHack_P1Y_Menu_V2()
method SetHack_P1_Crosshair_V2 (line 664) | private void SetHack_P1_Crosshair_V2()
method SetHack_P1_X_Shoot_V2 (line 705) | private void SetHack_P1_X_Shoot_V2()
method SetHack_P1_Y_Shoot_V2 (line 751) | private void SetHack_P1_Y_Shoot_V2()
method SetHack_Recoil_V2 (line 798) | private void SetHack_Recoil_V2()
method SetHack_Ammo_V2 (line 821) | private void SetHack_Ammo_V2()
method SetHack_NoCrosshair_V2 (line 844) | private void SetHack_NoCrosshair_V2()
method SendInput (line 870) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 904) | protected override void CreateOutputList()
method UpdateOutputValues (line 915) | public override void UpdateOutputValues()
FILE: DemulShooter/Games/Game__Unity.cs
class Game__Unity (line 10) | public class Game__Unity : Game
class Base_InputData (line 12) | protected class Base_InputData : DsTcpData
method Base_InputData (line 17) | public Base_InputData(int PlayerNumber) : base(PlayerNumber)
class Base_OutputData (line 22) | protected class Base_OutputData : DsTcpData
method Base_OutputData (line 24) | public Base_OutputData(int PlayerNumber) : base(PlayerNumber)
method Game__Unity (line 38) | public Game__Unity(String RomName, String TargetProcessName, String Ma...
method tProcess_Elapsed (line 47) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 124) | public override bool GameScale(PlayerSettings PlayerData)
method DsTcp_client_TcpConnected (line 164) | protected void DsTcp_client_TcpConnected(Object Sender, EventArgs e)
method DsTcp_Client_PacketReceived (line 179) | protected virtual void DsTcp_Client_PacketReceived(Object Sender, DsTc...
FILE: DemulShooter/Program.cs
class Program (line 8) | class Program
method AttachConsole (line 10) | [DllImport("kernel32.dll")]
method FreeConsole (line 12) | [DllImport("kernel32.dll", SetLastError = true)]
method GetConsoleWindow (line 14) | [DllImport("kernel32.dll")]
method SendMessage (line 16) | [DllImport("user32.dll")]
method Main (line 28) | static void Main(string[] args)
method GetDaySuffix (line 454) | static string GetDaySuffix(int day)
method DisplayDictionnaryList (line 473) | static void DisplayDictionnaryList(Dictionary<String, String> list)
method CheckParameter (line 484) | static bool CheckParameter(String param, Dictionary<String,String> list)
method ExitConsole (line 494) | static void ExitConsole()
FILE: DemulShooter/Properties/Resources.Designer.cs
class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
method Resources (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...
FILE: DemulShooter/Properties/Settings.Designer.cs
class Settings (line 14) | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
FILE: DemulShooterX64/DemulShooterWindowX64.cs
class DemulShooterWindowX64 (line 19) | public class DemulShooterWindowX64 : ApplicationContext
method DemulShooterWindowX64 (line 71) | public DemulShooterWindowX64(string[] Args, bool isVerbose, bool isTrace)
method IsRunningAsAdmin (line 515) | private bool IsRunningAsAdmin()
method CreateRawMessageWindow (line 534) | public bool CreateRawMessageWindow()
method myWndProc (line 587) | private IntPtr myWndProc(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr ...
method ProcessRawInputMessage (line 643) | private void ProcessRawInputMessage(IntPtr RawInputHandle)
method ReadAndSendOutput_Thread (line 798) | private void ReadAndSendOutput_Thread()
method InitializeComponent (line 821) | private void InitializeComponent()
method OnTrayExitSelected (line 841) | private void OnTrayExitSelected(object sender, EventArgs e)
method OnGameHooked (line 846) | private void OnGameHooked(object sender, EventArgs e)
method OnApplicationExit (line 871) | private void OnApplicationExit(object sender, EventArgs e)
method CleanAppBeforeExit (line 880) | private void CleanAppBeforeExit()
method ApplyMouseHook (line 915) | protected void ApplyMouseHook()
method MouseHookCallback (line 930) | private IntPtr MouseHookCallback(int nCode, IntPtr wParam, IntPtr lParam)
method RemoveMouseHook (line 937) | protected void RemoveMouseHook()
method ApplyKeyboardHook (line 945) | protected void ApplyKeyboardHook()
method KeyboardHookCallback (line 960) | protected virtual IntPtr KeyboardHookCallback(int nCode, IntPtr wParam...
method RemoveKeyboardHook (line 1044) | protected void RemoveKeyboardHook()
method tHookTimeOut_Elapsed (line 1050) | private void tHookTimeOut_Elapsed(Object Sender, EventArgs e)
FILE: DemulShooterX64/Games/Game.cs
class Game (line 19) | public class Game
method Game (line 82) | public Game(String RomName, string TargetProcessName)
method tProcess_Elapsed (line 114) | protected virtual void tProcess_Elapsed(Object sender, EventArgs e)
method RaiseGameHookedEvent (line 120) | protected void RaiseGameHookedEvent()
method GetGameOptions (line 128) | private void GetGameOptions()
method CheckExeMd5 (line 166) | protected void CheckExeMd5()
method CheckMd5 (line 170) | protected void CheckMd5(String TargetFileName)
method GetMd5HashAsString (line 200) | private void GetMd5HashAsString(String FileName)
method GetScreenScaling (line 279) | private string GetScreenScaling()
method GetFullscreenStatus (line 305) | public virtual bool GetFullscreenStatus()
method GetScreenResolution (line 345) | public virtual void GetScreenResolution()
method GetScreenresolution2 (line 353) | public void GetScreenresolution2()
method Clamp (line 365) | protected int Clamp(int val, int minVal, int maxVal)
method ScreenScale (line 375) | public int ScreenScale(int val, int fromMinVal, int fromMaxVal, int to...
method ScreenScale (line 379) | protected int ScreenScale(int val, int fromMinVal, int fromOffVal, int...
method ClientScale (line 442) | public virtual bool ClientScale(PlayerSettings PlayerData)
method GetClientwindowInfo (line 461) | public void GetClientwindowInfo()
method GetClientRect (line 482) | public virtual bool GetClientRect()
method GameScale (line 496) | public virtual bool GameScale(PlayerSettings PlayerData)
method ReadGameData (line 531) | protected virtual void ReadGameData()
method ReadGameDataFromMd5Hash (line 539) | protected virtual void ReadGameDataFromMd5Hash(String GameData_Folder)
method Apply_MemoryHacks (line 612) | protected virtual void Apply_MemoryHacks()
method Apply_InputsMemoryHack (line 628) | protected virtual void Apply_InputsMemoryHack()
method Create_InputsDataBank (line 631) | protected virtual void Create_InputsDataBank()
method Apply_OutputsMemoryHack (line 647) | protected virtual void Apply_OutputsMemoryHack()
method Create_OutputsDataBank (line 650) | protected virtual void Create_OutputsDataBank()
method Apply_NoCrosshairMemoryHack (line 666) | protected virtual void Apply_NoCrosshairMemoryHack()
method SendInput (line 669) | public virtual void SendInput(PlayerSettings PlayerData)
method ReadByte (line 672) | protected Byte ReadByte(IntPtr Address)
method ReadBytes (line 683) | protected Byte[] ReadBytes(IntPtr Address, UInt32 Bytes)
method ReadPtr (line 694) | protected UInt64 ReadPtr(IntPtr PtrAddress)
method ReadPtrChain (line 707) | protected UInt64 ReadPtrChain(IntPtr BaseAddress, UInt64[] Offsets)
method WriteByte (line 731) | protected bool WriteByte(IntPtr Address, byte Value)
method WriteBytes (line 746) | protected bool WriteBytes(IntPtr Address, byte[] Buffer)
method SetNops (line 760) | protected void SetNops(IntPtr BaseAddress, NopStruct Nop)
method Apply_OR_ByteMask (line 773) | protected void Apply_OR_ByteMask(IntPtr MemoryAddress, byte Mask)
method Apply_AND_ByteMask (line 780) | protected void Apply_AND_ByteMask(IntPtr MemoryAddress, byte Mask)
method CreateOutputList (line 791) | protected virtual void CreateOutputList()
method UpdateOutputValues (line 796) | public virtual void UpdateOutputValues()
method SetMamePauseState (line 799) | public void SetMamePauseState(bool PauseState)
method GetOutputById (line 812) | protected GameOutput GetOutputById(OutputId Id)
method SetOutputValue (line 827) | protected void SetOutputValue(OutputId Id, int Value)
method GetOutputDescriptionFromId (line 844) | public String GetOutputDescriptionFromId(uint Id)
method InstallX360Gamepad (line 866) | protected virtual void InstallX360Gamepad(int Player)
method UninstallX360Gamepad (line 903) | protected bool UninstallX360Gamepad(int Player)
method SendKey (line 946) | private void SendKey(HardwareScanCode Keycode, KeybdInputFlags KeybdIn...
method SendKeyStroke (line 968) | protected void SendKeyStroke(HardwareScanCode Keycode, int DelayPressed)
method SendKeyDown (line 974) | protected void SendKeyDown(HardwareScanCode Keycode)
method SendKeyUp (line 978) | protected void SendKeyUp(HardwareScanCode Keycode)
method Send_VK_KeyDown (line 987) | protected void Send_VK_KeyDown(VirtualKeyCode Keycode)
method Send_VK_KeyUp (line 991) | protected void Send_VK_KeyUp(VirtualKeyCode Keycode)
method MapScanCodeToVirtualKeyCode (line 1001) | public VirtualKeyCode MapScanCodeToVirtualKeyCode(HardwareScanCode Sca...
method MapScanCodeToVirtualKeyCode (line 1012) | public HardwareScanCode MapScanCodeToVirtualKeyCode(VirtualKeyCode Sca...
method MouseHookCallback (line 1026) | public virtual IntPtr MouseHookCallback(IntPtr MouseHookID, int nCode,...
method KeyboardHookCallback (line 1035) | public virtual IntPtr KeyboardHookCallback(IntPtr KeyboardHookID, int ...
method FindGameWindow_Contains (line 1047) | protected bool FindGameWindow_Contains(string TargetWindowTitle)
method FindGameWindow_Equals (line 1079) | protected bool FindGameWindow_Equals(string TargetWindowTitle)
method EnumerateProcessWindowHandles (line 1109) | protected static IEnumerable<IntPtr> EnumerateProcessWindowHandles(int...
method Get_GameWindowTitle (line 1124) | protected string Get_GameWindowTitle()
method CheckBytes (line 1140) | protected bool CheckBytes(IntPtr AddressToCheck, byte[] BytesToFind)
FILE: DemulShooterX64/Games/Game_AllsHodSd.cs
class Game_AllsHodSd (line 13) | public class Game_AllsHodSd : Game
method Game_AllsHodSd (line 39) | public Game_AllsHodSd(String RomName) :
method tProcess_Elapsed (line 53) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 117) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 160) | protected override void Apply_InputsMemoryHack()
method SetHack_InMenuFlag (line 192) | private void SetHack_InMenuFlag()
method SetHack_AxisCorrection (line 243) | private void SetHack_AxisCorrection()
method SetHack_JVS_P1_X (line 352) | private void SetHack_JVS_P1_X()
method SetHack_JVS_P1_Y (line 391) | private void SetHack_JVS_P1_Y()
method SetHack_JVS_P2_X (line 432) | private void SetHack_JVS_P2_X()
method SetHack_JVS_P2_Y (line 471) | private void SetHack_JVS_P2_Y()
method SendInput (line 520) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 544) | protected override void CreateOutputList()
method UpdateOutputValues (line 565) | public override void UpdateOutputValues()
FILE: DemulShooterX64/Games/Game_ArcadePcMechaDino.cs
class Game_ArcadepcMechaDino (line 11) | internal class Game_ArcadepcMechaDino : Game__Unity
class InputData (line 13) | private class InputData : Base_InputData
method InputData (line 19) | public InputData(int PlayerNumber) : base(PlayerNumber)
class OutputData (line 24) | private class OutputData : Base_OutputData
method OutputData (line 39) | public OutputData(int PlayerNumber) : base(PlayerNumber)
method Game_ArcadepcMechaDino (line 49) | public Game_ArcadepcMechaDino(String RomName)
method SendInput (line 66) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 97) | protected override void CreateOutputList()
method UpdateOutputValues (line 141) | public override void UpdateOutputValues()
method DsTcp_Client_PacketReceived (line 146) | protected override void DsTcp_Client_PacketReceived(Object Sender, DsT...
FILE: DemulShooterX64/Games/Game_ArcadePcMissionImpossible.cs
class Game_ArcadepcMissionImpossible (line 14) | public class Game_ArcadepcMissionImpossible : Game__Unity
class InputData (line 16) | private class InputData : Base_InputData
method InputData (line 24) | public InputData(int PlayerNumber) : base(PlayerNumber)
class OutputData (line 29) | private class OutputData : Base_OutputData
method OutputData (line 39) | public OutputData(int PlayerNumber) : base(PlayerNumber)
method Game_ArcadepcMissionImpossible (line 49) | public Game_ArcadepcMissionImpossible(String RomName)
method SendInput (line 66) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 132) | protected override void CreateOutputList()
method UpdateOutputValues (line 151) | public override void UpdateOutputValues()
method DsTcp_Client_PacketReceived (line 156) | protected override void DsTcp_Client_PacketReceived(Object Sender, DsT...
FILE: DemulShooterX64/Games/Game_ArcadepcBullseye.cs
class Game_ArcadepcBullseye (line 11) | public class Game_ArcadepcBullseye : Game__Unity
class InputData (line 13) | private class InputData : Base_InputData
method InputData (line 20) | public InputData(int PlayerNumber) : base(PlayerNumber)
class OutputData (line 25) | private class OutputData : Base_OutputData
method OutputData (line 38) | public OutputData(int PlayerNumber) : base(PlayerNumber)
method Game_ArcadepcBullseye (line 48) | public Game_ArcadepcBullseye(String RomName)
method SendInput (line 65) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 96) | protected override void CreateOutputList()
method UpdateOutputValues (line 111) | public override void UpdateOutputValues()
method DsTcp_Client_PacketReceived (line 116) | protected override void DsTcp_Client_PacketReceived(Object Sender, DsT...
FILE: DemulShooterX64/Games/Game_ArcadepcDinoInvasion.cs
class Game_ArcadepcDinoInvasion (line 11) | public class Game_ArcadepcDinoInvasion : Game__Unity
class InputData (line 13) | private class InputData : Base_InputData
method InputData (line 19) | public InputData(int PlayerNumber) : base(PlayerNumber)
class OutputData (line 24) | private class OutputData : Base_OutputData
method OutputData (line 32) | public OutputData(int PlayerNumber) : base(PlayerNumber)
method Game_ArcadepcDinoInvasion (line 42) | public Game_ArcadepcDinoInvasion(String RomName)
method SendInput (line 59) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 90) | protected override void CreateOutputList()
method UpdateOutputValues (line 118) | public override void UpdateOutputValues()
method DsTcp_Client_PacketReceived (line 123) | protected override void DsTcp_Client_PacketReceived(Object Sender, DsT...
FILE: DemulShooterX64/Games/Game_ArcadepcDrakon.cs
class Game_ArcadepcDrakon (line 15) | internal class Game_ArcadepcDrakon : Game__Unity
class InputData (line 17) | private class InputData : Base_InputData
method InputData (line 23) | public InputData(int PlayerNumber) : base(PlayerNumber)
class OutputData (line 28) | private class OutputData : Base_OutputData
method OutputData (line 37) | public OutputData(int PlayerNumber) : base(PlayerNumber)
method Game_ArcadepcDrakon (line 47) | public Game_ArcadepcDrakon(String RomName)
method SendInput (line 65) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 96) | protected override void CreateOutputList()
method UpdateOutputValues (line 114) | public override void UpdateOutputValues()
method DsTcp_Client_PacketReceived (line 119) | protected override void DsTcp_Client_PacketReceived(Object Sender, DsT...
FILE: DemulShooterX64/Games/Game_ArcadepcDrakon_NoPlugin.cs
class Game_ArcadepcDrakon_NoPlugin (line 15) | class Game_ArcadepcDrakon_NoPlugin : Game
method Game_ArcadepcDrakon_NoPlugin (line 57) | public Game_ArcadepcDrakon_NoPlugin(String RomName)
method tProcess_Elapsed (line 69) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 128) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 182) | protected override void Apply_InputsMemoryHack()
method SetHack_Axis (line 203) | private void SetHack_Axis()
method SetHack_Trigger (line 259) | private void SetHack_Trigger()
method Apply_OutputsMemoryHack (line 314) | protected override void Apply_OutputsMemoryHack()
method SetHack_Recoil (line 337) | private void SetHack_Recoil()
method SetHack_Damage (line 391) | private void SetHack_Damage()
method SetHack_IsPlayerPlaying (line 437) | private void SetHack_IsPlayerPlaying()
method Apply_NoCrosshairMemoryHack (line 495) | protected override void Apply_NoCrosshairMemoryHack()
method SetHack_GetLevelSelectedStatus (line 504) | private void SetHack_GetLevelSelectedStatus()
method SetHack_RemoveCrosshairAndLasers (line 558) | private void SetHack_RemoveCrosshairAndLasers()
method SendInput (line 615) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 646) | protected override void CreateOutputList()
method UpdateOutputValues (line 662) | public override void UpdateOutputValues()
FILE: DemulShooterX64/Games/Game_ArcadepcElevatorActionInvasion.cs
class Game_ArcadepcElevatorActionInvasion (line 15) | class Game_ArcadepcElevatorActionInvasion : Game
method Game_ArcadepcElevatorActionInvasion (line 47) | public Game_ArcadepcElevatorActionInvasion(String RomName)
method tProcess_Elapsed (line 59) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method Apply_InputsMemoryHack (line 118) | protected override void Apply_InputsMemoryHack()
method Apply_OutputsMemoryHack (line 124) | protected override void Apply_OutputsMemoryHack()
method SetHack_Recoil (line 135) | private void SetHack_Recoil()
method SetHack_Damage (line 190) | private void SetHack_Damage()
method GameScale (line 251) | public override bool GameScale(PlayerSettings PlayerData)
method SendInput (line 292) | public override void SendInput(PlayerSettings PlayerData)
method KeyboardHookCallback (line 316) | public override IntPtr KeyboardHookCallback(IntPtr KeyboardHookID, int...
type SensorDoor (line 390) | public enum SensorDoor
type DoorState (line 395) | public enum DoorState
method SetDoorSensor (line 404) | private void SetDoorSensor(SensorDoor DoorNumber, DoorState State)
method CreateOutputList (line 440) | protected override void CreateOutputList()
method UpdateOutputValues (line 463) | public override void UpdateOutputValues()
FILE: DemulShooterX64/Games/Game_ArcadepcMIB.cs
class Game_ArcadepcMIB (line 14) | internal class Game_ArcadepcMIB : Game__Unity
class InputData (line 16) | private class InputData : Base_InputData
method InputData (line 23) | public InputData(int PlayerNumber) : base(PlayerNumber)
class OutputData (line 28) | private class OutputData : Base_OutputData
method OutputData (line 38) | public OutputData(int PlayerNumber) : base(PlayerNumber)
method Game_ArcadepcMIB (line 48) | public Game_ArcadepcMIB(String RomName)
method DsTcp_client_TcpConnected (line 60) | protected override void DsTcp_client_TcpConnected(Object Sender, Event...
method SendInput (line 85) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 121) | protected override void CreateOutputList()
method UpdateOutputValues (line 139) | public override void UpdateOutputValues()
method DsTcp_Client_PacketReceived (line 144) | protected override void DsTcp_Client_PacketReceived(Object Sender, DsT...
FILE: DemulShooterX64/Games/Game_ArcadepcMarsSortie.cs
class Game_ArcadepcMarsSortie (line 11) | internal class Game_ArcadepcMarsSortie : Game__Unity
class InputData (line 13) | private class InputData : Base_InputData
method InputData (line 20) | public InputData(int PlayerNumber) : base(PlayerNumber)
class OutputData (line 25) | private class OutputData : Base_OutputData
method OutputData (line 34) | public OutputData(int PlayerNumber) : base(PlayerNumber)
method Game_ArcadepcMarsSortie (line 44) | public Game_ArcadepcMarsSortie(String RomName)
method DsTcp_client_TcpConnected (line 56) | protected override void DsTcp_client_TcpConnected(Object Sender, Event...
method SendInput (line 76) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 113) | protected override void CreateOutputList()
method UpdateOutputValues (line 134) | public override void UpdateOutputValues()
method DsTcp_Client_PacketReceived (line 139) | protected override void DsTcp_Client_PacketReceived(Object Sender, DsT...
FILE: DemulShooterX64/Games/Game_ArcadepcNightHunterArcade.cs
class Game_ArcadepcNightHunterArcade (line 11) | public class Game_ArcadepcNightHunterArcade : Game__Unity
class InputData (line 13) | private class InputData : Base_InputData
method InputData (line 22) | public InputData(int PlayerNumber) : base(PlayerNumber)
class OutputData (line 27) | private class OutputData : Base_OutputData
method OutputData (line 36) | public OutputData(int PlayerNumber) : base(PlayerNumber)
method Game_ArcadepcNightHunterArcade (line 46) | public Game_ArcadepcNightHunterArcade(String RomName)
method DsTcp_client_TcpConnected (line 60) | protected override void DsTcp_client_TcpConnected(Object Sender, Event...
method SendInput (line 85) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 126) | protected override void CreateOutputList()
method DsTcp_Client_PacketReceived (line 146) | protected override void DsTcp_Client_PacketReceived(Object Sender, DsT...
FILE: DemulShooterX64/Games/Game_ArcadepcOnePoint.cs
class Game_ArcadepcOnePoint (line 12) | class Game_ArcadepcOnePoint : Game__Unity
class InputData (line 14) | private class InputData : Base_InputData
method InputData (line 20) | public InputData(int PlayerNumber) : base(PlayerNumber)
class OutputData (line 25) | private class OutputData : Base_OutputData
method OutputData (line 37) | public OutputData(int PlayerNumber) : base(PlayerNumber)
method Game_ArcadepcOnePoint (line 47) | public Game_ArcadepcOnePoint(String RomName)
method SendInput (line 64) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 95) | protected override void CreateOutputList()
method UpdateOutputValues (line 111) | public override void UpdateOutputValues()
method DsTcp_Client_PacketReceived (line 116) | protected override void DsTcp_Client_PacketReceived(Object Sender, DsT...
FILE: DemulShooterX64/Games/Game_ArcadepcRaccoonRampage.cs
class Game_ArcadepcRaccoonRampage (line 15) | class Game_ArcadepcRaccoonRampage : Game
type OutputIndex (line 33) | public enum OutputIndex
method Game_ArcadepcRaccoonRampage (line 86) | public Game_ArcadepcRaccoonRampage(String RomName)
method tProcess_Elapsed (line 98) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method Apply_InputsMemoryHack (line 159) | protected override void Apply_InputsMemoryHack()
method SetHack_Axis (line 194) | private void SetHack_Axis()
method SetHack_StartButtons (line 247) | private void SetHack_StartButtons()
method SetHack_GetCoinsNum (line 303) | private void SetHack_GetCoinsNum()
method SetHack_DecCoins (line 346) | private void SetHack_DecCoins()
method Apply_OutputsMemoryHack (line 400) | protected override void Apply_OutputsMemoryHack()
method SetHack_GetDamage (line 413) | private void SetHack_GetDamage()
method GameScale (line 483) | public override bool GameScale(PlayerSettings PlayerData)
method SendInput (line 524) | public override void SendInput(PlayerSettings PlayerData)
method KeyboardHookCallback (line 546) | public override IntPtr KeyboardHookCallback(IntPtr KeyboardHookID, int...
method CreateOutputList (line 639) | protected override void CreateOutputList()
method UpdateOutputValues (line 679) | public override void UpdateOutputValues()
FILE: DemulShooterX64/Games/Game_ArcadepcRha.cs
class Game_ArcadepcRha (line 14) | public class Game_ArcadepcRha : Game__Unity
class InputData (line 16) | private class InputData : Base_InputData
method InputData (line 22) | public InputData(int PlayerNumber) : base(PlayerNumber)
class OutputData (line 27) | private class OutputData : Base_OutputData
method OutputData (line 36) | public OutputData(int PlayerNumber) : base(PlayerNumber)
method Game_ArcadepcRha (line 46) | public Game_ArcadepcRha(String RomName)
method SendInput (line 66) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 97) | protected override void CreateOutputList()
method UpdateOutputValues (line 125) | public override void UpdateOutputValues()
method DsTcp_Client_PacketReceived (line 130) | protected override void DsTcp_Client_PacketReceived(Object Sender, DsT...
FILE: DemulShooterX64/Games/Game_ArcadepcSkullOfShadow.cs
class Game_ArcadepcSkullOfShadow (line 11) | public class Game_ArcadepcSkullOfShadow : Game__Unity
class InputData (line 13) | private class InputData : Base_InputData
method InputData (line 20) | public InputData(int PlayerNumber) : base(PlayerNumber)
class OutputData (line 25) | private class OutputData : Base_OutputData
method OutputData (line 37) | public OutputData(int PlayerNumber) : base(PlayerNumber)
method Game_ArcadepcSkullOfShadow (line 47) | public Game_ArcadepcSkullOfShadow(String RomName)
method SendInput (line 64) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 100) | protected override void CreateOutputList()
method UpdateOutputValues (line 136) | public override void UpdateOutputValues()
method DsTcp_Client_PacketReceived (line 141) | protected override void DsTcp_Client_PacketReceived(Object Sender, DsT...
FILE: DemulShooterX64/Games/Game_ArcadepcTopGun2.cs
class Game_ArcadepcTopGun2 (line 14) | internal class Game_ArcadepcTopGun2 : Game__Unity
class InputData (line 16) | private class InputData : Base_InputData
method InputData (line 24) | public InputData(int PlayerNumber) : base(PlayerNumber)
class OutputData (line 29) | private class OutputData : Base_OutputData
method OutputData (line 38) | public OutputData(int PlayerNumber) : base(PlayerNumber)
method Game_ArcadepcTopGun2 (line 48) | public Game_ArcadepcTopGun2(String RomName)
method SendInput (line 65) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 101) | protected override void CreateOutputList()
method UpdateOutputValues (line 118) | public override void UpdateOutputValues()
method DsTcp_Client_PacketReceived (line 123) | protected override void DsTcp_Client_PacketReceived(Object Sender, DsT...
FILE: DemulShooterX64/Games/Game_ArcadepcTra.cs
class Game_ArcadepcTra (line 11) | public class Game_ArcadepcTra : Game__Unity
class InputData (line 13) | private class InputData : Base_InputData
method InputData (line 20) | public InputData(int PlayerNumber) : base(PlayerNumber)
class OutputData (line 25) | private class OutputData : Base_OutputData
method OutputData (line 34) | public OutputData(int PlayerNumber) : base(PlayerNumber)
method Game_ArcadepcTra (line 44) | public Game_ArcadepcTra(String RomName)
method SendInput (line 61) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 97) | protected override void CreateOutputList()
method DsTcp_Client_PacketReceived (line 129) | protected override void DsTcp_Client_PacketReceived(Object Sender, DsT...
FILE: DemulShooterX64/Games/Game_ArcadepcWisdomZombies.cs
class Game_ArcadepcWisdomZombies (line 14) | public class Game_ArcadepcWisdomZombies : Game__Unity
class InputData (line 16) | private class InputData : Base_InputData
method InputData (line 21) | public InputData(int PlayerNumber) : base(PlayerNumber)
class OutputData (line 26) | private class OutputData : Base_OutputData
method OutputData (line 41) | public OutputData(int PlayerNumber) : base(PlayerNumber)
method Game_ArcadepcWisdomZombies (line 51) | public Game_ArcadepcWisdomZombies(String RomName)
method SendInput (line 68) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 94) | protected override void CreateOutputList()
method UpdateOutputValues (line 137) | public override void UpdateOutputValues()
method DsTcp_Client_PacketReceived (line 142) | protected override void DsTcp_Client_PacketReceived(Object Sender, DsT...
FILE: DemulShooterX64/Games/Game_Es3Lla.cs
class Game_Es3Lla (line 11) | class Game_Es3Lla : Game
method Game_Es3Lla (line 22) | public Game_Es3Lla(string RomName):
method tProcess_Elapsed (line 32) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 81) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 125) | protected override void Apply_InputsMemoryHack()
method GetP1AxisAddress (line 133) | private void GetP1AxisAddress()
method SendInput (line 161) | public override void SendInput(PlayerSettings PlayerData)
FILE: DemulShooterX64/Games/Game_Es3Tc5.cs
class Game_Es3Tc5 (line 14) | public class Game_Es3Tc5 : Game
method Game_Es3Tc5 (line 76) | public Game_Es3Tc5(String RomName) : base(RomName, "TimeCrisisGame-Win...
method tProcess_Elapsed (line 86) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 200) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 237) | protected override void Apply_InputsMemoryHack()
method SetHackAxis (line 270) | private void SetHackAxis()
method SetHackAxis_v2 (line 357) | private void SetHackAxis_v2()
method SetHack_Buttons_v2 (line 440) | private void SetHack_Buttons_v2()
method Create_JVS_DataBank (line 451) | private void Create_JVS_DataBank()
method SetHack_JVS_Trigger (line 467) | private void SetHack_JVS_Trigger()
method SetHack_JVS_Weapon (line 517) | private void SetHack_JVS_Weapon()
method SetHack_JVS_Axis (line 576) | private void SetHack_JVS_Axis()
method SendInput (line 665) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 721) | protected override void CreateOutputList()
method UpdateOutputValues (line 740) | public override void UpdateOutputValues()
FILE: DemulShooterX64/Games/Game_Flycast.cs
class Game_Flycast (line 8) | public class Game_Flycast : Game
method Game_Flycast (line 32) | public Game_Flycast(String RomName) :
method tProcess_Elapsed (line 49) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
FILE: DemulShooterX64/Games/Game_FlycastAtomiswave.cs
class Game_FlycastAtomiswave (line 11) | public class Game_FlycastAtomiswave : Game_Flycast
method Game_FlycastAtomiswave (line 16) | public Game_FlycastAtomiswave(String RomName) : base(RomName)
method CreateOutputList (line 24) | protected override void CreateOutputList()
method UpdateOutputValues (line 45) | public override void UpdateOutputValues()
FILE: DemulShooterX64/Games/Game_FlycastNaomi.cs
class Game_FlycastNaomi (line 8) | public class Game_FlycastNaomi : Game_Flycast
method Game_FlycastNaomi (line 13) | public Game_FlycastNaomi(String RomName) : base(RomName)
method CreateOutputList (line 21) | protected override void CreateOutputList()
method UpdateOutputValues (line 42) | public override void UpdateOutputValues()
method Compute_Confmiss_Outputs (line 64) | private void Compute_Confmiss_Outputs()
method Compute_Deathcox_Outputs (line 139) | private void Compute_Deathcox_Outputs()
method Compute_Deathcoxo_Outputs (line 220) | private void Compute_Deathcoxo_Outputs()
method Compute_Hotd2_Outputs (line 296) | private void Compute_Hotd2_Outputs(UInt32 DataPtr)
method Compute_Lupinsho_Outputs (line 367) | private void Compute_Lupinsho_Outputs()
method Compute_Mok_Outputs (line 443) | private void Compute_Mok_Outputs()
FILE: DemulShooterX64/Games/Game_FlycastNinjaslt.cs
class Game_FlycastNinjaslt (line 8) | public class Game_FlycastNinjaslt : Game_Flycast
method Game_FlycastNinjaslt (line 19) | public Game_FlycastNinjaslt(String RomName) : base(RomName)
method CreateOutputList (line 53) | protected override void CreateOutputList()
method UpdateOutputValues (line 76) | public override void UpdateOutputValues()
FILE: DemulShooterX64/Games/Game_NuLuigiMansion.cs
class Game_NuLuigiMansion (line 13) | public class Game_NuLuigiMansion : Game
method Game_NuLuigiMansion (line 34) | public Game_NuLuigiMansion(String RomName) : base(RomName, "vacuum")
method tProcess_Elapsed (line 45) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 103) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 146) | protected override void Apply_InputsMemoryHack()
method SetHackP1 (line 160) | private void SetHackP1()
method SetHackP2 (line 211) | private void SetHackP2()
method SendInput (line 266) | public override void SendInput(PlayerSettings PlayerData)
FILE: DemulShooterX64/Games/Game_NuLuigiMansion_v2.cs
class Game_NuLuigiMansion_v2 (line 14) | public class Game_NuLuigiMansion_v2 : Game
method Game_NuLuigiMansion_v2 (line 36) | public Game_NuLuigiMansion_v2(String RomName) : base(RomName, "vacuum")
method tProcess_Elapsed (line 48) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 121) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 161) | protected override void Apply_InputsMemoryHack()
method SetHackP1 (line 182) | private void SetHackP1()
method SetHackP2 (line 229) | private void SetHackP2()
method SendInput (line 279) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 323) | protected override void CreateOutputList()
method UpdateOutputValues (line 367) | public override void UpdateOutputValues()
FILE: DemulShooterX64/Games/Game_RtNerfArcade.cs
class Game_RtNerfArcade (line 11) | internal class Game_RtNerfArcade : Game__Unity
class InputData (line 13) | private class InputData : Base_InputData
method InputData (line 19) | public InputData(int PlayerNumber) : base(PlayerNumber)
class OutputData (line 24) | private class OutputData : Base_OutputData
method OutputData (line 46) | public OutputData(int PlayerNumber) : base(PlayerNumber)
method Game_RtNerfArcade (line 56) | public Game_RtNerfArcade(String RomName)
method SendInput (line 73) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 104) | protected override void CreateOutputList()
method UpdateOutputValues (line 132) | public override void UpdateOutputValues()
method DsTcp_Client_PacketReceived (line 137) | protected override void DsTcp_Client_PacketReceived(Object Sender, DsT...
FILE: DemulShooterX64/Games/Game_S357DarkEscape.cs
class Game_S357DarkEscape (line 16) | public class Game_S357DarkEscape : Game
method Game_S357DarkEscape (line 36) | public Game_S357DarkEscape(String RomName) : base(RomName, "rpcs3-gun")
method tProcess_Elapsed (line 47) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method Check_PatchedFiles_Ok (line 146) | private void Check_PatchedFiles_Ok()
method CompareMd5Hash (line 191) | private void CompareMd5Hash(String Filename, String AwaitedMd5)
method ClientScale (line 224) | public override bool ClientScale(PlayerSettings PlayerData)
method GameScale (line 247) | public override bool GameScale(PlayerSettings PlayerData)
method SendInput (line 297) | public override void SendInput(PlayerSettings PlayerData)
method KeyboardHookCallback (line 357) | public override IntPtr KeyboardHookCallback(IntPtr KeyboardHookID, int...
method CreateOutputList (line 410) | protected override void CreateOutputList()
method UpdateOutputValues (line 440) | public override void UpdateOutputValues()
FILE: DemulShooterX64/Games/Game_S357DeadStormPirates.cs
class Game_S357DeadStormPirates (line 16) | public class Game_S357DeadStormPirates : Game
method Game_S357DeadStormPirates (line 35) | public Game_S357DeadStormPirates(String RomName): base(RomName, "rpcs3...
method tProcess_Elapsed (line 46) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method Check_PatchedFiles_Ok (line 145) | private void Check_PatchedFiles_Ok()
method CompareMd5Hash (line 188) | private void CompareMd5Hash(String Filename, String AwaitedMd5)
method ClientScale (line 221) | public override bool ClientScale(PlayerSettings PlayerData)
method GameScale (line 243) | public override bool GameScale(PlayerSettings PlayerData)
method SendInput (line 293) | public override void SendInput(PlayerSettings PlayerData)
method KeyboardHookCallback (line 354) | public override IntPtr KeyboardHookCallback(IntPtr KeyboardHookID, int...
method CreateOutputList (line 403) | protected override void CreateOutputList()
method UpdateOutputValues (line 424) | public override void UpdateOutputValues()
FILE: DemulShooterX64/Games/Game_S357RazingStorm.cs
class Game_S357RazingStorm (line 14) | public class Game_S357RazingStorm : Game
method Game_S357RazingStorm (line 27) | public Game_S357RazingStorm(String RomName) : base(RomName, "rpcs3")
method tProcess_Elapsed (line 37) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method CreateOutputList (line 136) | protected override void CreateOutputList()
method UpdateOutputValues (line 157) | public override void UpdateOutputValues()
FILE: DemulShooterX64/Games/Game_S357SailorZombie.cs
class Game_S357SailorZombie (line 16) | public class Game_S357SailorZombie : Game
method Game_S357SailorZombie (line 35) | public Game_S357SailorZombie(String RomName)
method tProcess_Elapsed (line 47) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method Check_PatchedFiles_Ok (line 146) | private void Check_PatchedFiles_Ok()
method CompareMd5Hash (line 190) | private void CompareMd5Hash(String Filename, String AwaitedMd5)
method ClientScale (line 223) | public override bool ClientScale(PlayerSettings PlayerData)
method GameScale (line 246) | public override bool GameScale(PlayerSettings PlayerData)
method SendInput (line 287) | public override void SendInput(PlayerSettings PlayerData)
method KeyboardHookCallback (line 346) | public override IntPtr KeyboardHookCallback(IntPtr KeyboardHookID, int...
method CreateOutputList (line 395) | protected override void CreateOutputList()
method UpdateOutputValues (line 422) | public override void UpdateOutputValues()
FILE: DemulShooterX64/Games/Game_WndBhapc.cs
class Game_WndBhapc (line 11) | public class Game_WndBhapc : Game
method Game_WndBhapc (line 38) | public Game_WndBhapc(String RomName) :
method tProcess_Elapsed (line 50) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 112) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 167) | protected override void Apply_InputsMemoryHack()
method SendInput (line 180) | public override void SendInput(PlayerSettings PlayerData)
FILE: DemulShooterX64/Games/Game_WndBigBuckHunterUltimate.cs
class Game_WndBigBuckHunterUltimate (line 14) | public class Game_WndBigBuckHunterUltimate : Game
method Game_WndBigBuckHunterUltimate (line 55) | public Game_WndBigBuckHunterUltimate(String RomName) :
method tProcess_Elapsed (line 67) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 138) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 193) | protected override void Apply_InputsMemoryHack()
method SetHack_GetResolution (line 215) | private void SetHack_GetResolution()
method SetHack_InGameAxis (line 254) | private void SetHack_InGameAxis()
method SetHack_Buttons (line 303) | private void SetHack_Buttons()
method Apply_OutputsMemoryHack (line 345) | protected override void Apply_OutputsMemoryHack()
method SetHack_Recoil (line 358) | private void SetHack_Recoil()
method Apply_NoCrosshairMemoryHack (line 387) | protected override void Apply_NoCrosshairMemoryHack()
method Apply_NoGunsMemoryHack (line 424) | private void Apply_NoGunsMemoryHack()
method Apply_NoCursorHack (line 466) | private void Apply_NoCursorHack()
method SendInput (line 494) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 533) | protected override void CreateOutputList()
method UpdateOutputValues (line 544) | public override void UpdateOutputValues()
FILE: DemulShooterX64/Games/Game_WndBlueEstate.cs
class Game_WndBlueEstate (line 16) | class Game_WndBlueEstate : Game
method Game_WndBlueEstate (line 56) | public Game_WndBlueEstate(String RomName)
method tProcess_Elapsed (line 68) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 127) | public override bool GameScale(PlayerSettings PlayerData)
method Apply_InputsMemoryHack (line 172) | protected override void Apply_InputsMemoryHack()
method SetHack_P1Axis (line 215) | private void SetHack_P1Axis()
method SetHack_XInputGetState (line 251) | private void SetHack_XInputGetState()
method SetHack_P2Axis (line 281) | private void SetHack_P2Axis()
method SetHack_MouseButtons (line 300) | private void SetHack_MouseButtons()
method Apply_OutputsMemoryHack (line 348) | protected override void Apply_OutputsMemoryHack()
method SetHack_Recoil (line 387) | private void SetHack_Recoil()
method SetHack_Damage (line 451) | private void SetHack_Damage()
method SetHack_PlayerInfo (line 493) | private void SetHack_PlayerInfo()
method SendInput (line 567) | public override void SendInput(PlayerSettings PlayerData)
method KeyboardHookCallback (line 628) | public override IntPtr KeyboardHookCallback(IntPtr KeyboardHookID, int...
method CreateOutputList (line 700) | protected override void CreateOutputList()
method UpdateOutputValues (line 716) | public override void UpdateOutputValues()
FILE: DemulShooterX64/Games/Game_WndDcop.cs
class Game_WndDcop (line 10) | internal class Game_WndDcop : Game__Unity
class InputData (line 12) | private class InputData : Base_InputData
method InputData (line 14) | public InputData(int PlayerNumber) : base(PlayerNumber)
class OutputData (line 19) | private class OutputData : Base_OutputData
method OutputData (line 31) | public OutputData(int PlayerNumber) : base(PlayerNumber)
method Game_WndDcop (line 41) | public Game_WndDcop(String RomName)
method CreateOutputList (line 58) | protected override void CreateOutputList()
method UpdateOutputValues (line 77) | public override void UpdateOutputValues()
method DsTcp_Client_PacketReceived (line 82) | protected override void DsTcp_Client_PacketReceived(Object Sender, DsT...
FILE: DemulShooterX64/Games/Game_WndHotdremakeArcade.cs
class Game_WndHotdremakeArcade (line 13) | public class Game_WndHotdremakeArcade : Game
method Game_WndHotdremakeArcade (line 22) | public Game_WndHotdremakeArcade(String RomName)
method tProcess_Elapsed (line 38) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 101) | public override bool GameScale(PlayerSettings PlayerData)
method SetHack (line 133) | private void SetHack()
method SendInput (line 153) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 201) | protected override void CreateOutputList()
method UpdateOutputValues (line 223) | public override void UpdateOutputValues()
FILE: DemulShooterX64/Games/Game_WndOpWolfReturn.cs
class Game_WndOpWolfReturn (line 14) | internal class Game_WndOpWolfReturn : Game__Unity
class InputData (line 16) | private class InputData : Base_InputData
method InputData (line 25) | public InputData(int PlayerNumber) : base(PlayerNumber)
class OutputData (line 30) | private class OutputData : Base_OutputData
method OutputData (line 38) | public OutputData(int PlayerNumber) : base(PlayerNumber)
method Game_WndOpWolfReturn (line 48) | public Game_WndOpWolfReturn(String RomName)
method SendInput (line 65) | public override void SendInput(PlayerSettings PlayerData)
method CreateOutputList (line 106) | protected override void CreateOutputList()
method UpdateOutputValues (line 122) | public override void UpdateOutputValues()
method DsTcp_Client_PacketReceived (line 127) | protected override void DsTcp_Client_PacketReceived(Object Sender, DsT...
FILE: DemulShooterX64/Games/Game__Unity.cs
class Game__Unity (line 10) | public class Game__Unity : Game
class Base_InputData (line 12) | protected class Base_InputData : DsTcpData
method Base_InputData (line 17) | public Base_InputData(int PlayerNumber) : base(PlayerNumber)
class Base_OutputData (line 22) | protected class Base_OutputData : DsTcpData
method Base_OutputData (line 24) | public Base_OutputData(int PlayerNumber) : base(PlayerNumber)
method Game__Unity (line 38) | public Game__Unity(String RomName, String TargetProcessName, String Ma...
method tProcess_Elapsed (line 47) | protected override void tProcess_Elapsed(Object Sender, EventArgs e)
method GameScale (line 124) | public override bool GameScale(PlayerSettings PlayerData)
method DsTcp_client_TcpConnected (line 164) | protected virtual void DsTcp_client_TcpConnected(Object Sender, EventA...
method DsTcp_Client_PacketReceived (line 179) | protected virtual void DsTcp_Client_PacketReceived(Object Sender, DsTc...
FILE: DemulShooterX64/Program.cs
class Program (line 9) | class Program
method AttachConsole (line 11) | [DllImport("kernel32.dll")]
method FreeConsole (line 13) | [DllImport("kernel32.dll", SetLastError = true)]
method GetConsoleWindow (line 15) | [DllImport("kernel32.dll")]
method SendMessage (line 17) | [DllImport("user32.dll")]
method Main (line 29) | static void Main(string[] args)
method GetDaySuffix (line 286) | static string GetDaySuffix(int day)
method DisplayDictionnaryList (line 305) | static void DisplayDictionnaryList(Dictionary<String, String> list)
method CheckParameter (line 316) | static bool CheckParameter(String param, Dictionary<String, String> list)
method ExitConsole (line 326) | static void ExitConsole()
FILE: DemulShooterX64/Properties/Resources.Designer.cs
class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
method Resources (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...
FILE: DemulShooter_GUI/GUI_AnalogCalibration.Designer.cs
class GUI_AnalogCalibration (line 3) | partial class GUI_AnalogCalibration
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: DemulShooter_GUI/GUI_AnalogCalibration.cs
class GUI_AnalogCalibration (line 12) | public partial class GUI_AnalogCalibration : UserControl
method GUI_AnalogCalibration (line 23) | public GUI_AnalogCalibration(int Player, PlayerSettings Ps)
method Cbox_Player_CheckedChanged (line 44) | private void Cbox_Player_CheckedChanged(object sender, EventArgs e)
method Txt_Calib_Xmin_TextChanged (line 77) | private void Txt_Calib_Xmin_TextChanged(object sender, EventArgs e)
method Txt_Calib_Xmax_TextChanged (line 83) | private void Txt_Calib_Xmax_TextChanged(object sender, EventArgs e)
method Txt_Calib_Ymin_TextChanged (line 89) | private void Txt_Calib_Ymin_TextChanged(object sender, EventArgs e)
method Txt_Calib_Ymax_TextChanged (line 95) | private void Txt_Calib_Ymax_TextChanged(object sender, EventArgs e)
method Btn_Start_Calib_Click (line 101) | private void Btn_Start_Calib_Click(object sender, EventArgs e)
method Btn_Stop_Calib_Click (line 118) | private void Btn_Stop_Calib_Click(object sender, EventArgs e)
method Btn_Init_Calib_Click (line 126) | private void Btn_Init_Calib_Click(object sender, EventArgs e)
method UpdateValues (line 145) | public void UpdateValues()
FILE: DemulShooter_GUI/GUI_Button.Designer.cs
class GUI_Button (line 3) | partial class GUI_Button
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: DemulShooter_GUI/GUI_Button.cs
class GUI_Button (line 6) | public partial class GUI_Button : UserControl
method GUI_Button (line 10) | public GUI_Button(int Number)
method Activate (line 17) | public void Activate(bool isActivated)
FILE: DemulShooter_GUI/GUI_Player.Designer.cs
class GUI_Player (line 3) | partial class GUI_Player
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: DemulShooter_GUI/GUI_Player.cs
class GUI_Player (line 9) | public partial class GUI_Player : UserControl
method GUI_Player (line 18) | public GUI_Player(PlayerSettings PlayerData, RawInputController[] Avai...
method AddDevice (line 69) | public void AddDevice(string DeviceName)
method SetVibrationEnabled (line 78) | public void SetVibrationEnabled(bool Enabled)
method GetRawInputControllerFromDeviceName (line 88) | private RawInputController GetRawInputControllerFromDeviceName(String ...
method SelectRawInputController (line 105) | private void SelectRawInputController(String RawInputDeviceName)
method ClearRawInputController (line 134) | private void ClearRawInputController()
method Cbo_Device_SelectionChangeCommitted (line 144) | private void Cbo_Device_SelectionChangeCommitted(object sender, EventA...
method UpdateGui (line 155) | public void UpdateGui()
FILE: DemulShooter_GUI/GUI_RawInputHID.Designer.cs
class GUI_RawInputHID (line 3) | partial class GUI_RawInputHID
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: DemulShooter_GUI/GUI_RawInputHID.cs
class GUI_RawInputHID (line 9) | public partial class GUI_RawInputHID : UserControl
method GUI_RawInputHID (line 14) | public GUI_RawInputHID()
method UpdateData (line 19) | public void UpdateData(PlayerSettings PlayerData)
method Cbox_HID_OnScreenButton_SelectionChangeCommitted (line 78) | private void Cbox_HID_OnScreenButton_SelectionChangeCommitted(object s...
method Cbox_HID_ActionButton_SelectionChangeCommitted (line 86) | private void Cbox_HID_ActionButton_SelectionChangeCommitted(object sen...
method Cbox_HID_OffScreenButton_SelectionChangeCommitted (line 94) | private void Cbox_HID_OffScreenButton_SelectionChangeCommitted(object ...
method Cbox_HID_XAxis_SelectionChangeCommitted (line 102) | private void Cbox_HID_XAxis_SelectionChangeCommitted(object sender, Ev...
method Cbox_HID_YAxis_SelectionChangeCommitted (line 110) | private void Cbox_HID_YAxis_SelectionChangeCommitted(object sender, Ev...
method Chk_InvertX_CheckedChanged (line 118) | private void Chk_InvertX_CheckedChanged(object sender, EventArgs e)
method Chk_InvertY_CheckedChanged (line 123) | private void Chk_InvertY_CheckedChanged(object sender, EventArgs e)
method UpdateGui (line 130) | public void UpdateGui()
method SetButtonState (line 139) | public void SetButtonState(int ButtonID, bool ButtonState)
method Pnl_AxisViewer_Paint (line 147) | private void Pnl_AxisViewer_Paint(object sender, PaintEventArgs e)
FILE: DemulShooter_GUI/GUI_RawInputMouse.Designer.cs
class GUI_RawInputMouse (line 3) | partial class GUI_RawInputMouse
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: DemulShooter_GUI/GUI_RawInputMouse.cs
class GUI_RawInputMouse (line 12) | public partial class GUI_RawInputMouse : UserControl
method GUI_RawInputMouse (line 24) | public GUI_RawInputMouse()
method UpdateData (line 39) | public void UpdateData(PlayerSettings PlayerData)
method Chk_VirtualMiddleBtn_CheckedChanged (line 69) | private void Chk_VirtualMiddleBtn_CheckedChanged(object sender, EventA...
method TXT_DIK_MouseClick (line 89) | public void TXT_DIK_MouseClick(object sender, MouseEventArgs e)
method GuiKeyboardHookCallback (line 104) | private IntPtr GuiKeyboardHookCallback(int nCode, IntPtr wParam, IntPt...
method GetKeyStringFromScanCode (line 132) | private String GetKeyStringFromScanCode(int ScanCode)
method GetKeyStringFromVkCode (line 138) | private String GetKeyStringFromVkCode(int vkCode)
method UpdateGui (line 146) | public void UpdateGui()
method SetButtonState (line 155) | public void SetButtonState(int ButtonID, bool ButtonState)
method Pnl_AxisViewer_Paint (line 163) | private void Pnl_AxisViewer_Paint(object sender, PaintEventArgs e)
FILE: DemulShooter_GUI/Game_Bhapc - Copy.cs
class Game_Bhapc (line 13) | class Game_Bhapc : Game
method Game_Bhapc (line 43) | public Game_Bhapc(string RomName, bool Verbose)
method tProcess_Tick (line 67) | private void tProcess_Tick(Object Sender, EventArgs e)
method GameScale (line 121) | public override bool GameScale(MouseInfo Mouse, int Player)
method ReadProcessMemory_x64 (line 172) | [DllImport("kernel32.dll", SetLastError = true, EntryPoint = "ReadProc...
method WriteProcessMemory_x64 (line 175) | [DllImport("kernel32.dll", SetLastError = true, EntryPoint = "WritePro...
method ReadBytes_x64 (line 178) | protected Byte[] ReadBytes_x64(Int64 X64_Address, int Bytes)
method WriteByte_x64 (line 189) | protected bool WriteByte_x64(Int64 Address, byte Value)
method WriteBytes_x64 (line 203) | protected bool WriteBytes_x64(Int64 Address, byte[] Buffer)
method SetNops_x64 (line 217) | protected void SetNops_x64(Int64 BaseAddress, string OffsetAndNumber)
method SetHack (line 237) | private void SetHack()
method SetHack_Data (line 251) | private void SetHack_Data()
method SetHack_P1Axis (line 267) | private void SetHack_P1Axis()
method SendInput (line 326) | public override void SendInput(MouseInfo mouse, int Player)
method KeyboardHookCallback (line 421) | protected override IntPtr KeyboardHookCallback(int nCode, IntPtr wPara...
FILE: DemulShooter_GUI/Program.cs
class Program (line 6) | static class Program
method Main (line 11) | [STAThread]
FILE: DemulShooter_GUI/Properties/Resources.Designer.cs
class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
method Resources (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...
FILE: DemulShooter_GUI/Properties/Settings.Designer.cs
class Settings (line 14) | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
FILE: DemulShooter_GUI/Wnd_DemulShooterGui.Designer.cs
class Wnd_DemulShooterGui (line 3) | partial class Wnd_DemulShooterGui
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: DemulShooter_GUI/Wnd_DemulShooterGui.cs
class Wnd_DemulShooterGui (line 16) | public partial class Wnd_DemulShooterGui : Form
method Wnd_DemulShooterGui (line 51) | public Wnd_DemulShooterGui(bool IsVerbose)
method ProcessRawInputMessage (line 253) | private void ProcessRawInputMessage(IntPtr RawInputHandle)
method Cbo_PageSettings_SelectionChangeCommitted (line 289) | private void Cbo_PageSettings_SelectionChangeCommitted(object sender, ...
method UpdateCalibration (line 296) | private void UpdateCalibration(int Player, int CurrentX, int CurrentY)
method Btn_SaveAnalog_Click (line 309) | private void Btn_SaveAnalog_Click(object sender, EventArgs e)
method Cb_ActLabsOffset_CheckedChanged (line 321) | private void Cb_ActLabsOffset_CheckedChanged(object sender, EventArgs e)
method Chk_DspCorrectedCrosshair_CheckedChanged (line 350) | private void Chk_DspCorrectedCrosshair_CheckedChanged(object sender, E...
method Txt_ActLabs_X1_TextChanged (line 355) | private void Txt_ActLabs_X1_TextChanged(object sender, EventArgs e)
method Txt_ActLabs_Y1_TextChanged (line 367) | private void Txt_ActLabs_Y1_TextChanged(object sender, EventArgs e)
method Txt_ActLabs_X2_TextChanged (line 379) | private void Txt_ActLabs_X2_TextChanged(object sender, EventArgs e)
method Txt_ActLabs_Y2_TextChanged (line 391) | private void Txt_ActLabs_Y2_TextChanged(object sender, EventArgs e)
method Txt_ActLabs_X3_TextChanged (line 403) | private void Txt_ActLabs_X3_TextChanged(object sender, EventArgs e)
method Txt_ActLabs_Y3_TextChanged (line 415) | private void Txt_ActLabs_Y3_TextChanged(object sender, EventArgs e)
method Txt_ActLabs_X4_TextChanged (line 427) | private void Txt_ActLabs_X4_TextChanged(object sender, EventArgs e)
method Txt_ActLabs_Y4_TextChanged (line 439) | private void Txt_ActLabs_Y4_TextChanged(object sender, EventArgs e)
method Btn_ActLabs_Save_Click (line 451) | private void Btn_ActLabs_Save_Click(object sender, EventArgs e)
method DrawCrosshair (line 459) | private void DrawCrosshair(PlayerSettings Player)
method CrosshairAimTimer_Tick (line 495) | private void CrosshairAimTimer_Tick(object sender, EventArgs e)
method Clamp (line 504) | protected int Clamp(int val, int minVal, int maxVal)
method ScreenScale (line 514) | public int ScreenScale(int val, int fromMinVal, int fromMaxVal, int to...
method ScreenScale (line 518) | protected int ScreenScale(int val, int fromMinVal, int fromOffVal, int...
method Save_Sha_Keys_Click (line 579) | private void Save_Sha_Keys_Click(object sender, EventArgs e)
method Chk_GundamP1Pedal_CheckedChanged (line 591) | private void Chk_GundamP1Pedal_CheckedChanged(object sender, EventArgs e)
method Chk_GundamP2Pedal_CheckedChanged (line 599) | private void Chk_GundamP2Pedal_CheckedChanged(object sender, EventArgs e)
method Btn_Save_Gsoz_Click (line 607) | private void Btn_Save_Gsoz_Click(object sender, EventArgs e)
method Btn_Dolphin5_Click (line 619) | private void Btn_Dolphin5_Click(object sender, EventArgs e)
method InstallWiimoteconfigFile (line 623) | private void InstallWiimoteconfigFile(String ResourceFile)
method Btn_EAI_Open_Click (line 703) | private void Btn_EAI_Open_Click(object sender, EventArgs e)
method Btn_EAI_Patch_Click (line 726) | private void Btn_EAI_Patch_Click(object sender, EventArgs e)
method Btn_EAI_Save_Click (line 807) | private void Btn_EAI_Save_Click(object sender, EventArgs e)
method Btn_M2Scripts_Click (line 819) | private void Btn_M2Scripts_Click(object sender, EventArgs e)
method InstallM2Scripts (line 823) | private void InstallM2Scripts()
method Rdo_HF_MiddleCover_CheckedChanged (line 864) | private void Rdo_HF_MiddleCover_CheckedChanged(object sender, EventArg...
method Rdo_HF_MiddleClickGrenade_CheckedChanged (line 871) | private void Rdo_HF_MiddleClickGrenade_CheckedChanged(object sender, E...
method TrackBar_HF_Cover_ValueChanged (line 878) | private void TrackBar_HF_Cover_ValueChanged(object sender, EventArgs e)
method Chk_HF_ReverseCover_CheckedChanged (line 882) | private void Chk_HF_ReverseCover_CheckedChanged(object sender, EventAr...
method Btn_HF_Save_Click (line 886) | private void Btn_HF_Save_Click(object sender, EventArgs e)
method Chk_Le3_EnablePedal1_CheckedChanged (line 898) | private void Chk_Le3_EnablePedal1_CheckedChanged(object sender, EventA...
method Chk_Le3_EnablePedal2_CheckedChanged (line 907) | private void Chk_Le3_EnablePedal2_CheckedChanged(object sender, EventA...
method Btn_Save_Le3_Click (line 916) | private void Btn_Save_Le3_Click(object sender, EventArgs e)
method Rdo_MIA_Merge_CheckedChanged (line 926) | private void Rdo_MIA_Merge_CheckedChanged(object sender, EventArgs e)
method Rdo_MIA_Separate_CheckedChanged (line 931) | private void Rdo_MIA_Separate_CheckedChanged(object sender, EventArgs e)
method Btn_MisImp_Save_Click (line 936) | private void Btn_MisImp_Save_Click(object sender, EventArgs e)
method Cbox_OpGhost_Freeplay_SelectedIndexChanged (line 951) | private void Cbox_OpGhost_Freeplay_SelectedIndexChanged(object sender,...
method Cbox_OpGhost_CreditsByCoin_SelectedIndexChanged (line 959) | private void Cbox_OpGhost_CreditsByCoin_SelectedIndexChanged(object se...
method Cbox_OpGhost_CreditsToStart_SelectedIndexChanged (line 964) | private void Cbox_OpGhost_CreditsToStart_SelectedIndexChanged(object s...
method Cbox_OpGhost_CreditsToContinue_SelectedIndexChanged (line 969) | private void Cbox_OpGhost_CreditsToContinue_SelectedIndexChanged(objec...
method Chk_OpGhost_SeparateButton_CheckedChanged (line 974) | private void Chk_OpGhost_SeparateButton_CheckedChanged(object sender, ...
method Btn_Save_OpGhost_Click (line 989) | private void Btn_Save_OpGhost_Click(object sender, EventArgs e)
method Btn_InstallUnityPlugin_Click (line 1001) | private void Btn_InstallUnityPlugin_Click(object sender, EventArgs e)
method Install_Unity_Plugin (line 1030) | private void Install_Unity_Plugin(string SrcFolder, string DstFolder)
method Btn_Raccoon_Open_Click (line 1045) | private void Btn_Raccoon_Open_Click(object sender, EventArgs e)
method Btn_Raccoon_Patch_Click (line 1068) | private void Btn_Raccoon_Patch_Click(object sender, EventArgs e)
method Btn_Rpcs3_DeadStorm_Click (line 1110) | private void Btn_Rpcs3_DeadStorm_Click(object sender, EventArgs e)
method Btn_Rpcs3_DarkEscape_Click (line 1134) | private void Btn_Rpcs3_DarkEscape_Click(object sender, EventArgs e)
method Btn_Rpcs3_SailorZombie_Click (line 1158) | private void Btn_Rpcs3_SailorZombie_Click(object sender, EventArgs e)
method Btn_Rpcs3_RazingStorm_Click (line 1182) | private void Btn_Rpcs3_RazingStorm_Click(object sender, EventArgs e)
method Txt_Rpcs3_Save_Click (line 1187) | private void Txt_Rpcs3_Save_Click(object sender, EventArgs e)
method Patch_RPCS3_PPU_CacheFile (line 1195) | private void Patch_RPCS3_PPU_CacheFile(string CacheFolder, string Cach...
method Cbox_Outputs_CheckedChanged (line 1224) | private void Cbox_Outputs_CheckedChanged(object sender, EventArgs e)
method Cbox_WmOutputs_CheckedChanged (line 1237) | private void Cbox_WmOutputs_CheckedChanged(object sender, EventArgs e)
method Cbox_NetOutputs_CheckedChanged (line 1247) | private void Cbox_NetOutputs_CheckedChanged(object sender, EventArgs e)
method Txt_OutputDelay_TextChanged (line 1257) | private void Txt_OutputDelay_TextChanged(object sender, EventArgs e)
method Txt_OutputRecoilOn_TextChanged (line 1270) | private void Txt_OutputRecoilOn_TextChanged(object sender, EventArgs e)
method Txt_OutputRecoilOff_TextChanged (line 1283) | private void Txt_OutputRecoilOff_TextChanged(object sender, EventArgs e)
method Txt_OutputDamaged_TextChanged (line 1296) | private void Txt_OutputDamaged_TextChanged(object sender, EventArgs e)
method Btn_Save_Cfg_Click (line 1309) | private void Btn_Save_Cfg_Click(object sender, EventArgs e)
method ApplyKeyboardHook (line 1324) | protected void ApplyKeyboardHook()
method GuiKeyboardHookCallback (line 1343) | private IntPtr GuiKeyboardHookCallback(int nCode, IntPtr wParam, IntPt...
method GetKeyStringFromScanCode (line 1428) | private String GetKeyStringFromScanCode(int ScanCode)
method GetKeyStringFromVkCode (line 1434) | private String GetKeyStringFromVkCode(int vkCode)
method TXT_DirectInput_MouseClick (line 1443) | public void TXT_DirectInput_MouseClick(object sender, MouseEventArgs e)
method WndProc (line 1461) | protected override void WndProc(ref Message m)
method Tab_AnalogCalib_Click (line 1475) | private void Tab_AnalogCalib_Click(object sender, EventArgs e)
method CloneDirectory (line 1480) | private bool CloneDirectory(string root, string dest)
FILE: DsCore/Config/Configurator.cs
class Configurator (line 10) | public sealed class Configurator
method GetInstance (line 14) | public static Configurator GetInstance(){
method Configurator (line 462) | private Configurator()
method GetPlayerSettings (line 476) | public PlayerSettings GetPlayerSettings(int RequestedPlayerID)
method ReadDsConfig (line 491) | public void ReadDsConfig(String ConfigFilePath)
method Read_Sha_Conf (line 882) | public void Read_Sha_Conf()
method WriteConf (line 935) | public bool WriteConf(String ConfigFilePath)
method Write_Sha_Config (line 1072) | public bool Write_Sha_Config()
FILE: DsCore/Config/PlayerSettings.cs
class PlayerSettings (line 14) | public class PlayerSettings
method PlayerSettings (line 200) | public PlayerSettings(int PlayerID)
method ParseIniParameter (line 232) | public bool ParseIniParameter(string StrKey, string StrValue)
FILE: DsCore/INIFile.cs
class INIFile (line 7) | public class INIFile
method WritePrivateProfileString (line 12) | [DllImport("kernel32", CharSet = CharSet.Unicode)]
method GetPrivateProfileString (line 14) | [DllImport("kernel32", CharSet = CharSet.Unicode)]
method INIFile (line 18) | public INIFile(string INIPath)
method IniWriteValue (line 23) | public long IniWriteValue(string Section, string Key, string Value)
method IniReadValue (line 28) | public string IniReadValue(string Section, string Key)
method IniReadBoolValue (line 35) | public void IniReadBoolValue(string section, string key, ref bool Targ...
method IniReadIntValue (line 49) | public void IniReadIntValue(string section, string key, ref int Target...
FILE: DsCore/IPC/DsTcpData.cs
class DsTcpData (line 9) | [StructLayout(LayoutKind.Sequential)]
method DsTcpData (line 21) | public DsTcpData(int PlayerNumber)
method ToByteArray (line 53) | public byte[] ToByteArray()
method Update (line 87) | public void Update(byte[] ReceivedData)
method WriteBytes (line 130) | private void WriteBytes(Type t, Object o)
method ReadBytes (line 167) | private object ReadBytes(Type t)
method ToString (line 203) | public override string ToString()
method PrivateDebug (line 214) | private void PrivateDebug(string s)
FILE: DsCore/IPC/DsTcp_Client.cs
class DsTcp_Client (line 7) | public class DsTcp_Client
method DsTcp_Client (line 29) | public DsTcp_Client(string Address, int Port)
method Connect (line 36) | public void Connect()
method Disconnect (line 49) | public void Disconnect()
method DisconnectThread (line 62) | private void DisconnectThread()
method IsConnected (line 79) | public bool IsConnected()
method SendMessage (line 87) | public void SendMessage(byte[] DataToSend)
method StartListenerThread (line 117) | private void StartListenerThread()
method Listener (line 130) | private void Listener()
method OnConnected (line 204) | private void OnConnected(object sender, EventArgs e)
method OnPacketReceived (line 213) | private void OnPacketReceived(object sender, PacketReceivedEventArgs e)
class PacketReceivedEventArgs (line 219) | public class PacketReceivedEventArgs : EventArgs
method PacketReceivedEventArgs (line 228) | public PacketReceivedEventArgs(DsTcp_TcpPacket Packet)
FILE: DsCore/IPC/DsTcp_TcpPacket.cs
class DsTcp_TcpPacket (line 8) | public class DsTcp_TcpPacket
type PacketHeader (line 20) | public enum PacketHeader : byte
method DsTcp_TcpPacket (line 38) | public DsTcp_TcpPacket(PacketHeader Header)
method DsTcp_TcpPacket (line 42) | public DsTcp_TcpPacket(byte[] Payload, PacketHeader Header)
method DsTcp_TcpPacket (line 49) | public DsTcp_TcpPacket(byte[] PacketAndHeader)
method GetHeader (line 63) | public PacketHeader GetHeader()
method GetPayload (line 72) | public byte[] GetPayload()
method GetFullPacket (line 81) | public byte[] GetFullPacket()
FILE: DsCore/IPC/MMFH_HotdRemakeArcade.cs
class MMFH_HotdRemakeArcade (line 6) | public class MMFH_HotdRemakeArcade : MappedMemoryFileHelper
type Payload_Inputs_Index (line 42) | public enum Payload_Inputs_Index
type Payload_Outputs_Index (line 54) | public enum Payload_Outputs_Index
method MMFH_HotdRemakeArcade (line 77) | public MMFH_HotdRemakeArcade()
method ReadAll (line 90) | public int ReadAll()
method Writeall (line 116) | public int Writeall()
method WriteInputs (line 122) | public int WriteInputs()
FILE: DsCore/IPC/MMF_DataStruct.cs
class MMF_DataStruct (line 7) | public class MMF_DataStruct
method MMF_DataStruct (line 15) | public MMF_DataStruct()
method UpdateRawValues (line 24) | public void UpdateRawValues(UInt32 NewX, UInt32 NewY)
method UpdateComputedValues (line 30) | public void UpdateComputedValues(Int32 NewX, Int32 NewY, bool[] NewBut...
FILE: DsCore/IPC/MappedMemoryFileHelper.cs
class MappedMemoryFileHelper (line 10) | public class MappedMemoryFileHelper
method MappedMemoryFileHelper (line 34) | public MappedMemoryFileHelper(string MMF_Name, string Mutex_Name, long...
method MMFOpen (line 54) | public int MMFOpen()
method WriteByteArray (line 124) | public int WriteByteArray(byte[] bytData, int lngAddr, int lngSize)
method MMFClose (line 155) | public void MMFClose()
FILE: DsCore/IPC/MappedMemoryFile_Helper_old.cs
class MemoryMappedFileHelper_Old (line 9) | public class MemoryMappedFileHelper_Old
method MemoryMappedFileHelper_Old (line 50) | public MemoryMappedFileHelper_Old(String strMutexName)
method MMFInit (line 73) | public int MMFInit(string strName, long lngSize)
method MMFClose (line 134) | public void MMFClose()
method WriteData (line 148) | public int WriteData()
method WriteByteArray (line 175) | private int WriteByteArray(byte[] bytData, int lngAddr, int lngSize)
method ReadByteArray (line 212) | private int ReadByteArray(ref byte[] bytData, int lngAddr, int lngSize)
method UpdateRawPlayerData (line 228) | public void UpdateRawPlayerData(int PlayerID, UInt32 NewX, UInt32 NewY)
method UpdateComputedPlayerData (line 234) | public void UpdateComputedPlayerData(int PlayerID, Int32 NewX, Int32 N...
FILE: DsCore/Logger.cs
class Logger (line 7) | public static class Logger
method InitLogFileName (line 13) | public static void InitLogFileName()
method WriteLog (line 22) | public static void WriteLog(String Data)
FILE: DsCore/MameOutput/AsyncGameOutput.cs
class AsyncGameOutput (line 5) | public class AsyncGameOutput : GameOutput
method AsyncGameOutput (line 37) | public AsyncGameOutput(OutputId Id, int AsyncResetTimerOnInterval, int...
method AsyncResetTimer_Elapsed (line 49) | private void AsyncResetTimer_Elapsed(Object sender, EventArgs e)
FILE: DsCore/MameOutput/BlinkGameOutput.cs
class BlinkGameOutput (line 6) | public class BlinkGameOutput : GameOutput
method BlinkGameOutput (line 43) | public BlinkGameOutput(OutputId Id, int BlinkTimerInterval): base(Id)
method BlinkTimer_Elapsed (line 51) | private void BlinkTimer_Elapsed(Object sender, EventArgs e)
FILE: DsCore/MameOutput/GameOutput.cs
class GameOutput (line 8) | public class GameOutput
method GameOutput (line 26) | public GameOutput(OutputId Id)
method GameOutput (line 33) | public GameOutput(GameOutput Output)
FILE: DsCore/MameOutput/MMT.cs
type TimerMode (line 11) | public enum TimerMode
type TimeCaps (line 27) | [StructLayout(LayoutKind.Sequential)]
class Mmt (line 44) | public sealed class Mmt
method timeGetDevCaps (line 61) | [DllImport("winmm.dll")]
method timeSetEvent (line 65) | [DllImport("winmm.dll")]
method timeKillEvent (line 69) | [DllImport("winmm.dll")]
method Mmt (line 132) | static Mmt()
method Mmt (line 141) | public Mmt()
method Initialize (line 156) | private void Initialize()
method Start (line 173) | public void Start()
method Stop (line 189) | public void Stop()
method TimerPeriodicEventCallback (line 207) | private void TimerPeriodicEventCallback(int id, int msg, int user, int...
method TimerOneShotEventCallback (line 214) | private void TimerOneShotEventCallback(int id, int msg, int user, int ...
method OnStarted (line 225) | private void OnStarted(EventArgs e)
method OnStopped (line 236) | private void OnStopped(EventArgs e)
method OnTick (line 247) | private void OnTick(EventArgs e)
class TimerStartException (line 371) | public class TimerStartException : ApplicationException
method TimerStartException (line 379) | public TimerStartException(string message)
FILE: DsCore/MameOutput/Network/Net_OutputClient.cs
class Net_OutputClient (line 8) | public class Net_OutputClient
method Net_OutputClient (line 37) | public Net_OutputClient(TcpClient Handler)
FILE: DsCore/MameOutput/Network/Net_OutputHelper.cs
class Net_OutputHelper (line 10) | public class Net_OutputHelper
method Net_OutputHelper (line 31) | public Net_OutputHelper(string RomName)
method Start (line 47) | public void Start()
method Stop (line 53) | public void Stop()
method ListenerThread (line 80) | private void ListenerThread()
method SetGameHookedState (line 126) | public void SetGameHookedState(bool HookedState)
method BroadcastValues (line 136) | public void BroadcastValues(List<GameOutput> Outputs)
method BroadcatStartMessage (line 179) | public void BroadcatStartMessage()
method SendStartMessage (line 191) | public void SendStartMessage(Net_OutputClient Client)
method SendStopMessage (line 202) | public void SendStopMessage(Net_OutputClient Client)
method SendValue (line 214) | public void SendValue(Net_OutputClient Client, String Name, string Value)
FILE: DsCore/MameOutput/OutputId.cs
type OutputId (line 4) | public enum OutputId : uint
FILE: DsCore/MameOutput/SyncBlinkingGameOutput.cs
class SyncBlinkingGameOutput (line 13) | public class SyncBlinkingGameOutput : GameOutput
method SyncBlinkingGameOutput (line 47) | public SyncBlinkingGameOutput(OutputId Id, int BlinkingTimerInterval):...
method BlinkingTimer_Elapsed (line 56) | private void BlinkingTimer_Elapsed(Object sender, EventArgs e)
FILE: DsCore/MameOutput/WindowMessage/Wm_OutputClient.cs
type Wm_OutputClient (line 8) | public struct Wm_OutputClient
FILE: DsCore/MameOutput/WindowMessage/Wm_OutputDataStruct.cs
type Wm_OutputDataStruct (line 9) | [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
FILE: DsCore/MameOutput/WindowMessage/Wm_OutputHelper.cs
class Wm_OutputHelper (line 9) | public class Wm_OutputHelper
method Wm_OutputHelper (line 56) | public Wm_OutputHelper(IntPtr MainWindowHandle)
method Instance (line 74) | public static Wm_OutputHelper Instance()
method Start (line 82) | public void Start()
method Stop (line 92) | public void Stop()
method RegisterClient (line 102) | public int RegisterClient(IntPtr hWnd, UInt32 Id)
method UnregisterClient (line 130) | public void UnregisterClient(IntPtr hWnd, UInt32 Id)
method SendIdString (line 149) | public void SendIdString(IntPtr hWnd, String lpStr, UInt32 Id)
method SendValues (line 186) | public void SendValues(List<GameOutput> Outputs)
method SendValue (line 246) | public void SendValue(uint Id, int Value)
method RegisterMameOutputMessage (line 259) | private uint RegisterMameOutputMessage(String lpString)
method IntPtrAlloc (line 273) | public static IntPtr IntPtrAlloc<T>(T param)
method IntPtrFree (line 284) | public static void IntPtrFree(ref IntPtr preAllocated)
FILE: DsCore/Memory/Codecave.cs
class Codecave (line 10) | public class Codecave
method Codecave (line 27) | public Codecave(Process p, IntPtr BaseAddress)
method Open (line 37) | public bool Open()
method Alloc (line 52) | public bool Alloc(UInt32 Size)
method Write_call (line 63) | public bool Write_call(UInt32 Address)
method Write_cmp (line 73) | public bool Write_cmp(int Value)
method Write_je (line 83) | public bool Write_je(UInt32 Address)
method Write_jb (line 94) | public bool Write_jb(UInt32 Address)
method Write_jng (line 105) | public bool Write_jng(UInt32 Address)
method Write_jnl (line 116) | public bool Write_jnl(UInt32 Address)
method Write_jg (line 127) | public bool Write_jg(UInt32 Address)
method Write_ja (line 138) | public bool Write_ja(UInt32 Address)
method Write_jl (line 149) | public bool Write_jl(UInt32 Address)
method Write_jmp (line 160) | public bool Write_jmp(UInt32 Address)
method Write_nop (line 170) | public bool Write_nop(int Amount = 1)
method Write_StrBytes (line 185) | public bool Write_StrBytes(String StrBuffer)
method Write_Bytes (line 201) | public bool Write_Bytes(Byte[] Buffer)
method InjectToOffset (line 220) | public void InjectToOffset(InjectionStruct iStruct, string sCodeCaveNa...
method InjectToOffset (line 230) | public void InjectToOffset(IntPtr BaseAddress, InjectionStruct iStruct...
method InjectToAddress (line 259) | public void InjectToAddress(InjectionStruct iStruct, string sCodeCaveN...
FILE: DsCore/Memory/InjectionStruct.cs
class InjectionStruct (line 6) | public class InjectionStruct
method InjectionStruct (line 23) | public InjectionStruct(UInt32 Offset, UInt32 Length)
method InjectionStruct (line 29) | public InjectionStruct(String OffsetAndLength)
FILE: DsCore/Memory/NopStruct.cs
type NopStruct (line 9) | public struct NopStruct
method NopStruct (line 14) | public NopStruct(UInt32 Offset, UInt32 NopLength)
method NopStruct (line 20) | public NopStruct(String OffsetAndNumber)
FILE: DsCore/MemoryX64/Codecave.cs
class Codecave (line 8) | public class Codecave
method Codecave (line 25) | public Codecave(Process p, IntPtr BaseAddress)
method Open (line 35) | public bool Open()
method Alloc (line 50) | public bool Alloc(UInt32 Size)
method Write_call_absolute (line 67) | public bool Write_call_absolute(UInt64 AbsoluteAddress)
method Write_jmp (line 83) | public bool Write_jmp(UInt64 AbsoluteAddress)
method Write_nop (line 97) | public bool Write_nop(int Amount = 1)
method Write_StrBytes (line 112) | public bool Write_StrBytes(String StrBuffer)
method Write_Bytes (line 128) | public bool Write_Bytes(Byte[] Buffer)
method InjectToOffset (line 147) | public void InjectToOffset(InjectionStruct iStruct, string sCodeCaveNa...
method InjectToAddress (line 180) | public void InjectToAddress(InjectionStruct iStruct, string sCodeCaveN...
method InjectToOffset_WithTrampoline (line 217) | public void InjectToOffset_WithTrampoline(InjectionStruct iStruct, UIn...
FILE: DsCore/MemoryX64/InjectionStruct.cs
class InjectionStruct (line 6) | public class InjectionStruct
method InjectionStruct (line 23) | public InjectionStruct(UInt64 Offset, UInt32 Length)
method InjectionStruct (line 29) | public InjectionStruct(String OffsetAndLength)
FILE: DsCore/MemoryX64/NopStruct.cs
type NopStruct (line 10) | public struct NopStruct
method NopStruct (line 15) | public NopStruct(UInt64 Offset, UInt32 NopLength)
method NopStruct (line 21) | public NopStruct(String OffsetAndNumber)
FILE: DsCore/RawInput/Hid/HidPButtonCaps.cs
type HidPButtonCaps (line 9) | [StructLayout(LayoutKind.Explicit)]
method ToString (line 88) | public override string ToString()
type ButtonCapsRange (line 103) | [StructLayout(LayoutKind.Sequential)]
type ButtonCapsNotRange (line 146) | [StructLayout(LayoutKind.Sequential)]
FILE: DsCore/RawInput/Hid/HidPCaps.cs
type HidPCaps (line 8) | [StructLayout(LayoutKind.Sequential, Pack = 1)]
method ToString (line 81) | public override string ToString()
FILE: DsCore/RawInput/Hid/HidPReportType.cs
type HidPReportType (line 7) | public enum HidPReportType
FILE: DsCore/RawInput/Hid/HidPValueCaps.cs
type HidPValueCaps (line 9) | [StructLayout(LayoutKind.Explicit)]
method ToString (line 149) | public override string ToString()
type ValueCapsRange (line 164) | [StructLayout(LayoutKind.Sequential)]
type ValuenCapsNotRange (line 206) | [StructLayout(LayoutKind.Sequential)]
FILE: DsCore/RawInput/Hid/HidUsage.cs
type HidUsage (line 7) | public enum HidUsage : ushort
FILE: DsCore/RawInput/Hid/HidUsageAndPage.cs
type HID_USAGE_PAGE (line 8) | public enum HID_USAGE_PAGE : ushort
type HID_USAGE_GENERIC (line 29) | public enum HID_USAGE_GENERIC : ushort
type HID_USAGE_SIMULATION (line 108) | public enum HID_USAGE_SIMULATION : ushort
type HID_USAGE_LED (line 136) | public enum HID_USAGE_LED : ushort
FILE: DsCore/RawInput/Hid/HidUsagePage.cs
type HidUsagePage (line 7) | public enum HidUsagePage : ushort
FILE: DsCore/RawInput/Hid/NtStatus.cs
type NtStatus (line 7) | public enum NtStatus : uint
FILE: DsCore/RawInput/RawInputController.cs
class RawInputController (line 10) | public class RawInputController
type ControllerComputedData (line 206) | public struct ControllerComputedData
method RawInputController (line 282) | public RawInputController(IntPtr DeviceHandle, RawInputDeviceType Devi...
method isSourceOfRawInputMessage (line 353) | public Boolean isSourceOfRawInputMessage(IntPtr LParam)
method ProcessRawInputData (line 375) | public void ProcessRawInputData(IntPtr LParam)
method Set_Hid_Button_Value (line 552) | private void Set_Hid_Button_Value(int ButtonNumber, bool ButtonState)
method Correct_Axis_Max (line 564) | private int Correct_Axis_Max(int Max_Value)
method CorrectNegative_Value (line 580) | private int CorrectNegative_Value(int Value, int MinValue)
method GetDeviceName (line 595) | private void GetDeviceName()
method GetDeviceInfo (line 611) | private void GetDeviceInfo()
method GetManufacturerAndProductString (line 627) | private void GetManufacturerAndProductString(String DevicePath)
method GetCapabilities (line 675) | private bool GetCapabilities(IntPtr pPreparsedData, out HidPCaps Caps)
method GetButtonCapabilities (line 691) | private bool GetButtonCapabilities(IntPtr pPreparsedData, HidPCaps Cap...
method GetValueCapabilities (line 709) | private bool GetValueCapabilities(IntPtr pPreparsedData, HidPCaps Caps...
method GetOutputValueCapabilities (line 719) | private bool GetOutputValueCapabilities(IntPtr pPreparsedData, HidPCap...
method GetPreparsedData (line 734) | private IntPtr GetPreparsedData()
method GetNumberOfHidDeviceButtons (line 761) | private int GetNumberOfHidDeviceButtons(IntPtr pPreparsedData, HidPBut...
method GetRawInputHeader (line 776) | private bool GetRawInputHeader(IntPtr LParam)
method GetRawInputData (line 794) | private bool GetRawInputData(IntPtr LParam)
method Set_SONY_DS4_Output (line 840) | public void Set_SONY_DS4_Output(byte RightMotor, byte LeftMotor, byte ...
method Set_SONY_PS3_Output (line 866) | public void Set_SONY_PS3_Output(byte RightMotor, byte LeftMotor, byte ...
type RawInputcontrollerButtonEvent (line 898) | [Flags]
FILE: DsCore/RawInput/RawInputHelper.cs
class RawInputHelper (line 8) | public static class RawInputHelper
method GetRawInputDevices (line 14) | public static RawInputController[] GetRawInputDevices()
method GetRawInputDevices (line 24) | public static RawInputController[] GetRawInputDevices(RawInputDeviceTy...
FILE: DsCore/RawInput/User32/RawHid.cs
type RawHid (line 11) | public struct RawHid
method FromIntPtr (line 34) | public static RawHid FromIntPtr(IntPtr Ptr)
method ToString (line 56) | public override string ToString()
FILE: DsCore/RawInput/User32/RawInputDataKeyboard.cs
type RawInputDataKeyboard (line 6) | [StructLayout(LayoutKind.Sequential)]
type RawKeyboard (line 16) | [StructLayout(LayoutKind.Sequential)]
method ToString (line 44) | public override string ToString()
type RawKeyboardFlags (line 51) | [Flags]
FILE: DsCore/RawInput/User32/RawInputDataMouse.cs
type RawInputDataMouse (line 6) | [StructLayout(LayoutKind.Sequential)]
type RawMouse (line 16) | [StructLayout(LayoutKind.Explicit)]
method ToString (line 60) | public override string ToString()
type RawMouseFlags (line 66) | [Flags]
type RawMouseButtonFlags (line 87) | [Flags]
FILE: DsCore/RawInput/User32/RawInputDevice.cs
type RawInputDevice (line 9) | [StructLayout(LayoutKind.Sequential)]
method ToString (line 29) | public override string ToString()
FILE: DsCore/RawInput/User32/RawInputDeviceFlag.cs
type RawInputDeviceFlags (line 8) | [Flags]
FILE: DsCore/RawInput/User32/RawInputDeviceInfo.cs
type RawInputDeviceInfo (line 8) | [StructLayout(LayoutKind.Explicit)]
method ToString (line 37) | public override string ToString()
type RawInputMouseInfo (line 59) | [StructLayout(LayoutKind.Sequential)]
type RawInputKeyboardInfo (line 84) | [StructLayout(LayoutKind.Sequential)]
type RawInputHidInfo (line 116) | [StructLayout(LayoutKind.Sequential)]
FILE: DsCore/RawInput/User32/RawInputDeviceList.cs
type RawInputDeviceList (line 9) | [StructLayout(LayoutKind.Sequential)]
FILE: DsCore/RawInput/User32/RawInputDeviceType.cs
type RawInputDeviceType (line 7) | public enum RawInputDeviceType
FILE: DsCore/RawInput/User32/RawInputHeader.cs
type RawInputHeader (line 9) | [StructLayout(LayoutKind.Sequential)]
method ToString (line 29) | public override string ToString()
FILE: DsCore/RawInput/User32/RawInputUiCommand.cs
type RawInputUiCommand (line 7) | public enum RawInputUiCommand : uint
FILE: DsCore/Win32/CopyDataStruct.cs
class CopyDataStruct (line 6) | [StructLayout(LayoutKind.Sequential)]
FILE: DsCore/Win32/FileMapAccessType.cs
type FileMapAccessType (line 7) | [Flags]
FILE: DsCore/Win32/HardwareScanCode.cs
type HardwareScanCode (line 4) | public enum HardwareScanCode : byte
FILE: DsCore/Win32/Input.cs
type INPUT (line 10) | [StructLayout(LayoutKind.Explicit)]
type InputType (line 26) | public enum InputType : int
type MOUSEINPUT (line 37) | [StructLayout(LayoutKind.Sequential)]
type KEYBDINPUT (line 52) | [StructLayout(LayoutKind.Sequential)]
type HARDWAREINPUT (line 66) | [StructLayout(LayoutKind.Sequential)]
type KeybdInputFlags (line 74) | [Flags]
FILE: DsCore/Win32/KbdLlHookStruct.cs
type KBDLLHOOKSTRUCT (line 9) | [StructLayout(LayoutKind.Sequential)]
method ToString (line 33) | public override string ToString()
FILE: DsCore/Win32/MemoryAllocType.cs
type MemoryAllocType (line 5) | [Flags]
FILE: DsCore/Win32/MemoryFreeType.cs
type MemoryFreeType (line 5) | [Flags]
FILE: DsCore/Win32/MemoryPageProtect.cs
type MemoryPageProtect (line 5) | [Flags]
FILE: DsCore/Win32/MsLlHookStruct.cs
type MSLLHOOKSTRUCT (line 9) | [StructLayout(LayoutKind.Sequential)]
FILE: DsCore/Win32/PageProtection.cs
type PageProtection (line 5) | [Flags]
FILE: DsCore/Win32/Point.cs
type POINT (line 9) | [StructLayout(LayoutKind.Sequential)]
method POINT (line 15) | public POINT(int x, int y)
FILE: DsCore/Win32/QueryUserNotificationState.cs
type QUERY_USER_NOTIFICATION_STATE (line 7) | public enum QUERY_USER_NOTIFICATION_STATE
FILE: DsCore/Win32/Rect.cs
type Rect (line 10) | public struct Rect
FILE: DsCore/Win32/SystemMetricsIndex.cs
type SystemMetricsIndex (line 11) | public enum SystemMetricsIndex : int
FILE: DsCore/Win32/VirtualKeyCode.cs
type VirtualKeyCode (line 4) | public enum VirtualKeyCode : byte
FILE: DsCore/Win32/VirtualKeyMapType.cs
type VirtualKeyMapType (line 7) | public enum VirtualKeyMapType
FILE: DsCore/Win32/Win32Api.cs
class Win32API (line 8) | public static class Win32API
method HidD_GetManufacturerString (line 12) | [DllImport("hid", CharSet = CharSet.Unicode)]
method HidD_GetProductString (line 16) | [DllImport("hid", CharSet = CharSet.Unicode)]
method HidP_GetCaps (line 20) | [DllImport("hid.dll", SetLastError = true)]
method HidP_GetButtonCaps (line 23) | [DllImport("hid.dll", SetLastError = true)]
method HidP_GetValueCaps (line 26) | [DllImport("hid.dll", CharSet = CharSet.Auto)]
method HidP_GetUsages (line 29) | [DllImport("hid")]
method HidP_GetUsageValue (line 32) | [DllImport("hid")]
method HidP_GetScaledUsageValue (line 36) | [DllImport("hid")]
method GetDC (line 45) | [DllImport("user32.dll", SetLastError = true)]
method InvalidateRect (line 48) | [DllImport("user32.dll", SetLastError = true)]
method ReleaseDC (line 51) | [DllImport("user32.dll", SetLastError = true)]
method GetRawInputData (line 58) | [DllImport("user32.dll", SetLastError = true)]
method GetRawInputData (line 61) | [DllImport("user32.dll", SetLastError = true)]
method GetRawInputData (line 64) | [DllImport("User32.dll", SetLastError = true)]
method GetRawInputDeviceInfo (line 67) | [DllImport("user32.dll", SetLastError = true)]
method GetRawInputDeviceInfo (line 70) | [DllImport("user32", SetLastError = true)]
method GetRawInputDeviceList (line 73) | [DllImport("User32.dll", SetLastError = true)]
method RegisterRawInputDevices (line 76) | [DllImport("User32.dll", SetLastError = true)]
method CallNextHookEx (line 83) | [DllImport("user32.dll", SetLastError = true)]
method GetModuleHandle (line 86) | [DllImport("kernel32.dll", SetLastError = true)]
method GetWindowThreadProcessId (line 89) | [DllImport("user32.dll", SetLastError = true)]
method MapVirtualKeyEx (line 93) | [DllImport("user32.dll", SetLastError = true)]
method MapVirtualKey (line 96) | [DllImport("user32.dll", SetLastError = true)]
method SetWindowsHookEx (line 99) | [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
method UnhookWindowsHookEx (line 103) | [DllImport("user32.dll", SetLastError = true)]
method CreateWindowEx (line 111) | [DllImport("user32.dll", SetLastError = true, EntryPoint = "CreateWind...
method DefWindowProc (line 128) | [DllImport("user32.dll")]
method EnableWindow (line 131) | [DllImport("user32.dll")]
method EnumThreadWindows (line 134) | [DllImport("user32.dll")]
method FindWindowEx (line 138) | [DllImport("user32.dll", SetLastError = true)]
method GetClassName (line 141) | [DllImport("user32.dll", SetLastError = true)]
method GetClientRect (line 144) | [DllImport("user32.dll", SetLastError = true)]
method GetCursorPos (line 147) | [DllImport("user32.dll")]
method GetDesktopWindow (line 150) | [DllImport("user32.dll", SetLastError = true)]
method GetDeviceCaps (line 153) | [DllImport("gdi32.dll")]
method GetForegroundWindow (line 156) | [DllImport("user32.dll", SetLastError = true)]
method GetLastError (line 159) | [DllImport("kernel32.dll")]
method GetSystemMetrics (line 162) | [DllImport("user32.dll")]
method GetWindowRect (line 165) | [DllImport("user32.dll", SetLastError = true)]
method GetWindowText (line 168) | [DllImport("user32.dll", SetLastError = true)]
method GetWindowTextLength (line 171) | [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
method GetWindowThreadProcessId (line 174) | [DllImport("user32.dll", SetLastError = true)]
method IsWindowVisible (line 177) | [DllImport("user32.dll")]
method LoadCursor (line 181) | [DllImport("user32.dll")]
method RegisterClassEx (line 184) | [DllImport("user32.dll", SetLastError = true, EntryPoint = "RegisterCl...
method ScreenToClient (line 187) | [DllImport("user32.dll")]
method SetCapture (line 190) | [DllImport("user32.dll")]
method UpdateWindow (line 193) | [DllImport("user32.dll")]
method SHQueryUserNotificationState (line 196) | [DllImport("shell32.dll")]
method RegisterWindowMessage (line 203) | [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
method PostMessage (line 206) | [return: MarshalAs(UnmanagedType.Bool)]
method SendMessage (line 210) | [DllImport("user32.dll", CharSet = CharSet.Auto)]
method keybd_event (line 217) | [DllImport("user32.dll", SetLastError = true)]
method SendInput (line 221) | [DllImport("user32.dll", SetLastError = true)]
method ShowCursor (line 224) | [DllImport("user32.dll")]
method GetKeyState (line 227) | [DllImport("USER32.dll")]
method CreateFile (line 236) | [DllImport("kernel32", SetLastError = true, CharSet = CharSet.Unicode)]
method CloseHandle (line 239) | [DllImport("kernel32", SetLastError = true)]
method WriteFile (line 242) | [DllImport("kernel32.dll", CharSet = CharSet.Ansi)]
type DesiredAccess (line 246) | [Flags]
type ShareMode (line 254) | [Flags]
type CreateDisposition (line 263) | public enum CreateDisposition : uint
method OpenProcess (line 276) | [DllImport("kernel32.dll")]
method ReadProcessMemory (line 279) | [DllImport("kernel32.dll", SetLastError = true)]
method ReadProcessMemoryX64 (line 282) | [DllImport("kernel32.dll", SetLastError = true, EntryPoint = "ReadProc...
method VirtualAllocEx (line 286) | [DllImport("kernel32.dll")]
method VirtualFreeEx (line 289) | [DllImport("kernel32.dll")]
method WriteProcessMemory (line 292) | [DllImport("kernel32.dll", SetLastError = true)]
method WriteProcessMemoryX64 (line 295) | [DllImport("kernel32.dll", SetLastError = true, EntryPoint = "WritePro...
method CreateFileMapping (line 303) | [DllImport("Kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
method OpenFileMapping (line 306) | [DllImport("Kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
method MapViewOfFile (line 309) | [DllImport("Kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
method UnmapViewOfFile (line 312) | [DllImport("Kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
method QueryFullProcessImageName (line 317) | [DllImport("kernel32.dll", SetLastError = true)]
method LoadLibrary (line 320) | [DllImport("kernel32", SetLastError = true, CharSet = CharSet.Ansi)]
method GetProcAddress (line 323) | [DllImport("kernel32", CharSet = CharSet.Ansi, ExactSpelling = true, S...
method MM_BeginPeriod (line 330) | [DllImport("winmm.dll", EntryPoint = "timeBeginPeriod")]
method MM_EndPeriod (line 333) | [DllImport("winmm.dll", EntryPoint = "timeEndPeriod")]
FILE: DsCore/Win32/Win32Define.cs
class Win32Define (line 7) | public static class Win32Define
FILE: DsCore/Win32/WndClassEx.cs
type WNDCLASSEX (line 6) | [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
FILE: DsCore/XInput/XInputBatteryInformation.cs
type XInputBatteryInformation (line 8) | [StructLayout(LayoutKind.Explicit)]
type BatteryTypes (line 28) | public enum BatteryTypes : byte
type BatteryLevel (line 46) | public enum BatteryLevel : byte
FILE: DsCore/XInput/XInputCapabilities.cs
type XInputCapabilities (line 9) | [StructLayout(LayoutKind.Explicit)]
type XInputCapabilitiesType (line 44) | public enum XInputCapabilitiesType : byte
type CapabilityFlags (line 51) | public enum CapabilityFlags : short
FILE: DsCore/XInput/XInputDeviceSubtype.cs
type XInputDeviceSubtype (line 5) | [Flags]
FILE: DsCore/XInput/XInputGamepad.cs
type XInputGamepad (line 8) | [StructLayout(LayoutKind.Explicit)]
FILE: DsCore/XInput/XInputHandler.cs
class XInputHandler (line 10) | public class XInputHandler
method XInputGetCapabilities (line 48) | [DllImport("xinput9_1_0.dll")]
method XInputGetState (line 63) | [DllImport("xinput9_1_0.dll")]
method XInputSetState (line 76) | [DllImport("xinput9_1_0.dll")]
FILE: DsCore/XInput/XInputState.cs
type XInputState (line 8) | [StructLayout(LayoutKind.Explicit)]
FILE: DsCore/XInput/XInputVibration.cs
type XInputVibration (line 10) | [StructLayout(LayoutKind.Sequential)]
FILE: DsCore/XInput/XinputButtonFlags.cs
type XinputButtonFlags (line 5) | [Flags]
FILE: DsCore/XOutput/XOutput.cs
class XOutput (line 12) | public class XOutput
type SP_DEVICE_INTERFACE_DATA (line 16) | [StructLayout(LayoutKind.Sequential)]
type MessageType (line 25) | public enum MessageType
method CreateFile (line 60) | [DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Unic...
method DeviceIoControl (line 63) | [DllImport("kernel32.dll", SetLastError = true)]
method SetupDiDestroyDeviceInfoList (line 67) | [DllImport("setupapi.dll", SetLastError = true)]
method SetupDiEnumDeviceInterfaces (line 70) | [DllImport("setupapi.dll", SetLastError = true)]
method SetupDiGetClassDevs (line 74) | [DllImport("setupapi.dll", SetLastError = true, CharSet = CharSet.Auto)]
method SetupDiGetDeviceInterfaceDetail (line 77) | [DllImport("setupapi.dll", SetLastError = true, CharSet = CharSet.Auto)]
class Gamepad_state (line 83) | private class Gamepad_state
method Gamepad_state (line 92) | public Gamepad_state()
method XOutput (line 108) | public XOutput()
method isVBusExists (line 120) | public bool isVBusExists()
method PlugIn (line 140) | public bool PlugIn(int UserIndex)
method Unplug (line 182) | public bool Unplug(int UserIndex, bool Force = false)
method UnplugAll (line 190) | public bool UnplugAll(bool Force = false)
method GetLedNumber (line 201) | public bool GetLedNumber(int UserIndex, byte[] Led)
method SetDPad_Up (line 209) | public bool SetDPad_Up(int UserIndex)
method SetDPad_Down (line 220) | public bool SetDPad_Down(int UserIndex)
method SetDPad_Left (line 231) | public bool SetDPad_Left(int UserIndex)
method SetDPad_Right (line 242) | public bool SetDPad_Right(int UserIndex)
method SetDPad_Off (line 253) | public bool SetDPad_Off(int UserIndex)
method SetButton_Start (line 267) | public bool SetButton_Start(int UserIndex, bool Pressed)
method SetButton_Back (line 282) | public bool SetButton_Back(int UserIndex, bool Pressed)
method SetButton_L3 (line 297) | public bool SetButton_L3(int UserIndex, bool Pressed)
method SetButton_R3 (line 312) | public bool SetButton_R3(int UserIndex, bool Pressed)
method SetButton_L1 (line 327) | public bool SetButton_L1(int UserIndex, bool Pressed)
method SetButton_R1 (line 342) | public bool SetButton_R1(int UserIndex, bool Pressed)
method SetButton_A (line 357) | public bool SetButton_A(int UserIndex, bool Pressed)
method SetButton_B (line 372) | public bool SetButton_B(int UserIndex, bool Pressed)
method SetButton_X (line 387) | public bool SetButton_X(int UserIndex, bool Pressed)
method SetButton_Y (line 402) | pu
Condensed preview — 622 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (5,063K chars).
[
{
"path": ".editorconfig",
"chars": 9782,
"preview": "# Supprimer la ligne ci-dessous si vous voulez hériter les paramètres .editorconfig des répertoires supérieurs\nroot = tr"
},
{
"path": ".gitignore",
"chars": 12143,
"preview": "# Created by https://www.gitignore.io/api/visualstudio\r\n\r\n### VisualStudio ###\r\n## Ignore Visual Studio temporary files,"
},
{
"path": "DemulShooter/DemulShooter.csproj",
"chars": 10808,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"12.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.micro"
},
{
"path": "DemulShooter/DemulShooterWindow.cs",
"chars": 67606,
"preview": "using System;\r\nusing System.Diagnostics;\r\nusing System.Globalization;\r\nusing System.Runtime.InteropServices;\r\nusing Sys"
},
{
"path": "DemulShooter/Ds.settings",
"chars": 542,
"preview": "<?xml version='1.0' encoding='utf-8'?>\r\n<SettingsFile xmlns=\"http://schemas.microsoft.com/VisualStudio/2004/01/settings"
},
{
"path": "DemulShooter/Game_WndSpray.cs",
"chars": 12854,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Runtime.InteropServices;\nusing S"
},
{
"path": "DemulShooter/Games/Game.cs",
"chars": 46677,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Globalization;\r\nusing System."
},
{
"path": "DemulShooter/Games/Game_ArcadePcWaterSprite2.cs",
"chars": 6161,
"preview": "using System;\nusing System.Collections.Generic;\nusing DsCore;\nusing DsCore.Config;\nusing DsCore.IPC;\nusing DsCore.MameO"
},
{
"path": "DemulShooter/Games/Game_ArcadepcFireHero.cs",
"chars": 11757,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.IO;\nusing System.Management.Inst"
},
{
"path": "DemulShooter/Games/Game_ArcadepcGhostBusters.cs",
"chars": 12924,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Windows.Forms;\nusing DsCore;\nusi"
},
{
"path": "DemulShooter/Games/Game_ArcadepcHsfr.cs",
"chars": 32146,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Windows.Forms;\nusing DsCore;\nusi"
},
{
"path": "DemulShooter/Games/Game_ArcadepcMechaTornado.cs",
"chars": 11697,
"preview": "using System;\nusing System.Collections.Generic;\nusing DsCore;\nusing DsCore.Config;\nusing DsCore.IPC;\nusing DsCore.MameO"
},
{
"path": "DemulShooter/Games/Game_ArcadepcPvzLastStand.cs",
"chars": 14550,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Linq;\nusing System.Runtime.Inter"
},
{
"path": "DemulShooter/Games/Game_ArcadepcRobinHood.cs",
"chars": 9019,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Windows.Forms;\nusing DsCore;\nusi"
},
{
"path": "DemulShooter/Games/Game_ArcadepcTopGun.cs",
"chars": 4400,
"preview": "using System;\nusing System.Collections.Generic;\nusing DemulShooter.Games;\nusing DsCore;\nusing DsCore.Config;\nusing DsCo"
},
{
"path": "DemulShooter/Games/Game_ArcadepcWaterWar2.cs",
"chars": 4926,
"preview": "using System;\nusing System.Collections.Generic;\nusing DsCore;\nusing DsCore.Config;\nusing DsCore.IPC;\nusing DsCore.MameO"
},
{
"path": "DemulShooter/Games/Game_ArcadepcWws.cs",
"chars": 6636,
"preview": "using System;\nusing System.Collections.Generic;\nusing DsCore;\nusing DsCore.Config;\nusing DsCore.IPC;\nusing DsCore.MameO"
},
{
"path": "DemulShooter/Games/Game_CxbxGsquad.cs",
"chars": 20972,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Runtime.InteropServices;\nusing S"
},
{
"path": "DemulShooter/Games/Game_CxbxHod3.cs",
"chars": 19645,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Runtime.InteropServices;\nusing S"
},
{
"path": "DemulShooter/Games/Game_CxbxVcop3.cs",
"chars": 20559,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Runtime.InteropServices;\r\nusi"
},
{
"path": "DemulShooter/Games/Game_CxbxVcop3_Old.cs",
"chars": 19922,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Windows.Forms;\nusing DsCore;\nusi"
},
{
"path": "DemulShooter/Games/Game_Demul.cs",
"chars": 16094,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Globalization;\r\nusing System."
},
{
"path": "DemulShooter/Games/Game_DemulAtomiswave.cs",
"chars": 23308,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooter/Games/Game_DemulHikaru.cs",
"chars": 10311,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing DsCore;\r\nusing DsCore.Config;\r\nusing DsCore.MameOutput;\r\nusing "
},
{
"path": "DemulShooter/Games/Game_DemulJvs.cs",
"chars": 24102,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing DsCore;\r\nusing DsCore.Config;\r\nusing DsCore.MameOutput;\r\nusing "
},
{
"path": "DemulShooter/Games/Game_DemulManicpnc.cs",
"chars": 19636,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooter/Games/Game_DemulNaomi.cs",
"chars": 31740,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing DsCore;\r\nusing DsCore.Config;\r\nusing DsCore.MameOutput;\r\nusing "
},
{
"path": "DemulShooter/Games/Game_Dolphin4.cs",
"chars": 16980,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooter/Games/Game_Dolphin5.cs",
"chars": 14170,
"preview": "using System;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;\r\nusing DsCore.Config;\r\nusing DsCor"
},
{
"path": "DemulShooter/Games/Game_Es4PointBlankX.cs",
"chars": 5690,
"preview": "using System;\nusing System.Collections.Generic;\nusing DsCore;\nusing DsCore.Config;\nusing DsCore.IPC;\nusing DsCore.MameO"
},
{
"path": "DemulShooter/Games/Game_GameWaxAkuma.cs",
"chars": 19058,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Windows.Forms;\nusing DsCore;\nusi"
},
{
"path": "DemulShooter/Games/Game_GvrAliens.cs",
"chars": 20578,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooter/Games/Game_GvrAliensHasp.cs",
"chars": 10072,
"preview": "using System;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;\r\nusing DsCore.Config;\r\nusing DsCor"
},
{
"path": "DemulShooter/Games/Game_GvrFarCry.cs",
"chars": 21275,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Windows.Forms;\nusing DsCore;\nusi"
},
{
"path": "DemulShooter/Games/Game_GvrFearLand.cs",
"chars": 26083,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooter/Games/Game_KonamiCastlevania.cs",
"chars": 24839,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Runtime.InteropServices;\nusing S"
},
{
"path": "DemulShooter/Games/Game_KonamiCoopers9.cs",
"chars": 9831,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Windows.Forms;\nusing DsCore;\nusi"
},
{
"path": "DemulShooter/Games/Game_KonamiGashaaaan2.cs",
"chars": 11643,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Windows.Forms;\nusing DsCore;\nusi"
},
{
"path": "DemulShooter/Games/Game_KonamiLethalEnforcer3.cs",
"chars": 28812,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Runtime.InteropServices;\nusing S"
},
{
"path": "DemulShooter/Games/Game_KonamiWartran.cs",
"chars": 12828,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooter/Games/Game_Lindbergh2spicy.cs",
"chars": 18376,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Linq;\r\nusing System.Runtime.I"
},
{
"path": "DemulShooter/Games/Game_LindberghGsquadEvo.cs",
"chars": 20589,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Linq;\nusing System.Windows.Forms"
},
{
"path": "DemulShooter/Games/Game_LindberghHotd4.cs",
"chars": 25114,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Linq;\nusing System.Windows.Forms"
},
{
"path": "DemulShooter/Games/Game_LindberghHotd4Ex.cs",
"chars": 10019,
"preview": "using System.Windows.Forms;\nusing DsCore;\nusing DsCore.Config;\nusing DsCore.MameOutput;\nusing DsCore.Memory;\nusing DsCo"
},
{
"path": "DemulShooter/Games/Game_LindberghHotd4Sp.cs",
"chars": 22172,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Linq;\nusing System.Windows.Forms"
},
{
"path": "DemulShooter/Games/Game_LindberghHotdEx.cs",
"chars": 19551,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Linq;\nusing System.Windows.Forms"
},
{
"path": "DemulShooter/Games/Game_LindberghLgj.cs",
"chars": 21742,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Linq;\r\nusing System.Windows.F"
},
{
"path": "DemulShooter/Games/Game_LindberghLgjsp.cs",
"chars": 20501,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Linq;\r\nusing System.Windows.F"
},
{
"path": "DemulShooter/Games/Game_LindberghRambo.cs",
"chars": 22409,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Linq;\r\nusing System.Windows.F"
},
{
"path": "DemulShooter/Games/Game_Model2Bel.cs",
"chars": 13905,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooter/Games/Game_Model2Gunblade.cs",
"chars": 13932,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooter/Games/Game_Model2Hotd.cs",
"chars": 15848,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooter/Games/Game_Model2Rchase2.cs",
"chars": 12663,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooter/Games/Game_Model2Vcop.cs",
"chars": 18395,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooter/Games/Game_Model2Vcop2.cs",
"chars": 16748,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooter/Games/Game_PpmPoliceTrainer2.cs",
"chars": 14371,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Windows.Forms;\nusing DsCore;\nusi"
},
{
"path": "DemulShooter/Games/Game_Re2Transformers2.cs",
"chars": 37834,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Runtime.InteropServices;\nusing S"
},
{
"path": "DemulShooter/Games/Game_RtAliensArmageddon.cs",
"chars": 16071,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooter/Games/Game_RtJurassicPark.cs",
"chars": 27468,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Windows.Forms;\nusing DsCore;\nusi"
},
{
"path": "DemulShooter/Games/Game_RtTargetTerror.cs",
"chars": 14570,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Windows.Forms;\nusing DsCore;\nusi"
},
{
"path": "DemulShooter/Games/Game_RtTerminatorSalvation.cs",
"chars": 17306,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooter/Games/Game_RtWalkingDead.cs",
"chars": 17226,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Windows.Forms;\nusing DsCore;\nusi"
},
{
"path": "DemulShooter/Games/Game_RwGunman.cs",
"chars": 22779,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Windows.Forms;\nusing DsCore;\nusi"
},
{
"path": "DemulShooter/Games/Game_RwLGI.cs",
"chars": 24744,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooter/Games/Game_RwLGI3D.cs",
"chars": 26580,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooter/Games/Game_RwOpGhost.cs",
"chars": 41260,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Runtime.InteropServices;\r\nusi"
},
{
"path": "DemulShooter/Games/Game_RwSDR.cs",
"chars": 17386,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooter/Games/Game_RwSGG.cs",
"chars": 27320,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooter/Games/Game_RwTargetBravo.cs",
"chars": 35094,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Drawing;\nusing System.Runtime.In"
},
{
"path": "DemulShooter/Games/Game_RwTransformers.cs",
"chars": 23807,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooter/Games/Game_TtxBlockKingBallShooter.cs",
"chars": 12662,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooter/Games/Game_TtxEadp.cs",
"chars": 22792,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooter/Games/Game_TtxGaiaAttack4.cs",
"chars": 32647,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooter/Games/Game_TtxGundam.cs",
"chars": 51784,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Runtime.InteropServices;\r\nusi"
},
{
"path": "DemulShooter/Games/Game_TtxGundam_V2.cs",
"chars": 50125,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Runtime.InteropServices;\nusing S"
},
{
"path": "DemulShooter/Games/Game_TtxGungun2.cs",
"chars": 12887,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooter/Games/Game_TtxHauntedMuseum.cs",
"chars": 26447,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooter/Games/Game_TtxHauntedMuseum2.cs",
"chars": 27268,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooter/Games/Game_TtxSha.cs",
"chars": 19034,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooter/Games/Game_WndAdCop95.cs",
"chars": 18513,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Runtime.InteropServices;\nusing S"
},
{
"path": "DemulShooter/Games/Game_WndAdCopOverseas.cs",
"chars": 18523,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Runtime.InteropServices;\nusing S"
},
{
"path": "DemulShooter/Games/Game_WndAlienSafari.cs",
"chars": 23095,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Windows.Forms;\nusing DsCore;\nusi"
},
{
"path": "DemulShooter/Games/Game_WndArtIsDead.cs",
"chars": 10648,
"preview": "using System;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;\r\nusing DsCore.Config;\r\nusing DsCor"
},
{
"path": "DemulShooter/Games/Game_WndBE.cs",
"chars": 20501,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Text;\r\nusing System.Windows.F"
},
{
"path": "DemulShooter/Games/Game_WndBlueEstate.cs",
"chars": 33886,
"preview": "using System;\nusing System.Diagnostics;\nusing System.Text;\nusing System.Windows.Forms;\nusing DsCore;\nusing DsCore.Confi"
},
{
"path": "DemulShooter/Games/Game_WndBonbon95.cs",
"chars": 21510,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Runtime.InteropServices;\nusing S"
},
{
"path": "DemulShooter/Games/Game_WndBugBusters.cs",
"chars": 21842,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Runtime.InteropServices;\nusing S"
},
{
"path": "DemulShooter/Games/Game_WndColtWildWestShootout.cs",
"chars": 12444,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Windows.Forms;\nusing DsCore;\nusi"
},
{
"path": "DemulShooter/Games/Game_WndFriction.cs",
"chars": 43962,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooter/Games/Game_WndHeavyFire3Pc.cs",
"chars": 42548,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Runtime.InteropServices;\r\nusi"
},
{
"path": "DemulShooter/Games/Game_WndHeavyFire4Pc.cs",
"chars": 44961,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Runtime.InteropServices;\r\nusi"
},
{
"path": "DemulShooter/Games/Game_WndHod2pc.cs",
"chars": 17259,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Media;\r\nusing System.Runtime."
},
{
"path": "DemulShooter/Games/Game_WndHod3pc.cs",
"chars": 20280,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooter/Games/Game_WndHotdoPc.cs",
"chars": 10396,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Runtime.InteropServices;\r\nusi"
},
{
"path": "DemulShooter/Games/Game_WndMadBullets.cs",
"chars": 8156,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Windows.Forms;\nusing DsCore;\nusi"
},
{
"path": "DemulShooter/Games/Game_WndProjectGreenBeat.cs",
"chars": 10850,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooter/Games/Game_WndReload.cs",
"chars": 42217,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooter/Games/Game__Unity.cs",
"chars": 6851,
"preview": "using System;\nusing System.Diagnostics;\nusing System.Windows.Forms;\nusing DsCore;\nusing DsCore.Config;\nusing DsCore.IPC"
},
{
"path": "DemulShooter/Program.cs",
"chars": 24609,
"preview": "using System;\r\nusing System.Runtime.InteropServices;\r\nusing System.Windows.Forms;\r\nusing System.Globalization;\r\nusing S"
},
{
"path": "DemulShooter/Properties/AssemblyInfo.cs",
"chars": 1487,
"preview": "using System.Reflection;\r\nusing System.Runtime.CompilerServices;\r\nusing System.Runtime.InteropServices;\r\n\r\n// Les infor"
},
{
"path": "DemulShooter/Properties/Resources.Designer.cs",
"chars": 5773,
"preview": "//------------------------------------------------------------------------------\r\n// <auto-generated>\r\n// Ce code a"
},
{
"path": "DemulShooter/Properties/Resources.resx",
"chars": 7401,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<root>\r\n <!-- \r\n Microsoft ResX Schema \r\n \r\n Version 2.0\r\n \r\n T"
},
{
"path": "DemulShooter/Properties/Settings.Designer.cs",
"chars": 1857,
"preview": "//------------------------------------------------------------------------------\r\n// <auto-generated>\r\n// Ce code a"
},
{
"path": "DemulShooter/Properties/Settings.settings",
"chars": 560,
"preview": "<?xml version='1.0' encoding='utf-8'?>\r\n<SettingsFile xmlns=\"http://schemas.microsoft.com/VisualStudio/2004/01/settings"
},
{
"path": "DemulShooter/Resources/x360kb_hfirea1p.ini",
"chars": 246,
"preview": "[Options]\r\nUseInitBeep=0\r\nLog=0\r\nBackgroundMode=0\r\nPadCount=0\r\n\r\n[PAD1]\r\nA=T\r\nB=U\r\nLeft Trigger=Y\r\nRight Trigger=T\r\nD-Pa"
},
{
"path": "DemulShooter/Resources/x360kb_hfirea2p.ini",
"chars": 246,
"preview": "[Options]\r\nUseInitBeep=0\r\nLog=0\r\nBackgroundMode=0\r\nPadCount=1\r\n\r\n[PAD1]\r\nA=T\r\nB=U\r\nLeft Trigger=Y\r\nRight Trigger=T\r\nD-Pa"
},
{
"path": "DemulShooter/app.config",
"chars": 158,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<configuration>\n<startup><supportedRuntime version=\"v4.0\" sku=\".NETFramework,Vers"
},
{
"path": "DemulShooter.sln",
"chars": 6651,
"preview": "\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio Version 17\r\nVisualStudioVersion = 17.10."
},
{
"path": "DemulShooterX64/DemulShooterWindowX64.cs",
"chars": 50703,
"preview": "using System;\r\nusing System.Diagnostics;\r\nusing System.Globalization;\r\nusing System.Runtime.InteropServices;\r\nusing Sys"
},
{
"path": "DemulShooterX64/DemulShooterX64.csproj",
"chars": 7226,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"12.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.micro"
},
{
"path": "DemulShooterX64/Games/Game.cs",
"chars": 45667,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Globalization;\r\nusing System."
},
{
"path": "DemulShooterX64/Games/Game_AllsHodSd.cs",
"chars": 32509,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooterX64/Games/Game_ArcadePcMechaDino.cs",
"chars": 10836,
"preview": "using System;\nusing System.Collections.Generic;\nusing DsCore;\nusing DsCore.Config;\nusing DsCore.IPC;\nusing DsCore.MameO"
},
{
"path": "DemulShooterX64/Games/Game_ArcadePcMissionImpossible.cs",
"chars": 8228,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\nusi"
},
{
"path": "DemulShooterX64/Games/Game_ArcadepcBullseye.cs",
"chars": 5109,
"preview": "using System;\nusing System.Collections.Generic;\nusing DsCore;\nusing DsCore.Config;\nusing DsCore.IPC;\nusing DsCore.MameO"
},
{
"path": "DemulShooterX64/Games/Game_ArcadepcDinoInvasion.cs",
"chars": 8059,
"preview": "using System;\nusing System.Collections.Generic;\nusing DsCore;\nusing DsCore.Config;\nusing DsCore.IPC;\nusing DsCore.MameO"
},
{
"path": "DemulShooterX64/Games/Game_ArcadepcDrakon.cs",
"chars": 5791,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Text.RegularExpressi"
},
{
"path": "DemulShooterX64/Games/Game_ArcadepcDrakon_NoPlugin.cs",
"chars": 30946,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Runtime.InteropServices;\nusing S"
},
{
"path": "DemulShooterX64/Games/Game_ArcadepcElevatorActionInvasion.cs",
"chars": 26793,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Runtime.InteropServices;\nusing S"
},
{
"path": "DemulShooterX64/Games/Game_ArcadepcMIB.cs",
"chars": 6936,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\nusi"
},
{
"path": "DemulShooterX64/Games/Game_ArcadepcMarsSortie.cs",
"chars": 7686,
"preview": "using System;\nusing System.Collections.Generic;\nusing DsCore;\nusing DsCore.Config;\nusing DsCore.IPC;\nusing DsCore.MameO"
},
{
"path": "DemulShooterX64/Games/Game_ArcadepcNightHunterArcade.cs",
"chars": 8692,
"preview": "using System;\nusing System.Collections.Generic;\nusing DsCore;\nusing DsCore.Config;\nusing DsCore.IPC;\nusing DsCore.MameO"
},
{
"path": "DemulShooterX64/Games/Game_ArcadepcOnePoint.cs",
"chars": 5098,
"preview": "using System;\nusing System.Collections.Generic;\nusing DemulShooterX64.Games;\nusing DsCore;\nusing DsCore.Config;\nusing D"
},
{
"path": "DemulShooterX64/Games/Game_ArcadepcRaccoonRampage.cs",
"chars": 37376,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Runtime.InteropServices;\nusing S"
},
{
"path": "DemulShooterX64/Games/Game_ArcadepcRha.cs",
"chars": 7908,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\nusi"
},
{
"path": "DemulShooterX64/Games/Game_ArcadepcSkullOfShadow.cs",
"chars": 9849,
"preview": "using System;\nusing System.Collections.Generic;\nusing DsCore;\nusing DsCore.Config;\nusing DsCore.IPC;\nusing DsCore.MameO"
},
{
"path": "DemulShooterX64/Games/Game_ArcadepcTopGun2.cs",
"chars": 6086,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\nusi"
},
{
"path": "DemulShooterX64/Games/Game_ArcadepcTra.cs",
"chars": 9937,
"preview": "using System;\nusing System.Collections.Generic;\nusing DsCore;\nusing DsCore.Config;\nusing DsCore.IPC;\nusing DsCore.MameO"
},
{
"path": "DemulShooterX64/Games/Game_ArcadepcWisdomZombies.cs",
"chars": 10510,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\nusi"
},
{
"path": "DemulShooterX64/Games/Game_Es3Lla.cs",
"chars": 9719,
"preview": "using System;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;\r\nusing DsCore.Config;\r\nusing DsCor"
},
{
"path": "DemulShooterX64/Games/Game_Es3Tc5.cs",
"chars": 39633,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooterX64/Games/Game_Flycast.cs",
"chars": 4887,
"preview": "using System;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;\r\n\r\nnamespace DemulShooterX64\r\n{\r\n "
},
{
"path": "DemulShooterX64/Games/Game_FlycastAtomiswave.cs",
"chars": 2551,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooterX64/Games/Game_FlycastNaomi.cs",
"chars": 22705,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing DsCore.Config;\r\nusing DsCore.MameOutput;\r\n\r\nnamespace DemulShoo"
},
{
"path": "DemulShooterX64/Games/Game_FlycastNinjaslt.cs",
"chars": 8088,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing DsCore.Config;\r\nusing DsCore.MameOutput;\r\n\r\nnamespace DemulShoo"
},
{
"path": "DemulShooterX64/Games/Game_NuLuigiMansion.cs",
"chars": 14240,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooterX64/Games/Game_NuLuigiMansion_v2.cs",
"chars": 23977,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooterX64/Games/Game_RtNerfArcade.cs",
"chars": 7839,
"preview": "using System;\nusing System.Collections.Generic;\nusing DsCore;\nusing DsCore.Config;\nusing DsCore.IPC;\nusing DsCore.MameO"
},
{
"path": "DemulShooterX64/Games/Game_S357DarkEscape.cs",
"chars": 25370,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.IO;\nusing System.Runtime.Interop"
},
{
"path": "DemulShooterX64/Games/Game_S357DeadStormPirates.cs",
"chars": 22631,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.IO;\nusing System.Runtime.Interop"
},
{
"path": "DemulShooterX64/Games/Game_S357RazingStorm.cs",
"chars": 9409,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Linq;\nusing System.Text;\nusing S"
},
{
"path": "DemulShooterX64/Games/Game_S357SailorZombie.cs",
"chars": 23105,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.IO;\nusing System.Runtime.Interop"
},
{
"path": "DemulShooterX64/Games/Game_WndBhapc.cs",
"chars": 9526,
"preview": "using System;\nusing System.Diagnostics;\nusing System.Windows.Forms;\nusing DsCore;\nusing DsCore.Config;\nusing DsCore.Mem"
},
{
"path": "DemulShooterX64/Games/Game_WndBigBuckHunterUltimate.cs",
"chars": 26864,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Windows.Forms;\nusing DsCore;\nusi"
},
{
"path": "DemulShooterX64/Games/Game_WndBlueEstate.cs",
"chars": 33542,
"preview": "using System;\nusing System.Diagnostics;\nusing System.Windows.Forms;\nusing DsCore;\nusing DsCore.Config;\nusing DsCore.Mem"
},
{
"path": "DemulShooterX64/Games/Game_WndDcop.cs",
"chars": 4361,
"preview": "using System;\nusing System.Collections.Generic;\nusing DsCore;\nusing DsCore.Config;\nusing DsCore.IPC;\nusing DsCore.MameO"
},
{
"path": "DemulShooterX64/Games/Game_WndHotdremakeArcade.cs",
"chars": 13982,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\nusing DsCore;"
},
{
"path": "DemulShooterX64/Games/Game_WndOpWolfReturn.cs",
"chars": 6145,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\nusi"
},
{
"path": "DemulShooterX64/Games/Game__Unity.cs",
"chars": 6862,
"preview": "using System;\nusing System.Diagnostics;\nusing System.Windows.Forms;\nusing DsCore;\nusing DsCore.Config;\nusing DsCore.IPC"
},
{
"path": "DemulShooterX64/Program.cs",
"chars": 15750,
"preview": "using System;\r\nusing System.Windows.Forms;\r\nusing System.Runtime.InteropServices;\r\nusing System.Globalization;\r\nusing S"
},
{
"path": "DemulShooterX64/Properties/AssemblyInfo.cs",
"chars": 1493,
"preview": "using System.Reflection;\r\nusing System.Runtime.CompilerServices;\r\nusing System.Runtime.InteropServices;\r\n\r\n// Les infor"
},
{
"path": "DemulShooterX64/Properties/Resources.Designer.cs",
"chars": 4293,
"preview": "//------------------------------------------------------------------------------\r\n// <auto-generated>\r\n// Ce code a"
},
{
"path": "DemulShooterX64/Properties/Resources.resx",
"chars": 6903,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<root>\r\n <!-- \r\n Microsoft ResX Schema \r\n \r\n Version 2.0\r\n \r\n T"
},
{
"path": "DemulShooterX64/app.config",
"chars": 144,
"preview": "<?xml version=\"1.0\"?>\r\n<configuration>\r\n<startup><supportedRuntime version=\"v4.0\" sku=\".NETFramework,Version=v4.8\"/></st"
},
{
"path": "DemulShooter_GUI/DemulShooter_GUI.csproj",
"chars": 9017,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"12.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.micro"
},
{
"path": "DemulShooter_GUI/GUI_AnalogCalibration.Designer.cs",
"chars": 12165,
"preview": "namespace DemulShooter_GUI\r\n{\r\n partial class GUI_AnalogCalibration\r\n {\r\n /// <summary> \r\n /// Vari"
},
{
"path": "DemulShooter_GUI/GUI_AnalogCalibration.cs",
"chars": 7767,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.ComponentModel;\r\nusing System.Drawing;\r\nusing System.Dat"
},
{
"path": "DemulShooter_GUI/GUI_AnalogCalibration.resx",
"chars": 5815,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<root>\r\n <!-- \r\n Microsoft ResX Schema \r\n \r\n Version 2.0\r\n \r\n T"
},
{
"path": "DemulShooter_GUI/GUI_Button.Designer.cs",
"chars": 3429,
"preview": "namespace DemulShooter_GUI\r\n{\r\n partial class GUI_Button\r\n {\r\n /// <summary> \r\n /// Variable nécess"
},
{
"path": "DemulShooter_GUI/GUI_Button.cs",
"chars": 602,
"preview": "using System.Drawing;\r\nusing System.Windows.Forms;\r\n\r\nnamespace DemulShooter_GUI\r\n{\r\n public partial class GUI_Butto"
},
{
"path": "DemulShooter_GUI/GUI_Button.resx",
"chars": 5815,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<root>\r\n <!-- \r\n Microsoft ResX Schema \r\n \r\n Version 2.0\r\n \r\n T"
},
{
"path": "DemulShooter_GUI/GUI_Player.Designer.cs",
"chars": 4658,
"preview": "namespace DemulShooter_GUI\r\n{\r\n partial class GUI_Player\r\n {\r\n /// <summary> \r\n /// Variable nécess"
},
{
"path": "DemulShooter_GUI/GUI_Player.cs",
"chars": 6295,
"preview": "using System;\r\nusing System.Windows.Forms;\r\nusing DsCore.Config;\r\nusing DsCore.RawInput;\r\nusing DsCore;\r\n\r\nnamespace De"
},
{
"path": "DemulShooter_GUI/GUI_Player.resx",
"chars": 5815,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<root>\r\n <!-- \r\n Microsoft ResX Schema \r\n \r\n Version 2.0\r\n \r\n T"
},
{
"path": "DemulShooter_GUI/GUI_RawInputHID.Designer.cs",
"chars": 13852,
"preview": "namespace DemulShooter_GUI\r\n{\r\n partial class GUI_RawInputHID\r\n {\r\n /// <summary> \r\n /// Variable n"
},
{
"path": "DemulShooter_GUI/GUI_RawInputHID.cs",
"chars": 7826,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Drawing;\r\nusing System.Windows.Forms;\r\nusing DsCore.Conf"
},
{
"path": "DemulShooter_GUI/GUI_RawInputHID.resx",
"chars": 5815,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<root>\r\n <!-- \r\n Microsoft ResX Schema \r\n \r\n Version 2.0\r\n \r\n T"
},
{
"path": "DemulShooter_GUI/GUI_RawInputMouse.Designer.cs",
"chars": 10061,
"preview": "namespace DemulShooter_GUI\r\n{\r\n partial class GUI_RawInputMouse\r\n {\r\n /// <summary> \r\n /// Variable"
},
{
"path": "DemulShooter_GUI/GUI_RawInputMouse.cs",
"chars": 7433,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.Drawing;\r\nusing System.Runtim"
},
{
"path": "DemulShooter_GUI/GUI_RawInputMouse.resx",
"chars": 5815,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<root>\r\n <!-- \r\n Microsoft ResX Schema \r\n \r\n Version 2.0\r\n \r\n T"
},
{
"path": "DemulShooter_GUI/Game_Bhapc - Copy.cs",
"chars": 19197,
"preview": "using System;\r\nusing System.Diagnostics;\r\nusing System.Globalization;\r\nusing System.IO;\r\nusing System.Collections.Gener"
},
{
"path": "DemulShooter_GUI/Program.cs",
"chars": 889,
"preview": "using System;\r\nusing System.Windows.Forms;\r\n\r\nnamespace DemulShooter_GUI\r\n{ \r\n static class Program\r\n {\r\n "
},
{
"path": "DemulShooter_GUI/Properties/AssemblyInfo.cs",
"chars": 1454,
"preview": "using System.Reflection;\r\nusing System.Runtime.CompilerServices;\r\nusing System.Runtime.InteropServices;\r\n\r\n// Les infor"
},
{
"path": "DemulShooter_GUI/Properties/Resources.Designer.cs",
"chars": 6292,
"preview": "//------------------------------------------------------------------------------\r\n// <auto-generated>\r\n// Ce code a"
},
{
"path": "DemulShooter_GUI/Properties/Resources.resx",
"chars": 7171,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<root>\r\n <!-- \r\n Microsoft ResX Schema \r\n \r\n Version 2.0\r\n \r\n T"
},
{
"path": "DemulShooter_GUI/Properties/Settings.Designer.cs",
"chars": 1135,
"preview": "//------------------------------------------------------------------------------\r\n// <auto-generated>\r\n// Ce code a"
},
{
"path": "DemulShooter_GUI/Properties/Settings.settings",
"chars": 247,
"preview": "<?xml version='1.0' encoding='utf-8'?>\r\n<SettingsFile xmlns=\"http://schemas.microsoft.com/VisualStudio/2004/01/settings"
},
{
"path": "DemulShooter_GUI/Resources/WiimoteNew_v4.ini",
"chars": 1413,
"preview": "[Wiimote1]\r\nDevice = DInput/0/Keyboard Mouse\r\nButtons/A = `Click 2`\r\nButtons/B = `Click 0`\r\nButtons/1 = 1\r\nButtons/2 = 2"
},
{
"path": "DemulShooter_GUI/Resources/WiimoteNew_v5.ini",
"chars": 1104,
"preview": "[Wiimote1]\r\nDevice = DInput/0/Keyboard Mouse\r\nButtons/A = `Click 2`\r\nButtons/B = `Click 0`\r\nButtons/1 = `1`\r\nButtons/2 ="
},
{
"path": "DemulShooter_GUI/Wnd_DemulShooterGui.Designer.cs",
"chars": 175952,
"preview": "namespace DemulShooter_GUI\r\n{\r\n partial class Wnd_DemulShooterGui\r\n {\r\n /// <summary>\r\n /// Variabl"
},
{
"path": "DemulShooter_GUI/Wnd_DemulShooterGui.cs",
"chars": 74857,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Diagnostics;\r\nusing System.IO;\r\nusing System.Runtime.Int"
},
{
"path": "DemulShooter_GUI/Wnd_DemulShooterGui.resx",
"chars": 172064,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<root>\r\n <!-- \r\n Microsoft ResX Schema \r\n \r\n Version 2.0\r\n \r\n T"
},
{
"path": "DemulShooter_GUI/app.config",
"chars": 144,
"preview": "<?xml version=\"1.0\"?>\r\n<configuration>\r\n<startup><supportedRuntime version=\"v4.0\" sku=\".NETFramework,Version=v4.8\"/></st"
},
{
"path": "DsCore/Config/Configurator.cs",
"chars": 61296,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Text;\r\nusing System.IO;\r\nusing DsCore;\r\nusing DsCore.Win"
},
{
"path": "DsCore/Config/PlayerSettings.cs",
"chars": 14150,
"preview": "using System;\r\nusing System.Windows.Forms;\r\nusing DsCore.RawInput;\r\nusing DsCore.Win32;\r\nusing DsCore.XInput;\r\n\r\nnamesp"
},
{
"path": "DsCore/DsCore.csproj",
"chars": 7581,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"12.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.micro"
},
{
"path": "DsCore/INIFile.cs",
"chars": 1881,
"preview": "using System.IO;\nusing System.Runtime.InteropServices;\nusing System.Text;\n\nnamespace DsCore\n{\n public class INIFile\n"
},
{
"path": "DsCore/IPC/DsTcpData.cs",
"chars": 8347,
"preview": "using System;\nusing System.IO;\nusing System.Linq;\nusing System.Reflection;\nusing System.Runtime.InteropServices;\n\nnames"
},
{
"path": "DsCore/IPC/DsTcp_Client.cs",
"chars": 8635,
"preview": "using System;\nusing System.Net.Sockets;\nusing System.Threading;\n\nnamespace DsCore.IPC\n{\n public class DsTcp_Client\n "
},
{
"path": "DsCore/IPC/DsTcp_TcpPacket.cs",
"chars": 2473,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Runtime.Serialization.Formatters.Binary;\n"
},
{
"path": "DsCore/IPC/MMFH_HotdRemakeArcade.cs",
"chars": 4159,
"preview": "using System;\r\nusing System.Runtime.InteropServices;\r\n\r\nnamespace DsCore.IPC\r\n{\r\n public class MMFH_HotdRemakeArcade"
},
{
"path": "DsCore/IPC/MMF_DataStruct.cs",
"chars": 1421,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Text;\r\n\r\nnamespace DsCore.IPC\r\n{\r\n public class MMF_D"
},
{
"path": "DsCore/IPC/MappedMemoryFileHelper.cs",
"chars": 5586,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing DsCore.Win32;\r\nusi"
},
{
"path": "DsCore/IPC/MappedMemoryFile_Helper_old.cs",
"chars": 8985,
"preview": "using System;\r\nusing DsCore.Win32;\r\nusing System.Runtime.InteropServices;\r\nusing System.Collections.Generic;\r\nusing Sys"
},
{
"path": "DsCore/Logger.cs",
"chars": 1215,
"preview": "using System;\r\nusing System.IO;\r\nusing System.Diagnostics;\r\n\r\nnamespace DsCore\r\n{\r\n public static class Logger\r\n "
},
{
"path": "DsCore/MameOutput/AsyncGameOutput.cs",
"chars": 2722,
"preview": "using System;\r\n\r\nnamespace DsCore.MameOutput\r\n{\r\n public class AsyncGameOutput : GameOutput\r\n {\r\n private "
},
{
"path": "DsCore/MameOutput/BlinkGameOutput.cs",
"chars": 1632,
"preview": "using System;\r\nusing System.Timers;\r\n\r\nnamespace DsCore.MameOutput\r\n{\r\n public class BlinkGameOutput : GameOutput\r\n "
},
{
"path": "DsCore/MameOutput/GameOutput.cs",
"chars": 916,
"preview": "using System;\r\n\r\nnamespace DsCore.MameOutput\r\n{\r\n /// <summary>\r\n /// A specific Output from a game to send to Ma"
},
{
"path": "DsCore/MameOutput/MMT.cs",
"chars": 9932,
"preview": "using System;\nusing System.ComponentModel;\nusing System.Diagnostics;\nusing System.Runtime.InteropServices;\n\nnamespace D"
},
{
"path": "DsCore/MameOutput/Network/Net_OutputClient.cs",
"chars": 1437,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Text;\nusing System.Net.Sockets;\n\nnamespace DsCore.MameOutp"
}
]
// ... and 422 more files (download for full content)
About this extraction
This page contains the full source code of the argonlefou/DemulShooter GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 622 files (4.6 MB), approximately 1.2M tokens, and a symbol index with 3713 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.