0 Members and 1 Guest are viewing this topic.
I figured that since Iambian is going to continue posting progress here that this project deserved its own sub-forum, along with Drak's PotterQuest 2 (hoping he finishes it)
4. Just keep trying again and again to accelerate the tilemapper. Currently, I'm using prerotated tiles with two masks to merge the tiles to achieve horizontal scrolling. The specific logic is the follows: " ld a,(de) \ and b \ xor (hl) \ and c \ xor (hl)" to achieve the sprite. C the logical not(B). Enlightening me on alternative schemes would be of best help. Currently, the tiles are interleaved and the buffer is the same, and is also vertically aligned, so if this was a simply aligned version, it would be a few LDIRs to the buffer.
DeMorgan's Laws~(A ^ B)=(~A V ~B)~(A V B)=(~A V ~B)Commutativity(A ^ B) = (B ^ A)(A V B) = (B V A)Association(A ^ (B ^ C)) = ((A ^ B) ^ C)(A V (B V C)) = ((A V B) V C)Distribution(A ^ (B V C)) = ((A ^ B) V (A ^ C))(A V (B ^ C)) = ((A V B) ^ (A V C))Double NegationA = ~~AContra position (technical translations are hard :S )(A -> B) = (~B -> ~A)Material Implication(A -> B) = (~A V B)Material Equivalent(A <-> B) = ((A -> B) ^ (B -> A)(A <-> B) = ((A^B)V(~A^~B))Exportation((A^B)->C) = (A->(B->C))TautologyA = (A V A)A= (A ^ B) ~ = not()V = or^ = and-> = conditional (I think it doesn't have interest)<-> = bicondicional (same as above)
1. Change interrupt scheme. Previously, everything's being run in the interrupt. This could change so that the "main code" would contain the tilemapper
[...]When you talked about changing buffers stuff, I had an idea that I don't know what could bring in real implementation.The idea is to make in pairs of two bytes with dark and light layer:(x1,y1)dark , (x1,y1) light , (x2,y1)dark , (x2,y1)ligh ...To get the light layer is just inc hl...
[...]edit:what size are the tiles and why do you need masks to merge the prerotated tiles?
(to prevent the page from getting too long, much stuff was omitted,but the post can still be referenced)When I say that the gray buffer is interleaved, what is quoted is exactly what I mean. Except that the buffer is also vertically aligned: (x1,y1)dark, (x1,y1)light, (x1,y2)dark, (x1,y2)light, ...
Quote from: Galandros on June 23, 2009, 03:57:01 am[...]When you talked about changing buffers stuff, I had an idea that I don't know what could bring in real implementation.The idea is to make in pairs of two bytes with dark and light layer:(x1,y1)dark , (x1,y1) light , (x2,y1)dark , (x2,y1)ligh ...To get the light layer is just inc hl...(to prevent the page from getting too long, much stuff was omitted,but the post can still be referenced)When I say that the gray buffer is interleaved, what is quoted is exactly what I mean. Except that the buffer is also vertically aligned: (x1,y1)dark, (x1,y1)light, (x1,y2)dark, (x1,y2)light, ...
Quote from: SolusIpse on June 23, 2009, 10:37:24 am[...]edit:what size are the tiles and why do you need masks to merge the prerotated tiles?The tiles are 16*16, but they'll be treated as 8*16 for the purposes of the tilemapper.I'm using masks to put together the prerotated tiles to achieve horizontal scrolling. Say that the tileset has been rotated 4 times so far (to provide the illusion of moving to the side 4 pixles). The line of the tile on the left reads %11011011 and the first line of the tile on the right side reads %01010101. The mask will be %11110000 and after the merge, the byte will read %11010101. I assume there's a faster way?