bsnes/higan/systems
Tim Allen 876b4be1d2 Update to 20180726 release.
byuu says:

Once again, I wasn't able to complete a full WIP revision.

This WIP-WIP adds very sophisticated emulation of the Sega Genesis
Lock-On and Game Genie cartridges ... essentially, through recursion and
a linked list, higan supports an infinite nesting of cartridges.

Of course, on real hardware, after you stack more than three or four
cartridges, the power draw gets too high and things start glitching out
more and more as you keep stacking. I've heard that someone chained up
to ten Sonic & Knuckles cartridges before it finally became completely
unplayable.

And so of course, higan emulates this limitation as well ^-^. On the
fourth cartridge and beyond, it will become more and more likely that
address and/or data lines "glitch" out randomly, causing various
glitches. It's a completely silly easter egg that requires no speed
impact whatsoever beyond the impact of the new linked list cartridge
system.

I also designed the successor to Emulator::Interface::cap,get,set. Those
were holdovers from the older, since-removed ruby-style accessors.

In its place is the new Emulator::Interface::configuration,configure
API. There's the usual per-property access, and there's also access to
read and write all configurable options at once. In essence, this
enables introspection into core-specific features.

So far, you can control processor version#s, PPU VRAM size, video
settings, and hacks. As such, the .sys/manifest.bml files are no longer
necessary. Instead, it all goes into .sys/configuration.bml, which is
generated by the emulator if it's missing.

higan is going to take this even further and allow each option under
"Systems" to have its own editable configuration file. So if you wanted,
you could have a 1/1/1 SNES menu option, and a 2/1/3 SNES menu option.
Or a Model 1 Genesis option, and a Model 2 Genesis option. Or the
various Game Boy model revisions. Or an "SNES-Fast" and "SNES-Accurate"
option.

I've not fully settled on the syntax of the new configuration API. I
feel it might be useful to provide type information, but I really quite
passionately hate any<T> container objects. For now it's all
string-based, because strings can hold anything in nall.

I might also change the access rules. Right now it's like:
emulator→configure("video/blurEmulation", true); but it might be nicer
as "Video::Blur Emulation", or "Video.BlurEmulation", or something like
that.
2018-07-26 20:36:43 +10:00
..
Famicom.sys Update to v099r10 release. 2016-06-26 18:54:12 +10:00
Game Boy Advance.sys Update to v099r10 release. 2016-06-26 18:54:12 +10:00
Game Boy Color.sys Update to v099r10 release. 2016-06-26 18:54:12 +10:00
Game Boy.sys Update to v099r10 release. 2016-06-26 18:54:12 +10:00
Game Gear.sys Update to v101r08 release. 2016-08-17 22:31:22 +10:00
Master System.sys Update to v101r08 release. 2016-08-17 22:31:22 +10:00
Mega Drive.sys Update to v103r32 release. 2017-08-12 02:02:09 +10:00
PC Engine.sys Update to v101r30 release. 2017-01-12 07:27:30 +11:00
Pocket Challenge V2.sys Update to v106r17 release. 2018-04-25 19:34:43 +10:00
Super Famicom.sys Update to 20180726 release. 2018-07-26 20:36:43 +10:00
SuperGrafx.sys Update to v102r03 release. 2017-01-24 08:18:54 +11:00
WonderSwan Color.sys Update to v099r10 release. 2016-06-26 18:54:12 +10:00
WonderSwan.sys Update to v099r10 release. 2016-06-26 18:54:12 +10:00