Esempio n. 1
0
        public GraphicsMode(int width, int height, int pixelsPerByte)
        {
            this.pixelsPerByte = pixelsPerByte;
            texture            = new Texture2D(width, height);
            texture.filterMode = FilterMode.Point;
            texture.wrapMode   = TextureWrapMode.Clamp;
            pixels             = new Color[width * height];
            uint size = (uint)(width * height / pixelsPerByte);

            range = new ComputerMemory.MemoryRange(videoMemStart, videoMemStart + size);
            if (videoMemStart + size > memEnd)
            {
                memEnd = videoMemStart + size;
            }
        }
Esempio n. 2
0
    void Start()
    {
        mem      = GetComponent <ComputerMemory>();
        modes    = new GraphicsMode[4];
        modes[0] = new GraphicsMode(charWidth * textWidth, charHeight * textHeight, 2);
        modes[1] = new GraphicsMode(800, 600, 2);
        modes[2] = new GraphicsMode(800, 600, 1);
        modes[3] = new GraphicsMode(1024, 768, 2);
        ComputerMemory.MemoryRange screenRange = new ComputerMemory.MemoryRange(videoMemStart, memEnd);
        mem.Subscribe("Screen", screenRange, OnScreenMemoryChange);
        ComputerMemory.MemoryRange paletteRange = new ComputerMemory.MemoryRange(paletteStart, paletteEnd);
        mem.Subscribe("ScreenPalette", paletteRange, OnPaletteChange);
        ComputerMemory.MemoryRange modeTriggerRange = new ComputerMemory.MemoryRange(modeTrigger, modeTrigger);
        mem.Subscribe("ScreenModeTrigger", modeTriggerRange, OnModeChange);

        SwitchMode(0);
        SetDefaultPalette();
        SetDefaultCharset();
        isReady = true;

        // WriteTestScreen();
        // WriteTestText();
    }
Esempio n. 3
0
    public void OnModeChange(ComputerMemory.MemoryRange range)
    {
        byte mode = ComputerMemory.memory[modeTrigger];

        SwitchMode(mode);
    }
Esempio n. 4
0
 public void OnPaletteChange(ComputerMemory.MemoryRange range)
 {
     Debug.Log("Palette memory changed");
     needPaletteChange = true;
     needRedraw        = true;
 }
Esempio n. 5
0
 public void OnScreenMemoryChange(ComputerMemory.MemoryRange range)
 {
     Debug.Log("Screen memory changed");
     needRedraw = true;
 }
Esempio n. 6
0
 void OnMemoryChange(ComputerMemory.MemoryRange range)
 {
     dirty = true;
 }