News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_Devilmarkus

Question about GateArray

Started by Devilmarkus, 13:09, 01 July 12

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Devilmarkus

Grim means, that in a GateArray type 40010 the pixels between MODE 0 and 2 are shifted.

http://www.grimware.org/doku.php/documentations/devices/gatearray#iivram.rasterization.timings

Now my question:
- Does it also affect the border? (It should, I think)
- Does this only happen between MODE 0 and 2? Or also between MODE 1 and 0 / 1 and 2?
- If it affects the border, is the right border not affected?

Screenshot:


When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

fano

Interesting question , that hurts my interest.
Checked on my 6128 with 40010 and the reply is yes.That affects the border on left and right.
I may try on my 664 (40008?) if really needed (i must out it of the boxes before!)
"NOP" is the perfect program : short , fast and (known) bug free

Follow Easter Egg products on Facebook !

Devilmarkus

Also would be interesting to know, what happens in a "normal" mode split?
(Like in Mircolor)
Are the mode 2 pixels here shifted, too? (They should, I think)

And more important:
When you run a demo like "Batman Forever" (the flip screen part)
What causes the GA to dither the 2 half images with different offsets? (We also see here a pixel shift between both images)
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Devilmarkus

#3
Ok, seems, that Batman Forever uses a register 2 trick here:
(Deinterlaced screenshot)

Edit: Question is now: Does it shift about 2 or 1 MODE 2 pixels?
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Phi2x

#4
.

Devilmarkus

Fact: between both images CRTC register 2 toggles between 0x032 and 0x031.
This wouldnt be necessary if you don't want to add "wobbling pixels" ;)
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Phi2x

#6
.

Devilmarkus

#7
Sure, but its important to emulate this thing, too...
In WinApe we have 2 mode 2 pixelshift
In WinCPC we have 3
In CPCe we have 4 :D

Edit: I forgot CPCBox: here we also have 3 pixels... But the right border is missing...
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Phi2x

#8
.

Devilmarkus

#9
Humm that wasnt my goal ;)
In JavaCPC there did not exist any pixelshifting... (I am actually coding on it)

Also it's boring to view the complete 9 minutes again in CPCBox to get 2 proper screenshots ;)
You should add SNA support :P

Sure a half-image looks more weird:
[attach=2]

But my question is:
How much pixelshift is accurate here?
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Phi2x

#10
.

Devilmarkus

Quote from: phi2x on 19:08, 01 July 12
People will judge for themselves. 8)

Sure... ;) (If its important)
But back to my question please :D
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

arnoldemu

Quote from: phi2x on 17:51, 01 July 12
I remember having looked at it a while ago. I wasn't able to see any shift at all between lines in this Batman Forever picture on a real CPC.

I'm still wondering if Rhino has put that stuff with the goal of enhancing the picture, or if it was simply a very clever anti-emulator trick. ;)
it was an intentional trick to increase horizontal resolution.
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

TotO

Quote from: arnoldemu on 09:55, 02 July 12
it was an intentional trick to increase horizontal resolution.
I don't realy understand.
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

Phi2x

#14
.

ralferoo

I'm joining this discussion late and to be honest, I haven't really paid all that much attention to the discussion, but certainly I agree with arnoldemu that shifting the screen on alternate lines does appear to increase apparent horizontal resolution.

If you're doing a diagonal line, it'll be smoother along the edge and if you're doing a vertical line, it'll appear to wobble on a crisp emulator, but that'll just look a bit fuzzy on a real screen. So, like everything, it's a trade off, but IMHO will probably make most art look smoother.

Devilmarkus

Quote from: phi2x on 10:41, 02 July 12
Do you have any elements to back this up?
I took photos of that picture running on a real CPC, there wasn't any shift at all between lines and I didn't see any horizontal resolution increase.

Perhaps this is also one of these 40007/8 - 40010 differences?
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

TotO

On increased by... 1 pixel wide?  ???
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

arnoldemu

