bsnes/nall
Tim Allen 4c3f9b93e7 Update to v102r12 release.
byuu says:

Changelog:

  - MD/PSG: fixed 68K bus Z80 status read address location
  - MS, GG, MD/PSG: channels post-decrement their counters, not
    pre-decrement [Cydrak]¹
  - MD/VDP: cache screen width registers once per scanline; screen
    height registers once per frame
  - MD/VDP: support 256-width display mode (used in Shining Force, etc)
  - MD/YM2612: implemented timers²
  - MD/YM2612: implemented 8-bit PCM DAC²
  - 68000: TRAP instruction should index the vector location by 32 (eg
    by 128 bytes), fixes Shining Force
  - nall: updated hex(), octal(), binary() functions to take uintmax
    instead of template<typename T> parameter³

¹: this one makes an incredible difference. Sie noticed that lots of
games set a period of 0, which would end up being a really long period
with pre-decrement. By fixing this, noise shows up in many more games,
and sounds way better in games even where it did before. You can hear
extra sound on Lunar - Sanposuru Gakuen's title screen, the noise in
Sonic The Hedgehog (Mega Drive) sounds better, etc.

²: this also really helps sound. The timers allow PSG music to play
back at the correct speed instead of playing back way too quickly. And
the PCM DAC lets you hear a lot of drum effects, as well as the
"Sega!!" sound at the start of Sonic the Hedgehog, and the infamous,
"Rise from your grave!" line from Altered Beast.

Still, most music on the Mega Drive comes from the FM channels, so
there's still not a whole lot to listen to.

I didn't implement Cydrak's $02c test register just yet. Sie wasn't 100%
certain on how the extended DAC bit worked, so I'd like to play it a
little conservative and get sound working, then I'll go back and add a
toggle or something to enable undocumented registers, that way we can
use that to detect any potential problems they might be causing.

³: unfortunately we lose support for using hex() on nall/arithmetic
types. If I have a const Pair& version of the function, then the
compiler gets confused on whether Natural<32> should use uintmax or
const Pair&, because compilers are stupid, and you can't have explicit
arguments in overloaded functions. So even though either function would
work, it just decides to error out instead >_>

This is actually really annoying, because I want hex() to be useful for
printing out nall/crypto keys and hashes directly.

But ... this change had to be made. Negative signed integers would crash
programs, and that was taking out my 68000 disassembler.
2017-02-27 19:45:51 +11:00
..
arithmetic Update to v102r12 release. 2017-02-27 19:45:51 +11:00
beat Update to v101r19 release. 2016-10-28 08:16:58 +11: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 v101r19 release. 2016-10-28 08:16:58 +11:00
dsp Update to v098r15 release. 2016-06-05 14:52:43 +10:00
elliptic-curve Update to v101r19 release. 2016-10-28 08:16:58 +11:00
emulation Update to v101r18 release. 2016-09-14 21:55:53 +10:00
encode Update to v101r19 release. 2016-10-28 08:16:58 +11:00
hash Update to v101r19 release. 2016-10-28 08:16:58 +11:00
http Update to v101r18 release. 2016-09-14 21:55:53 +10:00
image Update to v098r10 release. 2016-05-16 19:51:12 +10:00
mac Update to v101r19 release. 2016-10-28 08:16:58 +11:00
mosaic Update to v099r15 release. 2016-07-04 21:48:17 +10:00
posix Update to v099r14 release. 2016-07-01 21:50:32 +10:00
string Update to v102r12 release. 2017-02-27 19:45:51 +11:00
vector Update to v101r18 release. 2016-09-14 21:55:53 +10:00
vfs Update to v101r02 release. 2016-08-09 21:07:18 +10:00
windows Update to v101r19 release. 2016-10-28 08:16:58 +11:00
xorg Update to v101r19 release. 2016-10-28 08:16:58 +11:00
GNUmakefile Update to v102r06 release. 2017-02-11 10:56:42 +11: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 v101r07 release. 2016-08-15 14:56:38 +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 v098r19 release. 2016-06-09 08:26:35 +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 v101r02 release. 2016-08-09 21:07:18 +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 v098r11 release. 2016-05-25 21:13:02 +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 v098r11 release. 2016-05-25 21:13:02 +10:00
location.hpp Update to v099r16 release (public beta). 2016-07-04 21:53: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 v101r19 release. 2016-10-28 08:16:58 +11:00
mosaic.hpp Update to 20160106 OS X Preview for Developers release. 2016-01-07 19:17:15 +11:00
nall.hpp Update to v101r19 release. 2016-10-28 08:16:58 +11:00
path.hpp Update to v099r16 release (public beta). 2016-07-04 21:53:24 +10:00
platform.hpp Update to v101r24 release. 2016-12-17 22:31:34 +11:00
primitives.hpp Update to v101r19 release. 2016-10-28 08:16:58 +11:00
property.hpp Update to v099r09 release. 2016-06-25 18:53:11 +10:00
queue.hpp Update to v098r13 release. 2016-06-01 08:29:36 +10:00
random.hpp Update to v098r11 release. 2016-05-25 21:13:02 +10:00
range.hpp Update to v098r08 release. 2016-05-02 19:57:04 +10:00
run.hpp Update to v099r15 release. 2016-07-04 21:48:17 +10:00
serial.hpp Update to v098r08 release. 2016-05-02 19:57:04 +10:00
serializer.hpp Update to v100r15 release. 2016-07-31 12:11:20 +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 v102r12 release. 2017-02-27 19:45:51 +11: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 v101r18 release. 2016-09-14 21:55:53 +10:00
vfs.hpp Update to v099r05 release. 2016-06-20 21:00:32 +10:00