English Amiga Board


Go Back   English Amiga Board > Coders > Coders. System

 
 
Thread Tools
Old 15 December 2019, 11:33   #1
roondar
Registered User

 
Join Date: Jul 2015
Location: The Netherlands
Posts: 1,723
Two questions about OS legal screens/copper lists

Many commercial Amiga strategy and RPG games actually ran with the OS still present but removed the ability of the user to drag the game screen (you could still drag other screens in front of the game screen, but not drag the game screen itself). This has some advantages, such as not needing to deal with disk IO while still being able to use copper trickery in the game.

I'd like to experiment a bit with running stuff with the OS present and am wondering how these games (such as Civilization, Dune 2, Eye of the Beholder, etc) managed to block screen dragging.

Are there any code examples that show how this is done (this has to run on Kickstart 1.3)?
Is it achieved by calling the OpenScreen function with the CUSTOMSCREEN flag set, or is there something else I should be doing?

Secondly, if I create a copper list for later use with MgrCop() can I simply set all custom registers as I please or does using the OS limit options?

Thanks for any assistance
roondar is offline  
Old 15 December 2019, 15:53   #2
Chrille
Registered User

 
Join Date: Sep 2018
Location: Germany
Posts: 33
Quote:
Originally Posted by roondar View Post
I'd like to experiment a bit with running stuff with the OS present and am wondering how these games (such as Civilization, Dune 2, Eye of the Beholder, etc) managed to block screen dragging.
Did you notice that at least for Dune 2 you can drag the screen by holding down amiga key + pressing left mouse button somewhere on the screen and move it downwards? Also you can press Amiga + M key to switch between screens.

AFAIK they have no bar to click ... and this is done by using the screen flag SCREENQUIET. See also: http://amigadev.elowar.com/read/ADCD.../node0237.html
Chrille is offline  
Old 15 December 2019, 16:28   #3
roondar
Registered User

 
Join Date: Jul 2015
Location: The Netherlands
Posts: 1,723
Thanks for the reply, I have made a small test program using the SCREENQUIET flag and observed it does indeed remove the title bar. However, it still allows dragging of the screen when moving the mouse to the top of the screen (and then left click & drag).

Dune 2 does not allow this, there you can only use the Amiga Key+left click & drag option.

I'd like to achieve the same result
By the way: I don't mind Amiga-M or Amiga-N still working (if that is what I really want I can always disable multitasking altogether), it's just that I'd like to prevent the dragging of a screen that doesn't look like you can drag it.

About the Copper, I'm more than a bit confused as to how it's supposed to work. I'm used to the assembly way of merely writing Copper instructions that just do what I want them and where. It seems that the OS allows this too using the various graphics.library functions.

But I can't find any examples of how this would actually work. Do you, or anyone else for that matter, know where I can find some graphics.library Copperlist examples?
roondar is offline  
Old 15 December 2019, 17:16   #4
Chrille
Registered User

 
Join Date: Sep 2018
Location: Germany
Posts: 33
Quote:
Originally Posted by roondar View Post
Thanks for the reply, I have made a small test program using the SCREENQUIET flag and observed it does indeed remove the title bar. However, it still allows dragging of the screen when moving the mouse to the top of the screen (and then left click & drag).

Dune 2 does not allow this, there you can only use the Amiga Key+left click & drag option.

I'd like to achieve the same result
By the way: I don't mind Amiga-M or Amiga-N still working (if that is what I really want I can always disable multitasking altogether), it's just that I'd like to prevent the dragging of a screen that doesn't look like you can drag it.
Then please try CUSTOMSCREEN + CUSTOMBITMAP, I just looked at some old source and this should do want you want.

Quote:
Originally Posted by roondar View Post
About the Copper, I'm more than a bit confused as to how it's supposed to work. I'm used to the assembly way of merely writing Copper instructions that just do what I want them and where. It seems that the OS allows this too using the various graphics.library functions.

