--- snes9x-1.51-src-orig/debug.cpp 2012-01-31 01:35:57 +0900 +++ snes9x-1.51-src/debug.cpp 2012-01-31 02:15:49 +0900 @@ -199,6 +199,11 @@ { uint8 Bank; uint16 Address; + } Write; + struct + { + uint8 Bank; + uint16 Address; } Unassemble; } Debug = { @@ -207,6 +212,9 @@ }, { 0, 0 + }, + { + 0, 0 } }; char *HelpMessage[] = { @@ -1664,6 +1672,39 @@ Debug.Dump.Address = Address; CPU.Cycles = Cycles; } + if (*Line == '>') + { + int32 Cycles = CPU.Cycles; + uint32 ValueToWrite; + int LineIndex; + + Bank = Debug.Write.Bank; + Address = Debug.Write.Address; + ErrorCode = GetStartAddress (Line, &Bank, &Address); + LineIndex = 1; + if (ErrorCode > 0) + { + LineIndex += 9; + } + while (sscanf(Line + LineIndex, " $%x", &ValueToWrite) == 1) + { + LineIndex += 4; + S9xSetByte (ValueToWrite, (Bank << 16) + Address); + if (Address == 0xFFFF) + { + Bank = Bank+1; + Address = 0; + } + else + { + Bank = Bank; + Address = Address+1; + } + } + Debug.Write.Bank = Bank; + Debug.Write.Address = Address; + CPU.Cycles = Cycles; + } if (*Line == 'q') S9xExit ();