Fixing a bug in the original ppu serialization where the size of the NTAB would change after a few frames. Now Castlavania III works

This commit is contained in:
SergioMartin86 2024-02-24 16:43:33 +00:00
parent 1b5472184d
commit 5e57aa0e6b
7 changed files with 17260 additions and 6 deletions

View File

@ -273,8 +273,7 @@ class Core : private Cpu
// NTAB Block
if (NTABBlockEnabled == true)
{
size_t nametable_size = 0x800;
if (ppu.nt_banks[3] >= &ppu.impl->nt_ram[0xC00]) nametable_size = 0x1000;
size_t nametable_size = 0x1000;
const auto inputDataSize = nametable_size;
const auto inputData = (uint8_t *)ppu.impl->nt_ram;
@ -428,8 +427,7 @@ class Core : private Cpu
// NTAB Block
if (NTABBlockEnabled == true)
{
size_t nametable_size = 0x800;
if (ppu.nt_banks[3] >= &ppu.impl->nt_ram[0xC00]) nametable_size = 0x1000;
size_t nametable_size = 0x1000;
const auto outputData = (uint8_t*) ppu.impl->nt_ram;
const auto inputDataSize = nametable_size;

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,15 @@
{
"Rom File": "roms/Castlevania III - Dracula's Curse (U) [!].nes",
"Expected ROM SHA1": "F91281D5D9CC26BCF6FB4DE2F5BE086BC633D49B",
"Initial State File": "",
"Sequence File": "castlevania3.playaround.sol",
"Disable State Blocks": [ ],
"Controller 1 Type": "Joypad",
"Controller 2 Type": "None",
"Differential Compression":
{
"Enabled": false,
"Max Differences": 2200,
"Use Zlib": true
}
}

View File

@ -24,7 +24,6 @@ protectedTestSet = [
'saintSeiyaKanketsuHen.anyPercent.test',
'saintSeiyaOugonDensetsu.anyPercent.test',
'saiyuukiWorld.anyPercent.test',
'saiyuukiWorld.lastHalf.test',
'solarJetman.anyPercent.test',
'sprilo.anyPercent.test',
'superMarioBros.warpless.test',
@ -58,3 +57,28 @@ foreach testFile : testSet
suite : [ testSuite ])
endforeach
# Special test case for castlevania 3, since it doesn't work with quickNES
if get_option('onlyOpenSource') == false
testFile = 'castlevania3.playaround.test'
testSuite = testFile.split('.')[0]
testName = testFile.split('.')[1]
test(testName,
quickerNESTester,
workdir : meson.current_source_dir(),
timeout: testTimeout,
args : [ testFile, '--cycleType', 'Full'],
suite : [ testSuite ])
endif
# Special test case for from-save-state start, since it doesn't work with quickNES
if get_option('onlyOpenSource') == false
testFile = 'saiyuukiWorld.lastHalf.test'
testSuite = testFile.split('.')[0]
testName = testFile.split('.')[1]
test(testName,
quickerNESTester,
workdir : meson.current_source_dir(),
timeout: testTimeout,
args : [ testFile, '--cycleType', 'Full'],
suite : [ testSuite ])
endif

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -10,6 +10,6 @@
{
"Enabled": true,
"Max Differences": 7000,
"Use Zlib": false
"Use Zlib": true
}
}