Linux Port
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ... 20
Jan Rinze (235) 368 posts |
Hi all, according to GraphicsV documentation there should be a possibility to enable shadow screens for better animation. I have been looking into the code and it seems this swi is not supported yet. I hope people understand what i am talking about and can help out to get this working. Best regards, |
David J. Ruck (33) 1635 posts |
Many many years ago I wrote an Internet module for Red Squirrel which passed across calls to the Windows network stack. It was a pretty horrible hack, but it worked for the limited amount of testing I did with it. Strangely enough just after I donated the source, something very similar appeared in Virtual Acorn. I’ve still got the source somewhere, it wouldn’t some of the workarounds for Windows non-BSDness, but the big question is how are Linux calls be made from RISC OS? |
David Feugey (2125) 2709 posts |
Would be great for RPCEmu IMHO. |
David J. Ruck (33) 1635 posts |
As with this project, details of the guest to host API are needed. |
Alan Buckley (167) 232 posts |
Did you post this to the RPCEmu list as well at some stage? If it’s the same one (called VANetPodule or something like that). I did have a go at getting it working with RPCEmu and had some success (I can’t remember how much now). Unfortunately I couldn’t get the podules to load properly at start up (they completely hung the machine with RO5 on RPCEmu) and moved on to looking at other things. If anyone wants to continue with it, I’m happy to send what I had, but be warned I was also messing about with building RPCEmu in Visual Studio at the time so it might not be in such a good state. The RPCEmu code had the ability to load Windows podules removed several releases ago, so I had to add that back in as well. |
Jan Rinze (235) 368 posts |
This weekend I sat down to see if I can come up with a solution for the shadow screens. Two things I noticed when trying to experiment with it: On a side note, the a sound system yet so many demos or games will fail with the no SWI&40182 or such. |
Jan Rinze (235) 368 posts |
Quick update: Simply switched on the modules for sound in the Linux ROM and now running !Doom smoothly. :-) (no sound output yet..) Also made an OpenGL backend for RISC OS too. (my Acer lappie has a Tegra K1 with very good OpenGL support.) I will look into the sound handling of RPCemu and see if it is possible to transplant that to get sound working. See: github |
Jan Rinze (235) 368 posts |
I’m wondering how i can keep the repo up to date with the changes from the RISC OS CVS. Maybe a script or something could help here? |
David Boddie (1934) 222 posts |
I tend to keep the RISC OS sources in a Mercurial repository, using “hg convert” to pull the changes. I’m sure that, if git doesn’t have a tool/command to do this, there’s probably something that will. One tool to look at is tailor. |
Timothy Baldwin (184) 242 posts |
I’m back. After few days work I’ve updated it to the RISC OS CVS from 23rd December. This is uploaded as a new rebased branch so I’ve got a clean set of patches for ROOL CVS. The only difference between the tip of the Linux branch and the Linux2-start tag should be Other recent changes:
Planned changes:
Under consderation:
|
Timothy Baldwin (184) 242 posts |
I’ve had a look at SDL multiple screens code in the branch Linux_opengl commit 19ef451bec190b0a279d799e0e0743973f8094e8 and have a few comments.
|
Timothy Baldwin (184) 242 posts |
No it’s not an emulator. It’s the value VideoSizeFlags is set to in caste.RiscOS.Sources.Kernel.s.Linux It’s trivial to alter, just don’t consume too much address space. |
Timothy Baldwin (184) 242 posts |
Load the system call number into r7 (constants in the Objsam header LinuxSyscalls) then either call the SWI IXSupport_LinuxSyscall, provided by the module IXSupport. Or more directly call __HAL_LinuxSyscall, which is simply defined in HAL as:
The address of the SWI instruction is significant! A seccomp filter is installed which causes SWI instructions at other addresses to raise a SIGSYS signal, the signal handler then transfers control to the RISC OS SWI handler. To find __HAL_LinuxSyscall from a ROM module link to ${PVLIBS}. From ROOL C you can use the header file “ix/syscalls.h”, define ix_SYSCALL_branch to use the branch rather than the IXSupport_LinuxSyscall SWI. |
Timothy Baldwin (184) 242 posts |
I have written partially written a shim Internet module which is sufficiently complete to browse this website in Netsurf. Currently however DNS does not work, so one has to add the IP address to the hosts file. When it encounters an unrecognised call it print details out to standard error. I am using it to post this message. |
Rick Murray (539) 13840 posts |
The standard Linux way, to avoid having the SWI number in the instruction (and thus the need to treat an instruction as data in order to extract it 1). :-) But… What do you do about OS_WriteC? 1 I don’t know why ARM never optimised SWI to place the number into a special register or somesuch |
Rob Andrews (112) 164 posts |
May be a daft question but would it be possible to use this system to use Linux device drivers within RISC OS ? |
Tristan M. (2946) 1039 posts |
That’s kind of what the Linux port is doing, from RO’s perspective anyway. I just want to say I find the Linux port a useful tool and don’t feel it dilutes RISC OS as an entity. It has some uses on ARM architectures with unsupported chipsets. |
Timothy Baldwin (184) 242 posts |
I’m making a backwards incompatible change to filetype handling, currently IXFS prefers POSIX extended attributes to ,xxx suffixes. I will change it prefer reading suffixes over extended attributes and (by default) remove extensions that are no longer correct. If you have some files with out of date extensions you can fix them like:
|
Timothy Baldwin (184) 242 posts |
Should IXFS (RISC OS filing system that translate to the Linux API) be a seperate module, like is the traditional for RISC OS filing systems? |
Jeffrey Lee (213) 6048 posts |
I think it’s mostly up to you. As long as it’s in a module, I don’t think the OS cares which module it is. |
Timothy Baldwin (184) 242 posts |
Progress report:
I still need to request SWI numbers etc. |
Jan Rinze (235) 368 posts |
What do we need to be able to run gcc in this version of RISC OS? *gcc Since there is code to patch at runtime, can’t we use it for a tool to patch the libraries manually? |
Jan Rinze (235) 368 posts |
Just add ‘set inet$resolvers 8.8.8.8’ in the !run file of the browser and it will resolve the DNS. |
Timothy Baldwin (184) 242 posts |
Here is a source patch for GCCSDK.
Or have a DNS server running on localhost. |
Tristan M. (2946) 1039 posts |
Hi. I’ve recently successfully built this in aarch32 and aarch64. Still works fine. May I suggest an included shell script for normal usage? I have a question about the graphics. Yes I’m being lazy and don’t want to dig in to find out. IIRC the size and resolution causes a performance hit. Can I assume it’s copying from its “VRAM” to an SDL surface constantly? |
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ... 20