I'm trying to find out how, and even if
, the two tracing versions of Gens decide if they are going to skip logging an instruction to their trace.log file.
According to the Trace readme file that comes with them they will only log an instruction at a given address once per trace run (1 'run' being when you turn tracing on and then off again) but I can see this is not the case, at least not in r57shell, by looking at the log file that is produced.
Now I can see the source to r57shell is available here: https://github.com/lab313ru/Gensida
(at least it is the source to a plug in based on it) and looking through the tracer.cpp file there I can see no mention or areas that look like they are filtering data. It is possible that the data isn't filtered in r57shell and the help file has just became outdated since the update was introduced. Equally possible is that this isn't the area of the program dedicated to writing file output which is likely as I see no references to that either, just to the debug window!
Can anyone offer any more information on how the filtering process actually works and if it is possible to turn it off so that every instruction that is executed gets logged (happy to edit the source and rebuild if required)?
January 21, 2016, 08:06:54 am - (Auto Merged - Double Posts are not allowed before 7 days.)
I ran a quick experiment last night and found I got the same instruction logged 64 times in both cases with a gap of about 100 instructions between them. I'm not saying there is a cap at 64 times for logging the instruction, in fact I am not saying anything as it is too early to draw any proper conclusions and I didn't have enough time to do any proper work on it.
My process was:
- Started up the rom (Toejam and Earl since everything I do is about T&E just now).
- Started a new game as quickly as possible to get to the point where Toejam is standing on level 1.
- Put on single frame advance and advanced the frames to frame 1000
- Enabled tracing.
- Frame advanced to frame 1100.
- Disabled tracing.
- Renamed the trace file.
- Repeated the process this time advancing for 1000 frames rather than 100.
- Compared the resultant files.
Obviously they didn't line up perfectly from the very first instruction logged since frames don't work like that (I may have taken a few frames longer on the menu screens for example) but they lined up pretty well when I searched for an arbitrary instruction in both files.
What was interesting is that this instruction was executed in both files exactly 64 times, despite the length of time logging in the second one being 10 times longer. It could just be that this address is part of a loop in the game that happens to execute 64 times (or in these instances happened to) which I think is the likely theory but like I said I need to check it out more.