2010-08-09 13:28:56 +00:00
|
|
|
#ifndef NALL_STRING_HPP
|
|
|
|
#define NALL_STRING_HPP
|
|
|
|
|
2011-09-27 11:55:02 +00:00
|
|
|
#include <stdarg.h>
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <string.h>
|
|
|
|
|
|
|
|
#include <algorithm>
|
2010-08-09 13:28:56 +00:00
|
|
|
#include <initializer_list>
|
2013-05-05 09:21:30 +00:00
|
|
|
#include <memory>
|
2011-09-27 11:55:02 +00:00
|
|
|
|
2013-04-09 13:31:46 +00:00
|
|
|
#include <nall/platform.hpp>
|
2011-09-29 12:08:22 +00:00
|
|
|
#include <nall/atoi.hpp>
|
2011-09-27 11:55:02 +00:00
|
|
|
#include <nall/function.hpp>
|
2013-04-09 13:31:46 +00:00
|
|
|
#include <nall/intrinsics.hpp>
|
2011-07-07 12:59:26 +00:00
|
|
|
#include <nall/sha256.hpp>
|
2011-09-27 11:55:02 +00:00
|
|
|
#include <nall/stdint.hpp>
|
2010-08-09 13:28:56 +00:00
|
|
|
#include <nall/utility.hpp>
|
Update to v084r01 release.
I rewrote the S-SMP processor core (implementation of the 256 opcodes),
utilizing my new 6502-like syntax. It matches what bass v05r01 uses.
Took 10 hours.
Due to being able to group the "mov reg,mem" opcodes together with
"adc/sbc/ora/and/eor/cmp" sets, the total code size was reduced from
55.7KB to 42.5KB for identical accuracy and speed.
I also dropped the trick I was using to pass register variables as
template arguments, and instead just use a switch table to pass them as
function arguments. Makes the table a lot easier to read.
Passes all of my S-SMP tests, and all of blargg's
arithmetic/cycle-timing S-SMP tests. Runs Zelda 3 great as well. Didn't
test further.
This does have the potential to cause some regressions if I've messed
anything up, and none of the above tests caught it, so as always,
testing would be appreciated.
Anyway, yeah. By writing the actual processor with this new mnemonic
set, it confirms the parallels I've made.
My guess is that Sony really did clone the 6502, but was worried about
legal implications or something and changed the mnemonics last-minute.
(Note to self: need to re-enable snes.random before v085 official.)
EDIT: oh yeah, I also commented out the ALSA snd_pcm_drain() inside
term(). Without it, there is a tiny pop when the driver is
re-initialized. But with it, the entire emulator would lock up for five
whole seconds waiting on that call to complete. I'll take the pop any
day over that.
2011-11-17 12:05:35 +00:00
|
|
|
#include <nall/varint.hpp>
|
2011-09-27 11:55:02 +00:00
|
|
|
#include <nall/vector.hpp>
|
|
|
|
|
|
|
|
#include <nall/windows/utf8.hpp>
|
2010-08-09 13:28:56 +00:00
|
|
|
|
2011-09-29 12:44:49 +00:00
|
|
|
#define NALL_STRING_INTERNAL_HPP
|
2013-05-05 09:21:30 +00:00
|
|
|
#include <nall/string/char.hpp>
|
2010-08-09 13:28:56 +00:00
|
|
|
#include <nall/string/base.hpp>
|
2013-05-05 09:21:30 +00:00
|
|
|
#include <nall/string/ref.hpp>
|
2010-08-09 13:28:56 +00:00
|
|
|
#include <nall/string/cast.hpp>
|
2012-02-26 07:59:44 +00:00
|
|
|
#include <nall/string/core.hpp>
|
2012-10-22 22:45:18 +00:00
|
|
|
#include <nall/string/datetime.hpp>
|
2013-05-05 09:21:30 +00:00
|
|
|
#include <nall/string/file.hpp>
|
2010-08-09 13:28:56 +00:00
|
|
|
#include <nall/string/filename.hpp>
|
2013-01-21 12:27:15 +00:00
|
|
|
#include <nall/string/format.hpp>
|
2013-05-05 09:21:30 +00:00
|
|
|
#include <nall/string/list.hpp>
|
2010-10-14 10:07:38 +00:00
|
|
|
#include <nall/string/platform.hpp>
|
2010-08-09 13:28:56 +00:00
|
|
|
#include <nall/string/replace.hpp>
|
|
|
|
#include <nall/string/split.hpp>
|
|
|
|
#include <nall/string/utility.hpp>
|
|
|
|
#include <nall/string/variadic.hpp>
|
2010-10-14 10:07:38 +00:00
|
|
|
#include <nall/string/wrapper.hpp>
|
Update to v091r05 release.
[No prior releases were posted to the WIP thread. -Ed.]
byuu says:
Super Famicom mapping system has been reworked as discussed with the
mask= changes. offset becomes base, mode is gone. Also added support for
comma-separated fields in the address fields, to reduce the number of
map lines needed.
<?xml version="1.0" encoding="UTF-8"?>
<cartridge region="NTSC">
<superfx revision="2">
<rom name="program.rom" size="0x200000"/>
<ram name="save.rwm" size="0x8000"/>
<map id="io" address="00-3f,80-bf:3000-32ff"/>
<map id="rom" address="00-3f:8000-ffff" mask="0x8000"/>
<map id="rom" address="40-5f:0000-ffff"/>
<map id="ram" address="00-3f,80-bf:6000-7fff" size="0x2000"/>
<map id="ram" address="70-71:0000-ffff"/>
</superfx>
</cartridge>
Or in BML:
cartridge region=NTSC
superfx revision=2
rom name=program.rom size=0x200000
ram name=save.rwm size=0x8000
map id=io address=00-3f,80-bf:3000-32ff
map id=rom address=00-3f:8000-ffff mask=0x8000
map id=rom address=40-5f:0000-ffff
map id=ram address=00-3f,80-bf:6000-7fff size=0x2000
map id=ram address=70-71:0000-ffff
As a result of the changes, old mappings will no longer work. The above
XML example will run Super Mario World 2: Yoshi's Island. Otherwise,
you'll have to write your own.
All that's left now is to work some sort of database mapping system in,
so I can start dumping carts en masse.
The NES changes that FitzRoy asked for are mostly in as well.
Also, part of the reason I haven't released a WIP ... but fuck it, I'm
not going to wait forever to post a new WIP.
I've added a skeleton driver to emulate Campus Challenge '92 and
Powerfest '94. There's no actual emulation, except for the stuff I can
glean from looking at the pictures of the board. It has a DSP-1 (so
SR/DR registers), four ROMs that map in and out, RAM, etc.
I've also added preliminary mapping to upload high scores to a website,
but obviously I need the ROMs first.
2012-10-09 08:25:32 +00:00
|
|
|
#include <nall/string/markup/node.hpp>
|
|
|
|
#include <nall/string/markup/bml.hpp>
|
|
|
|
#include <nall/string/markup/xml.hpp>
|
|
|
|
#include <nall/string/markup/document.hpp>
|
2011-09-29 12:44:49 +00:00
|
|
|
#undef NALL_STRING_INTERNAL_HPP
|
2010-08-09 13:28:56 +00:00
|
|
|
|
|
|
|
#endif
|