Skip to content

Commit

Permalink
MSVC fixes, add more to blargg (up to 368380 now)
Browse files Browse the repository at this point in the history
  • Loading branch information
StardustGogeta committed May 28, 2024
1 parent fd2129e commit dae3cc9
Show file tree
Hide file tree
Showing 7 changed files with 31 additions and 13 deletions.
19 changes: 11 additions & 8 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,16 @@ elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
endif()

set(BIN_DIR "${CMAKE_SOURCE_DIR}/bin")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${BIN_DIR})
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${BIN_DIR})
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${BIN_DIR})
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${BIN_DIR})
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${BIN_DIR})
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${BIN_DIR})
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${BIN_DIR})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${BIN_DIR})
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${BIN_DIR})
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${BIN_DIR})
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${BIN_DIR})
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${BIN_DIR})
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO ${BIN_DIR})
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${BIN_DIR})
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${BIN_DIR})
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO ${BIN_DIR})
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${BIN_DIR})

add_executable(main)

Expand Down Expand Up @@ -74,7 +77,7 @@ add_test(
# Could also compare the first lines of each file using technique from https://superuser.com/a/511406
add_test(NAME blargg_cpu_test5_official_execute COMMAND main CPU_TEST blargg5official
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
set_tests_properties(blargg_cpu_test5_official_execute PROPERTIES TIMEOUT 5)
set_tests_properties(blargg_cpu_test5_official_execute PROPERTIES TIMEOUT 10)
add_test(
NAME blargg_cpu_test5_official_match
COMMAND python ${CMAKE_SOURCE_DIR}/test/logCompare.py
Expand Down
14 changes: 14 additions & 0 deletions CMakePresets.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,15 @@
"CMAKE_BUILD_TYPE": "Debug"
}
},
{
"name": "windows-msvc-reldebinfo",
"displayName": "MSVC / MSBuild (RelWithDebInfo)",
"inherits": "windows-msvc-base",
"description": "Windows release-with-debug-info build using MSVC and Visual Studio 2022 generator",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo"
}
},
{
"name": "windows-msvc-release",
"displayName": "MSVC / MSBuild (Release)",
Expand Down Expand Up @@ -75,6 +84,11 @@
"configuration": "Debug",
"configurePreset": "windows-msvc-debug"
},
{
"name": "MSVC - RelWithDebInfo",
"configuration": "RelWithDebInfo",
"configurePreset": "windows-msvc-reldebinfo"
},
{
"name": "MSVC - Release",
"configuration": "Release",
Expand Down
2 changes: 2 additions & 0 deletions src/core/ppu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ uint8_t PPU::readRegister(addr_t address) {

void PPU::writeRegister(addr_t address, uint8_t data) {
registers[address] = data;
// Write to the PPU open bus
registers[0x2] = (registers[0x2] & 0xf0) | (data & 0x0f);
}

void PPU::start() {
Expand Down
2 changes: 1 addition & 1 deletion src/cpu/cpu_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ void runBlarggCpuTest5Official() {
std::this_thread::yield();
}

for (int i = 0; i < 198000; i++) {
for (int i = 0; i < 368380; i++) {
nes->cpu->cycle();
}

Expand Down
1 change: 0 additions & 1 deletion src/cpu/opcodes.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -430,7 +430,6 @@ void CPU::runInstruction(addressingMode mode, instruction inst, addr_t addr, uin
setProcessorStatus(stackPop());
p.b1 = oldP.b1;
p.b2 = oldP.b2;
p.i = oldP.i;
}
break;
case RLA: {// ROL + AND
Expand Down
4 changes: 2 additions & 2 deletions src/memory/core_memory.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,14 +44,14 @@ addr_t CoreMemory::mapPPU(addr_t address) {
Reads a byte of data from one of the PPU registers.
*/
uint8_t CoreMemory::readPPU(addr_t address) {
return ppu->readRegister(address);
return ppu->readRegister(address & 0xf);
}

/*
Writes a byte of data to one of the PPU registers.
*/
void CoreMemory::writePPU(addr_t address, uint8_t data) {
return ppu->writeRegister(address, data);
return ppu->writeRegister(address & 0xf, data);
}

/*
Expand Down
2 changes: 1 addition & 1 deletion src/memory/mapper001.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ void Mapper001::write(addr_t address, uint8_t data) {
shiftReg = (shiftReg >> 1) | ((data & 1) << 4);
if (lowBit) {
// The low bit was set, so the shift register is full
int regId = address & 0x6000;
int regId = (address & 0x6000) >> 13;
uint8_t* registers[] = {&controlReg, &chrReg0, &chrReg1, &prgReg};
*registers[regId] = shiftReg;
resetShift();
Expand Down

0 comments on commit dae3cc9

Please sign in to comment.