82 lines
2.6 KiB
Diff
82 lines
2.6 KiB
Diff
From 2bd1d4a577c8ac57f742635f3a139e9c192687fe Mon Sep 17 00:00:00 2001
|
|
From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
|
|
Date: Wed, 9 Nov 2011 00:30:36 +0200
|
|
Subject: [PATCH 1/6] Make libsnes compile
|
|
|
|
Changes between v083 and v084 had broken libsnes. Fix it so it at least
|
|
compiles.
|
|
---
|
|
ui-libsnes/libsnes.cpp | 37 +++++++++++++++++++++++++++++++++++--
|
|
1 files changed, 35 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/ui-libsnes/libsnes.cpp b/ui-libsnes/libsnes.cpp
|
|
index fbb4482..5f5ded6 100755
|
|
--- a/ui-libsnes/libsnes.cpp
|
|
+++ b/ui-libsnes/libsnes.cpp
|
|
@@ -1,5 +1,6 @@
|
|
#include "libsnes.hpp"
|
|
#include <snes/snes.hpp>
|
|
+#include <gameboy/gameboy.hpp>
|
|
|
|
#include <nall/snes/cartridge.hpp>
|
|
#include <nall/gameboy/cartridge.hpp>
|
|
@@ -46,6 +47,38 @@ struct Interface : public SNES::Interface {
|
|
print(text, "\n");
|
|
}
|
|
|
|
+ void setCheats(const lstring &list = lstring{}) {
|
|
+ if(SNES::cartridge.mode() == SNES::Cartridge::Mode::SuperGameBoy) {
|
|
+ GameBoy::cheat.reset();
|
|
+ for(auto &code : list) {
|
|
+ lstring codelist;
|
|
+ codelist.split("+", code);
|
|
+ for(auto &part : codelist) {
|
|
+ unsigned addr, data, comp;
|
|
+ if(GameBoy::Cheat::decode(part, addr, data, comp)) {
|
|
+ GameBoy::cheat.append({ addr, data, comp });
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ GameBoy::cheat.synchronize();
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ SNES::cheat.reset();
|
|
+ for(auto &code : list) {
|
|
+ lstring codelist;
|
|
+ codelist.split("+", code);
|
|
+ for(auto &part : codelist) {
|
|
+ unsigned addr, data;
|
|
+ if(SNES::Cheat::decode(part, addr, data)) {
|
|
+ SNES::cheat.append({ addr, data });
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ SNES::cheat.synchronize();
|
|
+ }
|
|
+
|
|
+
|
|
string path(SNES::Cartridge::Slot slot, const string &hint) {
|
|
return { basename, hint };
|
|
}
|
|
@@ -115,7 +148,7 @@ void snes_set_cartridge_basename(const char *basename) {
|
|
}
|
|
|
|
void snes_init(void) {
|
|
- interface.initialize(&interface);
|
|
+ SNES::system.init();
|
|
SNES::input.connect(SNES::Controller::Port1, SNES::Input::Device::Joypad);
|
|
SNES::input.connect(SNES::Controller::Port2, SNES::Input::Device::Joypad);
|
|
}
|
|
@@ -244,7 +277,7 @@ bool snes_load_cartridge_super_game_boy(
|
|
uint8_t *data = new uint8_t[dmg_size];
|
|
memcpy(data, dmg_data, dmg_size);
|
|
string xmldmg = (dmg_xml && *dmg_xml) ? string(dmg_xml) : GameBoyCartridge(data, dmg_size).markup;
|
|
- GameBoy::cartridge.load(xmldmg, data, dmg_size);
|
|
+ GameBoy::cartridge.load(GameBoy::System::Revision::SuperGameBoy, xmldmg, data, dmg_size);
|
|
delete[] data;
|
|
}
|
|
SNES::cartridge.load(SNES::Cartridge::Mode::SuperGameBoy, xmlrom);
|
|
--
|
|
1.7.8.3.g027b7
|
|
|