Revert PcToSnes implementation
This commit is contained in:
@@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
#include <imgui/imgui.h>
|
#include <imgui/imgui.h>
|
||||||
|
|
||||||
#include <bitset>
|
|
||||||
#include <chrono>
|
#include <chrono>
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <functional>
|
#include <functional>
|
||||||
@@ -44,19 +43,16 @@ uint32_t SnesToPc(uint32_t addr) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
uint32_t PcToSnes(uint32_t addr) {
|
uint32_t PcToSnes(uint32_t addr) {
|
||||||
std::bitset<24> addr_bits(addr);
|
uint8_t *b = reinterpret_cast<uint8_t *>(&addr);
|
||||||
std::bitset<24> result_bits;
|
b[2] = static_cast<uint8_t>(b[2] * 2);
|
||||||
|
|
||||||
// Shift the address left by 1 bit
|
if (b[1] >= 0x80) {
|
||||||
addr_bits <<= 1;
|
b[2] += 1;
|
||||||
|
} else {
|
||||||
|
b[1] += 0x80;
|
||||||
|
}
|
||||||
|
|
||||||
// Set the most significant bit of the second byte
|
return addr;
|
||||||
addr_bits.set(15, true);
|
|
||||||
|
|
||||||
// Convert the modified bitset back to an integer
|
|
||||||
uint32_t result = static_cast<uint32_t>(addr_bits.to_ulong());
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t MapBankToWordAddress(uint8_t bank, uint16_t addr) {
|
uint32_t MapBankToWordAddress(uint8_t bank, uint16_t addr) {
|
||||||
|
|||||||
Reference in New Issue
Block a user