ql superbomber and m-crunch ..and more things

Anything QL Software or Programming Related.
User avatar
Cristian
Super Gold Card
Posts: 651
Joined: Mon Feb 16, 2015 1:40 pm
Location: Veneto

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

Postby Cristian » Wed Mar 06, 2019 9:36 pm

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


User avatar
Cristian
Super Gold Card
Posts: 651
Joined: Mon Feb 16, 2015 1:40 pm
Location: Veneto

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

Postby Cristian » Sun Mar 10, 2019 6:05 pm

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


Martin_Head
Gold Card
Posts: 435
Joined: Tue Dec 17, 2013 1:17 pm

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

Postby Martin_Head » Mon Mar 11, 2019 2:38 pm

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
ROM Dongle
Posts: 41
Joined: Tue Oct 09, 2018 4:20 am

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

Postby nikosdoykas » Mon Mar 11, 2019 5:28 pm

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
Super Gold Card
Posts: 651
Joined: Mon Feb 16, 2015 1:40 pm
Location: Veneto

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

Postby Cristian » Mon Mar 11, 2019 7:50 pm

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
Gold Card
Posts: 435
Joined: Tue Dec 17, 2013 1:17 pm

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

Postby Martin_Head » Wed Mar 13, 2019 9:50 am

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
QL Wafer Drive
Posts: 1660
Joined: Sun Feb 13, 2011 10:53 pm
Location: SW Germany

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

Postby tofro » Wed Mar 13, 2019 10:19 am

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
Gold Card
Posts: 398
Joined: Sun Feb 02, 2014 10:54 am

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

Postby mk79 » Wed Mar 13, 2019 1:18 pm

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
Gold Card
Posts: 398
Joined: Sun Feb 02, 2014 10:54 am

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

Postby mk79 » Wed Mar 13, 2019 5:58 pm

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


Silvester
Trump Card
Posts: 208
Joined: Thu Dec 12, 2013 10:14 am
Location: UK

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

Postby Silvester » Thu Mar 14, 2019 2:03 pm

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


I'm not plugged into the Matrix so my responses may be delayed.

Who is online

Users browsing this forum: No registered users and 2 guests