-++++++++++++++++++++++++++++++++++++++++- CODING -++++++++++++++++++++++++++++++++++++++++- Coded by Sokol/Infotek I'm throwing here the procedure for displaying the sprite comrade, accurate to the pixel from the very Slava Mednonogov; incidentally used in Black Crow: ;E-mask, D-byte of sprite, HL-by- position on the screen. HEZ LD A,E ;output mask by AND RRCA RRCA RRCA RRCA LD C,A AND #1F AND (HL) LD(HL),A LD A,C AND #E0 INC L AND (HL) LD(HL),A ;LD A,D ;output sprite by OR RRCA RRCA RRCA LD C,A AND #E0 OR(HL) LD(HL),A LD A,C AND #1F DEC L OR(HL) LD(HL),A The example is taken from CV. What was there in UFO-2 - I vaguely remember :))) I can add: a) for speed, sprite sampling - stack (i.e. this piece is preceded by POP DE). Accordingly, the sprite is stored - "mask byte", "image byte","byte masks", "image byte", "mask byte", "image byte"... b) this piece ends, of course, teams to organize the cycle (transition to next screen line). c) therefore, to unify the conclusion Sprites of any width are stored in columns d) there are 8 such items in total. If not- you need to trim the sprites according toright/left border of the screen - there will be another 8+8 p/p e) (in the example, the mask/sprite is displayed by AND/OR, but in fact I’m in CV I output using OR/XOR :))) I would like to know (from the demomakers, of course :) - is it possible to output faster - e? The thought pops into my head to store it in advance. all shifts to all bytes (we get two bytes that), but only the sign will be 256*8*2 =8-[ ] (c)Copper Feet
Coding - I’m throwing here the procedure for outputting sprites, with pixel accuracy from Slava Mednonogov himself.
Share your thoughts about the article