Skip to content

Instantly share code, notes, and snippets.

@badlogic
Last active May 1, 2022 21:04
Show Gist options
  • Save badlogic/9af0e00d809a3aec8f33181d1194596c to your computer and use it in GitHub Desktop.
Save badlogic/9af0e00d809a3aec8f33181d1194596c to your computer and use it in GitHub Desktop.

Revisions

  1. badlogic revised this gist May 1, 2022. No changes.
  2. badlogic revised this gist Apr 20, 2022. 1 changed file with 0 additions and 1 deletion.
    1 change: 0 additions & 1 deletion Untitled.ul
    Original file line number Diff line number Diff line change
    @@ -1 +0,0 @@
    halt
  3. badlogic revised this gist Apr 20, 2022. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions Untitled.ul
    Original file line number Diff line number Diff line change
    @@ -0,0 +1 @@
    halt
  4. badlogic revised this gist Apr 20, 2022. 1 changed file with 0 additions and 3 deletions.
    3 changes: 0 additions & 3 deletions utils.ul
    Original file line number Diff line number Diff line change
    @@ -1,3 +0,0 @@
    mov 123, r1

    mov 345, r2
  5. badlogic revised this gist Apr 19, 2022. No changes.
  6. badlogic revised this gist Apr 19, 2022. 1 changed file with 101 additions and 2 deletions.
    103 changes: 101 additions & 2 deletions program.ul
    Original file line number Diff line number Diff line change
    @@ -1,3 +1,102 @@
    include "utils.ul"
    buffer: reserve int x 320 * 240 * 4
    fire: reserve byte x 320 * 240
    palette: int 0xff070707, 0xff1F0707, 0xff2F0F07, 0xff470F07, 0xff571707, 0xff671F07, 0xff771F07, 0xff8F2707, 0xff9F2F07, 0xffAF3F07, 0xffBF4707, 0xffC74707, 0xffDF4F07, 0xffDF5707, 0xffDF5707, 0xffD75F07, 0xffD75F07, 0xffD7670F, 0xffCF6F0F, 0xffCF770F, 0xffCF7F0F, 0xffCF8717, 0xffC78717, 0xffC78F17, 0xffC7971F, 0xffBF9F1F,0xffBF9F1F, 0xffBFA727, 0xffBFA727, 0xffBFAF2F, 0xffB7AF2F, 0xffB7B72F, 0xffB7B737, 0xffCFCF6F, 0xffDFDF9F, 0xffEFEFC7, 0xffFFFFFF

    halt
    # clear buffer
    mov buffer, r1
    mov 0, r2
    mov 0xff000000, r3
    clear_buffer_loop:
    sto r3, r1, r2
    add r2, 4, r2
    cmp r2, 320 * 240 * 4, r4
    jl r4, clear_buffer_loop

    # clear fire
    mov fire, r1
    mov 0, r2
    mov 0, r3
    clear_fire_loop:
    sto r3, r1, r2
    add r2, 1, r2
    cmp r2, 320 * 240, r4
    jl r4, clear_fire_loop

    # set bottom fire row
    mov 320 * 239, r2
    mov 36, r3
    set_bottom_fire_loop:
    sto r3, r1, r2
    add r2, 1, r2
    cmp r2, 320 * 240, r4
    jl r4, set_bottom_fire_loop

    main_loop:
    # timestamp
    syscall 5
    pop r10

    # update fire
    mov fire, r1
    add r1, 320 * 240, r2
    add r1, 320, r1

    update_fire_loop:
    rand r6
    mulf r6, 3, r6
    f2i r6, r6
    mov r6, r7
    and r6, 1, r6

    ldb r1, 0, r4
    sub r4, r6, r4
    cmp r4, 0, r5
    jge r5, set_fire
    mov 0, r4
    set_fire:
    mov r1, r3
    sub r3, 320, r3 # to
    sub r3, r7, r3
    add r3, 1, r3
    stob r4, r3, 0

    add r1, 1, r1
    cmp r1, r2, r5
    jl r5, update_fire_loop

    # draw fire
    mov fire, r1
    add r1, 320 * 240, r2
    mov buffer, r3
    mov palette, r4

    draw_fire_loop:
    # load fire color
    ldb r1, 0, r5
    mul r5, 4, r5
    add r5, palette, r5
    ld r5, 0, r5

    # store in buffer
    sto r5, r3, 0

    # advance to next pixel
    add r1, 1, r1
    add r3, 4, r3
    cmp r1, r2, r5
    jl r5, draw_fire_loop

    # print frame time
    syscall 5
    pop r11
    subf r11, r10, r11
    push 6
    push r11
    push 2
    syscall 2

    # update buffer
    push buffer
    syscall 0x1

    jmp main_loop
  7. badlogic created this gist Apr 19, 2022.
    3 changes: 3 additions & 0 deletions program.ul
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,3 @@
    include "utils.ul"

    halt
    3 changes: 3 additions & 0 deletions utils.ul
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,3 @@
    mov 123, r1

    mov 345, r2