Schneider / Amstrad CPC Forum

Amstrad / Schneider CPC => Programmierung => Topic started by: oobdoo on 07. April 2015, 21:43:34

Title: Heute so gemacht
Post by: oobdoo on 07. April 2015, 21:43:34
SpriteEditor in Excel zusammen gefummelt.  ;D
Wenn ich Pen 0 und 1 in Mode 0 weglasse, dann spinnen auch die Farben nicht.
Title: Re: Heute so gemacht
Post by: TFM on 08. April 2015, 16:34:34
In MODE 0 sind die Pixel ja annähernd doppelt so breit wie hoch. Wenn Du das in dem Exel Dingens einstellen kannst, dann sieht es da schon eher so aus wie später am CPC.

In obigem Beispiel verwendest Du nur vier Farben, das wäre MODE 1 dann besser. Naja, kommt drauf an was Du sonnst noch am Schirm haben willst.

Sie heißt der maskierte Bursche da oben überhaupt?
Title: Re: Heute so gemacht
Post by: oobdoo on 08. April 2015, 20:37:43
Das ist nur eine ganz vereinfachte Form eines Sprite-Editors. Hat sich mehr daraus entwickelt, weil ich der Pixelkodierung vom CPC auf den Grund gehen wollte.
Mode 1 bin ich gerade dabei zusätzlich einzubauen.

Der Bursche heißt im F64 Forum TheRealWanderer. Hatte sich so ergeben das ich sein Avatarbild für mein ersten Sprite genommen hatte.  :D

Sollte ich nochmal auf einen richtigen Editor Lust bekommen, dann würde ich den in VB.net schreiben. Und dazu mußte ich erstmal (wieder) verstehen wie die Pixel auf dem CPC funktionieren.
Title: Re: Heute so gemacht
Post by: Devilmarkus on 08. April 2015, 22:55:09
Der GateArray Renderer sieht in Java so aus bei mir:

    protected final void decodeFull(byte[] map, int offs, int mode, int b) {
        switch (mode) {
            case 0:
                map[offs] = map[offs + 1] = map[offs + 2] = map[offs + 3] =
                        (byte) (((b & 0x80) >> 7) | ((b & 0x08) >> 2) | ((b & 0x20) >> 3) | ((b & 0x02) << 2));
                map[offs + 4] = map[offs + 5] = map[offs + 6] = map[offs + 7] =
                        (byte) (((b & 0x40) >> 6) | ((b & 0x04) >> 1) | ((b & 0x10) >> 2) | ((b & 0x01) << 3));
                break;

            case 1:
                map[offs] = map[offs + 1] = (byte) (((b & 0x80) >> 7) | ((b & 0x08) >> 2));
                map[offs + 2] = map[offs + 3] = (byte) (((b & 0x40) >> 6) | ((b & 0x04) >> 1));
                map[offs + 4] = map[offs + 5] = (byte) (((b & 0x20) >> 5) | (b & 0x02));
                map[offs + 6] = map[offs + 7] = (byte) (((b & 0x10) >> 4) | ((b & 0x01) << 1));
                break;

            case 2:
                map[offs++] = (byte) ((b & 0x80) >> 7);
                map[offs++] = (byte) ((b & 0x40) >> 6);
                map[offs++] = (byte) ((b & 0x20) >> 5);
                map[offs++] = (byte) ((b & 0x10) >> 4);
                map[offs++] = (byte) ((b & 0x08) >> 3);
                map[offs++] = (byte) ((b & 0x04) >> 2);
                map[offs++] = (byte) ((b & 0x02) >> 1);
                map[offs] = (byte) (b & 0x01);
                break;

            case 3:
                map[offs] = map[offs + 1] = map[offs + 2] = map[offs + 3] = (byte) (((b & 0x80) >> 7) | ((b & 0x08) >> 2));
                map[offs + 4] = map[offs + 5] = map[offs + 6] = map[offs + 7] = (byte) (((b & 0x40) >> 6) | ((b & 0x04) >> 1));
                break;
        }
    }


Dabei wird ein BYTE (hier: int b) in ein 8 Pixel grosses Array (byte[] map) berechnet...
Vielleicht hilft es Dir ja...
Title: Re: Heute so gemacht
Post by: TFM on 08. April 2015, 23:07:51
Ich mach meinen ganzen Kram alles auf'm CPC. Spart mir das "zwischen den Rechnern" austauschen.

Das gute an Programmen ist ja, dass man sie nur einmal machen muss... ;-)
Title: Re: Heute so gemacht
Post by: oobdoo on 10. April 2015, 13:53:46
Quote from: TFM on 08. April 2015, 23:07:51
Ich mach meinen ganzen Kram alles auf'm CPC. Spart mir das "zwischen den Rechnern" austauschen.
Naja, bei Excel ist es auch nur ein Copy/Paste und die Daten sind im Assembler drin.

Mode 1 geht jetzt auch und gleich machen ich noch einen Zeichensatzeditor dazu.  :D
Title: Re: Heute so gemacht
Post by: TFM on 10. April 2015, 19:54:41
Klasse!
Title: Re: Heute so gemacht
Post by: oobdoo on 11. April 2015, 23:23:56
So, hier mal die erste Version für alle die es Interessiert.
Aktuell bastel ich am Zeichensatzeditor rum. Da muß noch Drehen, Spiegeln und son Zeug rein.  :D
Title: Re: Heute so gemacht
Post by: TFM on 13. April 2015, 22:23:33
Werd ich mir abends dann gleich man angucken :-)