SCRAMBLE VIDEOGAME Porting MAME for MSX1 in BASIC e L/M

Par gasparrini

Champion (301)

Portrait de gasparrini

17-09-2017, 01:16

Hello Dear Guys !!!

SCRAMBLE VIDEOGAME Porting MAME for MSX1 in BASIC e L/M.

Ten years ago, I had tried to do a porting of the famous SCRAMBLE videogame made by Konami/Stern, and in fact with the post this afternoon for the left scrolling screen I used to reuse it again on this my video game version
Beta Test, which is not over yet, with many imperfections, being all in BASIC.

In fact, the entire graphical map of my SCRAMBLE is stored on the BASIC list,
though if there is any MSX volunteer who wants to learn to plan, maybe
this is the good time.

As I have in the past helped a lot, yes, of all you good foreigners, and why not,
if there were some foreign users who still like programming the MSX
and learning something from me, I would certainly enjoy it.

10 REM SCRAMBLE FOR MSX1
20 REM by ANDREA GASPARRINI
30 REM (C)2007 AGsoftware
40 REM BETA TEST PORTING MAME
50 REM
60 CLEAR300,&HD4FF
70 SCREEN1,2,0:COLOR15,0,0:KEYOFF
80 KEY1,"SCREEN0"+CHR$(13)
90 CLS:WIDTH31
100 GOSUB1700:DEFINTA-Z
110 RESTORE120:FORS=1TO1:A$="":FORU=1TO32:READB:A$=A$+CHR$(B):NEXTU:SPRITE$(S)=A$:NEXTS
120 DATA 255,48,24,12,6,31,63,63,63,31,6,12,24,48,255,0,128,0,0,0,0,252,254,255,254,252,0,0,0,0,128,0
130 RESTORE200:FORI=128*8TO129*8-1:READB:VPOKEI,B:NEXTI
140 RESTORE200:FORI=136*8TO137*8-1:READB:VPOKEI,B:NEXTI
150 RESTORE200:FORI=144*8TO145*8-1:READB:VPOKEI,B:NEXTI
160 RESTORE210:FORI=152*8TO154*8-1:READB:VPOKEI,B:NEXTI
170 RESTORE230:FORI=160*8TO165*8-1:READB:VPOKEI,B:NEXTI
180 RESTORE250:FORI=168*8TO178*8-1:READB:VPOKEI,B:NEXTI
190 RESTORE340:FORI=184*8TO188*8-1:READB:VPOKEI,B:NEXTI
200 DATA 0,251,251,251,0,127,127,127
210 DATA 16,16,56,56,56,56,56,56
220 DATA 56,124,124,124,198,198,130,130
230 DATA 15,31,63,34,106,98,106,40,63,31,15,8,16,63,64,224,224,240,248,24,220,92,220,8,248,240,224,32,16,248,4,14
240 DATA 248,96,54,63,63,54,96,248
250 DATA 0,0,3,7,15,31,127,255
260 DATA 0,0,128,224,240,252,254,255
270 DATA 1,3,7,15,15,31,127,255
280 DATA 1,3,7,7,15,15,63,255
290 DATA 128,224,240,240,248,252,254,255
300 DATA 255,255,255,255,255,255,255,255
310 DATA 255,127,63,63,31,15,14,4
320 DATA 255,255,255,255,254,220,136,0
330 DATA 255,254,252,240,240,192,128,0
340 DATA 3,15,17,33,65,67,255,171,171,255,127,15,25,49,97,243,192,240,136,132,130,194,255,213,213,255,254,240,152,140,134,207
350 VPOKE8208,16*6+10:VPOKE8209,16*14+6
360 VPOKE8210,16*10+9:VPOKE8211,16*6
370 VPOKE8212,16*12:VPOKE8213,16*9
380 VPOKE8214,16*9:VPOKE8215,16*10
390 SC=5:HI=345:LV=1
400 LOCATE1,0:PRINT"SCORE":LOCATE12,0:PRINT"HI-SCORE":LOCATE23,0:PRINT"LEVEL"
410 LOCATE0,1:PRINTSC*100:LOCATE11,1:PRINTHI*100:LOCATE28,0:PRINTLV
420 LOCATE23,1:PRINTCHR$(164)+CHR$(164)+CHR$(164)+CHR$(164)+CHR$(164)
430 X=34:Y=100:PUTSPRITE1,(X,Y),5,1
440 REM SCRAMBLE GAME!
450 REM LEVEL2
460 RESTORE550
470 FORB=1TO5:FORI=1TO21:READA
480 VPOKE6239+I*32,A
490 NEXT
500 A=USR2(0):GOSUB1350:NEXT
510 FORL=1TO10:RESTORE600:FORB=6TO30:FORI=1TO21:READA
520 VPOKE6239+I*32,A
530 NEXT
540 A=USR2(0):GOSUB1350:NEXT:NEXTL
550 DATA 174,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,170
560 DATA 173,174,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,171,173
570 DATA 173,173,174,32,32,32,32,32,32,32,32,32,32,32,32,32,32,160,161,173,173
580 DATA 173,173,173,174,32,32,32,32,32,32,32,32,32,32,32,32,32,162,163,173,173
590 DATA 173,173,173,173,174,32,32,32,32,32,32,32,32,32,32,32,32,32,170,173,173
600 DATA 173,173,173,173,173,174,32,32,32,32,32,32,32,32,32,32,32,171,173,173,173
610 DATA 173,173,173,173,173,175,32,32,32,32,32,32,32,32,32,152,153,173,173,173,173
620 DATA 173,173,173,173,173,174,32,32,32,32,32,32,32,32,32,32,168,173,173,173,173
630 DATA 173,173,173,173,173,175,32,32,32,32,32,32,32,32,32,32,169,173,173,173,173
640 DATA 173,173,173,173,173,174,32,32,32,32,32,32,32,32,32,32,170,173,173,173,173
650 DATA 173,173,173,173,173,175,32,32,32,32,32,32,32,32,32,171,173,173,173,173,173
660 DATA 173,173,173,173,173,174,32,32,32,32,32,32,32,32,32,173,173,173,173,173,173
670 DATA 173,173,173,173,173,175,32,32,32,32,32,32,32,32,32,172,173,173,173,173,173
680 DATA 173,173,173,173,173,174,32,32,32,32,32,32,32,32,32,32,172,173,173,173,173
690 DATA 173,173,173,173,173,175,32,32,32,32,32,32,32,32,32,32,32,172,173,173,173
700 DATA 173,173,173,173,173,173,174,32,32,32,32,32,32,32,32,32,184,185,173,173,173
710 DATA 173,173,173,173,173,173,173,174,32,32,32,32,32,32,32,32,186,187,173,173,173
720 DATA 173,173,173,173,173,173,173,173,174,32,32,32,32,32,32,32,32,168,173,173,173
730 DATA 173,173,173,173,173,173,173,173,175,32,32,32,32,32,32,32,32,169,173,173,173
740 DATA 173,173,173,173,173,173,173,173,174,32,32,32,32,32,32,32,152,153,173,173,173
750 DATA 173,173,173,173,173,173,173,173,175,32,32,32,32,32,32,32,152,153,173,173,173
760 DATA 173,173,173,173,173,173,173,173,174,32,32,32,32,32,32,32,32,168,173,173,173
770 DATA 173,173,173,173,173,173,173,173,175,32,32,32,32,32,32,32,32,169,173,173,173
780 DATA 173,173,173,173,173,173,173,173,176,32,32,32,32,32,32,32,32,170,173,173,173
790 DATA 173,173,173,173,173,173,173,176,32,32,32,32,32,32,32,32,171,173,173,173,173
800 DATA 173,173,173,173,173,173,176,32,32,32,32,32,32,32,160,161,173,173,173,173,173
810 DATA 173,173,173,173,173,173,174,32,32,32,32,32,32,32,162,163,173,173,173,173,173
820 DATA 173,173,173,173,173,173,175,32,32,32,32,32,32,32,32,32,172,173,173,173,173
830 DATA 173,173,173,173,173,173,174,32,32,32,32,32,32,32,32,32,32,172,173,173,173
840 DATA 173,173,173,173,173,176,32,32,32,32,32,32,32,32,32,32,152,153,173,173,173
850 REM LEVEL3
860 RESTORE970
870 FORB=1TO2:FORI=1TO8:READA
880 VPOKE6655+I*32,A
890 NEXT
900 A=USR2(0):GOSUB1350:NEXT
910 FORL=1TO10
920 RESTORE990:FORB=2TO17:FORI=1TO8:READA
930 VPOKE6655+I*32,A
940 NEXT
950 A=USR2(0):GOSUB1350:NEXT
960 NEXTL:GOTO1160
970 DATA 32,32,32,32,32,172,173,173
980 DATA 32,32,32,32,32,32,173,173
990 DATA 32,32,32,32,160,161,173,173
1000 DATA 32,32,32,32,162,163,173,173
1010 DATA 32,32,32,32,32,170,173,173
1020 DATA 32,32,32,32,171,173,173,173
1030 DATA 32,32,152,153,173,173,173,173
1040 DATA 32,32,32,168,173,173,173,173
1050 DATA 32,32,32,169,173,173,173,173
1060 DATA 32,32,32,170,173,173,173,173
1070 DATA 32,32,171,173,173,173,173,173
1080 DATA 32,32,173,173,173,173,173,173
1090 DATA 32,32,172,173,173,173,173,173
1100 DATA 32,32,32,172,173,173,173,173
1110 DATA 32,32,32,168,173,173,173,173
1120 DATA 32,32,32,169,173,173,173,173
1130 DATA 32,32,32,32,172,173,173,173
1140 DATA 32,32,32,32,32,172,173,173
1150 REM LEVEL4
1160 FORL=1TO10
1170 RESTORE1220:FORB=1TO12:FORI=1TO18:READA
1180 VPOKE6335+I*32,A
1190 NEXT
1200 A=USR2(0):GOSUB1350:NEXT
1210 NEXTL:GOTO460
1220 DATA 32,32,144,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128
1230 DATA 152,153,144,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136
1240 DATA 32,32,144,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136
1250 DATA 32,32,32,152,153,144,128,128,128,128,128,128,128,128,128,128,128,128
1260 DATA 32,32,32,32,32,144,136,136,136,136,136,136,136,136,136,136,136,136
1270 DATA 32,32,32,32,32,144,136,136,136,136,136,136,136,136,136,136,136,136
1280 DATA 32,32,32,32,32,32,32,144,128,128,128,128,128,128,128,128,128,128
1290 DATA 32,32,32,32,32,152,153,144,136,136,136,136,136,136,136,136,136,136
1300 DATA 32,32,32,32,32,152,153,144,136,136,136,136,136,136,136,136,136,136
1310 DATA 32,32,160,161,144,128,128,128,128,128,128,128,128,128,128,128,128,128
1320 DATA 32,32,162,163,144,136,136,136,136,136,136,136,136,136,136,136,136,136
1330 DATA 32,32,32,32,144,136,136,136,136,136,136,136,136,136,136,136,136,136
1340 REM SCRAMBLE MOVE 1UP
1350 J=STICK(0)ORSTICK(1):XX=X:YY=Y
1360 IFJ=1THENY=Y-8
1370 IFJ=2THENY=Y-8:X=X+8
1380 IFJ=3THENX=X+8
1390 IFJ=4THENY=Y+8:X=X+8
1400 IFJ=5THENY=Y+8
1410 IFJ=6THENX=X-8:Y=Y+8
1420 IFJ=7THENX=X-8
1430 IFJ=8THENY=Y-8:X=X-8
1440 IFY<12THENY=YY
1450 IFY>172THENY=YY
1460 IFX<16THENX=XX
1470 IFX>230THENX=XX
1480 PUTSPRITE1,(X,Y),5,1
1490 RETURN
1500 REM SCROLL LEFT
1510 REM by Andrea Gasparrni
1520 REM
1530 '** CODE MACHINE
1540 '**
1550 '
1560 DATA FE,00,D5,00,D6,00,D5,21
1570 DATA 0E,D5,22,9E,F3,C9,21,40
1580 DATA 18,22,F2,D5,06,17,C5,01
1590 DATA 20,00,2A,F2,D5,11,F4,D5
1600 DATA CD,59,00,21,F5,D5,11,F4
1610 DATA D5,01,1F,00,ED,B0,21,13
1620 DATA D6,36,20,21,F4,D5,ED,5B
1630 DATA F2,D5,01,20,00,CD,5C,00
1640 DATA 2A,F2,D5,11,20,00,19,22
1650 DATA F2,D5,C1,10,C9,C9,FF
1660 DATA 9215
1670 '
1680 '** LOADER L/M
1690 '
1700 RESTORE 1560
1710 FOR X=54528! TO 54606!
1720 READ A$:Y=VAL("&H"+A$)
1730 POKE X,Y:CK=CK+Y
1740 NEXT X
1750 READ X:IF X<>CK THEN BEEP:PRINT"ERRORE NEI DATA: RICONTROLLA!":LIST 1560-1660:END
1760 DEFUSR=&HD500:A=USR(0)
1770 REM A=USR2(0) FOR SCROLL LEFT
1780 RETURN

