Noticias
Demoscene: the Art of Real-Time, publicado en e-Book

Muchos conocereis el libro DEMOSCENE: the art of real-time, que salió en el 2004 y yo mismo desde escena.org hice una pequeña distribución en España.
Es un pequeño libro que explica la demoscene desde sus orígenes, su cultura, producciones, plataformas, etc. No es un recorrido exhaustivo ni detallado, pero da una visión amplia y muy bien explicada para gente no-demosceners. Y está ilustrado con muchas imágenes de producciones y fotos de parties, hay entrevistas cortas, ejemplos. Es muy fácil de leer.
Pues tras agotarse hace un tiempo, el editor Lassi Tasajärvi ha decidido sacar una versión en e-Book (PDF) al precio de 9,95 euros, pagable con PayPal. Cómpralo aquí
Más información en BitFellas
"Puls" por Rrrola
; P L a 256-byte intro by Rrrola - final version
; \ / \ rrrola@gmail.com
; U S http://rrrola.wz.cz
; greets to everyone who came to Riverwash 2009
;%define BLOWUP 86 ; "ambient occlusion" strength (default 86: -1 byte)
MAXSTEPSHIFT equ 6 ; shading strength (>=6 unless BLOWUP defined)
MAXITERS equ 26
BASECOLOR equ -34
%define BLOCKS ; render 4x1 blocks (for slower machines, +3 bytes)
org 100h ; assume ah=bx=0 cx=255 sp=di=-2 si=100h
mov al,13h ;<(byte)[100h]>>8 = 0.6875
push bx ; (word)[100h]>>16 = 0.0769
mov dx,3C8h ; (float)[100h] = -0.0008052
int 10h
;palette - 4 gradients of 32 shades
P mov al,bl ;<set al on 1st pass, then each red and green
Q test bl,cl ; parity: eooooeoeoeee eooooeoeoeee ...
jpe E ; index: #0gb1gb2gb3g b4gb5gb6gb7g ...
imul al
shr ax,7
E imul bl
mov al,ah
out dx,al
mov dl,0c9h
loop P
mov cl,3
dec bx
jnz Q
push 09FCEh ;<aligns with the screen ;-)
pop es
mov bh,56h ; xyz addressing trick from neon_station
; vecNN = (words){[5600h+N] [5656h+N] [56ACh+N]}
;frame loop - prepare constants
;ax=key bx=5600h bp=dx=0 cx=3 si=100h di=-2 sp=-4 word[5700h]=T
M fninit ; {} = fpu stack
add word[bx+si],byte 88 ; T++
fild word[bx+si] ;=14.00564 * 2pi
fsincos ; {s=sin(T*0.00564) c=cos(T*0.00564)}
fdiv st1,st0 ; {s t=cotg(T*0.00564)}
fild word[bx+si]
fmul dword[si]
fsin
fimul word[si] ; {r>>16=0.0769*sin(T*-0.0708) s t}
pop edx ;=9B6C0000... just get rid of it
push es
push bp ;dword[-4]=9FCE0000h
;pixel loop
;x = word[-3] ~ -0.5..0.5 (+= 0.003125 each column)
;y = word[-2] ~ -0.4..0.4 (+= 0.00390625 each row)
X
%ifdef BLOCKS
test bp,cx ; 4x1 blocks: keep last color?
jnz D
%endif
pusha ;[-20 -18 -16 -14 -12 -10 -8 -6 -4 -2 ]
; di si bp sp bx dx cx ax yyyy
; FEFF0001adr FCFF005600000300col ..xxxx
;fisheye projection: z = C-x*x-y*y
mov [bx],bx ;=0.33594
Z mov ax,[di]
fild word[di]
imul ax
sub [bx],dx
dec di
jpo Z ;di=-4
fild word[bx] ; {z>>16=0.33594-x*x-y*y x y r s t}
;advance x and y for next pixel (low word)
%ifdef BLOCKS
add word[di],3334h
%else
add dword[di],0000CCCDh
%endif
;rotate direction vector
R fmul st4 ; {sz x y r s t}
fld st0
fmul st6 ; {cz sz x y r s t}
fxch st2
fmul st5
fsub st2,st0; {sx sz cz-sx y r s t}
fmul st6
faddp st1,st0; {cx+sz cz-sx y r s t}
fxch st2 ; {y cz-sx cx+sz r s t}
inc di
jpo R
dec di ;di=-2 ; {X Y Z r s t}
;advance x and y for next pixel (high word)
%ifdef BLOCKS
adc word[di],cx
%endif
;store ray origin and direction vector
imul dx,[bx+si],byte 10;=0.0134*T
S
fistp word[bx+di] ; d>>16 = v-2 = {X, Y, Z}
;fistp dword[bx+di] ;<slower, but fixes corners (+3 bytes)
;sar dword[bx+di],1
mov [bx],dx
add dh,[si] ; o>>16 = v0 = 0.0134*T + {0, 0.6875, 0.375}
add bl,bh
jnc S ;bl=2 ; {r s t}
;intersect ray with scene, count number of bounding volume misses
cwd ; dx = hit(-1|0): grainy rendering
mov ah,-MAXITERS ; ah = iters(-MAXITERS..0), al = hue(0..3)
;cwd ;<for smooth rendering with bands
%ifdef BLOWUP
mov cx,BLOWUP*256+MAXSTEPSHIFT; cl = stepshift(0..MAXSTEPSHIFT)
%else
adc cx,bx ;=86*256 + 6 ;-)
%endif
call I
sub ah,cl
aad 4 ;ah=0
add al,MAXITERS*4+BASECOLOR
mov [di-4],ax ; pushed ax = color = (iters-stepshift)*4 + hue
popa
;draw pixel
D
%ifdef BLOCKS
mov [es:bp+si],al
inc bp
%else
inc bp
mov [es:bp+si],al
%endif
jnz X ; 65536 pixels
;next frame: fall through on esc - ah=word[sp]=0
in al,60h
dec ax
jnz M ;<assume no one presses ESC after 1 frame ;)
;raycasting using unbounded binary search
;start with the smallest step size
;v-2 = d = {dx, dy, dz}
;v0 = o = current {x, y, z} mod 1
;last probe was inside: halve step and go back
; outside: double step and go forward
I mov bl,0 ;bl=0
A mov bp,[bx+di] ; hit ? (o -= d>>stepshift) : (o += d>>stepshift)
sar bp,cl
xor bp,dx
add [bx],bp
add bl,bh
jnc A ;bl=2
salc ;al=FFh
fist word[bx+si] ; word[5702h] = r
;bounding volumes: "blow up" the scene by the current step size
push cx
shr cx,cl
add ch,37 ; cx = hitlimit = 0.1445 + (BLOWUP >> stepshift+8)
;inside test
;hue=[0,1]
;green octahedra: (|x|+|y|+|z|)/2 - 0.1445 + r < blowup
;orange octahedra: (|x+0.5|+|y+0.5|+|z+0.5|)/2 - 0.1445 - r < blowup
O mov dx,[bx+si] ; dx = [r,-r]
neg word[bx+si]
C imul bp,ax,32768 ; bp = [0.5, 0] - v0.xyz
sub bp,[bx+di]
jns T
neg bp
T shr bp,1
add dx,bp ; v2 = |signed(bp)|/2
mov [bx],bp
add bl,bh
jnc C ;bl=4 ; dx = sum(v2) + [r,-r]
cmp dx,cx ; if (dx < hitlimit) hit!
inc ax ;al=0,ah++
jc H
mov bl,2 ;bl=2
jpe O ;al=1 ; repeat if al==0
;hue=[2,3]
;bars: (||x|-|z|| + ||y|-|x|| + ||z|-|y||)/2 - 0.0676 < blowup
;bolts: (||x|-|z|| + ||y|-|x|| + ||z|-|y||)/2 - 0.1445 < blowup
sub dx,[bx+si]
inc ax ;al=2
;sub dx,bx ;<simple bolt movement: sum(v2)-2*r-0.3359
sub dx,[bx+si] ;<precise bolt movement: sum(v2)-3*r-0.375
sub dh,60h ; (+3 bytes)
imul dx,byte 13 ; if (|sum(v2)-3*r-0.375| < 0.03846)
mov dx,[si] ; dx = extra_width = 0.0769, hue = 2
jo B ; else
inc ax ;al=3 ; dx = extra_width = 0, hue = 3
cwd
B sub bp,[bx] ; bp = v2.zxy - v2.xyz
jns L
neg bp
L add dx,bp
mov bp,[bx]
add bl,bh
jnc B ;bl=4 ; dx = sum(|signed(bp)|) + extra_width
cmp dx,cx ; if (dx < hitlimit) hit!
;adjust step size according to the hit result
H pop cx ;cf=hit
sbb dx,dx ; dx = hit?-1:0
cmc
sbb cl,dl ; if (hit) stepshift++
adc cl,dl ; else if (stepshift > 0) stepshift--
;more probes?
cmp cl,MAXSTEPSHIFT
jae F ; if (stepshift >= maxstepshift) break
add ah,dl ; iters++, if (hit) iters--
jne I ; if (iters >= maxiters) break
F ret
Kind of Bloop

