bsnes/nall
Tim Allen 65a3e6c676 Update to v106r49 release.
byuu says:

This is a fairly radical WIP with extreme changes to lots of very
important parts.

The result is a ~7% emulation speedup (with bsnes, unsure how much it
helps higan), but it's quite possible there are regressions. As such, I
would really appreciate testing as many games as possible ... especially
the old finnicky games that had issues with DMA and/or interrupts.

One thing to note is that I removed an edge case test that suppresses
IRQs from firing on the very last dot of every field, which is a
behavior I've verified on real hardware in the past. I feel that the
main interrupt polling function (the hottest portion of the entire
emulator) is not the appropriate place for it, and I should instead
factor it into assignment of NMITIMEN/VTIME/HTIME using the new
io.irqEnable (==virqEnable||hirqEnable) flag. But since I haven't done
that yet ... there's an old IRQ test ROM of mine that'll fail for this
WIP. No commercial games will ever rely on this, so it's fine for
testing.

Changelog:

  - sfc/cpu.smp: inlined the global status functions
  - sfc/cpu: added readRAM, writeRAM to use a function pointer instead
    of a lambda for WRAM access
  - sfc/cpu,smp,ppu/counter: updated reset functionality to new style
    using class inline initializers
  - sfc/cpu: fixed power(false) to invoke the reset vector properly
  - sfc/cpu: completely rewrote DMA handling to have per-channel
    functions
  - sfc/cpu: removed unused joylatch(), io.joypadStrobeLatch
  - sfc/cpu: cleaned up io.cpp handlers
  - sfc/cpu: simplified interrupt polling code using
    nall::boolean::flip(),raise(),lower() functions
  - sfc/ppu/counter: cleaned up the class significantly and also
    optimized things for efficiency
  - sfc/ppu/counter: emulated PAL 1368-clock long scanline when
    interlace=1, field=1, vcounter=311
  - sfc/smp: factored out the I/O and port handlers to io.cpp