Unfortunately, the scroll it is enough, and then the sprite ship 1UP, it has a light flicker,
and still I'am not succeeded in correcting this BUG!

And then still, the videogame beta test, doesn't work the collisions with the mountains,
walls and all the graphic background.
Is missing also the FIRE! of the ship sprite 1UP, therefore there is stilla lot of work to do.

For now it is all.....
See you to soon, thank you again for your kind attention
Best Redards
(^_^)
Andrea Gasparrini from Italy

!login ou Inscrivez-vous pour poster

Par andrea.denara

Resident (60)

Portrait de andrea.denara

17-09-2017, 10:00

Look this: TI 99 Scramble

Smooth scroll with Msx VDP!

Par tfh

Paragon (1842)

Portrait de tfh

17-09-2017, 11:17

Cool Smile
This is one of those games that I have actually forgotten about. When I was a teen we had an arcade version in a cafe near our home and I've spent too much money on that. And it's actually quite weird that we don't have this game on our beloved MSX system. Of course we have Super Cobra by Konami, which is of course heavily inspired by Scramble. And we have Scrambled Eggs, but... it's better to forget that one.

Looking forward to your conversion!

andrea.denara wrote:

Look this: TI 99 Scramble

Smooth scroll with Msx VDP!

Not bad at all.

