Help trying to build Manic Miner RISC OS from sources
Pages: 1 2
Steve Pampling (1551) 8170 posts |
Brilliant, you accessed a portion of my memory that I couldn’t :) |
Jon Abbott (1421) 2651 posts |
The crash is being caused by callTimPlayer_internal and callTimPlayer16 within ROsupport which jump directly to the ChannelHandler. I’ve never seen this done before, its certainly a novel way of providing sound. Either its corrupting the stack or entering in the wrong CPU mode and triggering an Abort. EDIT: It installs its own ChannelHandler/LinearHandler which first calls TimPlayers ChannelHandler/LinearHandler and then overwrites the DMA buffer to provide the sound effects on channels 3 and 4. |
Jon Abbott (1421) 2651 posts |
It’s passing a corrupt Workspace pointer to TimPlayers LinearHandler. This can be fixed by requesting the existing Workspace pointer, before it takes over the LinearHandler: Within ROsupport, change lines 1022..1028 from:
to:
Change lines 1218..1220 from:
to:
I’ve updated my previous post to include all the changes required and have tested and confirmed it works on a Pi3. |
SeñorNueces (1438) 162 posts |
@Jon: What version of OSLib do I need to build on the Pi, please? I guess it’s “GCCSDK GCC 4.x using SharedCLibrary module (hard-float)” or “GCCSDK GCC 4.x using SharedCLibrary application (hard-float)”, but I am unsure of which… |
Jon Abbott (1421) 2651 posts |
SharedCLibrary Module at a guess. I’m guessing that one uses the SharedCLibrary Module and the other possibly embeds the library. |
Jeffrey Lee (213) 6048 posts |
“SharedCLibrary module” will be for if you’re building a module. “SharedCLibrary application” will be for if you’re building an application. Both of them will be using the SharedCLibrary module, the difference between them is whether GCC was told to produce module or application code. (Theoretically they should also provide module + application versions of the Norcroft build, but I guess nobody’s ever asked for a prebuilt Norcroft module version) |
SeñorNueces (1438) 162 posts |
@Jon: What SharedCLibrary files do I need and where should I put them for the compilation to work, please? On the OSLib zip, I see a .a file, which I guess it’s the library itself, and a ton of headers in the oslib directory, but the README is very vague regarding installation paths. |
Jon Abbott (1421) 2651 posts |
In the absence of any install documentation, I took a guess that it needed extracting to the DDE Library folder. It probably just needs to be on the library path somewhere. You probably want someone with development experience to explain how you install OSLib correctly for DDE and OSLib. |
Steve Pampling (1551) 8170 posts |
Me too I think, (Adding OSLib was something I did the other year and then lots of work grabbed my waking hours so I forgot) hence my cryptic mention of OSLib.
Probably, and in the DDE Library folder matches that :) |
SeñorNueces (1438) 162 posts |
Sorry guys, but what’s that DDE Library folder? DDE sounds to me like some kind of SDK I have not installed. |
David Pitt (102) 743 posts |
DDE is the ROOL tools and nothing whatsoever to do with GCC.
The zip here has an obey file, “SetVars”, that does all that is necessary. |
Chris Hall (132) 3554 posts |
One thing I recollect is that once you start compliling with AcornC/C++ (aka DDE) you should not alter the CSD (currently selected directory or @) until compilation is finished. The utility !SetPaths is otherwise confounded. |
Chris Evans (457) 1614 posts |
Changing a car wheel whilst driving along is also not a good idea:-) |
Pages: 1 2