=== debugsrch3.c ===
- Conveted search_entry with linked list to multidimensional array to improve saerch speed and entry free.
- Built-in search_entry into search_map.
- Changed search_map management from map tag to map index.
- Added description section into search_map. Auto search map creator gets handlers name as description now.
- Eased internal check for dsadd command. Now userdefined region by cheat is in searchable range.
- Added new search type, "range". It takes min and max parameters and picks up a value in that range.
- Added new command, "dsdetach". It detachs requested search_map then delete other maps.
- Refined print format to console and result view.
- Disabled "dsredo" command because it is not often used.
- Version up to 3 because of huge clearned up.
>> multidimensional array
The weakpoint of linked list is that it allocates memory discontinuously.
For exapmple, if you want to add an entry in $000000 - $FFFFFF with a byte, the system will allocate 16777216 entries in a memory with discontinuous address.
Modern CPU can treat with these entries like a shot and giga size memory can allocate even if the request has a lot of entries.
But memory access is still bottleneck so that sometimes it causes freeze for a little. Especially in freeing a memory.
Converting linked list to array will prevent from (or relieve) this problem.
Also changed the timing of back up for previous values/results in searching.
Previously, back up is done before comparing in looping a search_entry. Now backed up in block before started looping.
It requires freeing previous values/results before backing up but memory free is only one action because of multidimensinonal array.
>> range search
For example, "ds r(/range/ran/~),10,80" means "pick up a value with more than 10 and less than 80". So 11 is hit but 81 is not hit.
This search always requires min and max values so that it is impossible to compare previous value though.
If current has 10 search maps and you want to pick up No.6 map then delete other maps, input "dsdetach 6" (now requires map number instead of map tag).
It is the same command as previous "dedel !xx" (xx = map tag).
I learn detach() function for simple_list template so that new detaching search_map code is very simple.
=== debugsrchview3.c ===
- Removed the inheritance of debug_view_textbuf class from debug_view_search because this class doesn't support cursor and scroll keys.
- Displayed item select cursor in the viewer.
- Overridden view_char() to enable to move cursor and scroll viewer.
- Also version up synchronized debugsrch.
=== debugwin.c ===
- Hacked Viewer Window Switch key (Ctrl + Tab) to switch other viewer in the debugger.
[ATTACHED IMAGE - CLICK FOR FULL SIZE]
"Any company has no power to stop people emulating"
MAME is the emulator of no giving in the pressure from any company even if they don't allow