Hmmm, now I really want to play this game! :)

Par Manuel

Ascended (15822)

Portrait de Manuel

17-09-2017, 23:33

What about this (crappy) game: https://youtu.be/P85Og6dcBuQ

:D

Par andrea.denara

Resident (60)

Portrait de andrea.denara

18-09-2017, 08:45

This is the link of TI99 Scramble source code:
Source

Maybe somewhere exist a tool to convert it on Z80 code.

Par ARTRAG

Enlighted (6279)

Portrait de ARTRAG

18-09-2017, 09:30

No tools, but the work is possible by manually translating each asm routine from ti99 to msx
Rasmus did it the other way for Knight Lore from zx spectrum

Par tfh

Paragon (1842)

Portrait de tfh

18-09-2017, 10:09

Manuel wrote:

What about this (crappy) game: https://youtu.be/P85Og6dcBuQ

:D

Wow, that is crappy indeed. One the plusside: it has a decent scroll!

andrea.denara wrote:

This is the link of TI99 Scramble source code:
Source

Well, it's a more then decent version, so... if someone could... :)

Par Imanok

Paragon (1143)

Portrait de Imanok

18-09-2017, 17:49

Par Meits

Scribe (5651)

Portrait de Meits

18-09-2017, 18:16

Manuel wrote:

