Update with output reading and fix strange bug with logging etc
This commit is contained in:
parent
40ebed5560
commit
d5bef2b65b
@ -81,7 +81,6 @@ GameId=3
|
||||
MinForce=0
|
||||
MaxForce=75
|
||||
DefaultCentering=15
|
||||
RemoveCelShadedFilter=0
|
||||
|
||||
[GRID]
|
||||
GameId=10
|
||||
@ -239,6 +238,9 @@ GameId=13
|
||||
DefaultCentering=25
|
||||
FeedbackLength=500
|
||||
|
||||
[Output Reading]
|
||||
GameId=22
|
||||
|
||||
[Outrun 2 Special Tours Deluxe Custom]
|
||||
GameId=12
|
||||
MinForce=0
|
||||
|
@ -24,6 +24,7 @@
|
||||
<ClInclude Include="Game Files\HOTD4.h" />
|
||||
<ClInclude Include="Game Files\InitialD0.h" />
|
||||
<ClInclude Include="Game Files\KODrive.h" />
|
||||
<ClInclude Include="Game Files\OutputReading.h" />
|
||||
<ClInclude Include="Game Files\OutRun2Real.h" />
|
||||
<ClInclude Include="Game Files\ButtonRumble.h" />
|
||||
<ClInclude Include="Game Files\Demul.h" />
|
||||
@ -50,6 +51,7 @@
|
||||
<ClCompile Include="Game Files\HOTD4.cpp" />
|
||||
<ClCompile Include="Game Files\InitialD0.cpp" />
|
||||
<ClCompile Include="Game Files\KODrive.cpp" />
|
||||
<ClCompile Include="Game Files\OutputReading.cpp" />
|
||||
<ClCompile Include="Game Files\OutRun2Real.cpp" />
|
||||
<ClCompile Include="Game Files\ButtonRumble.cpp" />
|
||||
<ClCompile Include="Common Files\TeknoParrotGame.cpp" />
|
||||
|
@ -114,6 +114,7 @@
|
||||
<ClCompile Include="Game Files\HOTD4.cpp" />
|
||||
<ClCompile Include="Game Files\GRID.cpp" />
|
||||
<ClCompile Include="Game Files\Mame.cpp" />
|
||||
<ClCompile Include="Game Files\OutputReading.cpp" />
|
||||
<ClCompile Include="Game Files\InitialD0.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
@ -232,6 +233,9 @@
|
||||
<ClInclude Include="Game Files\Mame.h">
|
||||
<Filter>Common Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Game Files\OutputReading.h">
|
||||
<Filter>Common Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Game Files\InitialD0.h">
|
||||
<Filter>Common Header Files</Filter>
|
||||
</ClInclude>
|
||||
|
@ -41,6 +41,7 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
|
||||
#include "Game Files/InitialD7.h"
|
||||
#include "Game Files/InitialD8.h"
|
||||
#include "Game Files/MarioKartGPDX.h"
|
||||
#include "Game Files/OutputReading.h"
|
||||
#include "Game Files/OutRun2Fake.h"
|
||||
#include "Game Files/OutRun2Real.h"
|
||||
#include "Game Files/SegaRacingClassic.h"
|
||||
@ -898,6 +899,7 @@ const int INITIAL_D_8 = 18;
|
||||
const int POKKEN_TOURNAMENT = 19;
|
||||
const int MARIO_KART_GPDX_110 = 20;
|
||||
const int Sonic_Sega_AllStars_Racing = 21;
|
||||
const int OUTPUT_READING = 22;
|
||||
const int INITIAL_D_5 = 23;
|
||||
const int INITIAL_D_4_Japan = 24;
|
||||
const int M2_Emulator = 25;
|
||||
@ -1712,6 +1714,9 @@ DWORD WINAPI FFBLoop(LPVOID lpParam)
|
||||
case DAYTONA_3:
|
||||
game = new Daytona3;
|
||||
break;
|
||||
case OUTPUT_READING:
|
||||
game = new OutputReading;
|
||||
break;
|
||||
case FORD_RACING:
|
||||
game = new FordRacing;
|
||||
break;
|
||||
|
@ -14,8 +14,6 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
|
||||
#include <string>
|
||||
#include "ChaseHQ2.h"
|
||||
|
||||
static bool removecel = false;
|
||||
|
||||
int ttx2chasehq2(int ffRaw) {
|
||||
switch (ffRaw) {
|
||||
// moving right, from weakest to strongest (30 => 16).
|
||||
@ -89,9 +87,6 @@ int ttx2chasehq2(int ffRaw) {
|
||||
|
||||
void ChaseHQ2::FFBLoop(EffectConstants *constants, Helpers *helpers, EffectTriggers* triggers) {
|
||||
|
||||
static wchar_t* settingsFilename = TEXT(".\\FFBPlugin.ini");
|
||||
static int RemoveCelShadedFilter = GetPrivateProfileInt(TEXT("Settings"), TEXT("RemoveCelShadedFilter"), 0, settingsFilename);
|
||||
|
||||
int ff = 0;
|
||||
{
|
||||
long ffAddress = helpers->ReadInt32(0x130B558, /* isRelativeOffset*/ true);
|
||||
@ -106,21 +101,6 @@ void ChaseHQ2::FFBLoop(EffectConstants *constants, Helpers *helpers, EffectTrigg
|
||||
ff = ttx2chasehq2(ffRaw);
|
||||
}
|
||||
|
||||
if (RemoveCelShadedFilter == 1)
|
||||
{
|
||||
if (!removecel)
|
||||
{
|
||||
helpers->WriteNop(0x31FFA, true);
|
||||
helpers->WriteNop(0x31FFB, true);
|
||||
helpers->WriteNop(0x31FFC, true);
|
||||
helpers->WriteNop(0x31FFD, true);
|
||||
helpers->WriteNop(0x31FFE, true);
|
||||
helpers->WriteNop(0x31FFF, true);
|
||||
removecel = true;
|
||||
}
|
||||
helpers->WriteByte(0x130CB30, 0x00, true); // Remove Cel Shaded Filter
|
||||
}
|
||||
|
||||
helpers->log("got value: ");
|
||||
std::string ffs = std::to_string(ff);
|
||||
helpers->log((char *)ffs.c_str());
|
||||
|
@ -24,7 +24,7 @@ void InitialD0::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTrig
|
||||
helpers->log("got value: ");
|
||||
std::string ffs = std::to_string(ff);
|
||||
helpers->log((char*)ffs.c_str());
|
||||
|
||||
|
||||
if (oldff != newff)
|
||||
{
|
||||
if ((ff > 0x37) && (ff < 0x80))
|
||||
|
2129
Game Files/OutputReading.cpp
Normal file
2129
Game Files/OutputReading.cpp
Normal file
File diff suppressed because it is too large
Load Diff
20
Game Files/OutputReading.h
Normal file
20
Game Files/OutputReading.h
Normal file
@ -0,0 +1,20 @@
|
||||
/*This file is part of FFB Arcade Plugin.
|
||||
FFB Arcade Plugin is free software : you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
FFB Arcade Plugin is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
|
||||
GNU General Public License for more details.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
#include "../Common Files/Game.h"
|
||||
class OutputReading : public Game {
|
||||
|
||||
public:
|
||||
void FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers* triggers);
|
||||
};
|
@ -15,23 +15,28 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
|
||||
#include "SonicSegaAllStarsRacing.h"
|
||||
|
||||
void SonicSegaAllStarsRacing::FFBLoop(EffectConstants *constants, Helpers *helpers, EffectTriggers* triggers) {
|
||||
UINT8 FFBEnable = helpers->ReadByte(0x5CD858, /* isRelativeOffset*/ true);
|
||||
UINT8 FFB = helpers->ReadByte(0x5CD864, /* isRelativeOffset*/ true);
|
||||
INT_PTR FFBEnable = helpers->ReadByte(0x5CD858, /* isRelativeOffset*/ true);
|
||||
INT_PTR FFB = helpers->ReadByte(0x5CD864, /* isRelativeOffset*/ true);
|
||||
|
||||
{
|
||||
//Enable FFB
|
||||
helpers->WriteByte(0x5CD858, 0x03, true);
|
||||
}
|
||||
|
||||
if ((FFB > 0) && (FFB < 19))
|
||||
{
|
||||
//Trigger friction to stop any oscillation
|
||||
double percentForce = 0.2;
|
||||
triggers->Friction(percentForce);
|
||||
}
|
||||
if ((FFB > 0) & (FFB < 19))
|
||||
{
|
||||
helpers->log("moving wheel right");
|
||||
double percentForce = (FFB) / 18.0;
|
||||
double percentLength = 100;
|
||||
triggers->Rumble(0, percentForce, percentLength);
|
||||
triggers->Constant(constants->DIRECTION_FROM_RIGHT, percentForce);
|
||||
|
||||
}
|
||||
else if ((FFB > 237) && (FFB < 256))
|
||||
else if ((FFB > 237) & (FFB < 256))
|
||||
{
|
||||
helpers->log("moving wheel right");
|
||||
double percentForce = (256 - FFB) / 18.0;
|
||||
|
@ -1,6 +1,6 @@
|
||||
***FFB Arcade Plugin***
|
||||
|
||||
Version 1.2
|
||||
Version 1.1a
|
||||
|
||||
Brought to you by Boomslangnz, Ducon2016, Spazzy & pinkimo.
|
||||
|
||||
@ -10,15 +10,6 @@ While best efforts were made to try to resemble the real arcade force feedback,
|
||||
in some cases eg Mario Kart GP DX, Pokken Tournament and Battle Gear 4,effects were created entirely from scratch
|
||||
so are not using real force feedback values. Most games use correct ffb values however :)
|
||||
|
||||
***1.2 Changes***
|
||||
|
||||
- Added Initial D Arcade Stage Zero FFB Support
|
||||
|
||||
- Added ChaseHQ2 shader filter removal checkbox under Input/Misc setting in GUI
|
||||
|
||||
- Sorry had wrong SDL2.dll for all 64bit games on last release
|
||||
|
||||
|
||||
***1.1a Changes***
|
||||
|
||||
- Fixed issue with inputs not working correctly
|
||||
@ -359,8 +350,6 @@ extremely generous.
|
||||
|
||||
-Indy 500 [dinput8.dll into m2 emulator 1.1a folder]
|
||||
|
||||
-Initial D0 [dinput8.dll into game exe folder]
|
||||
|
||||
-Initial D4 [opengl32.dll into Teknoparrot folder inside Main Teknoparrot folder]
|
||||
|
||||
-Initial D4 Japan [opengl32.dll into Teknoparrot folder inside Main Teknoparrot folder]
|
||||
|
Loading…
Reference in New Issue
Block a user