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.
2. Add text limit to Memory Watch for experiment.
3. Make the IDs of controls in Memory Watch predefined rather than directly coded, that's not quite standard in programming. Calculations to ID is not always trusted as they are automatically determined by the development tool.
2. Add text limit to Memory Watch for experiment.
3. Make the IDs of controls in Memory Watch predefined rather than directly coded, that's not quite standard in programming. Calculations to ID is not always trusted as they are automatically determined by the development tool.
2. Separated cheat code and game genie in Cheat window.
3. Don't show a game genie code when affected address is under 0x8000.
4. Detail: set font for some edit control, replaced some static global variable.
5. Other details.
By the way, why there're so many useless brackets in some functions?
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.
7. Detail.
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.
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.