Como ya nos comentaba sergeeo hace algunos meses , le invitaron a participar en un peculiar tributo a Miles Davis, consistente en versionear chiptuneramente las canciones del disco Kind of Blue.
El disco está por ahora disponible únicamente para los que participaron monetariamente en el proyecto, pero se puede preescuchar desde la web oficial y en un par de días, se podrán comprar descargas por $5.
Hay que decir que es un proyecto que se sale de lo común, porque todo se ha hecho “por lo legal”: con los donativos aportados se han comprado las licencias necesarias para versionar el disco de forma oficial, y así, poder publicar (y vender) las versiones sin ser perseguido por el dedo acusador de la RIAA o similares.
Como curiosidad técnica, casi todos los temas tienen una NES (¡o emulador!) de fondo. Parece que Nintendo sigue siendo el instrumento base de la generación chiptune 
Más detalles en el blog de sergeeo
"Discharger" de Stravaganza, en Demo or Die vol. 6

El grupo Abyss ha vuelto a sacar una de sus compilaciones de demos en DVD, pero ésta no es la noticia. Lo importante es que Discharger, de nuestros Stravaganza ha sido incluida en la selección, junto a otras joyitas como la archiconocida “Lifeforce” de ASD, “Debris” de Farbrausch o “Media Error” de Fairlight.
Discharger fue presentada en la Euskal 2007, donde acabó en tercera posición, por detrás de Cosmosis remixed de Spöntz y The universe is few unsorted blocks de Purple Studios. Todas estas demos ya las incluimos en nuestro DVD recopilatorio
El DVD está capturado a 50fps, widescreen y todo a la “súper high quality de la megamuerte”, así que si no os apetece ejecutar las demos pero tampoco os conformáis con la calidad de youtube, ésta es vuestra oportunidad para verlas a todo trapo y sin “artifacts”.
Podéis descargar el DVD y las portadas desde scene.org
(Nota: La noticia es un poco antigua, pero no he encontrado momento de ponerla antes, disculpas
)
Versión final y código de la otopoto
Electro-apigos, me alegra compartir con vosotros la versión final de nuestra ultima prod y su código fuente. Cabe destacar que la versión final solo tiene ciertas correcciones que añadí al hacer la versión del código para publicar, pero nada de contenido nuevo ni corregido. Tenéis mas detalles en el nfo de la 4k. Disfrutadlo:
- otopoto / Collapse & Gatitos (versión final)
- otopoto / Collapse & Gatitos (código fuente)