2018-07-19 19:01:44 +10:00
..
arithmetic Update to v106r47 release. 2018-07-14 13:59:29 +10:00
beat Update to v106r30 release. 2018-05-28 11:16:27 +10:00
cipher Update to v101r19 release. 2016-10-28 08:16:58 +11:00
database Update to 20160106 OS X Preview for Developers release. 2016-01-07 19:17:15 +11:00
decode Update to v106r27 release. 2018-05-25 18:02:38 +10:00
dsp Update to v103r01 release. 2017-06-26 11:41:58 +10:00
elliptic-curve Update to v106r47 release. 2018-07-14 13:59:29 +10:00
emulation Update to v101r18 release. 2016-09-14 21:55:53 +10:00
encode Update to v106r45 release. 2018-07-02 11:57:04 +10:00
hash Update to v106r47 release. 2018-07-14 13:59:29 +10:00
http Update to v106r47 release. 2018-07-14 13:59:29 +10:00
image Update to v103r23 release. 2017-07-30 23:00:31 +10:00
mac Update to v106r30 release. 2018-05-28 11:16:27 +10:00
macos Update to v106r45 release. 2018-07-02 11:57:04 +10:00
posix Update to v106r30 release. 2018-05-28 11:16:27 +10:00
string Update to v106r47 release. 2018-07-14 13:59:29 +10:00
vector Update to v106r47 release. 2018-07-14 13:59:29 +10:00
vfs Update to v106r47 release. 2018-07-14 13:59:29 +10:00
windows Update to v103r14 release. 2017-07-15 22:00:20 +10:00
xorg Update to v101r19 release. 2016-10-28 08:16:58 +11:00
GNUmakefile Update to v106r48 release. 2018-07-16 16:16:26 +10:00
adaptive-array.hpp Update to v106r36 release. 2018-06-04 12:44:57 +10:00
algorithm.hpp Update to 20160106 OS X Preview for Developers release. 2016-01-07 19:17:15 +11:00
any.hpp Update to v101r19 release. 2016-10-28 08:16:58 +11:00
arithmetic.hpp Update to v101r19 release. 2016-10-28 08:16:58 +11:00
array.hpp Update to v106r36 release. 2018-06-04 12:44:57 +10:00
atoi.hpp Update to v101r02 release. 2016-08-09 21:07:18 +10:00
bit-field.hpp Update to v099r15 release. 2016-07-04 21:48:17 +10:00
bit-vector.hpp Update to v106r30 release. 2018-05-28 11:16:27 +10:00
bit.hpp Update to v101r02 release. 2016-08-09 21:07:18 +10:00
chrono.hpp Update to v100r16 release. 2016-08-03 22:32:40 +10:00
directory.hpp Update to v099r16 release (public beta). 2016-07-04 21:53:24 +10:00
dl.hpp Update to v104r15 release. 2017-09-29 20:36:35 +10:00
endian.hpp Update to 20160106 OS X Preview for Developers release. 2016-01-07 19:17:15 +11:00
file.hpp Update to v101r02 release. 2016-08-09 21:07:18 +10:00
filemap.hpp Update to 20160106 OS X Preview for Developers release. 2016-01-07 19:17:15 +11:00
function.hpp Update to v101r19 release. 2016-10-28 08:16:58 +11:00
hashset.hpp Update to v098r11 release. 2016-05-25 21:13:02 +10:00
hid.hpp Update to v106r26 release. 2018-05-24 12:14:17 +10:00
image.hpp Update to 20160106 OS X Preview for Developers release. 2016-01-07 19:17:15 +11:00
inode.hpp Update to v100r16 release. 2016-08-03 22:32:40 +10:00
interpolation.hpp Update to v098r14 release. 2016-06-01 21:23:22 +10:00
intrinsics.hpp Update to v106r25 release. 2018-05-23 13:45:24 +10:00
iterator.hpp Update to v106r47 release. 2018-07-14 13:59:29 +10:00
locale.hpp Update to v106r48 release. 2018-07-16 16:16:26 +10:00
location.hpp Update to v106r25 release. 2018-05-23 13:45:24 +10:00
main.hpp Update to v099r15 release. 2016-07-04 21:48:17 +10:00
map.hpp Update to 20160106 OS X Preview for Developers release. 2016-01-07 19:17:15 +11:00
matrix.hpp Update to v098r11 release. 2016-05-25 21:13:02 +10:00
maybe.hpp Update to v099r11 release. 2016-06-27 23:07:57 +10:00
memory.hpp Update to v106r30 release. 2018-05-28 11:16:27 +10:00
nall.hpp Update to v106r47 release. 2018-07-14 13:59:29 +10:00
path.hpp Update to v106r27 release. 2018-05-25 18:02:38 +10:00
platform.hpp Update to v106r2 release. 2018-02-01 19:20:37 +11:00
pointer.hpp Update to v106r36 release. 2018-06-04 12:44:57 +10:00
primitives.hpp Update to v106r49 release. 2018-07-19 19:01:44 +10:00
property.hpp Update to v099r09 release. 2016-06-25 18:53:11 +10:00
queue.hpp Update to v103r23 release. 2017-07-30 23:00:31 +10:00
random.hpp Update to v098r11 release. 2016-05-25 21:13:02 +10:00
range.hpp Update to v106r47 release. 2018-07-14 13:59:29 +10:00
run.hpp Update to v104r15 release. 2017-09-29 20:36:35 +10:00
serial.hpp Update to v098r08 release. 2016-05-02 19:57:04 +10:00
serializer.hpp Update to v106r45 release. 2018-07-02 11:57:04 +10:00
service.hpp Update to 20160106 OS X Preview for Developers release. 2016-01-07 19:17:15 +11:00
set.hpp Update to v098r11 release. 2016-05-25 21:13:02 +10:00
shared-memory.hpp Update to 20160106 OS X Preview for Developers release. 2016-01-07 19:17:15 +11:00
shared-pointer.hpp Update to v101r19 release. 2016-10-28 08:16:58 +11:00
smtp.hpp Update to v098r11 release. 2016-05-25 21:13:02 +10:00
sort.hpp Update to v098r11 release. 2016-05-25 21:13:02 +10:00
stdint.hpp Update to v101r19 release. 2016-10-28 08:16:58 +11:00
string.hpp Update to v106r47 release. 2018-07-14 13:59:29 +10:00
thread.hpp Update to v101r02 release. 2016-08-09 21:07:18 +10:00
traits.hpp Update to v101r19 release. 2016-10-28 08:16:58 +11:00
unique-pointer.hpp Update to v097r02 release. 2016-01-25 22:27:18 +11:00
utility.hpp Update to v101r15 release. 2016-09-04 23:51:27 +10:00
varint.hpp Update to v101r02 release. 2016-08-09 21:07:18 +10:00
vector.hpp Update to v106r47 release. 2018-07-14 13:59:29 +10:00
vfs.hpp Update to v099r05 release. 2016-06-20 21:00:32 +10:00