Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - boogop

Pages: [1] 2 3 4
1
General chat / Re: The Welcoming Committee
« on: November 05, 2018 »
Welcome, Tomcat O0 I've been getting into sizecoding as well, I'll check out your link when I'm not at work lol

2
ASM / Plasma in 128b FASM source
« on: October 31, 2018 »
Because the world needs more cruddy asm lol. At one point I had this down to like 106b but I was losing quality, it looked less plasma-y and more like some weird sinusoidal blob. This captures some of the feel of Argon by Matrix which I really like

Code: [Select]
;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
;▒ 10/2018 by Boogop
;▒  Plasma in 128 bytes
;▒      FASM source
;▒
;▒ Acknowledgements:
;▒ - wally/rage for the sin generator and rbz for
;▒   the analysis thereof
;▒
;▒
;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
org 100h
use16

Start:
mov     al,13h              ; set mode 13
int     10h
push    0a000h              ; stick video segment in es
pop     es

;------- set palette ---------
xor     ax,ax
mov     dx, 3c9h            ; who needs 3c8h!
@redup:                     ; red-blue palette
out     dx,al
xchg    al,ah
out     dx,al
out     dx,al
xchg    al,ah
inc     al
cmp     al,127
jne     @redup
@bluedn:
xchg    al,ah
out     dx,al
out     dx,al
xchg    al,ah
out     dx,al
dec     al
jnz     @bluedn

mov     cx,783Fh            ; harmonic oscillator by wally/rage
xor     si,si
sin1:
mov     ax,65497
imul    cx
add     si,dx
add     cx,si
mov     [bx],ch
sar     byte [bx],1
dec     bx
cmp     bx,16383
jne     sin1
mov     si,bx

@main:
xor     di,di               ; Reset vga position
mov     cx,[p_pos1]         ; stick position val into cx
@y_loop:
mov     ax,255              ; magic number. imul leaves result
imul    cx                  ; in dx:ax which will do for dx vals
mov     ah,160              ; X counter. since we're using stosw
                            ; we only have to loop 320/2 times
@x_loop:
push    ax
                            ; plasma calcs
mov     bl,dl
add     ax,[si+bx]
mov     bl,dh
add     bl,cl
add     ax,[si+bx]
mov     bl,cl
add     ax,[si+bx]
mov     bl,ch
sub     bl,dl
add     ax,[si+bx]
stosw
pop     ax
add     dx,0102h            ; add movement
dec     ah                  ; decrement the x counter
jnz     @x_loop             ; test for 0
add     cx,0102h            ; add movement
cmp     di,320*200          ; use di for the y_loop counter
jb      @y_loop             ; test for 0
inc     [p_pos1]
nop                         ; pad to 128 bytes lol
nop
jmp      @main

p_pos1      dw 0

                   

3
I played with webGL some a few years ago, along with something like three.js, and was blown away by what it could do. Smooth is right, your prod is incredibly smooth even forgetting that it's running in a web browser. I've always been held up on this technology by the fact that writing web pages is one of the more annoying aspects of my job. But I'm also stuck in webforms (entity framework doesn't support sql2000 which my employer is on) in which dealing with postbacks and javascript are just drudgery.

4
Working on it lol. But my palette's whacked, the shading I'm getting (black) isn't what I want so I need to figure that out. And getting random numbers from 40h is only ever going to look so good so I need to work on an RNG.

5
ASM / Fire in 159b FASM source
« on: October 25, 2018 »
Started this in TASM but switched to FASM because I really should make some kind of attempt to update myself. Originally 170-something bytes, took some work getting it down to 159. Remove the text, pallete rot and exit logic and it should be 97 bytes.

boogop greets: ralf brown's interrupt list lol

Code: [Select]

;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
;▒ 10/2018 by Boogop
;▒  Boring Old Fire in 159 bytes
;▒
;▒ Acknowledgements:
;▒ - raven/tektonic,preacher/traction and others for
;▒   the adc idea, really makes it look demo-y
;▒
;▒ requirements
;▒ - must have a halloween message referencing dbf
;▒ - fire must not look like suck
;▒ - text shouldn't be white
;▒ - must have appropriate exit logic
;▒
;▒
;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

