Re: Video: Lesson P5 - Bitmap graphics on the TI-83 and MSX
Posted: Sat Jan 16, 2021 5:46 am
I had a read of some of documentation screen 3.
The screen three mode (as it is known in MSX BASIC) can have 16 colours on screen and each pixel in the the 68 by 48 screen can be set to any of the 16 colour without any restrictions.
The common definition of bitmap means there is a one to one correspondence of how screen information in pixels is stored in memory in a computer and how it is visually displayed to the user.
Wikipedia defines a bitmap to mean "a bitmap is a mapping from some domain (for example, a range of integers) to bits."
So by those definitions screen 3 is a true bitmap screen.
Because as the documents describe, each pixel and colour of screen 3 have a 1-1 correspondence with how the screen is stored in VRAM, the way it is stored also allows for all 16 colours on screen, and each pixel in the the 68 by 48 screen can be set to any of the 16 colour without and restrictions.
I will write a program in ASM to show what I mean above and it is different from the way you programmed in your screen 3 asm demo above-when I have finished writing the program.
I am interested in screen 3 because I think it will give a fast way to use floating point arithmetic for computing real time 3d polygon graphics instead of using the, screen 2 mode and look up tables for the geometry calculations,
it is quite a lot more non-trivial to use screen 2 in this way, one of the bottlenecks in my 3d polygon code is the pixel plotting function in screen 2 -it needs too many pixel plots to draw each polygon face- this is essentially because the MSX uses a VDP to indirectly draw to the screen (it cannot write to the screen like directly like it does to RAM). Maybe you pixel plotting function (used in your Photon) is faster than mine to do some sort of 3d graphics on the MSX1 which is something I will look into -but you pixel plotting routine seems not much different from mine -but the best bet, and maybe the only way, is using screen 3 I think for real time 3d.
So when I have done an example code for plotting screen 3 pixels I will give it here
The screen three mode (as it is known in MSX BASIC) can have 16 colours on screen and each pixel in the the 68 by 48 screen can be set to any of the 16 colour without any restrictions.
The common definition of bitmap means there is a one to one correspondence of how screen information in pixels is stored in memory in a computer and how it is visually displayed to the user.
Wikipedia defines a bitmap to mean "a bitmap is a mapping from some domain (for example, a range of integers) to bits."
So by those definitions screen 3 is a true bitmap screen.
Because as the documents describe, each pixel and colour of screen 3 have a 1-1 correspondence with how the screen is stored in VRAM, the way it is stored also allows for all 16 colours on screen, and each pixel in the the 68 by 48 screen can be set to any of the 16 colour without and restrictions.
I will write a program in ASM to show what I mean above and it is different from the way you programmed in your screen 3 asm demo above-when I have finished writing the program.
I am interested in screen 3 because I think it will give a fast way to use floating point arithmetic for computing real time 3d polygon graphics instead of using the, screen 2 mode and look up tables for the geometry calculations,
it is quite a lot more non-trivial to use screen 2 in this way, one of the bottlenecks in my 3d polygon code is the pixel plotting function in screen 2 -it needs too many pixel plots to draw each polygon face- this is essentially because the MSX uses a VDP to indirectly draw to the screen (it cannot write to the screen like directly like it does to RAM). Maybe you pixel plotting function (used in your Photon) is faster than mine to do some sort of 3d graphics on the MSX1 which is something I will look into -but you pixel plotting routine seems not much different from mine -but the best bet, and maybe the only way, is using screen 3 I think for real time 3d.
So when I have done an example code for plotting screen 3 pixels I will give it here