Working from memory, I'm pretty sure there's no compression going on. (Though there is encryption of the game code and data,. Which I have removed)
The lack of room to fit everything onto a microdrive may be down to my BOOT program, which is a lot larger than the original one. The original being something like RESPR : LBYTES : CALL
If you want to try disabling the turning off and on of the display. You could try this -
Enter 4 NOP's from the start of the code + $1C28. And 8 NOP's from the start of the code + $1C36. I've not actually tried it yet, just worked out what to do.
Here's the piece of code to overwrite
Code: Select all
Lab11C24 bsr lab10a9a ;*** 20mS delay via STOP instruction ***
ori.b #2,$00018063 ;master chip status, turn display off
rts
Lab11C32 bsr lab10a9a ;*** 20mS delay via STOP instruction ***
andi.b #$fd,$00018063 ;master chip status, display on
ori.b #8,$00018063 ;master chip status, 8 colour mode
rts
Nikosdoykas, If your QBIDE does not have a RES_128 equivalent, you could try something like doing a n=RESPR(512*1024) before loading the game. To reserve all of your memory on the QBIDE, forcing the game into the QL's internal RAM.
If I try to run the game in QPC2, I get display problems, Not just running too fast. If I can get it to run in QPC2, it may point to the problem.
EDIT: I had a look at the display problem in QPC2. And I think it's the window manger getting in the way. After you press 'S' to start the game. The game draws a black window with a blue border around it by poking the screen display. It then opens a console window, displays the 'LEVEL 1' message, and then immediately closes the console window. When the window closes, the message, and a lot of the blue border underneath it also disappears. Which I assume is the window manger trying to restore the underlying screen and getting it wrong. This all happens so quickly that you don't see the message at all.
With the blue borders missing on the left and right sides, I suspect the ball has problems finding something to bounce off. Which probably causes other problems.