From b27e0a719d88f9fbfdec1c1cb8ab3d91798b2b9d Mon Sep 17 00:00:00 2001 From: Tim Allen Date: Sun, 26 Dec 2010 23:08:43 +1100 Subject: [PATCH] Update to v072r13 release. byuu says: The DSP-1 and DSP-3 emulation appears to be great. However, there are bugs in the other two. DSP-2, Dungeon Master: the graphics in-game appear corrupt. It looks like the first two pixels have the right color, the next six have the wrong color, resulting in vertical stripes. DSP-4, Top Gear 3000: the car sprites appear to be showing 8x8 tiles instead of 16x16 files, resulting in 3/4ths of the cars being invisible, but only up close. Dr. Decapitator and Lord Nightmare are supremely confident that our dumps are 100% accurate, there was no bus wavering at all this time. We believe they are bugs in the uPD77C25 emulation. I desperately need help! I have spent the past several hours trying to ascertain what the problem is, to no avail. I've tried messing with just about every flag, every register, checking for use of OV1, S1, custom opcodes, etc ... I am having no luck. I'm going to keep trying with even more sophisticated cross-analysis. But Cydrak, if you would please rework that magic of yours, I'd be eternally grateful :D --- bsnes/nall/snes/cartridge.hpp | 8 ++++---- bsnes/snes/cartridge/xml.cpp | 13 ++++++++++++- bsnes/snes/snes.hpp | 13 +++++++------ 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/bsnes/nall/snes/cartridge.hpp b/bsnes/nall/snes/cartridge.hpp index 27434a18..7d5a9399 100755 --- a/bsnes/nall/snes/cartridge.hpp +++ b/bsnes/nall/snes/cartridge.hpp @@ -408,7 +408,7 @@ SNESCartridge::SNESCartridge(const uint8_t *data, unsigned size) { } if(has_dsp1) { - xml << " \n"; + xml << " \n"; if(dsp1_mapper == DSP1LoROM1MB) { xml << " \n"; xml << " \n"; @@ -441,7 +441,7 @@ SNESCartridge::SNESCartridge(const uint8_t *data, unsigned size) { } if(has_dsp2) { - xml << " \n"; + xml << " \n"; xml << " \n"; xml << " \n"; xml << " \n"; @@ -454,7 +454,7 @@ SNESCartridge::SNESCartridge(const uint8_t *data, unsigned size) { } if(has_dsp3) { - xml << " \n"; + xml << " \n"; xml << " \n"; xml << " \n"; xml << " \n"; @@ -467,7 +467,7 @@ SNESCartridge::SNESCartridge(const uint8_t *data, unsigned size) { } if(has_dsp4) { - xml << " \n"; + xml << " \n"; xml << " \n"; xml << " \n"; xml << " \n"; diff --git a/bsnes/snes/cartridge/xml.cpp b/bsnes/snes/cartridge/xml.cpp index 6adb98cd..8a8352d0 100755 --- a/bsnes/snes/cartridge/xml.cpp +++ b/bsnes/snes/cartridge/xml.cpp @@ -236,11 +236,22 @@ void Cartridge::xml_parse_upd77c25(xml_element &root) { if(fp.open(string(dir(basename()), attr.content), file::mode::read)) { for(unsigned n = 0; n < 2048; n++) { upd77c25.programROM[n] = fp.readm(3); - fp.read(); } for(unsigned n = 0; n < 1024; n++) { upd77c25.dataROM[n] = fp.readm(2); } + + fp.seek(0); + uint8 data[8192]; + fp.read(data, 8192); + fp.close(); + + sha256_ctx sha; + uint8_t shahash[32]; + sha256_init(&sha); + sha256_chunk(&sha, data, 8192); + sha256_final(&sha); + sha256_hash(&sha, shahash); } } } diff --git a/bsnes/snes/snes.hpp b/bsnes/snes/snes.hpp index da732909..97ac04fa 100755 --- a/bsnes/snes/snes.hpp +++ b/bsnes/snes/snes.hpp @@ -1,7 +1,7 @@ namespace SNES { namespace Info { static const char Name[] = "bsnes"; - static const char Version[] = "072.12"; + static const char Version[] = "072.13"; static const unsigned SerializerVersion = 14; } } @@ -39,11 +39,12 @@ using namespace nall; #endif namespace SNES { - typedef int8_t int8; - typedef int16_t int16; - typedef int32_t int32; - typedef int64_t int64; - typedef uint8_t uint8; + typedef int8_t int8; + typedef int16_t int16; + typedef int32_t int32; + typedef int64_t int64; + + typedef uint8_t uint8; typedef uint16_t uint16; typedef uint32_t uint32; typedef uint64_t uint64;