Why do games call system(32) for "more" prompts?

Post a reply


This question is a means of preventing automated form submissions by spambots.
Smilies
:smile: :sad: :eek: :shock: :cool: :-x :razz: :oops: :evil: :twisted: :wink: :idea: :arrow: :neutral: :mrgreen:

BBCode is ON
[img] is ON
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Why do games call system(32) for "more" prompts?

by Roody_Yogurt » Tue Mar 17, 2015 5:15 pm

Yeah, I meant in Roodylib, since it has a HiddenPause routine for "press a key" type stuff (although it's based on some Future Boy! code so it shows up in spots there, too).

by RealNC » Tue Mar 17, 2015 4:35 pm

Roody_Yogurt wrote:It's used as a fancy cursor-hider during "press a key" type things.
OK, that makes sense. I forgot about the blinking cursor hack in Hugor.

Honestly, I was unsure how much processing power such a trick would use up. If it's really drastic, I could change it so the cursor goes to the status window (which should be hidden in Hugor, right? even though it'd still show in the old official 'terp).
I assume you mean RoodyLib. No, I think keeping it as-is is a good idea. The CPU load can be reduced in Hugor itself, as right now it does some unnecessary screen repaints that I can cut down on. Since there's no output from the game during the delay/getkey loop, getting rid of the repaints should reduce the CPU load.

by Roody_Yogurt » Mon Mar 16, 2015 10:13 pm

It's used as a fancy cursor-hider during "press a key" type things. Honestly, I was unsure how much processing power such a trick would use up. If it's really drastic, I could change it so the cursor goes to the status window (which should be hidden in Hugor, right? even though it'd still show in the old official 'terp).

Why do games call system(32) for "more" prompts?

by RealNC » Mon Mar 16, 2015 8:43 pm

I recently noticed that almost every game seems to eat up CPU cycles when just waiting for a key press after showing a "more" prompt. They seem to do the following:

Code: Select all

while not key
{
    system(32)
    key = system(11)
}
I'm wondering what the reasoning is. I would have expected a "pause" statement instead of generating CPU load on something that should be a simple wait operation?

Top