HispaMSX

One sprite in two colors

2004-09-19 09:26:17


  Hello,

  I have send you an interesting routine to you, this routine maid for make one 
sprite in two colors.
  EXPLANATION:

  Varying in the chart of the attributes of the sprites the elements in 
relationship with the name and the color of the sprites to every scanning 
video, is possible to produce sprite that is in appearance of two colors. You 
suggests to follow the method that follows: before all to define in two ways 
the sprites, a definition for every color. The definitions must be in the VRAM 
one following to the other, in way that the definizonis 0 and 1 define a first 
motley sprite, the definition 2 and 3 a second, the definition 4 and 5 a third, 
etc.  
  In according to place to reserve a zone of memory for a chart of exchange, 
every element of this last it does reference to a code of color for the 
definitions of sprite odd order (in his seeds byte of great order); in the 
seeds byte of inferior order finds the code of the color to place for the 
definitions of order you protect. This chart must be adjourned every time that 
a new sprite is defined.  
  Finally it is necessary to write a procedure driven from interruption to 
change from a definition to the other (and therefore from a color to the other) 
to every due interruption to the scanning video.  
  In this way 2 sprites of different color and definition share the same 
entrance in the chart of the attributes of the sprites, every of which is 
visualized to every second scanning of the television video. You/he/she can 
happen that to every of them rises up a light phenomenon of flicker.
   
  I have digitation the edged assembler with the ZEN, but when I start the 
program with USR it doesn't work

  EXPLANATION in ITALIAN:

  Variando nella tabella degli attributi degli sprite gli elementi in relazione 
con il nome ed il colore degli sprite ad ogni scansione video, è possibile 
produrre sprite che siano in apparenza di due colori. Si suggerisce di seguire 
il metodo che segue: prima di tutto definire in due modi gli sprite, una 
definizione per ogni colore. Le definizioni devono essere nella VRAM una di 
seguito all'altra, in modo che le definizoni 0 e 1 definiscano un primo sprite 
multicolore, la definizione 2 e 3 un secondo, la definizione 4 e 5 un terzo, 
ecc.  
  In secondo luogo riservare una zona di memoria per una tabella di scambio, 
ogni elemento di quest'ultima fa riferimento ad un codice di colore per le 
definizioni di sprite in ordine dispari (nel suo semi byte di ordine maggiore); 
nel semi byte di ordine inferiore trova posto il codice del colore per le 
definizioni di ordine pari. Questa tabella va aggiornata ogni volta che viene 
definito un nuovo sprite.  
  Infine è necessario scrivere una procedura guidata da interruzione per 
cambiare da un definizione all'altra (e quindi da un colore all'altro) ad ogni 
interruzione dovuta alla scansione video.  
  In questo modo 2 sprite di differente colore e definizione condividono la 
medesima entrata nella tabella degli  attributi degli sprite, ciascuno dei 
quali viene visualizzato ad ogni seconda scansione del video televisivo. Può 
succedere che a ciascuna di loro insorga un leggero fenomeno di sfarfallio.

  Bye
  Andrea from Italy
   
  Here uner there is the assebler list:
   
  SPSWTB: DEFS 32
  SPSWIT: LD HL,SATTAB
  LD DE,SPSWTB
  LD B,32
  SPSWLP: CALL 004AH
  CP 0D0H
  RET Z
  INC HL
  INC HL
  CALL 004AH
  XOR 1
  LD C,A
  CALL 004DH
  INC HL
  LD A,(DE)
  AND A
  RR C
  JR C,SKP
  SLA A
  SLA A
  SLA A
  SLA A
  SKP: AND 15
  LD C,A
  CALL 004AH
  AND 80H
  OR C
  CALL 004DH
  INC HL
  INC DE
  DJNZ SPSWLP
  RET



[Se han eliminado los trozos de este mensaje que no contenían texto]


<Anterior en la conversación] Conversación actual [Siguiente en la conversación>
  • One sprite in two colors, Andrea <=