-
-
Notifications
You must be signed in to change notification settings - Fork 258
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add dummy PadMan module for Namco arcade games.
- Loading branch information
Showing
4 changed files
with
117 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
#include "Iop_NamcoPadMan.h" | ||
#include "Log.h" | ||
|
||
using namespace Iop; | ||
using namespace Iop::Namco; | ||
|
||
#define LOG_NAME ("iop_namco_padman") | ||
|
||
std::string CPadMan::GetId() const | ||
{ | ||
return "padman"; | ||
} | ||
|
||
std::string CPadMan::GetFunctionName(unsigned int) const | ||
{ | ||
return "unknown"; | ||
} | ||
|
||
void CPadMan::RegisterSifModules(CSifMan& sif) | ||
{ | ||
sif.RegisterModule(MODULE_ID_1, this); | ||
sif.RegisterModule(MODULE_ID_2, this); | ||
sif.RegisterModule(MODULE_ID_3, this); | ||
sif.RegisterModule(MODULE_ID_4, this); | ||
} | ||
|
||
void CPadMan::Invoke(CMIPS& context, unsigned int functionId) | ||
{ | ||
throw std::runtime_error("Not implemented."); | ||
} | ||
|
||
bool CPadMan::Invoke(uint32 method, uint32* args, uint32 argsSize, uint32* ret, uint32 retSize, uint8* ram) | ||
{ | ||
assert(method == 1); | ||
method = args[0]; | ||
switch(method) | ||
{ | ||
case 0x00000010: | ||
Init(args, argsSize, ret, retSize, ram); | ||
break; | ||
case 0x00000012: | ||
GetModuleVersion(args, argsSize, ret, retSize, ram); | ||
break; | ||
default: | ||
CLog::GetInstance().Print(LOG_NAME, "Unknown method invoked (0x%08X).\r\n", method); | ||
break; | ||
} | ||
return true; | ||
} | ||
|
||
void CPadMan::Init(uint32* args, uint32 argsSize, uint32* ret, uint32 retSize, uint8* ram) | ||
{ | ||
assert(retSize >= 0x10); | ||
|
||
CLog::GetInstance().Print(LOG_NAME, "Init();\r\n"); | ||
|
||
ret[3] = 1; | ||
} | ||
|
||
void CPadMan::GetModuleVersion(uint32* args, uint32 argsSize, uint32* ret, uint32 retSize, uint8* ram) | ||
{ | ||
assert(retSize >= 0x10); | ||
|
||
CLog::GetInstance().Print(LOG_NAME, "GetModuleVersion();\r\n"); | ||
|
||
ret[3] = 0x00000400; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
#pragma once | ||
|
||
#include "../Iop_Module.h" | ||
#include "../Iop_SifMan.h" | ||
#include "../Iop_SifModuleProvider.h" | ||
|
||
namespace Iop | ||
{ | ||
namespace Namco | ||
{ | ||
class CPadMan : public CModule, public CSifModule, public CSifModuleProvider | ||
{ | ||
public: | ||
CPadMan() = default; | ||
|
||
std::string GetId() const override; | ||
std::string GetFunctionName(unsigned int) const override; | ||
|
||
void RegisterSifModules(CSifMan&) override; | ||
|
||
void Invoke(CMIPS&, unsigned int) override; | ||
bool Invoke(uint32, uint32*, uint32, uint32*, uint32, uint8*) override; | ||
|
||
enum MODULE_ID | ||
{ | ||
MODULE_ID_1 = 0x80000100, | ||
MODULE_ID_2 = 0x80000101, | ||
MODULE_ID_3 = 0x8000010F, | ||
MODULE_ID_4 = 0x8000011F, | ||
}; | ||
|
||
private: | ||
void Init(uint32*, uint32, uint32*, uint32, uint8*); | ||
void GetModuleVersion(uint32*, uint32, uint32*, uint32, uint8*); | ||
}; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters