MSX1 boot "logo"

Page 8/13
1 | 2 | 3 | 4 | 5 | 6 | 7 | | 9 | 10 | 11 | 12 | 13

By gdx

Prophet (3040)

gdx's picture

10-05-2018, 16:11

Thanks theNestruo. I optimized as you said. Now the fastest way in Basic would be to draw the black rectangle first and replace the LINE at line 40 by a PSET.

10 COLOR,4,4: SCREEN 2
20 CLEAR900:DEFINT A-Z
30 FOR Y=48 TO 127
40 C=1:LINE(239,Y)-(16,Y),1
50 READ V$: V=VAL("&H"+V$)
60 IF V>0 THEN LINE-STEP(V,0),C: C=C XOR14: GOTO50
70 NEXT Y
80 IF STRIG(0)=0 THEN80 ELSE END
90 DATA 0,0,0,0,0,0,0,0,0
100 DATA 21,F,11,F,1B,36,18,17,0
110 DATA 21,10,F,11,16,3B,16,17,0
120 DATA 20,11,F,11,13,3F,14,17,0
130 DATA 20,12,D,12,11,42,12,17,0
140 DATA 20,12,D,13,F,44,11,16,0
150 DATA 20,12,D,13,E,45,10,17,0
160 DATA 1F,13,D,13,D,47,E,17,0
170 DATA 1F,14,B,14,C,49,C,17,0
180 DATA 1F,14,B,15,A,4B,A,17,0
190 DATA 1F,14,B,15,A,4C,9,16,0
200 DATA 1E,16,A,15,9,4D,8,17,0
210 DATA 1E,16,9,16,9,4E,6,17,0
220 DATA 1E,16,9,17,7,50,4,17,0
230 DATA 1E,17,8,17,7,51,2,17,0
240 DATA 1D,18,8,17,7,51,1,17,0
250 DATA 1D,18,7,18,6,6A,0
260 DATA 1D,19,6,19,5,13,2A,2C,0
270 DATA 1D,19,6,19,5,12,2C,2A,0
280 DATA 1C,1A,6,19,5,11,2E,28,0
290 DATA 1C,1A,5,1B,4,11,2F,26,0
300 DATA 1C,1B,4,1B,4,11,2F,25,0
310 DATA 1B,1C,4,1B,4,12,2F,24,0
320 DATA 1B,1C,4,1B,4,14,2E,22,0
330 DATA 1B,1D,2,1D,3,26,1D,20,0
340 DATA 1B,1D,2,1D,3,29,1B,1E,0
350 DATA 1A,1E,2,1D,4,2A,19,1E,0
360 DATA 1A,1E,2,1E,3,2C,18,1C,0
370 DATA 1A,3E,4,2C,18,1A,0
380 DATA 1A,3E,4,2D,18,18,0
390 DATA 19,3F,5,2D,18,16,0
400 DATA 19,40,4,2E,16,18,0
410 DATA 19,40,5,2E,14,1A,0
420 DATA 19,40,6,2E,12,1C,0
430 DATA 18,42,6,2D,11,1D,0
440 DATA 18,12,1,1D,1,11,7,2D,10,1E,0
450 DATA 18,12,1,1C,2,11,8,2C,F,20,0
460 DATA 18,12,1,1C,2,12,9,2B,D,22,0
470 DATA 17,12,2,1C,3,11,C,28,C,24,0
480 DATA 17,12,2,1B,4,11,10,24,B,25,0
490 DATA 17,12,3,1A,4,12,1F,15,A,26,0
500 DATA 16,12,4,1A,4,12,21,13,9,28,0
510 DATA 16,12,4,1A,5,11,22,12,8,2A,0
520 DATA 16,12,4,19,6,12,21,12,7,2C,0
530 DATA 16,11,6,18,6,12,21,12,7,2C,0
540 DATA 15,12,6,18,7,11,20,13,6,16,2,16,0
550 DATA 15,12,6,17,8,12,1D,14,6,16,4,16,0
560 DATA 15,11,8,16,8,43,5,17,5,16,0
570 DATA 15,11,8,16,9,42,4,17,6,17,0
580 DATA 14,12,8,16,9,41,5,16,8,16,0
590 DATA 14,11,9,15,A,41,4,16,A,16,0
600 DATA 14,11,A,14,A,40,4,16,C,16,0
610 DATA 14,11,A,14,B,3F,3,17,D,16,0
620 DATA 13,11,B,13,C,3E,3,17,E,16,0
630 DATA 13,11,C,12,C,3E,3,16,10,16,0
640 DATA 13,11,C,12,C,3D,3,16,12,16,0
650 DATA 13,11,C,12,D,3B,3,16,14,16,0
660 DATA 12,11,D,11,E,3A,3,16,16,16,0
670 DATA 12,11,E,10,E,39,3,16,17,16,0
680 DATA 12,11,E,10,F,37,4,16,18,16,0
690 DATA 11,11,F,10,F,35,5,16,1A,16,0
700 DATA 11,11,10,E,10,33,6,16,1C,16,0
710 DATA 11,11,10,E,11,2F,8,16,1E,16,0
720 DATA 0,0,0,0,0,0,0,0,0

