dilwyn wrote:Nice idea converting the screens to a simple mode 4 sprite for display.
Well done, Per!
Thanks, Dilwyn. The really clever bit is the SMSQ/E's versatile and flexible sprite drawing routine!
I should perhaps mention that ptrgen V2.02+ is required for this to work, so anyone who tried and failed to get a proper display should make sure theyre using an up-to-date version (currently 2.05). For non-SMSQ/E systems this is available to download from Dilwyn's site. SMSQ/E, of course, has ptrgen built-in.
While I understand the charm of being able to run these animations on virtually naked QLs, aiming a little higher might give them a wider appeal(?) After all, those who wrote the iop.wspt trap's innards went to a lot of trouble to interface various image formats with as many platforms as could physically handle them, and react more or less gracefully when asked the impossible.
But even if not using the WSPT method, it would be a good idea to limit the amount of editing required to get things to work across the board. I have to admit not bothering to view all the different offerings due to the many changes Id have to make to view them while remaining within my normal comfort zone. I dont mean to cause offense by making the following suggestion:
Code: Select all
10 REMark MASTRS_bas
20 :
100 dir$ = 'flp1_'
110 p = 3
120 :
130 RANDOMISE DATE
140 ch = FOPEN('con_')
150 WINDOW#ch; 512,256,0,0
160 RESTORE
170 :
180 spr = ALCHP(32768 + 24)
190 REMark Sprite header:
200 DATA 256, 0, 512, 256, 0, 0, 0, 12, 0, 0, 0, 0
210 FOR adr = spr TO spr + 22 STEP 2
220 READ sh%: POKE_W adr, sh%
230 END FOR adr
240 :
250 spd = spr + 24
260 REPeat film
270 FOR glove=0 TO 2
280 Show "a", RND(5 TO 55)
290 Show "b", 3
300 Show "c", RND(5 TO 88)
310 Show "b", 3
320 END FOR glove
330 Pse 50
340 Show "scr_t1", 100
350 Show "scr_t2", 6
360 Show "scr_t3", 100
370 Show "scr_01", 50
380 Show "scr_02", p+3
390 Show "scr_03", p
400 Show "scr_04", p
410 Show "scr_05", p
420 Show "scr_06", 80
430 Show "scr_05", 3
440 Show "scr_07", 2
450 Show "scr_08", 2
460 FOR spin = 0 TO 15
470 Show "scr_11", 1
480 Show "G6", 2
490 Show "G4", 2
500 END FOR spin
510 END REPeat film
520 :
530 DEFine PROCedure Show(fnm$, t)
540 LBYTES dir$ & fnm$, spd: WSPT#ch; 0,0,spr: Pse t
550 END DEFine Show
560 :
570 DEFine PROCedure Pse(t)
580 IF CODE(INKEY$(#ch; t)) = 27 THEN
590 RECHP spr: CLOSE#ch
600 STOP
610 END IF
620 END DEFine Pse
630 :
Here only a single line (100), easily found, needs to be altered to suit a different setup. In my case I unzipped MASTRS to a virtual foppy, as most emulators support: No need to copy to ram disk for most of us. (In fact it runs ALMOST satisfactorily directly off my super slow USB floppy). Id have to alter a single line (540) to LBYTES dev$ & fnm$, 131072, and perhaps REM out* a few redundant lines, to switch back to riding bare-backed. (*Simpler might be: 155 IF 0 THEN, and 255 END IF to effectively REM out multiple lines)
Of course the above code is somewhat different to the original, but its the idea of generalising things through procedures and functions Im getting at.
Nice animations, BTW
