Nice nice!
Have you considered using outd to mirror stuff in stead of using a rotated/mirrored copy?
Amazing! These got to be your characters: https://youtu.be/Jgp-XyjvuCw
You got me thinking for a while! But I think I do not get any useful mirroring options:
The original code was:
pop de add hl, de ld a, (hl) out (0x98), a
but did find out that outi makes it 2 cycles faster. The increment is actually a side-effect that I need to compensate on the lockup table.
To perform some mirroring I would need to replace the add hl, de for a "sub hl, de", but this instruction does not exist :S
You can always do:
and a sbc hl,de
You got me thinking for a while! But I think I do not get any useful mirroring options:
The original code was:
pop de add hl, de ld a, (hl) out (0x98), a
but did find out that outi makes it 2 cycles faster. The increment is actually a side-effect that I need to compensate on the lockup table.
In the texture map routine I made for my 3D engine I did the same. However my strategy was to have DE as a fixed coordinate in the map and then do a POP HL as an offset-value. This way I had an (easier to calculate) offset table and I could move DE around as origin in the texture. Due to the fact that you could POP HL all the time you can simply ignore the side effect of the OUTI.
In the texture map routine I made for my 3D engine I did the same. However my strategy was to have DE as a fixed coordinate in the map and then do a POP HL as an offset-value. This way I had an (easier to calculate) offset table and I could move DE around as origin in the texture. Due to the fact that you could POP HL all the time you can simply ignore the side effect of the OUTI.
Indeed! this is way better! And allows to pick any subset of the transformation table! I'll convert the tables and everything to this format ASAP! Thanks!
salutte would it help you an arrangement of the characters in columns, instead of rows, in order to be able to work on adjacent VRAM addresses ?
Looks amazing. I hope you'll be able to create a great game around it, too.
Wow! This is very impressive! Looks amazing, a little like F-nano 2 for MSX turbo-R, but then even better.
On a msx1... I'm speechless
I am cleaning the code, and migrating from the old modulelinker to megalinker, so that I can have space to add more stuff. I will change the loop from pop de to pop hl. Once this is done, I don't think it makes much difference if the tiles are organized as rows or as columns (as long as the lookup table is organized in the same way, it should not add any delay).