What about this (crappy) game: https://youtu.be/P85Og6dcBuQ

:D

You never stop amazing me taking time to boot crap and video'ing it

Par tfh

Paragon (1842)

Portrait de tfh

18-09-2017, 19:23

Imanok wrote:

Do you know Star Avenger from Kuma?
http://www.generation-msx.nl/software/sean-wallis/star-avenger/release/2882/

ROFL... That one is not much better. And you cannot even change which keys to use...

Par mars2000you

Enlighted (5515)

Portrait de mars2000you

18-09-2017, 20:02

tfh wrote:
Imanok wrote:

Do you know Star Avenger from Kuma?
http://www.generation-msx.nl/software/sean-wallis/star-avenger/release/2882/

ROFL... That one is not much better. And you cannot even change which keys to use...

In blueMSX, you can change the keys - here's the procedure to follow:

Quote:

Tips for keyboard using : As you can see it, the keyboard commands are strange. Here how to proceed in blueMSX to get a better playability :
- go to the Keyboard Config sub-directory
- make a copy of the blueMSX Default.config file (security measure : what follows will modify the original file)
- go in the keyboard part of the Input Editor
- map the R key of the MSX to the up cursor
- map the V key of the MSX to the down cursor
- map the H key of the MSX to the left cursor
- map the K key of the MSX to the right cursor
- map the L key of the MSX to the LeftAlt key
- click on Ok to quit the Input Editor
- keep a copy of the modified blueMSX Default.config file on another location on your harddisk (for a future new use)
- if you want to select the H zone of the game, better use the virtual keyboard of blueMSX