ql superbomber and m-crunch ..and more things
Re: ql superbomber and m-crunch ..and more things
The bat accelerates too quickly! It's just uncontrollable
I'll try on a real QL....
I'll try on a real QL....
Re: ql superbomber and m-crunch ..and more things
This game crashes on real QL (both JM and Minerva). QL freezez with black screen before the options menu.
-
- Aurora
- Posts: 854
- Joined: Tue Dec 17, 2013 1:17 pm
Re: ql superbomber and m-crunch ..and more things
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.Cristian wrote:This game crashes on real QL (both JM and Minerva). QL freezez with black screen before the options menu.
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.
-
- Over Heated PSU
- Posts: 134
- Joined: Tue Oct 09, 2018 4:20 am
Re: ql superbomber and m-crunch ..and more things
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
Re: ql superbomber and m-crunch ..and more things
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 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.
-
- Aurora
- Posts: 854
- Joined: Tue Dec 17, 2013 1:17 pm
Re: ql superbomber and m-crunch ..and more things
This is the bit of code i was referring to
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?
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
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?
Re: ql superbomber and m-crunch ..and more things
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
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
- 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
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.
- 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
All right, next QPC will have a working STOP implementation, for what it's worth
Re: ql superbomber and m-crunch ..and more things
Don't forget the STOP instructions halts DSL activity and that is used by Trump Card (maybe also GC/SGC?) for DRAM refresh.
David