mirror of
https://github.com/bsnes-emu/bsnes.git
synced 2025-08-16 13:14:32 +02:00
Update to v106r60 release.
byuu says: I added (imperfect) memory conflict timing to the SA1. Before: - WRAM↔↔ROM ran 7% too fast - ROM↔↔ROM ran 100% too fast - WRAM↔↔IRAM ran 7% too fast - ROM↔↔IRAM ran 7% too fast - IRAM↔↔IRAM ran 287% too fast - BWRAM↔↔BWRAM ran 100% too fast - HDMA ROM↔↔ROM ran 15% too fast - HDMA WRAM↔↔ROM ran 15% too fast - DMA ROM↔↔ROM ran 100% too fast After: - ROM↔↔ROM runs 14% too fast - HDMA WRAM↔↔ROM runs 7% too fast - DMA ROM↔↔ROM runs 4% too fast If you enable this with the fast PPU + DSP, your framerate in SA1 games will drop by 51%. And even if you disable it, you'll still lose 9% speed in SA1 games, and 2% speed in non-SA1 games, because of changes needed to make this support possible. By default, I'm leaving this off. Compile with `-DACCURATE_SA1` (or uncomment the line in sfc/sfc.hpp) if you want to try it out. This'll almost certainly cause some SA1 regressions, so I guess we'll tackle those as they arise.
This commit is contained in:
@@ -138,7 +138,7 @@ struct InputJoypadDirectInput {
|
||||
property.diph.dwHow = DIPH_DEVICE;
|
||||
device->GetProperty(DIPROP_GUIDANDPATH, &property.diph);
|
||||
string devicePath = (const char*)utf8_t(property.wszPath);
|
||||
jp.pathID = Hash::CRC32(devicePath.data(), devicePath.size()).value();
|
||||
jp.pathID = Hash::CRC32(devicePath).value();
|
||||
jp.hid->setVendorID(jp.vendorID);
|
||||
jp.hid->setProductID(jp.productID);
|
||||
jp.hid->setPathID(jp.pathID);
|
||||
|
@@ -266,7 +266,7 @@ private:
|
||||
auto createJoypadHID(Joypad& jp) -> void {
|
||||
jp.hid->setVendorID(jp.vendorID.hex());
|
||||
jp.hid->setProductID(jp.productID.hex());
|
||||
jp.hid->setPathID(Hash::CRC32(jp.deviceName.data(), jp.deviceName.size()).value());
|
||||
jp.hid->setPathID(Hash::CRC32(jp.deviceName).value());
|
||||
|
||||
for(uint n : range(jp.axes.size())) jp.hid->axes().append(n);
|
||||
for(uint n : range(jp.hats.size())) jp.hid->hats().append(n);
|
||||
|
Reference in New Issue
Block a user