org 100h
use16

; in command.com we trust
; assume ax = 0, if not we're in trouble ;)
mov     al,13h                  ; enter classic demo world
int     10h

xchg    al,ah                   ; al=13h,ah=0 after setting video mode. Switch those
                                ; to get the draw string function in ah and save 2 bytes
                                ; setting al=0 uses color attributes in bl
; draw text
mov     bl,128                  ; color index, we'll rotate it later
mov     cl,24                   ; string length
mov     dx,0107h                ; dl=7 dh=1 column 7 row 1
mov     bp,foo
int     10h

; set palette
xor     ax,ax
mov     dx, 3c9h                ; who needs 3c8h!

@redup:                         ; Set colors 0-64, ramp up red
out     dx,al                   ; set red to value in al
xchg    al,ah                   ; green & blue get 0
out     dx,al                   ; the xchg commands seem unavoidable
out     dx,al
xchg    al,ah
inc     ax                      ; 1 byte smaller than inc al
cmp     al,64
jne     @redup

@yellowdn:                      ; we'll add some yellow for the lols
out     dx,al
out     dx,al
xchg    al,ah
out     dx,al
xchg    al,ah
dec     ax
jnz     @yellowdn               ; don't need cmp al,0

push    0a000h                  ; ds:si is smaller than es:di
pop     ds                      ; by about 6 bytes it seems (why??)

@main:

; fire
mov     si,(199*320)            ; bottom line, y * xres
mov     cx,320                  ; screen_w
@randline:
in      al,40h                  ; the better looking prods tend to use
                                ; rng's, but for my purposes 40h does
mov     [ds:si],al              ; just fine
inc     si ; using the ds: prefix isn't necessary
loop    @randline ; but makes things a little clearer
mov     si,(320*20)             ; we're moving forwards through video
                                ; memory, some move backwards. Skip the
                                ; first 20 lines for the text so it doesn't
@draw:                          ; melt
mov     al,[ds:si]              ; add the surrounding pixels
shl     ax,2                    ;
add     al,[ds:si+1]            ;
adc     ah,0                    ; if the carry flag is set, add 1 to ah
add     al,[ds:si+320]          ;
adc     ah,0                    ;
add     al,[ds:si-1]            ;
adc     ah,0
add     al,[ds:si+640]          ; add the pixel 2 rows above for higher flame
adc     ah,0                    ; ah += 0 + cf
shr     ax,3
;or ax,00111101b                ; uncomment for weird effect lol

                                ; don't let al wrap, you get lots of
jz      @nozero                 ; noise on the screen
dec     ax
@nozero:
mov     [ds:si-320],al          ; put the pixel back on the row below
inc     si
jnz     @draw                   ; if it's wrapped to 0 we've reached the end of the screen


inc     bh
mov     dx,3C8h
mov     al,128                  ; rotate palette index 128
out     dx,al
inc     dx
mov     al,bh                   ; increment red & green together
out     dx,al
out     dx,al
sub     al,32                   ; stick blue 32 behind them for great justice
out     dx,al                   ; we could save 2 bytes by making it white but
                                ; that looks like crap

in      al,60h                  ; check keypress
dec     ax                      ; escape key = 01h, dec 01h = 0
jnz     @main                   ; dex ax one byte smaller than dec al

; exit stuff
mov al,03h
int 10h


ret

foo db 'Halloween greets to DBF!'






6
Only barely has something to do with Halloween!

Written in FASM, includes text, palette rotation and exit logic. Without those it's 97b. I'll put the source up on \asm because why not. Works in DOSBox but that's about all I tried. I'm going on some assumptions about initial register states that may cause it to blow up elsewhere lol

7
Good observations about trying to compete with coders much more advanced. Even Future Crew dealt with the idea that their presence was depressing entries at The Party II (from the file included with Unreal-->)

Quote

We telled nobody of our demo (Panic) because we feared
that it would scare off people. The almightyFC is gonna
do a new demo, we can't win, so why compete? We thought
we could this way get a lot better compo.

