Today is a great day, because it signals the release of my first all-new RISC OS programme in over 12 years!

The programme is called 'LCDGameModes' and it's name hints at what it does... It provides a patch to the RISC OS 3.1 screen modes and to custom widescreen and overscan modes, to allow almost all old TV-resolution games to display correctly on newer VGA/SVGA and in particular, LCD monitors. LCDGameModes also corrects the aspect ratio in these screen modes, removing the stretched RISC OS 'letterbox' display and replacing with a thinner, corrected 4:3 aspect ratio mode.

As this software is clearly retro-computer enthusiast targeted, I thought it makes sense to announce it first here on stardot!

I'm also very pleased to announce that PaulV has generously offered to host LCDGameModes on his Retro-Kit.co.uk website, alongside his updated AutoVIDC 2 module, which LCDGameModes will make use of, if loaded.

Thanks for the test Daniel. Yes the screen is supposed to be higher than normal (it's part of the trick used to fool the games into working in VGA, while still sending TV-resolution data to the VIDC chip). Many LCD screens can be adjusted to get round this, but some are better at this than others.

You'll be glad to know that already on my 'to do' list for the final release is an option to correctly centre the screen vertically. However this needs to be switchable by a *command, as some games can be successfully patched to run with the screen centred and others just can't.

As for Elite, now that is an interesting problem... I had Elite loaded up and running perfectly last night, which doing final testing, so I wonder why it's not running for you.

If you have a few minutes can you try something? I think Elite should work in letterbox without LCDGameModes - try a clean boot and see if that works. Then pop back to the desktop and try loading LCDGameModes, switch back into elite to see if it works and finally load AutoVIDC and switch back in. Keep a close eye on if/when problems appear.

That would seem to be where the extra pixels have vanished off to... It wasn't instantly obvious in Elite, but the boarder's too thick on the right hand side as it has the pixels from the LHS of the screen

d.

Edit - and those shifted columns are actually one pixel too high up, the top row has turned up at the bottom of that bit of the screen (white line there on bottom of the RHS)...

First of all, that's great work! I gave it a whirl on my new old A5000 and can confirm that with the LCDGameModes module alone, I am able to play JamesPond (which had previously been unusable on a VGA monitor).

However, the machine hangs/crashes when its used in conjunction with the AutoVIDC module when returning to the desktop.

Lemmings plays as described, but the top of the text displayed between levels is chopped off. Also, I have a "wide screen" 16:9 monitor (1920x1080), so it needs even more aspect ratio correction. Is that a possibility?

As regards Elite, the top of the screen screen flickers with LCDGameModes alone (but I can safely return to the desktop), and flickers and crashes on return to the desktop with LCDGameModes+AutoVIDC.

I don't have any of the other games mentioned in this thread, so I might have to go looking for those!

Just to explain the interaction between AutoVIDC and LCDgm, on the A540, A5000, A4000 and A30x0, AutoVIDC does much less than when it's running on earlier machines that require a VIDC Enhancer. As such, it disables much of what it does as it's not required but the SWI's are still available. This allows LCDgm to query AutoVIDC with the MODE and MonitorType in order to determine the correct sync. polarity for the MODE which it can then apply to the patched screen mode to gain perfect aspect ratio.

AutoVIDC also allows LCDgm to quickly and easily set the VIDC clock between 24, 25.175 and 36MHz using the SWI AutoVIDC_SetClock. This SWI is the one that ensures LCDgm can select the correct clock speed across all VIDC1a machines regardless of which VIDC clock setting hardware is in place as AutoVIDC supports Aux IO and I2C controlled VIDC Enhancers.

If AutoVIDC isn't present, LCDgm can still set the VIDC clock speed on Native Acorn VIDC clock selection hardware such as the A3020 but it can't do so on earlier hardware as without AutoVIDC and a VIDC Enhancer, the only clock speed that's available is the 24MHz one.

MarcT wrote:Also, I have a "wide screen" 16:9 monitor (1920x1080), so it needs even more aspect ratio correction. Is that a possibility?

Does your monitor not have a 4:3 mode setting in its menu system? Ideally when using the A5000 you need to have it set to 4:3 in order to get the A5000 looking right. LCDgm should then improve the games even further than that.

It's odd that you're getting crashes with the LCDgm/AutoVIDC combination, I haven't tested as much on my A5000 as I have on my A410/1 but what testing I have done hasn't caused any crashes when returning to the desktop.

I've got all the games you've mentioned so I'll do some more testing on the A5000 with these and see if I can re-create these issues too.

paulv wrote:Does your monitor not have a 4:3 mode setting in its menu system?

Monitor manufacturers do like to call the same thing different things, probably in the hope that we'll give up and just buy another one or something. The (Samsung) ones on my desk have two settings 'Auto' and 'Wide' under 'Image Size'. You want them on 'Auto'.

I wonder if this would fix Hamsters. I've not got that to run on anything (having only things that seem to demand VGA to connect my RISC OS machines to).

Try to flip to desktop, black screen, but caps lock still responsive so computer hasn't hung.

d.

edit: I say that, now it has hung, caps lock does nowt...

Ok, I have just found exactly the same crash on return to desktop, on the A4000, using AutoVIDC 2.07 from Paul's site, but the previous version (2.06) and the next version (2.08 - currently testing) both work fine on return to desktop. So you can be sure a fixed version is on its way

Daniel - As for the pixels which wrap around, this must be happening at the computer not the monitor (the monitor wouldn't know how to wrap a RISC OS screen around so neatly!). You say your computer is running 15MHz, does that include the memory? Try entering Mode 1, 9 and 13 on the desktop - do all of these have wrapping pixels or only mode 13?

paulv wrote:
Does your monitor not have a 4:3 mode setting in its menu system? Ideally when using the A5000 you need to have it set to 4:3 in order to get the A5000 looking right. LCDgm should then improve the games even further than that.

It does - it's called Aspect - and works fine in the RiscOS desktop, but greys out and becomes ineffective when eg Elite or JamesPond is loaded.

I also have The exact same IIyama Prolite E430S which PaulV has (which the new one replaces) - so I can test if it is this particular monitor.

I was using v2.07 AutoVIDC from Paul's site earlier today.

My A5000 has 4MB RAM (upgraded from 2MB), an Ethernet Podule, and the FPA Floating Point Accelerator (which may or may not be working...)

The copy of Elite I have asks if I have a "high-res" monitor when started, and loads a "rjw_sync" module if you answer Y. I tried answering N here, but the top part of the screen still flickers. I can try and get a video if that would help?

steve3000 wrote:
Daniel - As for the pixels which wrap around, this must be happening at the computer not the monitor (the monitor wouldn't know how to wrap a RISC OS screen around so neatly!). You say your computer is running 15MHz, does that include the memory? Try entering Mode 1, 9 and 13 on the desktop - do all of these have wrapping pixels or only mode 13?

Just Mode 13 - 1 and 9 are fine (8 goes off the edge of the screen, seems to pull the monitor to 640x350... Is that expected?)

It seems that version AutoVIDC 2.07 had a bug which was causing a hang in certain circumstances.

I've been working on 2.08 for a week or two now and it's been significantly re-factored to reduce the module size and it doesn't appear to suffer from the same bug which is annoying as I don't know what fixed it so I'll have to trawl through the old source at some point and find out.

Anyway if you could all try this on your respective machines that would be great. It's just the module at the moment rather than a full distribution.

danielj wrote:Is it the same "glitching" for low bandwidth modes that's talked about there?

Yes, very likely, it's certainly related to your memory/MEMC overclock. But I do know how to fix it , providing it's just Mode 13 (and not Mode 1 or 9). The problem is the DMA rate. With your faster memory, the first DMA of the screen is just completing too early, and the first four pixels at the top left are missed. Result is that the display starts with the second four pixels... And the whole screen appears shifted/rotated as a result.

Luckily there is a VIDC register to control this, and for LCDGameModes Mode13 there is some adjustment still available (but for modes 1 and 9 this is already adjusted as far as it can be).

I can try adjusting this before the next version - as long as it doesn't adversely affect 'normal' computers - then if you're happy to try it, that'd be great.

MarcT wrote:The copy of Elite I have asks if I have a "high-res" monitor when started, and loads a "rjw_sync" module if you answer Y. I tried answering N here, but the top part of the screen still flickers. I can try and get a video if that would help?

Hi Marc, I've not seen that version of elite - I guess it's been patched by someone (rjw perhaps?) to get it working on 100Hz multisync monitors (which were popular during the mid-90s). Answering No would be the correct option here, as you've done - because LCDGameModes fixes games that are expecting to run on a TV-resolution monitor. But from your description, I expect there have been other changes to the game by the way it has been patched.

Do any other games show the same flickering?

Can you try a clean reset, then load LCDGamesModes only, and enter Mode 13 from the desktop?

Hamsters doesn't require LCDgm to work on VGA monitors. Depending on where you got Hamsters from though, you do have to tinker with it to get it working.

IIRC there was a Custom mode definition loaded in the Hamsters !Run file. If you comment out that line, Hamsters should run OK.

I know I've got a version that now runs on VGA monitors.

This also brings up the subject of games that LCDgm doesn't fix.

For instance GBA (Grievous Bodily 'Arm) has a Custom screen mode defined for MODE 99. I've successfully created a VGA compatible version of the custom mode definition so GBA runs without issues on a VGA monitor and doesn't use LCDgm either. This one's an interesting one as the documentation that accompanies the game states that it does not work on VGA monitors.

The bottom line is that between using LCDgm and re-defining custom screen modes for VGA usage where applicable almost every game should be fixable for VGA monitors

steve3000 wrote:
Can you try a clean reset, then load LCDGamesModes only, and enter Mode 13 from the desktop?

Does the mode 13 desktop flicker?

Yes it does - hard to describe, but the top third of the display is shaking left and right. The bottom of the picture is stable. Also the extreme left of the display is wrapped around on the right (same as Daniel's issue I think).

MarcT wrote:
Yes it does - hard to describe, but the top third of the display is shaking left and right. The bottom of the picture is stable. Also the extreme left of the display is wrapped around on the right (same as Daniel's issue I think).

MarcT wrote:Yes it does - hard to describe, but the top third of the display is shaking left and right. The bottom of the picture is stable. Also the extreme left of the display is wrapped around on the right (same as Daniel's issue I think).

I managed to capture pictures of it shaking back and forth:

Marc -that's really useful, and really good pictures! I have seen exactly that wobble effect on my A310 during testing of a very early version. And I know how to resolve it. I assume you do not have an overclocked computer?

Daniel - if Marc's computer is not overclocked and it is displaying the same problem as yours, then it's down to LCDGameModes settings...

I think I know what the problem is and hopefully how to implement the solution that will fix the display for both you and Daniel.

As far as I know its not overclocked, but it is a second hand machine (from Mark @ RetroClinic). I believe it was a bog standard 25MHz A5000, and I have fitted the RAM, Ethernet & FPA10 upgrades previously mentioned. However I am still a novice with the Archimedes platform.

danielj wrote:Is it the same "glitching" for low bandwidth modes that's talked about there?

No, the glitching from overclocking only affects very low bandwidth modes (eg 0 and 4) and will completely screw up the screen, rather than just missing the first word. The wrap around is something different.