Author Topic: screens and modes  (Read 5504 times)

0 Members and 1 Guest are viewing this topic.

Offline cpc4eva

  • 464 Plus
  • *****
  • Posts: 473
  • Country: au
  • Liked: 144
  • Likes Given: 147
screens and modes
« on: 11:30, 26 January 11 »
is it possible to utilise the full cpc screen in games ?


i always feel jaded that the three screen size modes- mode 0, mode 1, mode 2 limited the cpc

Offline arnoldemu

  • Supporter
  • 6128 Plus
  • *
  • Posts: 5.336
  • Country: gb
    • Unofficial Amstrad WWW Resource
  • Liked: 2275
  • Likes Given: 3478
Re: screens and modes
« Reply #1 on: 11:42, 26 January 11 »
is it possible to utilise the full cpc screen in games ?


i always feel jaded that the three screen size modes- mode 0, mode 1, mode 2 limited the cpc
in terms of removing the visible border?

Yes.

For static screens the type of overscan that uses a 22k (approx) screen can be used.
You reduce the amount of ram available for the game and graphics, but it's still possible and some games use the extra 64k of the 6128 to compensate. With this sized screen you can do double buffering, but then you've got almost no main ram free.

For scrolling screens you need to use demo techniques to split the screen into two parts which then cover the display.
You can then scroll these. Same problems as the static screen in terms of amount of ram lost.

So yes, it is possible.

I choose not to use this sized screen at this time because I like to make all my games run in 64k minimum.
But perhaps in the future I will use this size screen.

EDIT: Some games that use this overscan display:

Sudoku master
Return of the sisters
Groops

There are others but I don't remember them at this time.
« Last Edit: 11:43, 26 January 11 by arnoldemu »
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Offline AMSDOS

  • Supporter
  • 6128 Plus
  • *
  • Posts: 3.915
  • Country: au
    • index.php?action=treasury
    • Programs for Turbo Pascal 3
  • Liked: 1123
  • Likes Given: 1900
Re: screens and modes
« Reply #2 on: 07:56, 27 January 11 »
I remember mentioning the Public Domain games Axys and I think Plumpy before which in the case of Axys has an overscan screen during the loading phases along with Scrolling Text at the bottom. Plumpy has a Titled Screen which also has scrolling text and some Rasters at the top and bottom, both quite neat. The games themselves I'm not so sure it's full screen overscan, though for me the effect is still quite stunning and just as good (even if some memory is being spared), because Axys is scrolling from top to bottom (since it's basically a PD version of Light Force), the top/bottom effect looks quite good. Plumpy likewise does the same, though doesn't involve any scrolling, each level though fills the screen top/bottom, though both don't cover the left/right side of the screen, though they don't really need to!  ;D
* Using the old Amstrad Languages :D   * with the Firmware :P
* I also like to problem solve code in BASIC :)   * And type-in Type-Ins! :D

Home Computing Weekly Programs
Popular Computing Weekly Programs
Your Computer Programs
Updated Other Program Links on Profile Page (Update April 16/15 phew!)
Programs for Turbo Pascal 3

Offline fano

  • Supporter
  • 6128 Plus
  • *
  • Posts: 835
  • Country: fr
  • Easter Egg Programmer
    • Easter Egg
  • Liked: 278
  • Likes Given: 614
Re: screens and modes
« Reply #3 on: 23:03, 27 January 11 »
Another game in fullscreen/overscan : Red&Blue
Red&Blue
"NOP" is the perfect program : short , fast and (known) bug free

Follow Easter Egg products on Facebook !

Offline TFM

  • Visit the mysteries of the CPC at www.futureos.de
  • Supporter
  • 6128 Plus
  • *
  • Posts: 9.899
  • Country: aq
  • Space Chicken for FutureOS is free!
    • index.php?action=treasury
    • FutureOS - The revolution on CPC!
  • Liked: 1982
  • Likes Given: 4650
Re: screens and modes
« Reply #4 on: 23:58, 27 January 11 »
is it possible to utilise the full cpc screen in games ?

Yes, look here:
 

