New (old) game: Rockfall

Anything QL Software or Programming Related.
Tuna
ROM Dongle
Posts: 20
Joined: Fri Dec 21, 2018 1:25 pm

New (old) game: Rockfall

Post by Tuna »

---- UPDATE ----

New release 26th January

Hopefully this should fix the problems with Rockfall running fast on some emiulators. I've updated the files at the links below.

---------------------------
Christmas gave me a little time to go through the loft and resurrect some old disks, including a Boulderdash clone I wrote a looooong time ago called Rockfall.

Unfortunately on just about every emulator it runs insanely fast and is completely unplayable.

So I've dusted off my assembler skills, worked out how to use QED and the Metacomco Assembler and fixed some 28 year old bugs. The game should now be locked to screen interrupts and appears to be playable under uqlx and QLemulator.

You can download it here either as a .win file or a directory - both should work on emulators that match the original QL memory mapped screens. QPC2 won't work.

https://drive.google.com/open?id=184rZb ... cQSQNlPaGl <-- Win file
https://drive.google.com/open?id=1_5-Id ... RkdXHBcwvK <-- bare directory

To start it, mount the directory or win file as win1_ then:

lrun win1_Rockfall

Or load Rockfall and edit the file to have the correct drive prefix.

Please let me know if it works, what your operating system and emulator is. If anyone can convert it to an .mdv file for me I'd be grateful as I'd like to try it on the MiSTer hardware emulator.
Last edited by Tuna on Sat Jan 26, 2019 5:35 pm, edited 1 time in total.


User avatar
mk79
QL Wafer Drive
Posts: 1349
Joined: Sun Feb 02, 2014 10:54 am
Location: Esslingen/Germany
Contact:

Re: New (old) game: Rockfall

Post by mk79 »

Funny, I thought "man, this looks familiar" and sure enough I had included Rockfall in my QL-SD demo disc https://www.kilgus.net/ql/ql-sd/.
You can download it here either as a .win file or a directory - both should work on emulators that match the original QL memory mapped screens. QPC2 won't work.
QPC2 can happily emulate the QL screen, no problem. But the game doesn't react to any keys, why is that?

Thanks and all the best, Marcel


Derek_Stewart
Font of All Knowledge
Posts: 3928
Joined: Mon Dec 20, 2010 11:40 am
Location: Sunny Runcorn, Cheshire, UK

Re: New (old) game: Rockfall

Post by Derek_Stewart »

Tuna wrote: Please let me know if it works, what your operating system and emulator is. If anyone can convert it to an .mdv file for me I'd be grateful as I'd like to try it on the MiSTer hardware emulator.
Hi Tuna,

I downloaded both Rockfall files, I tried the WIN file on QEMulator running MInerva v1.98

Running the emulator at full speed, the game was a little unplayable, but the registered version of QEMulator, allows the emulator to be slowed down to normal QL speed. This made the game run OK and I was able to play the game.

Here is the QEMulator MDV file, I had to compress it as the Forum software did not like the extension.

I will try Rockfall on the Q68, which has a very compatible QL screen mode and the machine can be slowed down with a hihly efficent SLUG command specially written for the Q68.
Attachments
Rockfall.mdv.zip
Rockfall MDV file
(13.42 KiB) Downloaded 119 times


Regards,

Derek
Tuna
ROM Dongle
Posts: 20
Joined: Fri Dec 21, 2018 1:25 pm

Re: New (old) game: Rockfall

Post by Tuna »

mk79 wrote:Funny, I thought "man, this looks familiar" and sure enough I had included Rockfall in my QL-SD demo disc https://www.kilgus.net/ql/ql-sd/.
You can download it here either as a .win file or a directory - both should work on emulators that match the original QL memory mapped screens. QPC2 won't work.
QPC2 can happily emulate the QL screen, no problem. But the game doesn't react to any keys, why is that?

Thanks and all the best, Marcel
That's rather cool, I like the SD card interface, but my QL is staying in the loft - there are enough unfinished projects around here without adding to the list. :)

How do I get QPC2 into 'QL screen' mode? Not sure why keys aren't working - I'm using the keyrow trap from QDOS to read keyrow 1:

Code: Select all

test_key       lea      keybd,a3
               move.l   #$09010000,(a3)
               move.l   #$00000102,4(a3)
               moveq    #17,d0
               trap     #1
               rts
Then checking individual keys with something like:

Code: Select all

btst     #3,d1


Tuna
ROM Dongle
Posts: 20
Joined: Fri Dec 21, 2018 1:25 pm

Re: New (old) game: Rockfall

Post by Tuna »

Derek_Stewart wrote: I downloaded both Rockfall files, I tried the WIN file on QEMulator running MInerva v1.98

Running the emulator at full speed, the game was a little unplayable, but the registered version of QEMulator, allows the emulator to be slowed down to normal QL speed. This made the game run OK and I was able to play the game.
Thanks for trying it. And thanks for the MDV file - I'm going to try it on my MiSTer board in a bit.

It shouldn't matter how fast the emulator is now, so long as the 50hz device interrupts that QDOS provides are actually 50hz. If I don't have a time reference I can trust, I can't do anything about overall speed.

The positive side effect of this is the time to complete levels is now independent of the speed of the game - which should make it a bit easier to complete some of the levels where I'd originally put a really tight time limit in place. It turns out that playtesting your own game continuously makes you a lot quicker than the 'average' player! :D


User avatar
mk79
QL Wafer Drive
Posts: 1349
Joined: Sun Feb 02, 2014 10:54 am
Location: Esslingen/Germany
Contact:

Re: New (old) game: Rockfall

Post by mk79 »

Tuna wrote:How do I get QPC2 into 'QL screen' mode?
Set the screen to 512x256 in QL colour mode or issue a QPC_QLSCREMU call (see manual).
Not sure why keys aren't working - I'm using the keyrow trap from QDOS to read keyrow 1:
Hm, that one should work fine. How do you capture the 50Hz interrupt?

Marcel


Tuna
ROM Dongle
Posts: 20
Joined: Fri Dec 21, 2018 1:25 pm

Re: New (old) game: Rockfall

Post by Tuna »

I use the interrupt poll to increase a timer, and then check the timer whenever I'm in a time sensitive routine.

The full source code is here: https://gist.github.com/atoone/615204d6 ... 130b2b3db7

The interrupt handler is down at the bottom. Look for 'poll_routine'


User avatar
mk79
QL Wafer Drive
Posts: 1349
Joined: Sun Feb 02, 2014 10:54 am
Location: Esslingen/Germany
Contact:

Re: New (old) game: Rockfall

Post by mk79 »

Tuna wrote:I use the interrupt poll to increase a timer, and then check the timer whenever I'm in a time sensitive routine.

The full source code is here: https://gist.github.com/atoone/615204d6 ... 130b2b3db7

The interrupt handler is down at the bottom. Look for 'poll_routine'
Thanks. You need to use "moveq #xx,d0" instead of "move.b #xx,d0" for all the TRAP function keys.

Cheers, Marcel


Tuna
ROM Dongle
Posts: 20
Joined: Fri Dec 21, 2018 1:25 pm

Re: New (old) game: Rockfall

Post by Tuna »

mk79 wrote:
Tuna wrote:I use the interrupt poll to increase a timer, and then check the timer whenever I'm in a time sensitive routine.

The full source code is here: https://gist.github.com/atoone/615204d6 ... 130b2b3db7

The interrupt handler is down at the bottom. Look for 'poll_routine'
Thanks. You need to use "moveq #xx,d0" instead of "move.b #xx,d0" for all the TRAP function keys.

Cheers, Marcel
That's interesting... amazing it works at all :)


User avatar
mk79
QL Wafer Drive
Posts: 1349
Joined: Sun Feb 02, 2014 10:54 am
Location: Esslingen/Germany
Contact:

Re: New (old) game: Rockfall

Post by mk79 »

That's interesting... amazing it works at all :)
QDOS doesn‘t seem to mind, but SMSQ/E does, which is why your poll routine was never linked in on QPC.


Post Reply