But I can't find any examples of how this would actually work. Do you, or anyone else for that matter, know where I can find some graphics.library Copperlist examples?
No sorry, may be the source of some aminet tools are available? Like MagicCopper? May be it could be easily reverse engineered by e.g. the reassembler of MaxonASM
Chrille is offline  
Old 15 December 2019, 17:28   #5
roondar
Registered User

 
Join Date: Jul 2015
Location: The Netherlands
Posts: 1,723
Thanks again

I've been trying out some things in the meantime and have discovered that you can create this effect by having a non-draggable screen sized borderless window. Under Workbench/Kickstart 1.3, this disables screen dragging altogether. Under Workbench 3.1/Kickstart 3.1 this allows you to drag using Amiga+Left Click & drag.
roondar is offline  
Old 15 December 2019, 17:57   #6
Ami
Registered User

 
Join Date: Sep 2014
Location: Poland
Posts: 107
Check this. http://aminet.net/package/dev/asm/OSCopperlist
Ami is offline  
Old 15 December 2019, 22:02   #7
roondar
Registered User

 
Join Date: Jul 2015
Location: The Netherlands
Posts: 1,723
Quote:
Originally Posted by Ami View Post
Thanks, I'll check it out. This particular example does seem to bypass the OS to get Copperlist to work, though, which wasn't really what I had in mind.
roondar is offline  
Old 16 December 2019, 11:22   #8
hooverphonique
ex. demoscener "Bigmama"

 
Join Date: Jun 2012
Location: Fyn / Denmark
Posts: 1,062
Quote:
Originally Posted by roondar View Post
About the Copper, I'm more than a bit confused as to how it's supposed to work. I'm used to the assembly way of merely writing Copper instructions that just do what I want them and where. It seems that the OS allows this too using the various graphics.library functions.

But I can't find any examples of how this would actually work. Do you, or anyone else for that matter, know where I can find some graphics.library Copperlist examples?

I know it's not an example, but is the info in the RKM/Autodocs not sufficient?
It says that the registers are the ones in hardware/custom.h, which suggests you can modify any custom register (assuming you have acquired exclusive access to the hardware in question, of course).


After merging in a user copperlist, the OS will take care of adjusting your copper v waits when you e.g. drag a screen, by the way
You can probably find an example that creates a background copper gradient à la the one included with MagicWB, I'd think.
hooverphonique is offline  
Old 16 December 2019, 11:51   #9
roondar
Registered User

 
Join Date: Jul 2015
Location: The Netherlands
Posts: 1,723
Quote:
Originally Posted by hooverphonique View Post
I know it's not an example, but is the info in the RKM/Autodocs not sufficient?
It says that the registers are the ones in hardware/custom.h, which suggests you can modify any custom register (assuming you have acquired exclusive access to the hardware in question, of course).
It most definitely is enough, thanks very much
To my shame, I hadn't figured to look there. More or less forgot that there was more than just the Hardware Reference Manual on that site
Quote:
After merging in a user copperlist, the OS will take care of adjusting your copper v waits when you e.g. drag a screen, by the way
That'll teach me for underestimating the Amiga OS coders
Quote:
You can probably find an example that creates a background copper gradient à la the one included with MagicWB, I'd think.
Yup! Now that I know where to look, it turns out the same site also has a full example: http://amigadev.elowar.com/read/ADCD.../node059E.html

Thanks again!
roondar is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Copper lists are hard deimos Coders. Asm / Hardware 14 24 November 2019 13:03
Copper questions Steve Coders. Asm / Hardware 35 12 March 2017 02:26
2 questions: Not used DFFxxx location Copper behavior and Indivision ECS registers pandy71 Coders. Asm / Hardware 2 13 January 2015 14:13
Couple of questions about Copper Lists jimmy2x2x Coders. General 2 21 November 2014 17:03
Combining copper scrolling with copper background phx Coders. Asm / Hardware 14 16 June 2013 07:26

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 09:35.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, vBulletin Solutions Inc.
Page generated in 0.07617 seconds with 15 queries