9
ASM / How to preserve the background color?
« on: September 25, 2018 »

So there I was doing some copper(-ish) bars using the tried and true method of 'draw lines and rotate the palette.' How to I preserve the background color? Pic should be attached. It rotates along with everything else  :telloff:


Code: [Select]


; tasm [blah]
; tlink [blah]

MODEL SMALL             
.STACK 200H   
.386

.DATA

palindex    db 0
upperstop   dw 320*50
lowerstart  dw 320*150
endscreen   dw 320*200

Palette     LABEL BYTE
   
i=0
 
        REPT 42
            db i/2,i,i/3     
            i=i+1
        ENDM

        i=42
        REPT 42
            db i/2,i,i/3   
            i=i-1
        ENDM

        REPT 52 ; make the reds a little more coppery
            db i,i/2,i/3     
            i=i+1
        ENDM

        i=52
        REPT 52
            db i,i/2,i/3   
            i=i-1
        ENDM

        i=0
        REPT 32 ; less avail for blue but that's okay
            db i/2,i/3,i   
            i=i+1
        ENDM

        i=32
        REPT 32
            db i/2,i/3,i   
            i=i-1
        ENDM

       
.CODE

Set_Palette PROC
        mov     ax,SEG Palette       
        mov     ds,ax
        mov     si,OFFSET Palette
        mov     dx,3C8h
        xor     al,al
        out     dx,al
        inc     dx
        mov     cx,(256*3)
        rep     outsb
        ret
           
ENDP


start:

mov     ax,13h              ; set mode 13
int     10h
push    0a000h              ; stick video segment in es
pop     es

;------- set palette ---------   

call Set_Palette

; ------ main loop ----------

main:

mov     di,lowerstart ; draw some lines along the bottom of the screen

lower:

mov     ax,di
sub     ax,lowerstart
shr     ax,1
shl     ax,3
stosb
cmp     di,endscreen
jb      lower

xor     di,di

upper:              ; xor the colors and draw along the top

mov     ax,di
shr       ax,1
shl       ax,3
xor       al, 11111000b
stosb
cmp     di,upperstop
jb        upper

; ------ rotate ----------
; michael abrash this isn't

inc       palindex

mov     si,OFFSET Palette
mov     dx, 3C8h
mov     al, palindex
out      dx, al
inc       dx
mov     cx, (256*3)
rep      outsb


in        al, 60h             
cmp     al, 01h             
jnz      main               

;------- exit stuff ---------
mov     ax,3               
int       10h

mov     ah,4CH             
mov     al,00H
int       21H

       
END Start 


10
General chat / Re: Hi
« on: August 29, 2018 »
A lot of my fascination with this stuff comes from 'wtf how did they do that in freaking assembler 30 years ago?'

11
ASM / Re: sine generator in TASM
« on: August 21, 2018 »
Cool stuff, Rbz!

I probably have all the effect source from Hornet Archive and I've never seen a sine generator like that one. Mostly people seemed to be generating them externally and using a list of constants. There are a few that use fi[blah] commands to produce one.

Starport II (1993) had an interesting one but didn't create a table, it calculated it on the fly. SHRD was a 386 instruction, not sure it was available on the 286?

Code: [Select]
;±±±±±±±±±±±±±±±± sin/cos ±±±±±±±±±±±±±±±±
;entry: ax=angle (0..65535)
; exit: ax=muller (-127..127)
addwcos:add ax,ds:[bx] ;optimized entry for wavesets
mov ds:[bx],ax
cos: add ax,16384
sin: mov bx,ax
mov cx,bx
and cx,1023
neg cx
add cx,1023
shr bx,10
mov ah,ds:sintable[bx]
xor al,al
imul cx
push ax
push dx
mov ah,ds:sintable[bx+1]
xor al,al
neg cx
add cx,1023
imul cx
pop bx
pop cx
add ax,cx
adc dx,bx
shrd ax,dx,11
ret


but SPII also included a sine table, so further investigation is needed

