HellMood information 4196 glöps
- general:
- level: user
- personal:
- portals:
- demozoo: profile
- cdcs:
- cdc #1: Crystal Dream 2 by Triton
- cdc #2: Hydrokinetics by Prismbeings
- cdc #3: Overdrive 2 by Titan [web]
- cdc #4: Way Too Rude by Logicoma [web] & Loonies [web]
- cdc #5: There by Still [web]
- cdc #6: Sojourn of the Soul by Flex
- cdc #7: Hexer by LJ
- 4k procedural graphics Windows luminol by Speckdrumm [web]
- sexy
- rulezadded on the 2018-12-29 14:55:40
- 40k intro Amiga AGA Amiga OCS/ECS Red Hair Redemption by Amiga Birthday Committee
- ozan ♥
- rulezadded on the 2018-12-20 19:23:39
- demo Commodore 64 Stan Lee Tribute by Desire [web]
- great tribute!
- rulezadded on the 2018-12-19 09:52:18
- 256b MS-Dos ikubun by fsqrt [web] & jetlag
- Thanks very much for the stream! I assembled all the tricks to one asm/com archive : ikubun_opt.zip It's 247 bytes, and one less if you remove the "XCHG BX,AX" refinement
- isokadded on the 2018-12-13 17:05:59
- 256b MS-Dos ikubun by fsqrt [web] & jetlag
- I will definitely watch it =)
There is room for even more optimization for sure, but at one specific point, you should invest one extra byte : somewhere between "mul di" and "pusha" do a "xchg bx,ax". That reconnects the fitting two bytes of Y on the stack (DL+BH -> DL+AH), so there is no precision loss. It looks much cleaner this way.
Without:

With:

- isokadded on the 2018-12-12 15:31:44
- 256b MS-Dos ikubun by fsqrt [web] & jetlag
- Now if we optimize the tunnel routine, replacing this
Code:fild word [bp-7] ;load x<<8 as dl:bh and y<<8 as dh:dl fld st0 fmul st0 inc bp jnz _load ;>x x*x y y*y faddp st2 ;>x r*r y fxch st1 ;>x y r*r fsqrt ;>y x r fidivr dword [si+(r0-start)] ;>y x r0/r ;stack top is [bp-2] fistp dword [bp-2-9] ;bx=(r0/r)>>8 ;r0/r can be > 32767, and we save it as dword ;overwriting old sp value (discarded after popa), bx and dl fpatan ;>angle fimul word [si+(c_rad-start)] ;angle=[0..~65536] fistp word [bp-2-4] ;ch=angle>>8=[0..255]
with this
Code:fild word [bp-7] ; x fild word [bp-6] ; y x fpatan ; arc fst st1 ; arc arc fcos ; cos(arc) arc fimul dword [si+(r0-start)] ; l*cos(arc) arc fidiv word [bp-6] ; l*cos(arc)/x arc fistp dword [bp-9] ; arc fimul word [si+(c_rad-start)] ; scarc fistp word [bp-4] ; -
then - for the price of one blinking pixel - 4 further bytes are saved =) It's the adaption of Sizeoptimizing the tunnel to the "ikubun" environment.
Finally, if we alter the "LUT for rotation speed" to "imul word [bx+si]" (-1 byte), the PC Speaker Version also fits into 256 bytes =) - isokadded on the 2018-12-12 11:12:14
- 256b MS-Dos ikubun by fsqrt [web] & jetlag
- looking at the code, replacing
Code:add al, 52 out 0x43, al mov al, 60 out 0x40, al salc out 0x40, al
with
Code:add al, 52 - 32 out 0x43, al mov al, 60 out 0x40, al
saves 3 bytes (Replacing 2byte access with 1byte access). Tested with Covox on DosBox and with PC Speaker on FreeDos. - isokadded on the 2018-12-12 10:09:05
- 16k Commodore 64 Waves 16k by Desire [web]
- \o/
- rulezadded on the 2018-12-08 16:53:44
- 256b MS-Dos ikubun by fsqrt [web] & jetlag
- Looking forward to it =) It would be nice to integrate this into http://www.sizecoding.org/wiki/Main_Page, as study or directly into the topics. Or at least link to it ;)
- isokadded on the 2018-12-08 14:59:05
- 256b MS-Dos ikubun by fsqrt [web] & jetlag
- Changed my CDC from "somehow" to this. I still think it's just the final "somehow" and am a bit puzzled by the re~release, but really, who cares. This is the better version for sure ;)
- rulezadded on the 2018-12-06 18:58:13
account created on the 2013-10-21 16:56:56