http://www.youtube.com/watch?v=6_RbO0Vm-AA
 
and here:
 

http://www.youtube.com/watch?v=MavWmgzr2P8
 
and probaby much more ;-)
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Offline eliot

  • CPC664
  • ***
  • Posts: 87
  • Country: fr
    • Benediction - demogroup since 1995
  • Liked: 57
  • Likes Given: 27
« Last Edit: 00:09, 28 January 11 by eliot »

Offline MacDeath

  • Chaotic post writer and mock-up specialist
  • Supporter
  • 6128 Plus
  • *
  • Posts: 4.061
  • Country: fr
  • Liked: 1168
  • Likes Given: 653
Re: screens and modes
« Reply #6 on: 09:09, 28 January 11 »
Get a fullfullscreen is not always suitable for a game.

As told, this may use something like 22-32K or Ram... and then the CPU is seriously limited in power.

Was on the other hand a common feature in Demos of course.

to get this with a scrolling game may be some sort of nightmare.

A solution is more like to get horizontal fullscreen or vertical fullscreen.
So you still have a border but it is limited to only 2 borders..

Some commercial games in almost full screen ?

-Arkanoid 1&2 (best exemples of this done right...)
-Donkey kong
-Ghoul's and Ghost (almost scrolling...)
-Titan (from Titus)

PrehistorikII is horizontal if I remember well  (so may be superCauldron then...)

Shinobi actually display a few text pages in vertical fullscreen.

Cartridges games also feature fullscreen still pictures (Wild street or Fire and forget2 per exemple)

This technic can be great for non scrolling games with simple graphical content...
Tetris like games or various puzzle games per exemple.

Also it is quite "common" for craked games to get cracktros or intropicture in Fullscreen.

the main advantage with "limited fullscreen" (lol) or redimensionned screen sizes is that it may enable to get a "VideoRAM" weighting the same as normal one...
And it gets the Demo flavour or removethe reduced screen feeeling.

An exemple is the underused 256x256 resolution...
Most speccy ports were 256x192 but they should/could have been 256x256 with a real CPC code.
« Last Edit: 09:16, 28 January 11 by MacDeath »

Offline cpc4eva

  • 464 Plus
  • *****
  • Posts: 473
  • Country: au
  • Liked: 144
  • Likes Given: 147
Re: screens and modes
« Reply #7 on: 14:25, 28 January 11 »

for example say it was a basic game like the link ive posted below for misslie command atari 2600



http://www.youtube.com/watch?v=Z4zF790DzyQ


would it be possible to display full screen and have the game area include the borders so in affect there was no border at all ?




would it be possible to alter the cpc motherboard to develop a new screen or mode or is that just way out of the question ?

Offline cpc4eva

  • 464 Plus
  • *****
  • Posts: 473
  • Country: au
  • Liked: 144
  • Likes Given: 147
Re: screens and modes
« Reply #8 on: 14:31, 28 January 11 »
Some other examples for this usual topic:   
Inferno : http://www.cpc-power.com/index.php?page=detail&num=3876

Xyphoes Fantasy : http://www.cpc-power.com/index.php?page=detail&num=1433

Karatian : http://www.cpc-power.com/index.php?page=detail&num=3625
Les Mondes Parallèles: http://www.cpc-power.com/index.php?page=detail&num=76

Burger Party : http://www.cpc-power.com/index.php?page=detail&num=3668
Cyborgs : http://www.cpc-power.com/index.php?page=detail&num=3586
And a prototype called Killing Fist we have already debated about in this Forum : http://www.cpc-power.com/index.php?page=detail&onglet=goodies&num=1248






what can i say but WOW :)  cpc looks so much more improved with full screen in use.


full screen and colour some really impressive work for cpc are they all cpc or cpc+ ??


is killing fist released / going to be released ?

Offline arnoldemu

  • Supporter
  • 6128 Plus
  • *
  • Posts: 5.336
  • Country: gb
    • Unofficial Amstrad WWW Resource
  • Liked: 2275
  • Likes Given: 3478