Quote from: phi2x on 10:41, 02 July 12
Do you have any elements to back this up?
I took photos of that picture running on a real CPC, there wasn't any shift at all between lines and I didn't see any horizontal resolution increase.
I talked with Rhino about it. He wrote a doc. I may still have it.
The effect is a mixture of the result of the gate-array (40007/8/9/10 differences AND the monitor's response).

EDIT: This thread is another one of those my emu is better than yours isn't it?
Well I can safely say, my emu is *NOT* better than javacpc or cpcbox in this respect.
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Devilmarkus

#19
Quote from: arnoldemu on 13:51, 02 July 12
I talked with Rhino about it. He wrote a doc. I may still have it.
The effect is a mixture of the result of the gate-array (40007/8/9/10 differences AND the monitor's response).
Good to know!

QuoteEDIT: This thread is another one of those my emu is better than yours isn't it?
Well I can safely say, my emu is *NOT* better than javacpc or cpcbox in this respect.
No, I didnt start this topic because this reason...
I just wanted to know CRTC and GateArray behaviours with "special" values...
But I still got no reply yet, why and how this happens.... :(

(Register 2 I mean, in which cases does it this 3 pixels width (or 2 or 1 or however) pixelshift?)

And perhaps the "my di** is larger than yours"-people one day understand: Not the size matters :D
Really, every emulator has it's pro's and con's.

I am developping JavaCPC just for pure fun and not because I wanna be a CPC-god!!!
Arnold has many pro's and is a powerful emulator, and I am sure, your next release will blame the others ;)
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Phi2x

#20
.

Executioner

Having not delved into the source code to Batman Forever, I would presume the effect is caused by changing the value of register 2 on every scan line. Totally independent of the Gate Array type, this will cause the CTM or GT monitor to adjust the internall PLL frequency to suit the new HSYNC position, but it won't have enough time to adjust it by the entire 16 Mode 2 pixels in one scan line, so it will only move a bit (1 or 2 MODE 2 pixels perhaps), then back again when the value is changed back. Modern LCD monitors and even TVs probably don't have any such analogue phase locked loop circuitry and will respond to the change in various ways.

Devilmarkus

Yes, register 2 toggles between &31 and &32 every scanline.

Should cause a 8 pixel shift, but it moves less. 2-3 or so.
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

arnoldemu

Quote from: Devilmarkus on 10:57, 03 July 12
Yes, register 2 toggles between &31 and &32 every scanline.

Should cause a 8 pixel shift, but it moves less. 2-3 or so.
well, some things here:
1. the shift is a monitor response. you need to give it more than 1 line to perform the full response, perhaps 8 lines?
if not, it moves a smaller amount.

2. the shift is 16 pixels in mode 2 using r2 which is 1 crtc char. R3 is used to make smaller shifts. both together can be used.
r2 defines the position of the hsync, r3 defines the length of the hsync. monitor response is based on the end of the hsync. So if the position is changed AND/OR length is changed you have differing results.

3. the movement by a small amount using r2 is not new, I have seen it before but I didn't think to use it to make a screen like this.
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

arnoldemu

Quote from: phi2x on 15:53, 02 July 12
@arnoldemu: Do you have any plan about when it will come out? The last version was released so long ago :(
No plan yet no.

The monitor emulation doesn't exist, and some things are broken because I re-worked the code.

The new UI is working well including the nice new and more powerful debugger. The emulation is more accurate after the many tests I have written and tested on real cpcs. I also now support using inkz80 emulation core that a friend wrote.

Last weekend I tested R1/R6 on type 0,1 and 2. I wanted to confirm the R6=0 value on type 1 and to see if other values made border. The result was that only R6=0 makes border, or when VCC (internal counter)==R6. I wondered if the result was R6<VCC but that is not the case on type 1. Perhaps it is a sideeffect of the internal comparison.. I don't really know.

Then I found something else with changing R1, where type 0, 1 and 2 are different. The testing continues...


I also plan to make arnold run on the raspberry pi when mine arrives.
Raspberry Pi | An ARM GNU/Linux box for . Take a byte!
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Powered by SMFPacks Menu Editor Mod