diff options
| author | XTra.KrazzY <XTra.KrazzY@gmail.com> | 2008-11-20 22:39:07 +0000 |
|---|---|---|
| committer | XTra.KrazzY <XTra.KrazzY@gmail.com> | 2008-11-20 22:39:07 +0000 |
| commit | f5a92e2e9eca7338cf905ebd9f1a23e88cd8b15b (patch) | |
| tree | 93c450ef6ba44a4c5686719750bea856ce4d86b8 /Source | |
| parent | 601f65f07114302f68894673a9a6dd8a87befc10 (diff) | |
Floating point printf parsing by jeffjohnson0. Solves issue 302.
Thanks jeffjohnson0.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1231 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source')
| -rw-r--r-- | Source/Core/Core/Src/HLE/HLE_OS.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/Source/Core/Core/Src/HLE/HLE_OS.cpp b/Source/Core/Core/Src/HLE/HLE_OS.cpp index ba7c1bf7bc..c309e7c30d 100644 --- a/Source/Core/Core/Src/HLE/HLE_OS.cpp +++ b/Source/Core/Core/Src/HLE/HLE_OS.cpp @@ -76,6 +76,7 @@ void GetStringVA(std::string& _rOutBuffer) _rOutBuffer = "";
char ArgumentBuffer[256];
u32 ParameterCounter = 4;
+ u32 FloatingParameterCounter = 1;
char* pString = (char*)Memory::GetPointer(GPR(3));
if (!pString) {
//PanicAlert("Invalid GetStringVA call");
@@ -110,15 +111,24 @@ void GetStringVA(std::string& _rOutBuffer) _rOutBuffer += StringFromFormat(ArgumentBuffer, (char*)Memory::GetPointer(Parameter));
break;
-#if 0
case 'd':
+ case 'i':
{
//u64 Double = Memory::Read_U64(Parameter);
_rOutBuffer += StringFromFormat(ArgumentBuffer, Parameter);
}
break;
-#endif
- //TODO: fix floating-point (%f)
+
+ case 'f':
+ {
+ _rOutBuffer += StringFromFormat(ArgumentBuffer,
+ rPS0(FloatingParameterCounter));
+ FloatingParameterCounter++;
+ ParameterCounter--;
+ }
+ break;
+
+
default:
_rOutBuffer += StringFromFormat(ArgumentBuffer, Parameter);
break;
|