Re: screens and modes
« Reply #9 on: 14:31, 28 January 11 »
for example say it was a basic game like the link ive posted below for misslie command atari 2600



http://www.youtube.com/watch?v=Z4zF790DzyQ


would it be possible to display full screen and have the game area include the borders so in affect there was no border at all ?
Yes.

If you also mean "can I write a game in basic using this mode?" then the answer is not easily, and then you would need some firmware functions patched so that they could take into account the new dimensions.
The best place to locate this screen and keep firmware happy is around &0000-&7ffff! Just where basic likes to be ;)

would it be possible to alter the cpc motherboard to develop a new screen or mode or is that just way out of the question ?
Well the aleste does something like this.

The possibilities are to take the existing colour modes, and just increase or decrease the resolution, to do that you need to change the clock of the gate-array, and perhaps the whole system.
I'm not sure how possible this is with the cpc design.
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Offline eliot

  • CPC664
  • ***
  • Posts: 87
  • Country: fr
    • Benediction - demogroup since 1995
  • Liked: 57
  • Likes Given: 27
Re: screens and modes
« Reply #10 on: 16:58, 28 January 11 »
Quote from: cpc4eva

what can i say but WOW :)  cpc looks so much more improved with full screen in use.

full screen and colour some really impressive work for cpc are they all cpc or cpc+ ??

is killing fist released / going to be released ?

Only Burger Party is for PLUS only. Others are for CPC and PLUS. 

Killing Fist won't be released, it's an old  (1992?) german-french cooperation project. We have already discussed about it here or on the old CPC zone forum... I can't remember.

A lot of games could be (have) done in fullscreen, especially the numerous board games!!! Adding rasters or mode-changes on a screen could be more frequent, like these recent releases :  http://www.cpc-power.com/index.php?page=detail&num=4567 or http://www.cpc-power.com/index.php?page=detail&num=4970

I like the idea that a CPC game uses the specific CPC features... 

Eliot

Offline MacDeath

  • Chaotic post writer and mock-up specialist
  • Supporter
  • 6128 Plus
  • *
  • Posts: 4.061
  • Country: fr
  • Liked: 1168
  • Likes Given: 653
Re: screens and modes
« Reply #11 on: 18:39, 28 January 11 »
Quote
would it be possible to alter the cpc motherboard to develop a new screen or mode or is that just way out of the question ?
If you alter the motherboard you can even turn a CPC into a Sega MegaDrive... (using a Z80 too... sort of...)
 :laugh:


But yeah a game like the coldwar panic on Atari2600... there is no scrolling, so yeah this may run in fullscreen with no border...
Would look better in 128K Ram though... or Cartridge perhaps.

But it's not like there are a lot of graphics to be used... oh ok it is an Atari2600...

The full screen is great in mode0 as the wide pixels are dwarfed by the extended screensize... you can get a less blocky feeling...because you have more space to display your graphics and can make them bigger.


But a non-tile based full screen picture is a lot of RAM for a CPC464 per exemple.

Another aspect to watch is the monitor...
the maximum of displayed pixels may depend wether your is hot or not, or from monitor to monitor
« Last Edit: 18:44, 28 January 11 by MacDeath »

Offline TFM

  • Visit the mysteries of the CPC at www.futureos.de
  • Supporter
  • 6128 Plus
  • *
  • Posts: 9.899
  • Country: aq
  • Space Chicken for FutureOS is free!
    • index.php?action=treasury
    • FutureOS - The revolution on CPC!
  • Liked: 1982
  • Likes Given: 4650
Re: screens and modes
« Reply #12 on: 20:46, 28 January 11 »
Get a fullfullscreen is not always suitable for a game.

As told, this may use something like 22-32K or Ram... and then the CPU is seriously limited in power.

No, if you use two 16 KB screens for example (32 K V-RAM) then this uses not even 0.1% of the cpu power. Twice a second some OUT commands, that's all you have to do.
 
