Welcome, Guest. Please login or register.

Author Topic: I made my first demoscene effect in assembler!  (Read 6965 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline Piru

  • \' union select name,pwd--
  • Hero Member
  • *****
  • Join Date: Aug 2002
  • Posts: 6946
    • Show all replies
    • http://www.iki.fi/sintonen/
Re: I made my first demoscene effect in assembler!
« on: November 26, 2006, 01:37:16 AM »
I'm a bit too drunk atm to make any detailed analysis, but I'll check it out later.

[EDIT]

But even when wasted I can give some ideas how to make it much faster (at least on older systems):

- Inline the innerloop (.NextX) subroutine calls.
- Use registers to store variables instead of memory. Do this at least for variables used in innerloop.
- Move out any 'y' related calculation from the .NextX loop, calculate these values before entering the X loop (this appears to have been done mostly, however).

[/EDIT]
 

Offline Piru

  • \' union select name,pwd--
  • Hero Member
  • *****
  • Join Date: Aug 2002
  • Posts: 6946
    • Show all replies
    • http://www.iki.fi/sintonen/
Re: I made my first demoscene effect in assembler!
« Reply #1 on: November 27, 2006, 04:34:30 PM »
Okay, took a look at the code and optimized it couple of cycles. It should be slightly faster, but not much. I also fixed some small bugs from the startup code, made it render as fast as possible (it's much slower than vertical blank, so rendering from VBL doesn't make much sense), removed chipmem allocation, fixed random returncode etc.

ROTOZOOM.S
ROTOZOOM.exe