Code: [Select]
sintable LABEL BYTE ;sine table (circle is 64 units)
db 0,12,24,36,48,59,70,80,89,98,105,112,117,121,124,126,127,126
db 124,121,117,112,105,98,89,80,70,59,48,36,24,12,0,-12,-24,-36
db -48,-59,-70,-80,-89,-98,-105,-112,-117,-121,-124,-126,-127
db -126,-124,-121,-117,-112,-105,-98,-89,-80,-70,-59,-48,-36
db -24,-12,0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54
db 57,59,62,65,67,70


12
ASM / Re: sine generator in TASM
« on: August 14, 2018 »
nvm the color banding. That's caused by the counter value in ah. duh

Code: [Select]
push ax
xor ah,ah
stosw
pop ax

13
ASM / sine generator in TASM
« on: August 14, 2018 »

I'm working on a small plasma in TASM. It's very vanilla and not very interesting except for the sine generator. I was struggling with a big list of sine constants (originally I'd exported them from c#, double d = 32 + 32 * Math.Cos((i * 6.28) / 256)) when I came upon this generator in a prod by insomniac/matrix. But I'm not good enough at asm to tell exactly how it's working, except that wally/rage (??) was pretty darn clever. 188 bytes but I'm also getting some annoying color banding from stosw

Code: [Select]
; tasm /m2
; tlink /t

cseg    segment
assume cs:cseg
org 0100h
.286

start:
    mov     ax,13h              ; set mode 13
    int       10h
    push    0a000h              ; stick video segment in es
    pop      es
               
    mov     dx,3c8h             ; set color index port
    xor       ax,ax
    out       dx,al                ; output color index 0
    inc       dx                    ; inc dx = 3C9h, color write port
@redup:                          ; Set colors 0-62, ramp up red
    out      dx,al                  ; set red to value in al
    xchg    al,ah                 ; ah is 0, so exchange it with al
    out      dx,al                  ; set green and blue = 0
    out      dx,al
    xchg    al,ah               ; swap ah/al so al is again non-zero
    inc      al                     ; al +=1
    cmp     al,63
    jne     @redup
@reddn:                         ;set colors 63-127, ramp down red
    out     dx,al
    xchg    al,ah
    out     dx,al
    out     dx,al
    xchg    al,ah
    dec     al
    jnz     @reddn
@blueup:                        ;set colors 127-194, ramp up blue
    xchg    al,ah
    out     dx,al
    out     dx,al
    xchg    al,ah
    out     dx,al
    inc     al
    cmp     al,63
    jne     @blueup
@bluedn:                        ;set 194-256, ramp down blue
    xchg    al,ah
    out     dx,al
    out     dx,al
    xchg    al,ah
    out     dx,al
    dec     al
    jnz     @bluedn
                                ; sin generator from argon by insomnia/matrix
                                ; who got it from Wally/Rage, but I'm not sure
                                ; who that was. There was a Rage demogroup
                                ; in the amiga scene. Anyway, credit to the
                                ; original author. My big list of sin constants
                                ; was taking up ~200 bytes

    mov     cx,783Fh            ; [30783]
    xor     si,si
sin1:   
    mov     ax,65497
    imul    cx                  ;[2016194151]
    add     si,dx               ; results of imul are stored in dx:ax [782C AE67, si+=30764]
    add     cx,si               ; [783F + 782C,cx=30783+30764=61547=F06B]
    mov     [bx],ch             ; [[bx]=F0=240]
    sar     byte ptr [bx],1     ; divide the value by 2, only store a byte [bx=120?]
    dec     bx                 
    cmp     bx,16383           
    jne     sin1

   ; inc     bx                  ; BX points to the sine/cos-values [comment by insomnia but this step isn't needed and saves a byte]
    mov     si,bx               ; move it to SI since I need BX

main:

;------- main program ------------
    xor     di,di               ; Reset vga position

    mov     cl,[p_pos1]         ; stick plasma position values into ch,cl
    mov     ch,[p_pos2]

    mov     ah,200              ; 200 rows in mode 13               
Y_LOOP:
    push    ax                  ; ax is also our x counter, so save
                                    ; the y vals to test later
    mov     dl,[p_pos3]         ; the other position values in dh,dl
    mov     dh,[p_pos4]         ; now the plasma position vals are in cx/dx

    mov     ah,160              ; X counter. since we're using stosw we only have to loop 320/2 times
X_LOOP:
    xor     al,al               ; al holds the color, so clear it

                                ; x = SinTable[p_pos1] + SinTable[p_pos2] + SinTable[p_pos3] + SinTable[p_pos4]
    mov     bl,dl               ; mov p_pos3 into bl   
    add     al,si[bx]           ; x += Sin[p_pos3]
    mov     bl,dh               ; mov p_pos4 into bl   
    add     al,si[bx]           ; x += Sin[p_pos4]
    mov     bl,cl               ; mov p_pos1 into bl   
    add     al,si[bx]           ; x += Sin[p_pos1]
    mov     bl,ch               ; mov p_pos2 into bl   
    add     al,si[bx]           ; x += Sin[p_pos2]

    ; push    cx                ; save the position vals
    ; mov     cx,4              ; write 4 pixels at a time
    ; rep     stosb             ; put pixel cx times in es:di, advancing the screen pointer
    ; pop     cx                ; restore position vals
    stosw                       ; stosw is smaller than that noise

    add     dl,2                ; add movement var to p_pos3
    add     dh,1                ; add movement var to p_pos4

    dec     ah                  ; decrement the x counter
    jnz     X_LOOP              ; test for 0

    add     cl,2                ; add movement var to p_pos1
    add     ch,3                ; add movement var to p_pos2

    pop     ax                  ; restore the y counter
    dec     ah                  ; Next vertical line
    jnz     Y_LOOP              ; test for 0

    add     [p_pos1],2          ; add some vals to the position vars
    add     [p_pos2],3          ; speed up/slow down the plasma
    sub     [p_pos3],1
    add     [p_pos4],4

    jmp     main                ; do it all again
 
    p_pos1   db 0
    p_pos2   db 0
    p_pos3   db 0
    p_pos4   db 0

    ; SinTable  db 64,63,63,63,63,63,63,63,63,63
    ; db 63,62,62,62,62,61,61,61,60,60
    ; db 60,59,59,59,58,58,57,57,56,56
    ; db 55,55,54,54,53,52,52,51,51,50
    ; db 49,49,48,47,47,46,45,44,44,43
    ; db 42,42,41,40,39,39,38,37,36,35
    ; db 35,34,33,32,32,31,30,29,28,28
    ; db 27,26,25,25,24,23,22,21,21,20
    ; db 19,19,18,17,16,16,15,14,14,13
    ; db 12,12,11,11,10,9,9,8,8,7
    ; db 7,6,6,5,5,4,4,4,3,3
    ; db 3,2,2,2,1,1,1,1,0,0
    ; db 0,0,0,0,0,0,0,0,0,0
    ; db 0,0,0,0,0,0,0,0,0,1
    ; db 1,1,1,2,2,2,3,3,3,4
    ; db 4,4,5,5,6,6,7,7,8,8
    ; db 9,9,10,11,11,12,12,13,14,14
    ; db 15,16,16,17,18,18,19,20,21,21
    ; db 22,23,24,24,25,26,27,28,28,29
    ; db 30,31,31,32,33,34,35,35,36,37
    ; db 38,38,39,40,41,41,42,43,44,44
    ; db 45,46,47,47,48,49,49,50,50,51
    ; db 52,52,53,54,54,55,55,56,56,57
    ; db 57,58,58,58,59,59,60,60,60,61
    ; db 61,61,62,62,62,62,63,63,63,63
    ; db 63,63,63,63,63,63


cseg ends

End Start

14
I'm working on small code in Turbo Assembler with a simple plasma lol. I was sucking pretty hard with a big list of sine constants until I happened on a sin generator in an old prod by insomniac/matrix. But he got it from wally/rage (?? the old amiga group?) and I need to examine it in turbo debugger, because I haven't got a clue how it's working. Comments by insomniac.

Code: [Select]

ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
; CALCULATE SINE/COS - VALUES (Wally/Rage)
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
mov cx,783Fh ; don't ask me, I just use it..
xor si,si
plc1: mov ax,65497
imul cx
add si,dx
add cx,si
mov [bx],ch
sar byte ptr [bx],1
dec bx
cmp bx,16383
jne plc1

inc bx ; BX points to the sine/cos-values



15
General chat / Re: Hi
« on: April 07, 2018 »
Welcome! There's a reason some of us aren't putting our age on here lol

16
General chat / Re: Hello
« on: April 07, 2018 »
Welcome! I love asm. good at it not so much

17
General coding questions / Re: voxel waves
« on: April 07, 2018 »
wow, I actually understood that! I don't know that I'm smart enough to reproduce it, but I have a better sense of what the code's doing. Karma coming your way! =:D

18
General coding questions / Re: voxel waves
« on: April 05, 2018 »
Attached.  I haven't seen it done a lot, and in the case of insolit  dust's code it would probably make more sense if you'd done a lot of stuff similarly complex. Future crew's source is illegible lol

19
General coding questions / voxel waves
« on: April 04, 2018 »
Does anyone know of or have an example of this effect, the one that future crew had in second reality? The only example I've been able to find is by Insolit Dust who used to post here, but it's difficult to read and has enough hardcoded values that I can't really tell what it's trying to do. Any language should be okay, but it's more difficult for me to deconstruct an xy location if the video is addressed like unsigned char *b = DBuf + (a << 8) + (a << 6) + i;


snippet from insolit dust, he posted a link to his site here so I hope this is okay!

Code: [Select]
void Line(int x0, int y0, int x1, int y1, int hy, int s)
{
register int i;
     int sx, sy;
     int c,y,h,u0,v0,u1,v1,a,b,h0,h1,h2,h3;
     
     sx = (x1 - x0) / 320;
     sy = (y1 - y0) / 320;
     
     for (i = 0; i < 320; i++)
     {
         u0 = (x0 >> 16) & 0xFF;
         a = (x0 >> 8) & 255;
         v0 = ((y0 >> 8) & 0xFF00);
         b = (y0 >> 8) & 255;
         u1 = (u0 + 1) & 0xFF;
         v1 = (v0 + 256) & 0xFF00;
         
         h0 = HMap[u0 + v0];
         h2 = HMap[u0 + v1];
         h1 = HMap[u1 + v0];
         h3 = HMap[u1 + v1];
         
         h0 = (h0 << 8) + a * (h1 - h0);
         h2 = (h2 << 8) + a * (h3 - h2);
         h = ((h0 << 8) + b * (h2 - h0)) >> 16;
         
         h0 = CMap[u0 + v0];
         h2 = CMap[u0 + v1];
         h1 = CMap[u1 + v0];
         h3 = CMap[u1 + v1];
         
         h0 = (h0 << 8) + a * (h1 - h0);
         h2 = (h2 << 8) + a * (h3 - h2);
         c = ((h0 << 8) + b * (h2 - h0));
         
         y = (((h - hy) * s) >> 11) + (240 / 2);
         
         if (y < (a = LastY[i]))
         {
                unsigned char *b = DBuf + (a << 8) + (a << 6) + i;
                int sc,cc;
               
                if (LastC[i] == -1)
                   LastC[i] = c;
                   
                sc = (c - LastC[i]) / (a - y);
                cc = LastC[i];
               
                if (a > 240 - 1)
                {
                      b -= (a - (240 - 1)) * 320;
                      cc += (a - (240 - 1)) * sc;
                      a = 240 - 1;
                }
               
                if (y < 0)
                   y = 0;
                   
                while (y < a)
                {
                      *b = cc >> 18;
                      cc += sc;
                      b -= 320;
                      a--;
                }
               
                LastY[i] = y;
         }
         
         LastC[i] = c;
         
         x0 += sx;
         y0 += sy;
     }
}

20
General chat / Re: Hello there!!
« on: January 02, 2018 »
Nice to see some new faces! I'm also a fan of amiga demos, pretty much all I do are in that style

Pages: [1] 2 3 4