uQLx 2018a

Discussion and advice about emulating the QL on other machines.
User avatar
XorA
Super Gold Card
Posts: 593
Joined: Thu Jun 02, 2011 11:31 am
Location: Shotts, North Lanarkshire, Scotland, UK

Re: uQLx 2018a

Postby XorA » Sun May 26, 2019 3:39 pm

That will work as long as you use default screen size. The patch is for screen sizes AFAIK


tcat
Super Gold Card
Posts: 558
Joined: Fri Jan 18, 2013 5:27 pm
Location: Prague, Czech Republic

Re: uQLx 2018a

Postby tcat » Mon May 27, 2019 8:26 pm

Hi Graemme,

True.
I was not too sure what the PE patch really was for. Now I have at least a clue.

Standard window size, Minerva ROM.

Code: Select all

$qm -o min198_rom

LRESPR MDV1_PTR_GEN works, mouse pointer shows within frame.

Enlarged Minerva size 640x384

Code: Select all

$qm -o min198_rom -g 640x384

LRESPR MDV1_PTR_GEN does not crash, but mouse pointer does not appear. Also window coordinates seem confused.

Tomas


tcat
Super Gold Card
Posts: 558
Joined: Fri Jan 18, 2013 5:27 pm
Location: Prague, Czech Republic

Re: uQLx 2018a

Postby tcat » Wed May 29, 2019 9:36 am

Hi again,

I have a new observation regarding window redraw (screen update).

`uQLx' window's update is alright for zoom=1, when zoomed 2x, it sometimes trails black rectangles in the frame, when overlapped by some other windows, and after user brings it to front.

I think all logic happens in `QL_Screen.c', around functions `draw_chunk()', and `redraw_screen()'.
`QClip()', clipping rectangle, does not take zoom (z), as an argument.

Simply looking into the code, trying to understand.
Any ideas for tinkering?

Many thanks
Tomas


User avatar
XorA
Super Gold Card
Posts: 593
Joined: Thu Jun 02, 2011 11:31 am
Location: Shotts, North Lanarkshire, Scotland, UK

Re: uQLx 2018a

Postby XorA » Wed May 29, 2019 6:36 pm

tcat wrote:Hi again,

I have a new observation regarding window redraw (screen update).

`uQLx' window's update is alright for zoom=1, when zoomed 2x, it sometimes trails black rectangles in the frame, when overlapped by some other windows, and after user brings it to front.

I think all logic happens in `QL_Screen.c', around functions `draw_chunk()', and `redraw_screen()'.
`QClip()', clipping rectangle, does not take zoom (z), as an argument.

Simply looking into the code, trying to understand.
Any ideas for tinkering?

Many thanks
Tomas


It was a bit of a hack so its possible I missed a path where screen is updated but the zoomed version does not!


User avatar
XorA
Super Gold Card
Posts: 593
Joined: Thu Jun 02, 2011 11:31 am
Location: Shotts, North Lanarkshire, Scotland, UK

Re: uQLx 2018a

Postby XorA » Sun Jun 02, 2019 1:52 pm

For Pointer Environment, v2.01 works as far as I can tell from my testing.

Your v1.39 must have a different code layout and uQlx doesn't have a patch for that, so maybe you should upgrade to v2.01 (later versions don't seem to work at all, Dilwyn also seems to have suffered this from comments on his page).


tcat
Super Gold Card
Posts: 558
Joined: Fri Jan 18, 2013 5:27 pm
Location: Prague, Czech Republic

Re: uQLx 2018a

Postby tcat » Sat Aug 17, 2019 5:14 pm

Hi,

Still thinking about zoom>1, this is when the emulator window does not get updated properly. On my further looking into, with zero X-Windows knowledge, this is what I see happening.

In `xql.c', `x.c' there is XposeEvent, looks like an event loop, from within `redraw-screen()' is called.

In `redraw-scren()' happens this,

Code: Select all

....
for (y = 0; y < scr_height * zoom; y++) {
            for (x = 0; x < scr_width; x++) {
                for (z = 0; z < zoom; z++) {
                    out[(y * scr_width * zoom) + (x*zoom) + z] = in[((y/zoom) * scr_width) + x];
....
XPutImage(display, imagewin, gc, image,
                                rx1 * zoom, ry1 * zoom,
                                rx1 * zoom, ry1 * zoom,
                                width * zoom, height * zoom);
....


The above get windows updated alright for zoom=1. Cannot see why it fails for zoom>1. Can you?

Many thanks
Tomas



Who is online

Users browsing this forum: No registered users and 1 guest