Skip to content

SCREEN command same mode should not reset palette on PCjr #260

@sshock

Description

@sshock

Let me start by saying thank you for the awesome emulator!

A game I typed in from "The IBM PCjr ENTERTAINER" book from 1985, called "Jungle Kingdom", uses SCREEN 5 followed by COLOR 15,1 and PALETTE 1,0 to change the palette so that the background is blue and color 1 is black.

Later on it uses page flipping (there are two pages with CLEAR ,,,65536!) to create a smooth animation of animals, switching between SCREEN 5,,0,1 and SCREEN 5,,1,0 while drawing on the invisible page.

The game works great! Except the palette gets quickly reset, resulting in a black background and the black tree becomes blue.

Although I don't have a real PCjr with cartridge basic to test on, based on the behavior of this game, which no doubt worked correctly on real PCjr, I believe the PCjr did not reset the palette when SCREEN is called with the same mode.

Can you update display.py to not do a self.colourmap.reset() when the adapter is pcjr and the mode is not changing?

Here is a sample program that can be used for testing. It creates a red square on blue bg, but the last line resets it to a blue square on black bg:

10 CLEAR ,,,32768
20 SCREEN 5
30 COLOR 15, 1 ' bg is blue
40 PALETTE 1, 4 ' color 1 is red
50 LINE (10,10)-(50,50),1,BF
60 SCREEN 5

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions