Game Request: Diggers

Discuss the project, or ask a general question
Qjimbo
Posts: 19
Joined: Sat Jun 21, 2014 7:26 pm
Location: Vancouver, Canada

Game Request: Diggers

Post by Qjimbo » Sat Jun 21, 2014 8:13 pm

Hi there!

First of all, I want to thank you for the great work you're doing restoring these old Risc OS games to work on the Raspberry Pi. One game I used to really enjoy was "Diggers" - though I only ever played the demo. Is there any chance of this game getting a full release on here? I saw this thread on iconbar which looks like you've added support. Would really appreciate this if it's possible, I understand there might be legal issues etc.

JonAbbott
Posts: 1736
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Re: Game Request: Diggers

Post by JonAbbott » Sun Jun 22, 2014 8:23 am

I've not touched Diggers for over a year, but do recall it was a nightmare to get running on an original Arc, let alone anything beyond that. From memory, there were issues in both the loader and the game setup code that caused the game to hang.

What I don't have however is the RiscPC version, which may resolve some of these problems. If anyone has that and can image the floppies for me, I'll take a look.

Paradroid 2000 is working, wasn't that one you were after as well?

Qjimbo
Posts: 19
Joined: Sat Jun 21, 2014 7:26 pm
Location: Vancouver, Canada

Re: Game Request: Diggers

Post by Qjimbo » Sun Jun 22, 2014 5:52 pm

I haven't been able to find a disk image of Diggers so far, RPC or Arc - that's why I was hoping to see it on here :) I will do some more "digging" (*rimshot*) and see if I can find it.

Paradroid! I think I mentioned that a few years ago over at IconBar - I did have an original copy of that game though it's at my parent's house. That one is much easier to find online though. It was one of those "where the heck do I go" kind of games, so I'm not as interested in that one as I am Diggers, though it's definitely a decent title.

JonAbbott
Posts: 1736
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Re: Game Request: Diggers

Post by JonAbbott » Sun Jun 22, 2014 9:21 pm

I had a quick look at where Diggers is earlier, it's working on Arc's and hangs on RiscPC. Looks like I was trying to bypass the code that locks in the Boot Script, but didn't progress it much further.

I tried running it under the ARM3 JIT (on StrongARM to avoid chipset issues), which failed as it tried to grab the Abort vector and was stopped by the JIT. Why it grabs the vector is beyond me, I'll have to debug it to find out.

Paul, Steve and I did discuss Diggers (and Fervour which was similar) back in March 2013, one of the big issues with it was the 50/100Hz bespoke Mode modules it uses. I'll need to see if we managed to resolve the issues with upgrades to LCDGameModes and ADFFS when Mode Extension support was added.

Qjimbo
Posts: 19
Joined: Sat Jun 21, 2014 7:26 pm
Location: Vancouver, Canada

Re: Game Request: Diggers

Post by Qjimbo » Mon Jun 23, 2014 6:22 pm

Please take a look - would be great to play this one. I've tried the DOS version in DOSBOX but after a few mins of gameplay it likes to freeze up for some reason (though this was a while ago). That's another reason I'm really interested in the RISC OS version fixed up :)

JonAbbott
Posts: 1736
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Re: Game Request: Diggers

Post by JonAbbott » Wed Jun 25, 2014 7:12 pm

I've now debugged the Diggers (original version) intro to see what the issues are, there are two:

1. It claims the hardware vectors directly, assuming the instructions are B xxx
2. Timing is based around device vector 9 (sound buffer change)

Issue 1 can be worked around by stopping it from claiming the vectors, they're only claimed to report debug info in the event of a crash.

Issue 2 needs either a code rewrite or device 9 to be emulated. It's on my list of things to add to the JIT, so it may work at some point.

Qjimbo
Posts: 19
Joined: Sat Jun 21, 2014 7:26 pm
Location: Vancouver, Canada

Re: Game Request: Diggers

Post by Qjimbo » Wed Jun 25, 2014 9:37 pm

Interesting, sounds very hardware-specific. Hopefully someone can come along with the RPC version so we can try that. Perhaps that one won't be so picky.

JonAbbott
Posts: 1736
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Re: Game Request: Diggers

Post by JonAbbott » Sat Jun 28, 2014 5:43 pm

Ironically I've found it's easier to get original versions of the games running on the Pi, as the SA versions tend to try and patch the game on-the-fly using 26-bit modules and other devious means.

I'm not even sure the SA version of Diggers exists, looking at my notes it's not been confirmed.

JonAbbott
Posts: 1736
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Re: Game Request: Diggers

Post by JonAbbott » Wed Jul 02, 2014 7:41 pm

I've been looking at Diggers and now have it playing the intro and getting past the prompt for disk 2 on RO3.71 under the JIT under emulation - which is progress.

To get this far, I botched device 9 to call the code at 100Hz so it has a regular poll interval (it should dependent on the sample buffer size and sample duration), turned off the code that claims the hardware vectors and fixed a bug in their code ;)

The bug incidentally looks like an issue in the original compiler used, some branch instructions are out by 1 word. It's only working on ARM2/3 in its original form by pure luck :roll:

Qjimbo
Posts: 19
Joined: Sat Jun 21, 2014 7:26 pm
Location: Vancouver, Canada

Re: Game Request: Diggers

Post by Qjimbo » Thu Jul 03, 2014 10:09 pm

Not the first case of software relying on bugs in the implementation to function! Great that you're making progress :)

Post Reply