[Prev][Next][Index][Thread]
Re: Solarian II
>>>>> "ahem" == ahem <SYNNAD@uncvx1.oit.unc.edu> writes:
ahem> Emilio Moreno:
EM> Solarian II v1.03 It works fine. This is an amazing color
EM> arcade game similar to Maelstrom. This SHOULD BE in a demo
EM> volume only -refresh [GREEN]
ahem> How'd you get it to work? I got it to work (perfectly but
ahem> unstably - would always crash eventually) on an earlier
ahem> version of Executor, but had no success with 1.99l.
Back when Executor allowed programs to write directly to the screen
and we used page faults to do "bank switching", Solarian would hang,
because it would write a long word that straddled a page, and the
architecture of most SVGA boards would not allow us to map a bank that
would include the entire long, so the naive page handling code would
switch back and forth from bank to bank, each time the instruction was
restarted a new fault would occur and this would go on indefinitely.
Now programs *can't* write directly to the screen, so you need to use
"-refresh n" (where n is a number like 6) to periodically copy the
memory that we pretend is the screen to the real screen. This is a
significant performance hit, but it has no problems with Solarian.
Eventually, we'll support some video boards ability to map linearly
their frame buffer into memory and then we'll be able to let programs
write directly to the screen (on PCs with those video boards) and
we'll no longer have to worry about bank switching, since linear
mapping obviates the need for bank switching. It's not clear whether
or not this capability will be ready by the time 2.0 ships. Mat guess
that it will, but we have a lot of other work to do as well.
--Cliff
References: