mirror of
https://github.com/bsnes-emu/bsnes.git
synced 2025-10-05 04:32:00 +02:00
[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.
116 lines
1.7 KiB
C++
Executable File
116 lines
1.7 KiB
C++
Executable File
#ifndef SFC_HPP
|
|
namespace SuperFamicom {
|
|
#endif
|
|
|
|
struct ID {
|
|
enum : unsigned {
|
|
//cartridges (folders)
|
|
System,
|
|
SuperFamicom,
|
|
SuperGameBoy,
|
|
Satellaview,
|
|
SufamiTurboSlotA,
|
|
SufamiTurboSlotB,
|
|
|
|
//memory (files)
|
|
IPLROM,
|
|
|
|
ROM,
|
|
RAM,
|
|
|
|
EventROM0,
|
|
EventROM1,
|
|
EventROM2,
|
|
EventROM3,
|
|
EventRAM,
|
|
|
|
SA1ROM,
|
|
SA1IRAM,
|
|
SA1BWRAM,
|
|
|
|
SuperFXROM,
|
|
SuperFXRAM,
|
|
|
|
ArmDSP,
|
|
HitachiDSP,
|
|
HitachiDSPROM,
|
|
Nec7725DSP,
|
|
Nec96050DSP,
|
|
NecDSPRAM,
|
|
|
|
EpsonRTC,
|
|
SharpRTC,
|
|
|
|
SPC7110PROM,
|
|
SPC7110DROM,
|
|
SPC7110RAM,
|
|
|
|
SDD1ROM,
|
|
SDD1RAM,
|
|
|
|
OBC1RAM,
|
|
|
|
SuperGameBoyBootROM,
|
|
SuperGameBoyROM,
|
|
SuperGameBoyRAM,
|
|
|
|
BsxFlashROM,
|
|
BsxROM,
|
|
BsxRAM,
|
|
BsxPSRAM,
|
|
|
|
SufamiTurboSlotAROM,
|
|
SufamiTurboSlotBROM,
|
|
SufamiTurboSlotARAM,
|
|
SufamiTurboSlotBRAM,
|
|
|
|
//controller ports
|
|
Port1 = 1,
|
|
Port2 = 2,
|
|
};
|
|
};
|
|
|
|
struct Interface : Emulator::Interface {
|
|
double videoFrequency();
|
|
double audioFrequency();
|
|
|
|
bool loaded();
|
|
string sha256();
|
|
unsigned group(unsigned id);
|
|
void load(unsigned id, const string &manifest);
|
|
void save();
|
|
void load(unsigned id, const stream &stream, const string &markup = "");
|
|
void save(unsigned id, const stream &stream);
|
|
void unload();
|
|
|
|
void connect(unsigned port, unsigned device);
|
|
void power();
|
|
void reset();
|
|
void run();
|
|
|
|
bool rtc();
|
|
void rtcsync();
|
|
|
|
serializer serialize();
|
|
bool unserialize(serializer&);
|
|
|
|
void cheatSet(const lstring&);
|
|
|
|
void paletteUpdate();
|
|
|
|
//debugger functions
|
|
bool tracerEnable(bool);
|
|
void exportMemory();
|
|
|
|
Interface();
|
|
|
|
file tracer;
|
|
vector<Device> device;
|
|
};
|
|
|
|
extern Interface *interface;
|
|
|
|
#ifndef SFC_HPP
|
|
}
|
|
#endif
|