bsnes/higan/sfc/chip/necdsp/necdsp.cpp

50 lines
1.2 KiB
C++
Raw Normal View History

#include <sfc/sfc.hpp>
Update to v072r09 release. Unfortunately, I missed the v072r08 release; it was taken down before I saw the announcement. byuu says (about v072r08): This WIP adds NEC uPD77C25 emulation. Unfortunately it's not at all functional yet, there are way too many things I don't understand about the chip. I'm absolutely going to need help to complete this. [...] For now, you need the included PCB XML to manually map the program/data ROM in, which are included with the archive. You'll have to rewrite the map yourself to run other DSP-1 games, unless they have the same layout as Mario Kart. I am using the US [!] version, name it mariokart.sfc and put all the archive files and the ROM together. From here, bsnes will load up the ROMs, and start executing instructions. Since the emulation is so incomplete, it just deadlocks on the "Nintendo" logo as if there were no DSP on the cart at all, but if you enable tracing, you'll see it actually starts doing a lot of stuff before getting stuck in a really long and confusing loop. [Note: the DSP-1B program and data ROMs are not included in this commit. The PCB XML file mentioned above looks like this: <?xml version='1.0' encoding='UTF-8'?> <cartridge region='NTSC'> <rom> <map mode='shadow' address='00-3f:8000-ffff'/> <map mode='linear' address='40-7f:0000-ffff'/> <map mode='shadow' address='80-bf:8000-ffff'/> <map mode='linear' address='c0-ff:0000-ffff'/> </rom> <ram size='800'> <map mode='linear' address='20-3f:6000-7fff'/> <map mode='linear' address='a0-bf:6000-7fff'/> <map mode='linear' address='70-7f:0000-ffff'/> </ram> <upd77c25 program="dsp1b-program.bin" data="dsp1b-data.bin"> <dr> <map address='00-1f:6000-6fff'/> <map address='80-9f:6000-6fff'/> </dr> <sr> <map address='00-1f:7000-7fff'/> <map address='80-9f:7000-7fff'/> </sr> </upd77c25> </cartridge> Save it as 'mariokart.xml'] byuu says (about v072r09): Fixes OP/LD RQM=1 on DR modify, Mario Kart can get in-game, but the track is completely corrupted. Reorders order of operations for OP, in an attempt to mimic parallelism. Added support for OP KLM DST. Added S1 flag setting, probably not correct.
2010-12-17 10:54:28 +00:00
#define NECDSP_CPP
namespace SuperFamicom {
Update to v072r09 release. Unfortunately, I missed the v072r08 release; it was taken down before I saw the announcement. byuu says (about v072r08): This WIP adds NEC uPD77C25 emulation. Unfortunately it's not at all functional yet, there are way too many things I don't understand about the chip. I'm absolutely going to need help to complete this. [...] For now, you need the included PCB XML to manually map the program/data ROM in, which are included with the archive. You'll have to rewrite the map yourself to run other DSP-1 games, unless they have the same layout as Mario Kart. I am using the US [!] version, name it mariokart.sfc and put all the archive files and the ROM together. From here, bsnes will load up the ROMs, and start executing instructions. Since the emulation is so incomplete, it just deadlocks on the "Nintendo" logo as if there were no DSP on the cart at all, but if you enable tracing, you'll see it actually starts doing a lot of stuff before getting stuck in a really long and confusing loop. [Note: the DSP-1B program and data ROMs are not included in this commit. The PCB XML file mentioned above looks like this: <?xml version='1.0' encoding='UTF-8'?> <cartridge region='NTSC'> <rom> <map mode='shadow' address='00-3f:8000-ffff'/> <map mode='linear' address='40-7f:0000-ffff'/> <map mode='shadow' address='80-bf:8000-ffff'/> <map mode='linear' address='c0-ff:0000-ffff'/> </rom> <ram size='800'> <map mode='linear' address='20-3f:6000-7fff'/> <map mode='linear' address='a0-bf:6000-7fff'/> <map mode='linear' address='70-7f:0000-ffff'/> </ram> <upd77c25 program="dsp1b-program.bin" data="dsp1b-data.bin"> <dr> <map address='00-1f:6000-6fff'/> <map address='80-9f:6000-6fff'/> </dr> <sr> <map address='00-1f:7000-7fff'/> <map address='80-9f:7000-7fff'/> </sr> </upd77c25> </cartridge> Save it as 'mariokart.xml'] byuu says (about v072r09): Fixes OP/LD RQM=1 on DR modify, Mario Kart can get in-game, but the track is completely corrupted. Reorders order of operations for OP, in an attempt to mimic parallelism. Added support for OP KLM DST. Added S1 flag setting, probably not correct.
2010-12-17 10:54:28 +00:00
#include "serialization.cpp"
NECDSP necdsp;
Update to v072r09 release. Unfortunately, I missed the v072r08 release; it was taken down before I saw the announcement. byuu says (about v072r08): This WIP adds NEC uPD77C25 emulation. Unfortunately it's not at all functional yet, there are way too many things I don't understand about the chip. I'm absolutely going to need help to complete this. [...] For now, you need the included PCB XML to manually map the program/data ROM in, which are included with the archive. You'll have to rewrite the map yourself to run other DSP-1 games, unless they have the same layout as Mario Kart. I am using the US [!] version, name it mariokart.sfc and put all the archive files and the ROM together. From here, bsnes will load up the ROMs, and start executing instructions. Since the emulation is so incomplete, it just deadlocks on the "Nintendo" logo as if there were no DSP on the cart at all, but if you enable tracing, you'll see it actually starts doing a lot of stuff before getting stuck in a really long and confusing loop. [Note: the DSP-1B program and data ROMs are not included in this commit. The PCB XML file mentioned above looks like this: <?xml version='1.0' encoding='UTF-8'?> <cartridge region='NTSC'> <rom> <map mode='shadow' address='00-3f:8000-ffff'/> <map mode='linear' address='40-7f:0000-ffff'/> <map mode='shadow' address='80-bf:8000-ffff'/> <map mode='linear' address='c0-ff:0000-ffff'/> </rom> <ram size='800'> <map mode='linear' address='20-3f:6000-7fff'/> <map mode='linear' address='a0-bf:6000-7fff'/> <map mode='linear' address='70-7f:0000-ffff'/> </ram> <upd77c25 program="dsp1b-program.bin" data="dsp1b-data.bin"> <dr> <map address='00-1f:6000-6fff'/> <map address='80-9f:6000-6fff'/> </dr> <sr> <map address='00-1f:7000-7fff'/> <map address='80-9f:7000-7fff'/> </sr> </upd77c25> </cartridge> Save it as 'mariokart.xml'] byuu says (about v072r09): Fixes OP/LD RQM=1 on DR modify, Mario Kart can get in-game, but the track is completely corrupted. Reorders order of operations for OP, in an attempt to mimic parallelism. Added support for OP KLM DST. Added S1 flag setting, probably not correct.
2010-12-17 10:54:28 +00:00
void NECDSP::Enter() { necdsp.enter(); }
void NECDSP::enter() {
while(true) {
if(scheduler.sync == Scheduler::SynchronizeMode::All) {
scheduler.exit(Scheduler::ExitReason::SynchronizeEvent);
}
exec();
step(1);
synchronize_cpu();
}
}
uint8 NECDSP::sr_read(unsigned) { cpu.synchronize_coprocessors(); return uPD96050::sr_read(); }
void NECDSP::sr_write(unsigned, uint8 data) { cpu.synchronize_coprocessors(); return uPD96050::sr_write(data); }
Update to v072r09 release. Unfortunately, I missed the v072r08 release; it was taken down before I saw the announcement. byuu says (about v072r08): This WIP adds NEC uPD77C25 emulation. Unfortunately it's not at all functional yet, there are way too many things I don't understand about the chip. I'm absolutely going to need help to complete this. [...] For now, you need the included PCB XML to manually map the program/data ROM in, which are included with the archive. You'll have to rewrite the map yourself to run other DSP-1 games, unless they have the same layout as Mario Kart. I am using the US [!] version, name it mariokart.sfc and put all the archive files and the ROM together. From here, bsnes will load up the ROMs, and start executing instructions. Since the emulation is so incomplete, it just deadlocks on the "Nintendo" logo as if there were no DSP on the cart at all, but if you enable tracing, you'll see it actually starts doing a lot of stuff before getting stuck in a really long and confusing loop. [Note: the DSP-1B program and data ROMs are not included in this commit. The PCB XML file mentioned above looks like this: <?xml version='1.0' encoding='UTF-8'?> <cartridge region='NTSC'> <rom> <map mode='shadow' address='00-3f:8000-ffff'/> <map mode='linear' address='40-7f:0000-ffff'/> <map mode='shadow' address='80-bf:8000-ffff'/> <map mode='linear' address='c0-ff:0000-ffff'/> </rom> <ram size='800'> <map mode='linear' address='20-3f:6000-7fff'/> <map mode='linear' address='a0-bf:6000-7fff'/> <map mode='linear' address='70-7f:0000-ffff'/> </ram> <upd77c25 program="dsp1b-program.bin" data="dsp1b-data.bin"> <dr> <map address='00-1f:6000-6fff'/> <map address='80-9f:6000-6fff'/> </dr> <sr> <map address='00-1f:7000-7fff'/> <map address='80-9f:7000-7fff'/> </sr> </upd77c25> </cartridge> Save it as 'mariokart.xml'] byuu says (about v072r09): Fixes OP/LD RQM=1 on DR modify, Mario Kart can get in-game, but the track is completely corrupted. Reorders order of operations for OP, in an attempt to mimic parallelism. Added support for OP KLM DST. Added S1 flag setting, probably not correct.
2010-12-17 10:54:28 +00:00
uint8 NECDSP::dr_read(unsigned) { cpu.synchronize_coprocessors(); return uPD96050::dr_read(); }
void NECDSP::dr_write(unsigned, uint8 data) { cpu.synchronize_coprocessors(); return uPD96050::dr_write(data); }
Update to v072r09 release. Unfortunately, I missed the v072r08 release; it was taken down before I saw the announcement. byuu says (about v072r08): This WIP adds NEC uPD77C25 emulation. Unfortunately it's not at all functional yet, there are way too many things I don't understand about the chip. I'm absolutely going to need help to complete this. [...] For now, you need the included PCB XML to manually map the program/data ROM in, which are included with the archive. You'll have to rewrite the map yourself to run other DSP-1 games, unless they have the same layout as Mario Kart. I am using the US [!] version, name it mariokart.sfc and put all the archive files and the ROM together. From here, bsnes will load up the ROMs, and start executing instructions. Since the emulation is so incomplete, it just deadlocks on the "Nintendo" logo as if there were no DSP on the cart at all, but if you enable tracing, you'll see it actually starts doing a lot of stuff before getting stuck in a really long and confusing loop. [Note: the DSP-1B program and data ROMs are not included in this commit. The PCB XML file mentioned above looks like this: <?xml version='1.0' encoding='UTF-8'?> <cartridge region='NTSC'> <rom> <map mode='shadow' address='00-3f:8000-ffff'/> <map mode='linear' address='40-7f:0000-ffff'/> <map mode='shadow' address='80-bf:8000-ffff'/> <map mode='linear' address='c0-ff:0000-ffff'/> </rom> <ram size='800'> <map mode='linear' address='20-3f:6000-7fff'/> <map mode='linear' address='a0-bf:6000-7fff'/> <map mode='linear' address='70-7f:0000-ffff'/> </ram> <upd77c25 program="dsp1b-program.bin" data="dsp1b-data.bin"> <dr> <map address='00-1f:6000-6fff'/> <map address='80-9f:6000-6fff'/> </dr> <sr> <map address='00-1f:7000-7fff'/> <map address='80-9f:7000-7fff'/> </sr> </upd77c25> </cartridge> Save it as 'mariokart.xml'] byuu says (about v072r09): Fixes OP/LD RQM=1 on DR modify, Mario Kart can get in-game, but the track is completely corrupted. Reorders order of operations for OP, in an attempt to mimic parallelism. Added support for OP KLM DST. Added S1 flag setting, probably not correct.
2010-12-17 10:54:28 +00:00
uint8 NECDSP::dp_read(unsigned addr) { cpu.synchronize_coprocessors(); return uPD96050::dp_read(addr); }
void NECDSP::dp_write(unsigned addr, uint8 data) { cpu.synchronize_coprocessors(); return uPD96050::dp_write(addr, data); }
Update to v072r09 release. Unfortunately, I missed the v072r08 release; it was taken down before I saw the announcement. byuu says (about v072r08): This WIP adds NEC uPD77C25 emulation. Unfortunately it's not at all functional yet, there are way too many things I don't understand about the chip. I'm absolutely going to need help to complete this. [...] For now, you need the included PCB XML to manually map the program/data ROM in, which are included with the archive. You'll have to rewrite the map yourself to run other DSP-1 games, unless they have the same layout as Mario Kart. I am using the US [!] version, name it mariokart.sfc and put all the archive files and the ROM together. From here, bsnes will load up the ROMs, and start executing instructions. Since the emulation is so incomplete, it just deadlocks on the "Nintendo" logo as if there were no DSP on the cart at all, but if you enable tracing, you'll see it actually starts doing a lot of stuff before getting stuck in a really long and confusing loop. [Note: the DSP-1B program and data ROMs are not included in this commit. The PCB XML file mentioned above looks like this: <?xml version='1.0' encoding='UTF-8'?> <cartridge region='NTSC'> <rom> <map mode='shadow' address='00-3f:8000-ffff'/> <map mode='linear' address='40-7f:0000-ffff'/> <map mode='shadow' address='80-bf:8000-ffff'/> <map mode='linear' address='c0-ff:0000-ffff'/> </rom> <ram size='800'> <map mode='linear' address='20-3f:6000-7fff'/> <map mode='linear' address='a0-bf:6000-7fff'/> <map mode='linear' address='70-7f:0000-ffff'/> </ram> <upd77c25 program="dsp1b-program.bin" data="dsp1b-data.bin"> <dr> <map address='00-1f:6000-6fff'/> <map address='80-9f:6000-6fff'/> </dr> <sr> <map address='00-1f:7000-7fff'/> <map address='80-9f:7000-7fff'/> </sr> </upd77c25> </cartridge> Save it as 'mariokart.xml'] byuu says (about v072r09): Fixes OP/LD RQM=1 on DR modify, Mario Kart can get in-game, but the track is completely corrupted. Reorders order of operations for OP, in an attempt to mimic parallelism. Added support for OP KLM DST. Added S1 flag setting, probably not correct.
2010-12-17 10:54:28 +00:00
void NECDSP::init() {
Update to v072r09 release. Unfortunately, I missed the v072r08 release; it was taken down before I saw the announcement. byuu says (about v072r08): This WIP adds NEC uPD77C25 emulation. Unfortunately it's not at all functional yet, there are way too many things I don't understand about the chip. I'm absolutely going to need help to complete this. [...] For now, you need the included PCB XML to manually map the program/data ROM in, which are included with the archive. You'll have to rewrite the map yourself to run other DSP-1 games, unless they have the same layout as Mario Kart. I am using the US [!] version, name it mariokart.sfc and put all the archive files and the ROM together. From here, bsnes will load up the ROMs, and start executing instructions. Since the emulation is so incomplete, it just deadlocks on the "Nintendo" logo as if there were no DSP on the cart at all, but if you enable tracing, you'll see it actually starts doing a lot of stuff before getting stuck in a really long and confusing loop. [Note: the DSP-1B program and data ROMs are not included in this commit. The PCB XML file mentioned above looks like this: <?xml version='1.0' encoding='UTF-8'?> <cartridge region='NTSC'> <rom> <map mode='shadow' address='00-3f:8000-ffff'/> <map mode='linear' address='40-7f:0000-ffff'/> <map mode='shadow' address='80-bf:8000-ffff'/> <map mode='linear' address='c0-ff:0000-ffff'/> </rom> <ram size='800'> <map mode='linear' address='20-3f:6000-7fff'/> <map mode='linear' address='a0-bf:6000-7fff'/> <map mode='linear' address='70-7f:0000-ffff'/> </ram> <upd77c25 program="dsp1b-program.bin" data="dsp1b-data.bin"> <dr> <map address='00-1f:6000-6fff'/> <map address='80-9f:6000-6fff'/> </dr> <sr> <map address='00-1f:7000-7fff'/> <map address='80-9f:7000-7fff'/> </sr> </upd77c25> </cartridge> Save it as 'mariokart.xml'] byuu says (about v072r09): Fixes OP/LD RQM=1 on DR modify, Mario Kart can get in-game, but the track is completely corrupted. Reorders order of operations for OP, in an attempt to mimic parallelism. Added support for OP KLM DST. Added S1 flag setting, probably not correct.
2010-12-17 10:54:28 +00:00
}
Update to v075 release. byuu says: This release brings improved Super Game Boy emulation, the final SHA256 hashes for the DSP-(1,1B,2,3,4) and ST-(0010,0011) coprocessors, user interface improvements, and major internal code restructuring. Changelog (since v074): - completely rewrote memory sub-system to support 1-byte granularity in XML mapping - removed Memory inheritance and MMIO class completely, any address can be mapped to any function now - SuperFX: removed SuperFXBus : Bus, now implemented manually - SA-1: removed SA1Bus : Bus, now implemented manually - entire bus mapping is now static, happens once on cartridge load - as a result, read/write handlers now handle MMC mapping; slower average case, far faster worst case - namespace memory is no more, RAM arrays are stored inside the chips they are owned by now - GameBoy: improved CPU HALT emulation, fixes Zelda: Link's Awakening scrolling - GameBoy: added serial emulation (cannot connect to another GB yet), fixes Shin Megami Tensei - Devichil - GameBoy: improved LCD STAT emulation, fixes Sagaia - ui: added fullscreen support (F11 key), video settings allows for three scale settings - ui: fixed brightness, contrast, gamma, audio volume, input frequency values on program startup - ui: since Qt is dead, config file becomes bsnes.cfg once again - Super Game Boy: you can now load the BIOS without a game inserted to see a pretty white box - ui-gameboy: can be built without SNES components now - libsnes: now a UI target, compile with 'make ui=ui-libsnes' - libsnes: added WRAM, APURAM, VRAM, OAM, CGRAM access (cheat search, etc) - source: removed launcher/, as the Qt port is now gone - source: Makefile restructuring to better support new ui targets - source: lots of other internal code cleanup work
2011-01-27 08:52:34 +00:00
void NECDSP::load() {
Update to v072r09 release. Unfortunately, I missed the v072r08 release; it was taken down before I saw the announcement. byuu says (about v072r08): This WIP adds NEC uPD77C25 emulation. Unfortunately it's not at all functional yet, there are way too many things I don't understand about the chip. I'm absolutely going to need help to complete this. [...] For now, you need the included PCB XML to manually map the program/data ROM in, which are included with the archive. You'll have to rewrite the map yourself to run other DSP-1 games, unless they have the same layout as Mario Kart. I am using the US [!] version, name it mariokart.sfc and put all the archive files and the ROM together. From here, bsnes will load up the ROMs, and start executing instructions. Since the emulation is so incomplete, it just deadlocks on the "Nintendo" logo as if there were no DSP on the cart at all, but if you enable tracing, you'll see it actually starts doing a lot of stuff before getting stuck in a really long and confusing loop. [Note: the DSP-1B program and data ROMs are not included in this commit. The PCB XML file mentioned above looks like this: <?xml version='1.0' encoding='UTF-8'?> <cartridge region='NTSC'> <rom> <map mode='shadow' address='00-3f:8000-ffff'/> <map mode='linear' address='40-7f:0000-ffff'/> <map mode='shadow' address='80-bf:8000-ffff'/> <map mode='linear' address='c0-ff:0000-ffff'/> </rom> <ram size='800'> <map mode='linear' address='20-3f:6000-7fff'/> <map mode='linear' address='a0-bf:6000-7fff'/> <map mode='linear' address='70-7f:0000-ffff'/> </ram> <upd77c25 program="dsp1b-program.bin" data="dsp1b-data.bin"> <dr> <map address='00-1f:6000-6fff'/> <map address='80-9f:6000-6fff'/> </dr> <sr> <map address='00-1f:7000-7fff'/> <map address='80-9f:7000-7fff'/> </sr> </upd77c25> </cartridge> Save it as 'mariokart.xml'] byuu says (about v072r09): Fixes OP/LD RQM=1 on DR modify, Mario Kart can get in-game, but the track is completely corrupted. Reorders order of operations for OP, in an attempt to mimic parallelism. Added support for OP KLM DST. Added S1 flag setting, probably not correct.
2010-12-17 10:54:28 +00:00
}
Update to v075 release. byuu says: This release brings improved Super Game Boy emulation, the final SHA256 hashes for the DSP-(1,1B,2,3,4) and ST-(0010,0011) coprocessors, user interface improvements, and major internal code restructuring. Changelog (since v074): - completely rewrote memory sub-system to support 1-byte granularity in XML mapping - removed Memory inheritance and MMIO class completely, any address can be mapped to any function now - SuperFX: removed SuperFXBus : Bus, now implemented manually - SA-1: removed SA1Bus : Bus, now implemented manually - entire bus mapping is now static, happens once on cartridge load - as a result, read/write handlers now handle MMC mapping; slower average case, far faster worst case - namespace memory is no more, RAM arrays are stored inside the chips they are owned by now - GameBoy: improved CPU HALT emulation, fixes Zelda: Link's Awakening scrolling - GameBoy: added serial emulation (cannot connect to another GB yet), fixes Shin Megami Tensei - Devichil - GameBoy: improved LCD STAT emulation, fixes Sagaia - ui: added fullscreen support (F11 key), video settings allows for three scale settings - ui: fixed brightness, contrast, gamma, audio volume, input frequency values on program startup - ui: since Qt is dead, config file becomes bsnes.cfg once again - Super Game Boy: you can now load the BIOS without a game inserted to see a pretty white box - ui-gameboy: can be built without SNES components now - libsnes: now a UI target, compile with 'make ui=ui-libsnes' - libsnes: added WRAM, APURAM, VRAM, OAM, CGRAM access (cheat search, etc) - source: removed launcher/, as the Qt port is now gone - source: Makefile restructuring to better support new ui targets - source: lots of other internal code cleanup work
2011-01-27 08:52:34 +00:00
void NECDSP::unload() {
}
void NECDSP::power() {
}
Update to v072r09 release. Unfortunately, I missed the v072r08 release; it was taken down before I saw the announcement. byuu says (about v072r08): This WIP adds NEC uPD77C25 emulation. Unfortunately it's not at all functional yet, there are way too many things I don't understand about the chip. I'm absolutely going to need help to complete this. [...] For now, you need the included PCB XML to manually map the program/data ROM in, which are included with the archive. You'll have to rewrite the map yourself to run other DSP-1 games, unless they have the same layout as Mario Kart. I am using the US [!] version, name it mariokart.sfc and put all the archive files and the ROM together. From here, bsnes will load up the ROMs, and start executing instructions. Since the emulation is so incomplete, it just deadlocks on the "Nintendo" logo as if there were no DSP on the cart at all, but if you enable tracing, you'll see it actually starts doing a lot of stuff before getting stuck in a really long and confusing loop. [Note: the DSP-1B program and data ROMs are not included in this commit. The PCB XML file mentioned above looks like this: <?xml version='1.0' encoding='UTF-8'?> <cartridge region='NTSC'> <rom> <map mode='shadow' address='00-3f:8000-ffff'/> <map mode='linear' address='40-7f:0000-ffff'/> <map mode='shadow' address='80-bf:8000-ffff'/> <map mode='linear' address='c0-ff:0000-ffff'/> </rom> <ram size='800'> <map mode='linear' address='20-3f:6000-7fff'/> <map mode='linear' address='a0-bf:6000-7fff'/> <map mode='linear' address='70-7f:0000-ffff'/> </ram> <upd77c25 program="dsp1b-program.bin" data="dsp1b-data.bin"> <dr> <map address='00-1f:6000-6fff'/> <map address='80-9f:6000-6fff'/> </dr> <sr> <map address='00-1f:7000-7fff'/> <map address='80-9f:7000-7fff'/> </sr> </upd77c25> </cartridge> Save it as 'mariokart.xml'] byuu says (about v072r09): Fixes OP/LD RQM=1 on DR modify, Mario Kart can get in-game, but the track is completely corrupted. Reorders order of operations for OP, in an attempt to mimic parallelism. Added support for OP KLM DST. Added S1 flag setting, probably not correct.
2010-12-17 10:54:28 +00:00
void NECDSP::reset() {
create(NECDSP::Enter, frequency);
uPD96050::power();
Update to v072r09 release. Unfortunately, I missed the v072r08 release; it was taken down before I saw the announcement. byuu says (about v072r08): This WIP adds NEC uPD77C25 emulation. Unfortunately it's not at all functional yet, there are way too many things I don't understand about the chip. I'm absolutely going to need help to complete this. [...] For now, you need the included PCB XML to manually map the program/data ROM in, which are included with the archive. You'll have to rewrite the map yourself to run other DSP-1 games, unless they have the same layout as Mario Kart. I am using the US [!] version, name it mariokart.sfc and put all the archive files and the ROM together. From here, bsnes will load up the ROMs, and start executing instructions. Since the emulation is so incomplete, it just deadlocks on the "Nintendo" logo as if there were no DSP on the cart at all, but if you enable tracing, you'll see it actually starts doing a lot of stuff before getting stuck in a really long and confusing loop. [Note: the DSP-1B program and data ROMs are not included in this commit. The PCB XML file mentioned above looks like this: <?xml version='1.0' encoding='UTF-8'?> <cartridge region='NTSC'> <rom> <map mode='shadow' address='00-3f:8000-ffff'/> <map mode='linear' address='40-7f:0000-ffff'/> <map mode='shadow' address='80-bf:8000-ffff'/> <map mode='linear' address='c0-ff:0000-ffff'/> </rom> <ram size='800'> <map mode='linear' address='20-3f:6000-7fff'/> <map mode='linear' address='a0-bf:6000-7fff'/> <map mode='linear' address='70-7f:0000-ffff'/> </ram> <upd77c25 program="dsp1b-program.bin" data="dsp1b-data.bin"> <dr> <map address='00-1f:6000-6fff'/> <map address='80-9f:6000-6fff'/> </dr> <sr> <map address='00-1f:7000-7fff'/> <map address='80-9f:7000-7fff'/> </sr> </upd77c25> </cartridge> Save it as 'mariokart.xml'] byuu says (about v072r09): Fixes OP/LD RQM=1 on DR modify, Mario Kart can get in-game, but the track is completely corrupted. Reorders order of operations for OP, in an attempt to mimic parallelism. Added support for OP KLM DST. Added S1 flag setting, probably not correct.
2010-12-17 10:54:28 +00:00
}
}