I don't know why people are afraid of fullscreen? Probably programmers are to lazy to use it. Or it's all about that speccy conversions...  :'(
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Offline fano

  • Supporter
  • 6128 Plus
  • *
  • Posts: 835
  • Country: fr
  • Easter Egg Programmer
    • Easter Egg
  • Liked: 278
  • Likes Given: 614
Re: screens and modes
« Reply #13 on: 21:04, 28 January 11 »
No, if you use two 16 KB screens for example (32 K V-RAM) then this uses not even 0.1% of the cpu power. Twice a second some OUT commands, that's all you have to do. 
I don't know why people are afraid of fullscreen? Probably programmers are to lazy to use it. Or it's all about that speccy conversions...  :'(
For sure , on a 128K machine , it is interesting to use hard scroll.If it takes too much memory , it is possible to use lower values than 7 on R9 to save 2*2K per line.
One problem is it needs to be a 1 or 2 byte scroll , not 1 pixel scroll.
Another reason is you need to fully master CRTC adressing to feed the scroll and to draw sprites , thing that is not obvious.
"NOP" is the perfect program : short , fast and (known) bug free

Follow Easter Egg products on Facebook !

Offline redbox

  • Supporter
  • 6128 Plus
  • *
  • Posts: 1.751
  • Country: gb
    • redbox
  • Liked: 326
  • Likes Given: 267
Re: screens and modes
« Reply #14 on: 21:10, 28 January 11 »
Another reason is you need to fully master CRTC adressing to feed the scroll and to draw sprites , thing that is not obvious.

It's been said before and you're right again fano, the real b*tch is not scrolling it (yes TFM, it's easy) but calculating everything again once you've scrolled it.

Offline fano

  • Supporter
  • 6128 Plus
  • *
  • Posts: 835
  • Country: fr
  • Easter Egg Programmer
    • Easter Egg
  • Liked: 278
  • Likes Given: 614
Re: screens and modes
« Reply #15 on: 21:32, 28 January 11 »
Exactly , i noticed a lot of people got problems to understand that (including myself until Longshot explained it and made things clear as crystal for me) and i think we lack of documentation about this.I'd like to write an article on wiki about this (and some other things about tile based rendering) when i'll have more free time.
« Last Edit: 21:42, 28 January 11 by fano »
"NOP" is the perfect program : short , fast and (known) bug free

Follow Easter Egg products on Facebook !

Offline cpc4eva

  • 464 Plus
  • *****
  • Posts: 473
  • Country: au
  • Liked: 144
  • Likes Given: 147
Re: screens and modes
« Reply #16 on: 21:47, 28 January 11 »
thanks for the link eliot - that colour lines loading screen is so detailed the resolution and colour palette reminds me of purple saturn day loading screen c64 resolution and colour palette nowhere near the cpc's but thats off topic and being discussed elsewhere...




skweek, 1942, flying shark, 1943, are just a few of the cpc games that come to mind that use a very small playing area and to see the links people have posted with cpc full screen being used is remarkable as it is very capable of doing it with or without scrolling. expecially with detailed sprite games like xyphoes fantasy and prehistorik II


macdeath your a funny man just want to see if its possible for the cpc motherboard to be moded in any way not turn it into a sega  mega drive :)

Offline cpc4eva

  • 464 Plus
  • *****
  • Posts: 473
  • Country: au
  • Liked: 144
  • Likes Given: 147
Re: screens and modes
« Reply #17 on: 21:48, 28 January 11 »
Exactly , i noticed a lot of people got problems to understand that (including myself until Longshot explained it and made things clear as crystal for me) and i think we lack of documentation about this.I'd like to write an article on wiki about this (and some other things about tile based rendering) when i'll have more free time.




that would be really helpful :)

Offline redbox

  • Supporter
  • 6128 Plus
  • *
  • Posts: 1.751
  • Country: gb
    • redbox
  • Liked: 326
  • Likes Given: 267
Re: screens and modes
« Reply #18 on: 22:26, 28 January 11 »
I'd like to write an article on wiki about this (and some other things about tile based rendering) when i'll have more free time.

That would be great!

But please finish R-Type first (some things are more important  ;) ).

