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:
parent
1b5472184d
commit
5e57aa0e6b
|
@ -273,8 +273,7 @@ class Core : private Cpu
|
||||||
// NTAB Block
|
// NTAB Block
|
||||||
if (NTABBlockEnabled == true)
|
if (NTABBlockEnabled == true)
|
||||||
{
|
{
|
||||||
size_t nametable_size = 0x800;
|
size_t nametable_size = 0x1000;
|
||||||
if (ppu.nt_banks[3] >= &ppu.impl->nt_ram[0xC00]) nametable_size = 0x1000;
|
|
||||||
|
|
||||||
const auto inputDataSize = nametable_size;
|
const auto inputDataSize = nametable_size;
|
||||||
const auto inputData = (uint8_t *)ppu.impl->nt_ram;
|
const auto inputData = (uint8_t *)ppu.impl->nt_ram;
|
||||||
|
@ -428,8 +427,7 @@ class Core : private Cpu
|
||||||
// NTAB Block
|
// NTAB Block
|
||||||
if (NTABBlockEnabled == true)
|
if (NTABBlockEnabled == true)
|
||||||
{
|
{
|
||||||
size_t nametable_size = 0x800;
|
size_t nametable_size = 0x1000;
|
||||||
if (ppu.nt_banks[3] >= &ppu.impl->nt_ram[0xC00]) nametable_size = 0x1000;
|
|
||||||
|
|
||||||
const auto outputData = (uint8_t*) ppu.impl->nt_ram;
|
const auto outputData = (uint8_t*) ppu.impl->nt_ram;
|
||||||
const auto inputDataSize = nametable_size;
|
const auto inputDataSize = nametable_size;
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -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
|
||||||
|
}
|
||||||
|
}
|
|
@ -24,7 +24,6 @@ protectedTestSet = [
|
||||||
'saintSeiyaKanketsuHen.anyPercent.test',
|
'saintSeiyaKanketsuHen.anyPercent.test',
|
||||||
'saintSeiyaOugonDensetsu.anyPercent.test',
|
'saintSeiyaOugonDensetsu.anyPercent.test',
|
||||||
'saiyuukiWorld.anyPercent.test',
|
'saiyuukiWorld.anyPercent.test',
|
||||||
'saiyuukiWorld.lastHalf.test',
|
|
||||||
'solarJetman.anyPercent.test',
|
'solarJetman.anyPercent.test',
|
||||||
'sprilo.anyPercent.test',
|
'sprilo.anyPercent.test',
|
||||||
'superMarioBros.warpless.test',
|
'superMarioBros.warpless.test',
|
||||||
|
@ -58,3 +57,28 @@ foreach testFile : testSet
|
||||||
suite : [ testSuite ])
|
suite : [ testSuite ])
|
||||||
endforeach
|
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.
|
@ -10,6 +10,6 @@
|
||||||
{
|
{
|
||||||
"Enabled": true,
|
"Enabled": true,
|
||||||
"Max Differences": 7000,
|
"Max Differences": 7000,
|
||||||
"Use Zlib": false
|
"Use Zlib": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue