* Configurable Hex Editor text colors.
* Add a customizable color for address title.
* 1. Add some more colors to Debugger highlight
2. Sorting all the colors out for future customization.
3. Re-arranged some includes.
* Make the debugger highlight color customizable.
* Move the button to the right and make the default window size wider.
* Adding color icons and hex values to the color menu items.
* 1. Enlarge the color icon a few pixels
* Debugger and Hex Editor shares the same custom color buffer.
This function finally completed. I believe there is no more details can be developed in recent period.
* 1. Add icon to color menu in another way to prevent the odd space between icons and text.
2. Free some malloc() resources when exit, though it would be somehow eventually recycled by system, but that's not a good rabbit.
3. GetROMName and GetROMPath has malloc() and called so many times in the code, it seems there's no any free() call for their returned char*, it's OK to make them directly return a std::string which is more comfortable for use.
* I forgot hDebug is still NULL in WM_INITDIALOG.
* 1. Rewrite debugger resizing logic, now all the controls on the dialog can stretch and shrink with the window size, when you enlarge the window, the controls on the right is also stretched to fit the height.
2. Moved Syntax highlight and Default window size button to the menu bar, in the past, if the window size is too small to show the default size button on the bottom right corner, it can't be pressed to restore the window, but now you can press it anytime.
* Changed ID of color menu to prevent conflict of some existing dialog controls.
* I don't know why restore default window size cannot be done before game loaded.
* 1. Fix Debugger default width with IDA font.
2. Fix Hex Editor single byte highlight in red.
Since this bug was forgotten by developers for years, saving the missing data along with the other preferences would make the emulator backward incompatible. So I finally decided to append them to the end of the preferences.
The older version of FCEUX didn't read/write the .deb file that far, they would stop earlier though the file created by the newer version has more data, because they don't have the appended code.
I hope this modification doesn't break anything as I've tried my best to prevent incompatibilities.
We're facing a difficult choice here, fortunately, it looks like the preferences of Hex Editor stores at last of .deb, so I can just append information in the function. However what could we do if someday someone found a bug in the middle of the deb file such as debuggers etc? As we can only append data, the functions have to be split into more parts, which is damage to the code maintainability and readability.
The problems can't be easily resolved as far as I can think, although currently it is possible to make it work without too much problems.
2. Improved Bookmark Editing Dialog of Hex Editor, now it can edit almost all properties the bookmark has, you can directly change its address and even its view.
3. Changed some logic of debugger bookmark, the address can be directly changed in the dialog.
4. Decoupled Debugger and Hex Editor bookmark editing dialogs and callback functions from sharing one dialog, as they are not in the same system, the differences is worth to make them apart.
5. Disabled input barcode menu in movie recording and no game loading.
6. Detail.
* correcting x64 configurations to actually use x64
defining NOMINMAX to fix std::max error
* more preprocessor definitions for x64
* 64-bit libraries from the last published version of DXSDK with dinput
* should define WIN64 as well? unfortunately seem to require retention of WIN32
* added an x64 build of luaperks.lib, this compiles links and runs now
* relocate win32 luaperks.lib to src/drivers/win/lua/win32 and leave a note explaining it
* luaperks.lib x64 needed to be /MT
two more missing x64 libs
debug x64 configuration was set to compile C++ as C?
* importing the rest of the usable WIN32 preprocessor defines, debugger now functions!
* revert unnecessary VS solution version change
* 64-bit lua working (fixed the 64-bit build of luaperks.lib)
* VSUIENTRY hashes are unsigned, not signed
* more hashes that are actually unsigned
* fix a few pointer to int casts in lua console
* fix a few more pointer truncations in windows dialog stuff
a few printf arguments need a cast to int
* explicit size_t cast to quiet spurious warnings on an inline function
2. As bbbradsmith in Pull Request #62 mentioned, SetWindowLong is replaced by SetWindowLongPtr for 64 bit compatible, I partially changed those written by myself.
2. Fix a bug, when the cheat editing controls lost focus, but editing mode is still there, which makes case EN_UPDATE triggered when user is not typing in them, that's an inappropriate circumstance. It might make the cheat editing control shows nothing when selecting a cheat.
3. Re-arranged some controls in resource file.
4. Changed some directory dialog logic, use defined ID rather than hard-code the actural number.
5. Detail.
1. Added a global switch for all cheats, it is checked by default. Check or uncheck it can quickly tweak all cheats enabled or disabled. It's not game specific and effective to all games.
2. Added a checkmark to check behaviour of automatically load cheats.
3. Fixed a wierd bug in loading names of cheats from file.
iNES Header Editor:
4. Disable iNES header editor menu when currently loaded game is not in iNES format.
Others:
5. Some of the checkbox passed parameter MF_CHECKED, the right one is BST_CHECKED, though they have the same value.
6. Code/Data Logger is created by CreateDialog(), but destroyed by EndDialog()? A non-modal window should be destroy by DestroyWindow(), EndDialog() is for DialogBox(). It seems nobody noticed this bug for years.
Currently there are some opposite tweaks in the config file for the new feature in cheat console, for example the unchcecked state is 1 in config file, that's for backward compatibility.
The iNES header editor might not quite stable as newly baked from the oven, there might be some improvements to its code.
the debugger was replacing comments and names inside a buffer returned from the old portable disassembly function, which was returning a privately retained 64 byte buffer. previously names were limited to 30 characters, so it's possible expanding names in disassembly never blew that buffer.
testing of the 0d26e6f commit either stressed it harder than ever before, or hard enough to break it for the first time
solved by copying the disassembly buffer into a new buffer for expanding address labels to names, etc
* Debugger: single click on any address copies this address to the "Seek To" field and "Bookmark Add" field
* Debugger: "Name" button in Bookmarks, total revamp of Bookmarks
* updated docs
[[Split portion of a mixed commit.]]
* Debugger: fixed mouseover when using Symbolic debugging
* Debugger: mouseover works for the disassembly window too
* updated docs
[[Split portion of a mixed commit.]]
* Taseditor: AdjustDown operation now works faster (not rewinding anymore)
* Taseditor: AdjustLag always combines with current History item, not creating its own item in the History Log
* Debugger: changed "Load .DEB" checkbox caption to ".DEB files" to emphasize that it also affects saving .deb files, not just loading them
* updated docs
* Taseditor: fixed extremely rare LagLog bug in History.jump() and RegisterBranching
* Taseditor: fixed RegisterLuaChange to also consider LagLog changes
[[Split portion of a mixed commit.]]