Donkey Kong Forum
General Donkey Kong Discussion => General Donkey Kong Discussion => Topic started by: stella_blue on February 18, 2013, 09:52:59 am
-
I know this is an ass backwards approach, but I typically use Jeff's DK pace program while playing back a previously recorded INP, rather than during a live recording session. I do it that way because I dislike playing DK within a window; I feel somewhat "fenced in" by the vertical borders on either side. I much prefer playing the game in full screen mode.
Anyway, here is what I observed:
While recently reviewing a game in playback mode, something on TV caught my attention, so I pressed "P" to pause the game. When I returned a minute or two later, I noticed that my stage score up to that point was being displayed, as if I had already completed the screen. I pressed "P" again to resume playback. After the stage was actually finished, the remaining points I had accumulated (after the pause) were displayed as though a death had occurred on the following stage.
Perhaps a concrete example will help (I've also attached a screenshot):
- I begin an elevator stage (Level 5-4) with 0 deaths.
- I collect the first 2 prizes for 1600 points.
- I press "P" to pause playback.
- Pauline displays 1600 as my "springs" score (and also beside the "prev" label).
- I press "P" again to resume playback.
- I complete the stage with 5500 remaining on the timer, having scored no other points along the way.
- The following barrel stage (Level 5-5) begins.
- Pauline displays 5500 as points earned from a death on Level 5-5.
So, my actual score of 7100 for Level 5-4 ends up being split into 2 categories:
- 1600 for the completed elevator stage
- 5500 for a death, that never occurred, on the following barrel stage
I tried to reproduce the results for all screen types. I found that I was able to trigger the effect (fairly consistently, but not 100%) on the pie factory and elevator stages, but was unable to do so on the barrel and rivet stages.
I'm not trying to suggest that the program contains a bug; it's just something I noticed, and was naturally curious about. After all, I'm not really using the program as intended, and pressing "P" while in recording mode has no effect.
Jeff, can you think of any reason why I would see the results I described on the conveyors/elevators, but not on the barrels/rivets?
-
Probably got to do with the way it scrapes the screen to get the information.
While I was messing with some save states the other day I had it telling me I got -1 points for a previous lvl.
There is a log file that seems to have the data from the last time paulini was run. If you still have it it might be able to decifer what went on. My guess is that the pause made it think you died. Probably due to fireball or springs not moving for some time.
Just a guess anyway
Nick
-
It has to do with the screen darkening when the game is paused. There's an option in MAME to not-darken the screen when paused. If you set that, you can pause the game without this problem.
-
Thanks, Chris. I changed the "pause brightness" from 0.65 to 1.00, and the situation has yet to resurface.
I'm still curious as to why the problem was only observed on 2 screen types, rather than all 4.
-
Probably just due to the colors it looks for in a particular spot on each board to differentiate between them. The darkness probably affects the program more on certain boards more than others.
-
I looked into this and I was able to reproduce the same results as you. Chris is right, the problem is the darkening of the screen. Basically, when the screen is dark it thinks its on a barrel screen instead of the elevator/pie factory, which makes it think that you have already moved on to the next screen. Then when you do actually finish the screen and move on to the barrels, it thinks your playing barrels for a second time so it assumes a death occurred.
The reason why darkening the screen makes it think pie factory/elevators are barrels is because the current colour detection is pretty flawed right now. The dark yellow that happens when the game is paused it actually evaluates as being red and not yellow, which causes it to think that yellow girders are red girders and the elevator base is also a red girder, so it thinks the pie factory and elevator screens are barrel screens. I think the colour detection can be improved by looking at ratios of red to green to blue instead of looking at the absolute amount of red/green/blue, which would probably fix this.
-
Thanks for the explanation, Jeff. Makes perfect sense.