ql superbomber and m-crunch ..and more things

Anything QL Software or Programming Related.
User avatar
Cristian
Aurora
Posts: 960
Joined: Mon Feb 16, 2015 1:40 pm
Location: Veneto

Re: ql superbomber and m-crunch ..and more things

Post by Cristian »

The bat accelerates too quickly! It's just uncontrollable :?
I'll try on a real QL....


User avatar
Cristian
Aurora
Posts: 960
Joined: Mon Feb 16, 2015 1:40 pm
Location: Veneto

Re: ql superbomber and m-crunch ..and more things

Post by Cristian »

This game crashes on real QL (both JM and Minerva). QL freezez with black screen before the options menu. :(


Martin_Head
Aurora
Posts: 847
Joined: Tue Dec 17, 2013 1:17 pm

Re: ql superbomber and m-crunch ..and more things

Post by Martin_Head »

Cristian wrote:This game crashes on real QL (both JM and Minerva). QL freezez with black screen before the options menu. :(
I have only run the program on emulators, but I did notice that it does something that looked odd to me with I think it was the STOP, command.

If I correctly understand what was supposed to be happening, is that the program would stop , until the next interrupt happened, (50/60Hz interrupt?, or does the IPC generate an interrupt on a key press?).

Is there anything weird about different versions of QL's, or chip sets with the interrupts. As this looks like 3 different QL's having problems with this game.


nikosdoykas
Over Heated PSU
Posts: 134
Joined: Tue Oct 09, 2018 4:20 am

Re: ql superbomber and m-crunch ..and more things

Post by nikosdoykas »

actually its not crash... it working but you can see anything... you can hear.... if you press f5- space not together it you see the start screen... ... if you are lucky maybe with s and space ... you play the fist level... and the second maybe :P


User avatar
Cristian
Aurora
Posts: 960
Joined: Mon Feb 16, 2015 1:40 pm
Location: Veneto

Re: ql superbomber and m-crunch ..and more things

Post by Cristian »

Martin_Head wrote: Is there anything weird about different versions of QL's, or chip sets with the interrupts. As this looks like 3 different QL's having problems with this game.
I can only say that I tried with 2 different issue 6 machines: one with Minerva and Hermes, the other with JM rom. The behaviour is the same: the game loads and starts, the first screens appear, then you press a key to get the options menu.... the two horizontal lines clear the screen and then absolutely nothing. No sound at all. Black screen. You can push any keys, and you get nothing.


Martin_Head
Aurora
Posts: 847
Joined: Tue Dec 17, 2013 1:17 pm

Re: ql superbomber and m-crunch ..and more things

Post by Martin_Head »

This is the bit of code i was referring to

Code: Select all

Lab10A9A  trap      #0                  ;enter supervisor mode
          andi.w    #$2700,sr           ; clear TXNZVC    let through supervisor mode, and interrupt level
          stop      #$2000              ;wait for an intrrupt???
          andi.w    #$0700,sr           ; clear TSXNZVC   come out of supervisor mode, interrupt level unchanged
          rts
I'm not quite sure what is supposed to be happening here, or what the author intended, But this gets called quite often, even before the game actually starts, try waiting where you would normally press space.

In Qemulator at the options menu, if you don't press any key, then after about 30 or 40 seconds some text starts scrolling along the bottom of the screen. However in QPC2 it just skips straight through. And displays the text immediately. I don't know if this is because QPC2 is just too fast, or if something odd happens when it hits this STOP instruction.

I also noticed that the screen gets turned off by writing to the master chip status register ($18063). Maybe that is why you can hear, but not see the game. The display is not getting turned back on correctly.

Nicosdoykas - Are your QL's issue 6? Maybe the game was written on an issue 5 machine? I seem to remember something about issue 5 machines running slightly slower than issue 6? Maybe there is a timing issue?


User avatar
tofro
Font of All Knowledge
Posts: 2685
Joined: Sun Feb 13, 2011 10:53 pm
Location: SW Germany

Re: ql superbomber and m-crunch ..and more things

Post by tofro »

Martin,

the STOP $2000 instruction simply waits for an (any, interrupt mask is 0) interrupt.

The next one would most likely be the 50Hz VBL or polling interrupt.

This technique can be used to synchronize the game flow with the external interrupt - And it is basically the only way to do that on a QL. You would do that to keep the sprites you just displayed on the screen for the rest of the frame to make them a bit more visible. Technically, the game would continue with a GAP, serial, or external interrupt as well, but that is unlikely to happen when someone just plays a game.

I am not sure whether the STOP instruction actually does something on QPC - In some tests I did recently, I couldn't see a difference when inserting it in a display loop or not - But, I'm with you, this might just be caused by the sheer speed of QPC.

ZX Spectrum games typically use the same technique, but with the Z80 HALT instruction.

Tobias


ʎɐqǝ ɯoɹɟ ǝq oʇ ƃuᴉoƃ ʇou sᴉ pɹɐoqʎǝʞ ʇxǝu ʎɯ 'ɹɐǝp ɥO
User avatar
mk79
QL Wafer Drive
Posts: 1349
Joined: Sun Feb 02, 2014 10:54 am
Location: Esslingen/Germany
Contact:

Re: ql superbomber and m-crunch ..and more things

Post by mk79 »

Yes, STOP has been a NOP in QPC for the last 25 years ;) I've never seen it in used in any QL software before and its use as a 50Hz wait is dubious at least as the Q40 for example has a 20kHz interrupt, too. Might implement it just for the fun of it, but still I currently know no low-level method that works on all plattforms, only the official way of registering a 50Hz poll handler with the OS is guaranteed to work.


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

Re: ql superbomber and m-crunch ..and more things

Post by mk79 »

All right, next QPC will have a working STOP implementation, for what it's worth ;)


Silvester
Gold Card
Posts: 436
Joined: Thu Dec 12, 2013 10:14 am
Location: UK

Re: ql superbomber and m-crunch ..and more things

Post by Silvester »

Don't forget the STOP instructions halts DSL activity and that is used by Trump Card (maybe also GC/SGC?) for DRAM refresh.


David
Post Reply