This commit is contained in:
Pierre 2021-11-13 20:13:42 +01:00
commit 3e8733f292
9 changed files with 22 additions and 16 deletions

View file

@ -901,7 +901,7 @@ bool Debugger::ProcessRamOperation(MemoryOperationType type, uint16_t &addr, uin
_currentReadValue = nullptr;
if(type == MemoryOperationType::Write) {
if(_runToCycle == -1 && !CheckFlag(DebuggerFlags::IgnoreRedundantWrites) || _memoryManager->DebugRead(addr) != value) {
if((_runToCycle == -1 && !CheckFlag(DebuggerFlags::IgnoreRedundantWrites)) || (_memoryManager->DebugRead(addr) != value)) {
_memoryAccessCounter->ProcessMemoryWrite(addressInfo, _cpu->GetCycleCount());
}
@ -916,7 +916,7 @@ bool Debugger::ProcessRamOperation(MemoryOperationType type, uint16_t &addr, uin
}
} else if(addr >= 0x4018 && _mapper->IsWriteRegister(addr)) {
_eventManager->AddDebugEvent(DebugEventType::MapperRegisterWrite, addr, value);
} else if(addr >= 0x4000 && addr <= 0x4015 || addr == 0x4017) {
} else if((addr >= 0x4000 && addr <= 0x4015) || addr == 0x4017) {
_eventManager->AddDebugEvent(DebugEventType::ApuRegisterWrite, addr, value);
} else if(addr == 0x4016) {
_eventManager->AddDebugEvent(DebugEventType::ControlRegisterWrite, addr, value);

View file

@ -130,7 +130,7 @@ private:
}
}
}
if ((currentRegister == 0x29)) {
if (currentRegister == 0x29) {
//std::cout << std::hex << "value: " << value << std::endl;
if ((value & 0x3 && (value & 0x80))) {
//if ((value & 0x3 )) {

View file

@ -826,6 +826,8 @@ int LuaApi::GetAccessCounters(lua_State *lua)
lua_rawseti(lua, -2, i);
}
break;
default:
break;
}
return 1;

View file

@ -133,7 +133,7 @@ void MemoryManager::Write(uint16_t addr, uint8_t value, MemoryOperationType oper
{
if(_console->DebugProcessRamOperation(operationType, addr, value)) {
_ramWriteHandlers[addr]->WriteRAM(addr, value);
if ((addr == 0x4016) /*| (addr >= 0x401c && addr <= 0x401f)*/) {
if (addr == 0x4016) {
_ramWriteHandlers[0xE000]->WriteRAM(addr, value);
}
}
@ -165,6 +165,7 @@ uint32_t MemoryManager::ToAbsolutePrgAddress(uint16_t ramAddr)
void MemoryManager::StreamState(bool saving)
{
(void)saving;
ArrayInfo<uint8_t> internalRam = { _internalRAM, MemoryManager::InternalRAMSize };
Stream(internalRam);
}

View file

@ -58,16 +58,17 @@ public:
{
_readCount = 0;
_stateBuffer =
IsPressed(PartyTap::Buttons::B1) ? 1 : 0 |
IsPressed(PartyTap::Buttons::B2) ? 2 : 0 |
IsPressed(PartyTap::Buttons::B3) ? 4 : 0 |
IsPressed(PartyTap::Buttons::B4) ? 8 : 0 |
IsPressed(PartyTap::Buttons::B5) ? 16 : 0 |
IsPressed(PartyTap::Buttons::B6) ? 32 : 0;
(IsPressed(PartyTap::Buttons::B1) ? 1 : 0) |
(IsPressed(PartyTap::Buttons::B2) ? 2 : 0) |
(IsPressed(PartyTap::Buttons::B3) ? 4 : 0) |
(IsPressed(PartyTap::Buttons::B4) ? 8 : 0) |
(IsPressed(PartyTap::Buttons::B5) ? 16 : 0) |
(IsPressed(PartyTap::Buttons::B6) ? 32 : 0);
}
void WriteRAM(uint16_t addr, uint8_t value) override
{
(void)addr;
StrobeProcessWrite(value);
}
};

View file

@ -63,7 +63,6 @@ protected:
void UpdateState()
{
MemoryAccessType access = _prgRamEnabled ? MemoryAccessType::ReadWrite : MemoryAccessType::NoAccess;
SetCpuMemoryMapping(0x6000, 0x7FFF, 0, HasBattery() ? PrgMemoryType::SaveRam : PrgMemoryType::WorkRam);
if(_usingExternalRom) {

View file

@ -533,6 +533,7 @@ namespace Mesen.GUI.Debugger
new List<string> {"func","emu.getState","emu.getState()","","* Table* Current emulation state","Return a table containing information about the state of the CPU, PPU, APU and cartridge."},
new List<string> {"func","emu.setState","emu.setState(state)","state - *Table* A table containing the state of the emulation to apply.","","Updates the CPU and PPU's state.\nThe* state* parameter must be a table in the same format as the one returned by getState()\nNote: the state of the APU or cartridge cannot be modified by using setState()." },
new List<string> {"func","emu.breakExecution","emu.breakExecution()","","","Breaks the execution of the game and displays the debugger window."},
new List<string> {"func","emu.stop","emu.stop()","","","Stops execution of the game."},
new List<string> {"func","emu.execute","emu.execute(count, type)","count - *Integer* The number of cycles or instructions to run before breaking\ntype - *Enum* See executeCountType","","Runs the emulator for the specified number of cycles/instructions and then breaks the execution."},
new List<string> {"func","emu.reset","emu.reset()","","","Resets the current game."},
new List<string> {"func","emu.resume","emu.resume()","","","Resumes execution after breaking."},

View file

@ -148,11 +148,13 @@ namespace Mesen.GUI.Forms
private void btnOK_Click(object sender, EventArgs e)
{
this.DialogResult = ((Button)sender).DialogResult;
this.Close();
}
private void btnCancel_Click(object sender, EventArgs e)
{
this.DialogResult = ((Button)sender).DialogResult;
this.Close();
}
}

View file

@ -234,7 +234,7 @@ static void fchecksize (LoadState *S, size_t size, const char *tname) {
#define checksize(S,t) fchecksize(S,sizeof(t),#t)
static void checkHeader (LoadState *S) {
checkliteral(S, LUA_SIGNATURE + 1, "not a"); /* 1st char already checked */
checkliteral(S, &LUA_SIGNATURE[1], "not a"); /* 1st char already checked */
if (LoadByte(S) != LUAC_VERSION)
error(S, "version mismatch in");
if (LoadByte(S) != LUAC_FORMAT)