ASAHIKAWA

261 words ~ 2 minsMathieu 'p01' Henri on January 21st, 2007

ASAHIKAWA

Flyby the city of Asahikawa in 64 bytes.

Is that even possible ?

There had been some great 64 bytes intro for DOS, but no voxel landscape so far. I wondered whether it was possible to fit this effect in 64 bytes for almost a year before sitting down and doing it. Turned out to be perfect time as Asahikawa beat another talented coder by a few hours and became the first 64 bytes intro to feature a voxel effect.

Source code

;
;     A s a h i k a w a
;
;    64b city  landscape
;
;    Mathieu 'p01' Henri
;    http://www.p01.org/
;
;    january  21st, 2007
;

org 100h

mov al,13h
int 10h
mov   bh,0a0h
mov   es,bx
main:
  mov    ax,di
  cdq
  mov    bx,320
  div    bx        ; ax = y, dx = x

  sub    dx,160
  mov    bx,dx     ; bx = x-160

  inc    ax        ;
  xchg    cx,ax    ; cx = y+1

  mov    ah,32
  cwd
  div    cx        ; ax = perspScale = ~y projected

  imul    bx,ax    ; bx = (x-160)*perspScale = ~x projected

  add    ax,si     ; frame offset
  and    al,240    ; al = v*16
  shr    bx,12     ; bx = u


  xlat             ; buildings 'LUT'
  xor    ax,bp     ; al = ~height of the building

  push  di
loop_y:
    or  al,16
    stosb
    sub  di,321
    inc  ax
    and  al,15
  jnz  loop_y

  pop  di
  inc  di

  jnz  main
  inc  si          ; next frame
  jnz  main

db  03h            ; <3

Feedback

Obviously Asahikawa is available on Pouet