Schrijver
| Transparancy
|
webmouse msx lover Berichten: 121 | Geplaatst: 09 Juli 2005, 10:42   |
How does transparancy work on a msx screen 5/8.
Is it possible to define a color that acts as a transparancy mask?
For example to copy a area (image) from page 1 to page 0.
|
|
manuel online msx guru Berichten: 3531 | Geplaatst: 09 Juli 2005, 11:17   |
Only colour 0 can be used to indicate transparency, AFAIK. So, if you have a round figure, put zeroes around it and you can copy it anywhere over a background having only the round figure copied. You have to use copies with transparency option enabled (T_IMP).
|
|
webmouse msx lover Berichten: 121 | Geplaatst: 09 Juli 2005, 13:08   |
Do you have an example how to program that in Turbo Pascal?
|
|
manuel online msx guru Berichten: 3531 | Geplaatst: 09 Juli 2005, 13:58   |
In Kari's libs, use the G_Timp flag for logical copies.
From vdpcmd.inc:
G_Timp = 8 ; {Does not change colour if 'new' colour is 0-colour}
But it seems the copy commands in Kari's lib don't support a logical operator...
|
|
Sonic_aka_T
 msx guru Berichten: 2269 | Geplaatst: 09 Juli 2005, 14:08   |
I don't know shit about pascal, but shouldn't it be relatively easy to out a couple of bytes to the VDP command registers? That way you could define your own copies using tables.
|
|
webmouse msx lover Berichten: 121 | Geplaatst: 09 Juli 2005, 14:55   |
Thanks, that's a step in the right direction.
I'm a programmer/webdeveloper for profession and I'm used to program with RAD tools.
TP3 is a different kind of way to programm but it's fun  .
I have ordered a Z80 ASM / MSX book to find out how the VDP etc. works. |
|
Sonic_aka_T
 msx guru Berichten: 2269 | Geplaatst: 09 Juli 2005, 15:30   |
The VDP is pretty straightforward once you get the hang of it... It's a matter of OUTing a couple of bytes (usually 15) to the respective command registers, and the VDP will do the rest. There's probably a number of threads on these forums that discuss the topic. You may also want to check the MSX Assembly Pages, where VDP commands are also explained. I'm sure you can achieve something like this using TP, if it the need arises I could also code a small piece of ASM for you which you could call from TP. All you'd need to do is set a couple of variables in RAM to specify what copy/command you wish to do...
|
|
manuel online msx guru Berichten: 3531 | Geplaatst: 09 Juli 2005, 16:42   |
The inc files from kari do exactly that, Sonic.... Set up the VDP and out the shit  |
|
Sonic_aka_T
 msx guru Berichten: 2269 | Geplaatst: 09 Juli 2005, 16:43   |
Quote:
| But it seems the copy commands in Kari's lib don't support a logical operator...
|
|
|
webmouse msx lover Berichten: 121 | Geplaatst: 09 Juli 2005, 16:54   |
Thank you for the offer. I want to learn how to code the VDP and the rest of the MSX architecture.
Back in the 80's/begin 90's I programmed a few tools and little games with MSX1/2 Basic (Philips VG 8020 and later a VG 8235). Never thought I would start to learn Z80 assembly after 12 years  . |
|
Sonic_aka_T
 msx guru Berichten: 2269 | Geplaatst: 09 Juli 2005, 17:17   |
Z80 assembly is tha b0mb!  |
|
manuel online msx guru Berichten: 3531 | Geplaatst: 09 Juli 2005, 17:56   |
Quote:
| Quote:
| But it seems the copy commands in Kari's lib don't support a logical operator...
|
|
Yeah, it only does YMMM and HMMM for copying.
The other operations do support LogOps:
- PaintLog.Inc, using LMMV + logop
- LoadGrp1.Inc, using LMMC + logop
HEY WAIT!
I just found the thing we were looking for: CopyL_XY.Inc! 
It does LMMM + LogOp! 
So, you can use it to copy stuff with the G_Timp LogOp parameter  |
|
webmouse msx lover Berichten: 121 | Geplaatst: 09 Juli 2005, 22:10   |
Great, I will try it tomorrow  !
|
|
|
|
|