From f7ec90f032c27231c7916b479e0ad01198804740 Mon Sep 17 00:00:00 2001 From: Jeremy Penner Date: Tue, 23 Jul 2019 22:39:56 -0400 Subject: [PATCH] use streamline custom gfx engine for jiles --- game.exe | Bin 96959 -> 98581 bytes game.prj | Bin 5667 -> 5522 bytes jiles.jor | 24 ++++++++++++++------ testbed.c | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 81 insertions(+), 7 deletions(-) diff --git a/game.exe b/game.exe index 108de1ebb67bfb374ba9cb6c272e9ed667fb5e9d..52629cdfd6b962ae5412e3edc41db778255ae6ba 100755 GIT binary patch delta 17439 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 delta 15683 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�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 WGJ7J;Xt1T(bjtSMvS2PPlm7>{-7b*; diff --git a/game.prj b/game.prj index 780f942afd2a9f34c7a580869a0d4a2f29599838..add6b58959956a931f6efc9daada0d614e9a88b8 100755 GIT binary patch delta 139 zcmZ3iGf8`cIvaD-*6*9O*miNUGB7j%nJ@Y6854O}^cff!W-*^(`oR2{xrON{^D^fD z|5KSKGAS_iF&8ucW%~dBCest9M&|uY@0nDXH!=AFKl@E~6nz8$mTxgi delta 268 zcmbQFy;x_1IvaELrq7$T*miNUYBS7P^Lg`2etX9Hxh(n&3=G;VvCNGuB`l)MVJzk> z|NnnuR$|`BB+tUa(#QP&e-?8ovk*%Fa|82MW@qMmK#^C>XPFK$A7Qw~^qgr0^K9l` z#zzdIOtnla86z1VGJaw5WJ+K-%J`8%l`#Qmx&VVR!|BzZ{n!~4IAX*&z$6QplywJF ztPB^IMEVIbh^=n&lVgxsV&TWc(2z6LkDuX7=~O>1hR?I6_$e~<71sNSG5o0A;wQ>5 z1t=@R;8;@c_y51IYmma^3nF4-jy^vA&UzjU|3Q|8xCVzfxw_~%Z|)RSW(NA{|NqGw HL>>VEC+t>M diff --git a/jiles.jor b/jiles.jor index 8217dcf..bd5f944 100755 --- a/jiles.jor +++ b/jiles.jor @@ -14,16 +14,26 @@ REPL start-repl intern input.jor input.jor loadfile -: worldpos>tilepos 4 >> swap 4 >> swap ; -: tilepos>mapindex mapsize drop * + ; +var color +var spriteindex + +8 spriteindex ! +2 color ! + + +: refresh + spriteindex @ drawfatsprite ; + +: mousepos>sprpos 3 >> swap 3 >> swap ; + : tick MOUSEL clicked if - 0xf5 mousepos worldpos>tilepos tilepos>mapindex map + b! + color @ mousepos mousepos>sprpos spriteindex @ putpixel then tick-debounce ; -: draw - 0 0 scroll - mousepos 4 draw-sprite - draw-screen ; \ No newline at end of file +: draw ; + +mouseshow +refresh diff --git a/testbed.c b/testbed.c index 2ca8a76..4d745d0 100755 --- a/testbed.c +++ b/testbed.c @@ -263,6 +263,66 @@ void f_glitch() { } } +/* JILES */ +#define SCREEN_STRIDE 320 +void f_mouseshow() { + setLogicalWidth(SCREEN_STRIDE >> 1); + mouse_show(); +} + +void f_drawfatsprite() { + int isprite = TOP().i; + unsigned int dst = 0; + unsigned int far *spr = &sprites[isprite * SPRITE_STRIDE]; + int x, y, faty; + + DROP(1); + setWriteMode(0); + for ( y = 0; y < 16; y ++ ) { + for ( x = 0; x < 16; x ++ ) { + int shift = (15 - x); + int b = (spr[y + 0] & (1 << shift)) >> shift; + int g = (spr[y + 16] & (1 << shift)) >> shift; + int r = (spr[y + 32] & (1 << shift)) >> shift; + int i = (spr[y + 48] & (1 << shift)) >> shift; + int colour = b | (g << 1) | (r << 2) | (i << 3); + int fill1 = (spr[y + 64] & (1 << shift)) ? 0xff : 0x55; + int fill2 = fill1 == 0xff ? 0xff : 0xaa; + setPlaneColor(colour); + for ( faty = 0; faty < 8; faty ++) { + VID[dst + x + (SCREEN_STRIDE * faty)] = (faty % 2) ? fill1 : fill2; + } + } + dst += (SCREEN_STRIDE * 8); + } +} + +void f_putpixel() { + int isprite = TOP().i; + unsigned int far *spr = &sprites[isprite * SPRITE_STRIDE]; + int x = ST2().i; + int y = ST1().i; + int color, shift, b, g, r, i, v; + + DROP(3); + color = TOP().i; + DROP(1); + + shift = (15 - x); + b = (color & 0x01); + g = (color & 0x02) >> 1; + r = (color & 0x04) >> 2; + i = (color & 0x08) >> 3; + v = ((color & 0x10) >> 4) ^ 1; + + spr[y + 0] = (spr[y + 0] & ~(1 << shift)) | (b << shift); + spr[y + 16] = (spr[y + 16] & ~(1 << shift)) | (g << shift); + spr[y + 32] = (spr[y + 32] & ~(1 << shift)) | (r << shift); + spr[y + 48] = (spr[y + 48] & ~(1 << shift)) | (i << shift); + spr[y + 64] = (spr[y + 64] & ~(1 << shift)) | (v << shift); +} + +/* INIT */ void game_f_init(char *exe, char *bootjor) { f_init(exe); CDEF("seremit", f_seremit); @@ -288,6 +348,10 @@ void game_f_init(char *exe, char *bootjor) { CDEF("glitch", f_glitch); CDEF("unfuck", tile_init); + CDEF("mouseshow", f_mouseshow); + CDEF("drawfatsprite", f_drawfatsprite); + CDEF("putpixel", f_putpixel); + f_loadjor(bootjor); f_atexit = f_lookupcp("atexit");