Detailed write-up for "Memories"
category: code [glöplog]
Black magic explained! :-D
The Grimoire of Hell(Mood) ! :D
Thank you! It was an entertaining read.
Excellent read!
I think two bytes can be saved in fx4:
One in the end of fx0:
And stop: can save byte by reusing ret in any of fx functions.
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.
Thank you so much for this!
@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 ;)
If you find more, please let me know. The final version(s) gonna be awesome ;)
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
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.
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.
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 =)
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
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
Haven't posted anything in Pouet in over 10 years, forgot to add a clickable link:https://github.com/simpassi/cocoamemories
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 :)
Thanks again to frag for saving those bytes, that made including the amiga ball easier :)
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.
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
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.
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.