From bb056ee4d3b41a695600292aede1b6121062b005 Mon Sep 17 00:00:00 2001 From: Justin Scofield <47263509+scawful@users.noreply.github.com> Date: Tue, 12 Jul 2022 08:03:53 -0400 Subject: [PATCH] Added HexToDec routine from hmagic --- src/app/core/common.cc | 35 +++++++++++++++++++++++++++++++++++ src/app/core/common.h | 1 + 2 files changed, 36 insertions(+) diff --git a/src/app/core/common.cc b/src/app/core/common.cc index d1bbb0f2..98a48e25 100644 --- a/src/app/core/common.cc +++ b/src/app/core/common.cc @@ -18,6 +18,41 @@ int AddressFromBytes(uint8_t addr1, uint8_t addr2, uint8_t addr3) { return (addr1 << 16) | (addr2 << 8) | addr3; } +//hextodec has been imported from SNESDisasm to parse hex numbers +int HexToDec(char *input, int length) +{ + int result = 0; + int value; + int ceiling = length - 1; + int power16 = 16; + + int j = ceiling; + + for( ; j >= 0; j--) + { + if(input[j] >= 'A' && input[j] <= 'F') + { + value = input[j] - 'F'; + value += 15; + } + else + { + value = input[j] - '9'; + value += 9; + } + + if(j == ceiling) + { + result += value; + continue; + } + + result += (value * power16); + power16 *= 16; + } + + return result; +} } // namespace core } // namespace app diff --git a/src/app/core/common.h b/src/app/core/common.h index 60c1396c..5217f66f 100644 --- a/src/app/core/common.h +++ b/src/app/core/common.h @@ -9,6 +9,7 @@ namespace core { unsigned int SnesToPc(unsigned int addr); int AddressFromBytes(uint8_t addr1, uint8_t addr2, uint8_t addr3); +int HexToDec(char *input, int length); } // namespace core } // namespace app