Offline TFM

  • Visit the mysteries of the CPC at www.futureos.de
  • Supporter
  • 6128 Plus
  • *
  • Posts: 9.899
  • Country: aq
  • Space Chicken for FutureOS is free!
    • index.php?action=treasury
    • FutureOS - The revolution on CPC!
  • Liked: 1982
  • Likes Given: 4650
Re: screens and modes
« Reply #19 on: 22:42, 28 January 11 »
Maybe the biggest problem here is indeed a lack of docs. However, it may make some sense to use a piece of paper and write down your strategy before you start coding...
 
Introduce a bunch of pointers and offset variables. Finally they also can be adjusted pretty easy.
 
However, it's not that easy to provide a general solution, since every kind of overscan and / or fullscreen needs slightly different formulas.
 
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Offline AMSDOS

  • Supporter
  • 6128 Plus
  • *
  • Posts: 3.915
  • Country: au
    • index.php?action=treasury
    • Programs for Turbo Pascal 3
  • Liked: 1123
  • Likes Given: 1900
Re: screens and modes
« Reply #20 on: 23:58, 28 January 11 »
arnoldemu wrote:

Yes.

If you also mean "can I write a game in basic using this mode?" then the answer is not easily, and then you would need some firmware functions patched so that they could take into account the new dimensions.
The best place to locate this screen and keep firmware happy is around &0000-&7ffff! Just where basic likes to be ;)

 
From memory I think there was something in AA98 which had all sorts of tricks and tips and an assortment of useful pokes and there were a few to poke where BASIC programs were situated in memory. I think the problem you would run into once you've done that, is the Overscan screen is situated at &0000 to &7fff and it's overwriting that Low-ROM area - based at 0 to &3F. Disabling Interrupts would resolve this, but then your firmware routines have just been disabled, though to be dealing with Overscan stuff you'll probably need specific routines anyway. It maybe just possible to pull it off in BASIC, though it's not really well suited for it!  ???
* Using the old Amstrad Languages :D   * with the Firmware :P
* I also like to problem solve code in BASIC :)   * And type-in Type-Ins! :D

Home Computing Weekly Programs
Popular Computing Weekly Programs
Your Computer Programs
Updated Other Program Links on Profile Page (Update April 16/15 phew!)
Programs for Turbo Pascal 3

Offline sigh

  • 6128 Plus
  • ******
  • Posts: 1.283
  • Liked: 576
  • Likes Given: 59
Re: screens and modes
« Reply #21 on: 04:35, 29 January 11 »
I was thinking about screens in regards to modes and colours earlier today. I'm wondering that if you were only to use 8 colours in mode 0 instead of the full 16 colours I assume this would result in less ram being used.  I also assume that the use of ram would be only slightly bigger than using a 4 colour mode 1.

Please correct me if I'm wrong.

It's just that I've been thinking recently that creating games in 4 colours only leaves   3 for sprites as you need one for transparency. If you had 5 colours   instead it would have to use mode 0 - but how much difference in ram   would it make compared to using 4 in mode 0?


 

Offline AMSDOS

  • Supporter
  • 6128 Plus
  • *
  • Posts: 3.915
  • Country: au
    • index.php?action=treasury
    • Programs for Turbo Pascal 3
  • Liked: 1123
  • Likes Given: 1900
Re: screens and modes
« Reply #22 on: 06:28, 29 January 11 »
The screen memory is around 16Kb whichever way you look at it. With the colours though they are represented as bits and each byte can consist of a number of colours.
 
I can demonstrate this better in this little program:
 
Code: [Select]

org &8000
 
ld hl,&c000
ld de,&4000
ld bc,&004f
ldir
ret

Assemble that into memory, Lets say for example I poke &C000 with &FF type this in:
 
Code: [Select]

10 poke &c000,&ff
20 call &8000
30 print hex$(peek(&4000),2)

Obviously it will return FF in hexidecimal. But if I do something like this:
 
Code: [Select]
10 MODE 1:PLOT 0,399,3:CALL &8000:CALL &BB18
20 print hex$(peek(&4000),2)

