Page 1 of 1

RO5.x IOMD

Posted: Fri Aug 16, 2013 6:10 pm
by JonAbbott
As RO5 potentially has Application space overlapping VIDC1 / IOC / Screen memory when at the Supervisor level, we need to unmap it before any translation will work.

I can implement a *ADFUnmapLegacyMemory command which can simply unmap memory pages from the relevant areas. The potential problem however is BASIC, it's going to expect the memory to be there unless its memory ends at &1000000. We need to somehow limit memory to 16MB when the WIMP isn't running.

The alternative is to stay within the WIMP when booting floppies, which we've discussed previously. The issue here is that it may well break quite a lot of games. What I could do is switch Boot Floppy to boot within the WIMP and only drop to the Supervisor is the SHIFT key is held down. I'll add to 2.18 and we'll have to test games to see what breaks.

Re: RO5.x IOMD

Posted: Sat Aug 17, 2013 11:59 am
by JonAbbott
JonAbbott wrote:The alternative is to stay within the WIMP when booting floppies, which we've discussed previously. The issue here is that it may well break quite a lot of games. What I could do is switch Boot Floppy to boot within the WIMP and only drop to the Supervisor is the SHIFT key is held down. I'll add to 2.18 and we'll have to test games to see what breaks.
Booting within the WIMP breaks anything that uses FX 138,0,x (insert key into buffer).

I'll need to test, but it looks like these Boot Scripts can be made to work by ending with the following, where X is the amount of RAM the game needs:

Code: Select all

WimpSlot -min X -max X -next X
FX 225, 1
FX 138,0,128
GOS

Re: RO5.x IOMD

Posted: Sun Jan 04, 2015 6:21 pm
by JonAbbott
Finally got around to testing RO5 IOMD and to my amazement a few games actually work. RO5.20 had issues, but RO5.21 seemed better behaved. I'm not sure why that's the case, as I don't recall there being any dependency on bug fixes on IOMD.

Both Zarch and Jet Fighter worked, games that write to VIDC1 aren't working though, which may be due to IRQ1V being directly modified by the game - or an issue along the line mentioned in the OP.

Re: RO5.x IOMD

Posted: Tue Jan 27, 2015 1:14 am
by JonAbbott
JonAbbott wrote:Both Zarch and Jet Fighter worked, games that write to VIDC1 aren't working though, which may be due to IRQ1V being directly modified by the game - or an issue along the line mentioned in the OP.
The issue looks like it's IRQ1V not being called when T1 triggers, I suspect HAL_Timer intercepts the IRQ. I need to find a workaround that's legal.

Re: RO5.x IOMD

Posted: Wed Feb 25, 2015 11:40 am
by JonAbbott
JonAbbott wrote:The issue looks like it's IRQ1V not being called when T1 triggers, I suspect HAL_Timer intercepts the IRQ. I need to find a workaround that's legal.
I've now hypervised both IRQv and IRQ1V which are either triggered from an IRQ (VSync and T1) or virtualized (SSBC).