Manuel might be happy to see that in assembler.

By theNestruo

Expert (111)

theNestruo's picture

10-05-2018, 16:43

gdx wrote:

Thanks theNestruo. I optimized as you said. Now the fastest way in Basic would be to draw the black rectangle first and replace the LINE at line 40 by a PSET. [/code]
Manuel might be happy to see that in assembler.

I said those optimizations, but I actually coded completely different ones... (^_^!)
My previous version plus the black rectangle: https://msxpen.com/codes/-LC9UM7PUmoahmikucPB

By Grauw

Ascended (8457)

Grauw's picture

10-05-2018, 17:19

I made a whole bunch of boot logo animations Smile:

https://bitbucket.org/grauw/msx1logo
https://bitbucket.org/grauw/msx1logo/downloads/msx1logo.rom

Video:

https://youtu.be/2jEmklrEcAg

Every MSX generation got a fancier logo animation:

  • MSX2 with the scroll, showcasing vertical scroll and resolution
  • MSX2+ with the slide, showcasing horizontal scroll
  • MSX turboR with the quick fancy slide, showcasing its speed

So the MSX1 logo needs to express “first gen”, and not overshadow the logos of the successors or suggest one of their features. A static logo is too boring, but it should not be much more than that. So I’ve tried to come up with a few simple animations where the logo position remains static, but it appears in some fun ways.

The code size is a little over 1K combined. The logo is Parn’s, with a small modification on the inner curves of the S to make them look more rounded.

By AxelF

Champion (341)

AxelF's picture

10-05-2018, 21:26

gdx wrote:

Manuel might be happy to see that in assembler.

Does the MSX 1 VDP handle LINE command in assembly and for example LMMV command ?

By Manuel

Ascended (15756)

Manuel's picture

10-05-2018, 21:34

AxelF: the MSX1 VDP does not have a VDP command engine...

Grauw: wow, really great!

Regarding fanciness: if we end up making a too fancy boot logo for MSX1, compared to MSX2, perhaps we should also redesign the MSX2 boot logo? And so on Tongue
Anyway, I really love the animations there. But how small can we make this code by optimzations/compression/etc? What's the size we really need??

By Sander

Ambassador (1845)

Sander's picture

10-05-2018, 21:48

Nice Grauw! I liked the last three ones. Maybe the one at 33 sec. the best.

By Parn

Champion (420)

Parn's picture

10-05-2018, 22:30

@Grauw: Wonderful! When I was drawing the logo I thought it looked strange with the inner S curves rounder than the MSX2 logo, but seeing it in action now I think it looks better, good call. Loved the effects, particularly the last one, seconded closely by the previous one. I completely agree with you about the fanciness of the logo (not that Eugeny's didn't look awesome). Smile

By DamnedAngel

Master (143)

DamnedAngel's picture

10-05-2018, 22:57

Manuel,

out of curiosity, why are you giving so much attention to code/data bytecount? Are you planning some rom update?

By Grauw

Ascended (8457)

Grauw's picture

11-05-2018, 00:05

I myself like the 5th logo (@21s) and the 9th one (the last) most.

@AxelF I don’t use line but I store the data in a similar way and the render code isn’t too big, it’s trivial to make it use deltas like gdx’s data (remove a few instructions after Loop in MSX1Logo_DrawPatterns). For final code deltas are best, but this is easier for me to still modify the graphics if I’d want.

@Manuel If I remove all but the last animation it’s 742 bytes. The logo data itself is 552 bytes. Some Huffman compression or similar could reduce the data size a bit more I guess, esp. using deltas, though it adds more code. The rest also isn’t super optimised, so there are opportunities when one’d pick one animation. I would say with enough effort 512 bytes total is feasible.

@Parn I also thought maybe the lines of the X could be tweaked a little to have more symmetry. And the M has a few parts where it has 5 pixel steps, maybe it would look nice if those pixels are redistributed to the top / bottom. But I left those as-is Smile, only if it’s used somewhere I’d want to put some extra attention to those parts to gain perfection.

By Manuel

Ascended (15756)

Manuel's picture

11-05-2018, 00:29

DamnedAngel: I'm not planning anything, but the smaller it gets, the larger the chance that someone is able to cram it into the standard MSX1 BIOS ROM... although... I'm not sure if there's any free space in it at all. Does someone know? A first look at a ROM file (I took the Canon V-20) says we may have only like 300 bytes at the end, where the old 'logo' stuff is located... but perhaps some good ROM hacker (i.e. not me at all!) can find more room and fit in such a 512 byte logo thing to pimp our good old MSX1 BIOSes!

Page 8/13
1 | 2 | 3 | 4 | 5 | 6 | 7 | | 9 | 10 | 11 | 12 | 13