pouët.net

Detailed write-up for "Memories"

category: code [glöplog]
 
... is now available

Please let me know if something is wrong there, and i will fix it :)
added on the 2020-04-19 22:07:11 by HellMood HellMood
Black magic explained! :-D
added on the 2020-04-19 22:14:39 by baah baah
The Grimoire of Hell(Mood) ! :D
added on the 2020-04-19 22:21:29 by ham ham
Thank you! It was an entertaining read.
added on the 2020-04-19 23:03:17 by Preacher Preacher
Excellent read!

I think two bytes can be saved in fx4:
Code:imul cx,bp,8 sub ch,8*8 ... add al,0b11111100 cmc salc and al,sierp_color


One in the end of fx0:
Code:xor dl,ah xchg dx,ax


And stop: can save byte by reusing ret in any of fx functions.
added on the 2020-04-20 02:23:09 by frag frag
Thank you so much for this!
added on the 2020-04-20 02:34:16 by wertstahl wertstahl
@frag Thank you, well spotted. Helping in pushing the limits like in old times ;) The fx codes were shifted a lot during development, and speeding up sierpinski rotozoom, beautifying and time aligning happened last minute, so i felt it could be shorter but didn't do it. No excuse for the kasparov though, i simply didn't see it. The stop function cannot save a byte like this though, it's called, and has to do a double RET (or INT 20h) Mind you, the sky color of the ocean changes everytime a byte is saved (in the upper code), will be "fun" to realign it again to look nice :D

If you find more, please let me know. The final version(s) gonna be awesome ;)
added on the 2020-04-20 09:44:33 by HellMood HellMood
Quote:
The stop function cannot save a byte like this though, it's called, and has to do a double RET

I mean this:
Code:stop: pop ax fx0:


Quote:
the sky color of the ocean changes everytime a byte is saved (in the upper code)

al value can be tied to effect number without size penalty:
Code:and al,15 mov bx,table xlat mov bl,al call bx
added on the 2020-04-20 10:01:07 by frag frag
stopfunction ... yes! that works =)

I had the XLAT way before but it got really slow on the box ( i didn't spoil actual code there though ;)

Anyway, since the ocean effect does not touch BX, it will be put on AX on the next run (xchg), that already works like your proposal. But no matter how the address is generated, it still will be a lower one, if bytes are saved, so the color changes ;)

And just a remark, the "and al,15" can be spared entirely, that's a leftover from when the intro looped, but i decided to have a defined start and stop.
added on the 2020-04-20 10:14:07 by HellMood HellMood
Some guy over the interwebs started his own explanation and goes REALLY deep into details. There is even python code and jupyter notebooks. Definitely worth a read, and i hope he goes on =)
added on the 2020-04-21 11:11:13 by HellMood HellMood
The most impressive prod of 2020s so far! Amazing.

Thank you for the writeup. It inspired me to create a little pseudo-assembly version in C for MacOS using TIGR: https://github.com/simpassi/cocoamemories
added on the 2020-05-27 20:47:48 by Phaser Phaser
Haven't posted anything in Pouet in over 10 years, forgot to add a clickable link:https://github.com/simpassi/cocoamemories
added on the 2020-05-27 20:49:04 by Phaser Phaser
It feels great to inspire :) Getting the nasty (i)muls right can be challening, you will solve taht eventually ;)

Thanks again to frag for saving those bytes, that made including the amiga ball easier :)
added on the 2020-05-28 11:38:56 by HellMood HellMood
Yeah finally figured out what was going on - i had forgotten how TEST works, it's been way too long... updated the screenshot to match.
added on the 2020-06-04 04:37:04 by Phaser Phaser
You got it right now, nice :) I will link this to the write up. If you could provide a video capture that would be awesome
added on the 2020-06-04 12:36:55 by HellMood HellMood
Uploaded a 60fps capture here: https://www.youtube.com/watch?v=_EgG_ZaBB7o

I feel that projects and write-ups like yours can help a lot of people to learn a ton even if that stuff is nowadays hidden under too many layers.
added on the 2020-06-04 20:35:59 by Phaser Phaser

login