All of a sudden the value returned is 88 in hexidecimal. How it works in that example above is merely one little pixel is a fraction of a whole byte. In mode 1 a byte is represented as 8 pixels, that byte consists all the information as to what's being displayed, in the case of saving memory by not using all the colours you wouldn't be significantly reducing it, reducing the size of visible screen would definitely cut down on more RAM. On the other hand taking something in a certain mode and compressing it may cut down on the amount of RAM being used. As a rule, a compressor will cut down the amount of memory being used on a screen if there's a lot of consistancy to it, images which tend to alternatate between colours will ultimately use more memory.
 
So the difference between the number of colours being used on an Amstrad is minimal cause it's coded in as Bytes anyway. Uncompressing images as I mentioned above is more for Displaying Screens, not ideal for within games, though I've heard of people using compressed sprites in Minigame productions - obviously one would uncompress the image and have it as uncompressed in their game.
* Using the old Amstrad Languages :D   * with the Firmware :P
* I also like to problem solve code in BASIC :)   * And type-in Type-Ins! :D

Home Computing Weekly Programs
Popular Computing Weekly Programs
Your Computer Programs
Updated Other Program Links on Profile Page (Update April 16/15 phew!)
Programs for Turbo Pascal 3

Offline fano

  • Supporter
  • 6128 Plus
  • *
  • Posts: 835
  • Country: fr
  • Easter Egg Programmer
    • Easter Egg
  • Liked: 278
  • Likes Given: 614
Re: screens and modes
« Reply #23 on: 08:49, 29 January 11 »
I was thinking about screens in regards to modes and colours earlier today. I'm wondering that if you were only to use 8 colours in mode 0 instead of the full 16 colours I assume this would result in less ram being used.  I also assume that the use of ram would be only slightly bigger than using a 4 colour mode 1.

Please correct me if I'm wrong.
Yes , that would be smaller but that would be an infamous mess.As your data would be 3 bits , you'll need to stream bits to rebuild color indices on 4 bits.That would be a slow process as your data would not be aligned on 8bits boundary (only every 8 bytes and 4bits aligned every 4 bytes)
3bits mode 0 graphics would be 1/4 lighter than 4bits mode 0 or mode 1.There are no differences in size between modes because if you use twice pixels , you'll have half colors so the result is the same.

It's just that I've been thinking recently that creating games in 4 colours only leaves   3 for sprites as you need one for transparency. If you had 5 colours   instead it would have to use mode 0 - but how much difference in ram   would it make compared to using 4 in mode 0?
This is a game that uses 4 colors graphics on a full 16 colors (and more?) display , internal gfx takes half size than 16 colors graphics : http://www.cpc-power.com/index.php?page=detail&num=143
It is not possible to store only 5 colors because each bit mutiply by 2 the amount of possibles colors like 2,4,8,16,32 and so on.
« Last Edit: 09:35, 29 January 11 by fano »
"NOP" is the perfect program : short , fast and (known) bug free

Follow Easter Egg products on Facebook !

Offline sigh

  • 6128 Plus
  • ******
  • Posts: 1.283
  • Liked: 576
  • Likes Given: 59
Re: screens and modes
« Reply #24 on: 13:52, 29 January 11 »
As a rule, a compressor will cut down the amount of memory being used on a screen if there's a lot of consistancy to it, images which tend to alternatate between colours will ultimately use more memory.

Okay - I'll remember this. Thanks.

Yes , that would be smaller but that would be an infamous mess.As your data would be 3 bits , you'll need to stream bits to rebuild color indices on 4 bits.That would be a slow process as your data would not be aligned on 8bits boundary (only every 8 bytes and 4bits aligned every 4 bytes)
3bits mode 0 graphics would be 1/4 lighter than 4bits mode 0 or mode 1.There are no differences in size between modes because if you use twice pixels , you'll have half colors so the result is the same.

So even though using 8 colours would be less ram, it would actually be slower to use than 16 mode 0 or 4 mode 1?
Damn. I seem to be constantly failing every single time to find ways of reducing the amount of ram and cpu when handling modes.
Thanks for the info.