Re: C64 Wizardry: GPs "Formula" In New Char Creation? [message #208949 is a reply to message #208938] |
Mon, 01 August 2011 18:25   |
Anton Treuenfels
Messages: 105 Registered: December 2011
Karma:
|
Senior Member |
|
|
"Ross Ridge" <rridge@csclub.uwaterloo.ca> wrote in message
news:j14hco$1pi$1@rumours.uwaterloo.ca...
> Anton Treuenfels <teamtempest@yahoo.com> wrote:
>> To "read the code" you'd have to start with a UCSD Pascal p-code
>> decompiler.
>> Got one handy?
>
> Ah, that explains why it was so slow.
>
> Ross Ridge
Not really.
There's a user-settable wait time between player moves that, at its default
value, results in a fair amount of "busy waiting" by the p-code interpreter
(literally - it sets one of the CIA timers and watches until it counts
down). Set that wait time value to its minimum and the game speeds up
considerably.
The other major slow down occurs because of the slow serial links of the
Commodore floppy drives. The p-code interpreter is capable of handling code
overlays, and "Wizardry" uses all that UCSD Pascal provides. The two most
commonly used overlays are cached "under" the Kernel ROM in a stock C64, but
the rest have to be read anew each time they are used. Even with "fast
transfer" routines providing about a 5X speed-up and custom sector
interleave to take best advantage of that, it's still pretty annoying.
The best speed-up here is to provide more memory. Run on a stock C128 and
most of Bank One is used for caching. Stick a 1764 RAM expander in either
and everything possible gets cached.
That plus reduced move wait time makes "Proving Grounds" a very responsive
game.
After "Proving Grounds", intepreters for the others in the series know about
all the 17xx RAM expanders. The C128 versions will also cache in 80-column
video memory (16K or 64K) if there is no RAM expander.
- Anton Treuenfels
|
|
|