Fervour bugs

chat about arc/risc pc gaming & RISC OS software here (NOT the core OS!)Related forum: adventures


Post Reply
sirbod
Posts: 902
Joined: Mon Apr 09, 2012 8:44 am
Location: Essex
Contact:

Fervour bugs

Post by sirbod » Sat Dec 01, 2018 10:55 am

Do anyone have a version of Fervour newer than 1.01? I've been looking at why it randomly crashes on some machines and found a fairly fatal bug in its code that translates relative screen addresses to logical screen addresses during initialisation.

There's 5 relative addresses that need adjusting, several of them however are using values from memory that contain instructions and other things, so I'm not sure what the correct values should be.

sirbod
Posts: 902
Joined: Mon Apr 09, 2012 8:44 am
Location: Essex
Contact:

Re: Fervour bugs

Post by sirbod » Mon Dec 03, 2018 7:36 am

I figured it out in the end, it was an issue in the protection which relied on a pipelined instruction executing prior to it being overwritten. The instruction in question set the logical address of the code and affected all relative addressing in the game thereafter.

After unpipelining the instruction the game appears to be playable. Now I just need to figure out why it crashes during loading on the RiscPC, which I suspect is also down to the protection as the game itself doesn't appear to do anything unusual.

Whilst I was hacking around in the code, I stripped out the annoying enforced 2 second loader screen. To ensure you don't comment it out in !Run, it creates an environment variable based on the CMOS clock (why it's not using Monotonic time is beyond me.) If the main game doesn't verify the variable, it immediately quits :roll:

Post Reply