JonAbbott wrote:RedSquirrel goes into some weird resolution when ADFFS is loaded on RO3.1
For some reason it needs LCDGameModes loaded to work under RedSquirrel, I can't get it displaying correctly under RO3.7 though, it's a scrambled mess.
JonAbbott wrote:Under RPCEmu there appears to be what looks like DMA overrun as the end of the screen isn't wrapping around at the correct point.
I've fixed the DMA overrun by mirroring what the RO drivers do: /HWSupport/VIDC20Video/s/GVect
As for the screen width, its simply wrong under RPCEmu, it doesn't look like RPCEmu is taking account of HDSR/HDER.
JonAbbott wrote:On RedSquirrel, writing to 3600000 does strange things.
This seems to be the case on physical as well, although PRM5a-41 states that 3600000-3700000 is reserved for future expansion, so there shouldn't be anything mapped there.
JonAbbott wrote:On physical ... I see the same result as RPCEmu...hardware scrolling that's jurky and DMA overrun.
Note, that's on a RPC with 1MB VRAM. The DMA overrun is fixed, however the screen that's wrapped flickers as if it's blank on every other frame.
On a RPC with 2MB VRAM Hscroll locks the machine on a blank screen. I can't find any documentation on how to program IOMD so this is all very frustrating.
Steve...I need your assistance to track down the issues. The latest source and builds are in /development/32bit/CPU, you want ADFFS400 for RPC and the source in question is
adffs.vectors.memc_abort ._RO5_IOMD
To get Hscroll working, you need to comment out all the code that switches in/out of SVC - at least until I figure out what's at 3600000.
EDIT: I've just tried Hscroll under GameOn! and it suffers the same problems...jerky scrolling that doesn't work in SVC mode and DMA overrun. So...GameOn! doesn't support hardware scrolling as indicated...well it does in User mode.
From reading the RPCtrm1-15/16 it states Vinit/Vend must be on a half SAM length boundary with VRam (2048 bytes for 2mb VRAM, 1024 bytes for 1mb VRAM) - this doesn't seem to be the case, however it does imply that hardware scrolling will never work correctly on a RPC with VRAM. With DRAM, the boundary is a quad word (16 bytes), which matches MEMC1 I believe, so it may work without VRAM.
GameOn! hangs the machine with no VRAM, ADFFS works but its still jerky so I'm none the wiser.
Incidentally, I OCR'd the RPC trm and put it on the dev site: RiscPCtrm-OCR.pdf