Free your creativity - IOMBCC (Development MSX Fora)MSX Resource Center MRC MEGA Challenge - Win one of 3 free One Chip MSX computers!           
            
English Nederlands Español Português Russian         
 Nieuws
   Voorpagina
  Nieuws archief
  Nieuws onderwerpen

 Informatie
   MSX Fora
  Artikelen
  Recensies
  Beursverslagen
  Fotoreportages
  Beurzen en meetings
  Enquêtes
  Links
  Zoek

 Software
   Downloads
  Webshop

 MRC
   Wie we zijn
  Kom bij ons team
  Doneren
  Policies
  Contact met het MRC
  Link naar Ons
  Statistieken

 Zoek
 
  

  

 Login
 

Gebruikersnaam

Wachtwoord




Ben je nog niet lid? Klik hier en word MSX vriend!


 Statistieken
 

Er zijn 222 gasten en 1 MSX vriend online

Je bent een anonieme bezoeker.
 

MSX Fora


MSX Fora

Development - Free your creativity - IOMBCC

Ga naar pagina ( Vorige pagina 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 Volgende pagina )
Schrijver

Free your creativity - IOMBCC

dvik
msx master
Berichten: 1262
Geplaatst: 05 April 2005, 08:46   
Ok, Now I have something that is working pretty well. I was able to optimize
the Rally game a bit more and make it run smother and I made it a bit harder
to play. I also added a nice ending.

I think this one could be the final version unless NYYRIKKI or someone else
finds something more cool to add or there are some bugs I haven't seen yet.


1 DEFINTA-Z:V=014:S$(0)="A18A0CA0FB07C03C01H00A80AE0AF0AFCIFFH00A80AE0AF0AF8AFCBFEAFFP00F3FF7FTFFAF0AF8AFCAFELFFE00A80AC0AE0BF0AF8AFCBFEBFFP00B01B03B07B0FB1FB3FB7FBFFB80BC0BE0BF0BF8BFCBFEBFFP00B01B03B07B0FB1FB3FB7FbFFB80BC0BE0BF0BF8BFCBFE"
2 COLOR15,5,1:X=V:S$(1)="BFFX00A01A07A0FA1FA3FB7FAFFC00A01A07A0FA3FIFFA18A30AF0BE0CC0C80J00A01A03A07B0FA1FA3FB7FBFFA0FA1FA3FA7F\FFFFCFFEDFFG00A1FA20A40A7FBCFA7FB70G00AC0A20A10AF0B98AF0B70J00A0FA10A1FA2FA1FA19K00B80A40B80L00A06A0FA09_00A03"
3 J=S-J*(J<96-S):H=J\16:FORW=0TO2:VPOKE8208+W,P(H+W):NEXT:IFTTHENRESUMENEXTELSEKEYOFF:SCREEN1,3,0:LOCATE8,1:PRINT"PLEASE WAIT!":FORI=256TO1023:VPOKE7952+I,85:O=VPEEK(I):VPOKEI,(OORO/2)/(2-(IAND4)\4):NEXT:TIME=--0:FORW=0TO1:FORO=1TO212STEP3
4 Q=ASC(MID$(S$(W),O,1))-65:Y=VAL("&H"+MID$(S$(W),O+1,2)):N=14336:FORA=ATOA+Q:VPOKEA+N,Y:NEXT:NEXT:PUTSPRITE8+W,(80+64*W,159),V,6+W:NEXT:ONERRORGOTO3:FORO=1TO12:FORH=0TO31:VPOKE6496+H+O*32,(O<9ORH<VORH>17)*(ASC(MID$("ABCSBRCKSBJR",O))-211)
5 NEXT:P(-O*(O<9))=50-15*(O/3AND1):NEXT:FORI=ITO1167:VPOKEI,(8ANDI)*255\8:VPOKE2335-I,(4ANDI)*255\4:NEXT:VPOKE8192,V:SOUND3,V:SOUND8,V:FORT=7TON/2:IF:PUTSPRITE0,(X+80,156),1,12:M=(X>72)-(X<0):SOUND1,83:F=B:B:IFC<TTHENC=V+T+TMOD99:B=CMOD3-1
6 S=S-(S<18ANDSTRIG(0))*2+(S>0):S=S*((X-15-E\3)\15<>0ORD<73)*(M=0):-:T=T+S-1:X=X+5*(M+(U=7)-(U=3))-S*B\4:LOCATE1,1:SOUND9,V:SOUND0,225-S*9:E=NAND128:8:FORW=3TO4:PUTSPRITEW+1,(F*10+W*32,95),V,4*B+W+1:PUTSPRITE3+W,(W*32,127),V,4*F+3+W:NEXT:T
7 N=N+9-S:D=96-(NAND127):Y=D>0:D=D*D/96:PUTSPRITE1,(115-(D<34)*((24-D)*B+F*10)+(E-64)*D/225,-Y*(98+D)-31),6,16-D/24:I:U=STICK(0):PRINTUSING"SPEED:####kmh     RANK:###";S*10;(N-65)/128-82:NEXT:A$=SPACE$(V):A=TIME\60:PUTSPRITE1,,0:FORN=0TO99
8 S=16:D=88-3*N:Y=D>0:U=Y*(N\6-V):SOUND8,U:SOUND9,U:PUTSPRITE0,(116-(D<58)*((24-D*D/96)*B+F*10)+(X-36)*D/126,-Y*(98+D)-31),1,16+Y*D/24:LOCATE6,4:PRINTMID$(A$+"Game Over   Time ="+STR$(TIME\60)+"s"+A$,N\2MOD42+1,16):IOMBCC 2005:NEXT:SCREENY

NYYRIKKI
msx master
Berichten: 1463
Geplaatst: 05 April 2005, 18:13   
That end demo was looking so great, that I even extended the lenght a bit! The on error goto idea was also brilliant! How ever there was a tiny bug in the time thing:

1 DEFINTA-Z:V=14:S$(0)="A18A0CA0FB07C03C01H00A80AE0AF0AFCIFFH00A80AE0AF0AF8AFCBFEAFFP00F3FF7FTFFAF0AF8AFCAFELFFE00A80AC0AE0BF0AF8AFCBFEBFFP00B01B03B07B0FB1FB3FB7FBFFB80BC0BE0BF0BF8BFCBFEBFFP00B01B03B07B0FB1FB3FB7FbFFB80BC0BE0BF0BF8BFCBFE"
2 COLOR15,5,1:X=V:S$(1)="BFFX00A01A07A0FA1FA3FB7FAFFC00A01A07A0FA3FIFFA18A30AF0BE0CC0C80J00A01A03A07B0FA1FA3FB7FBFFA0FA1FA3FA7F\FFFFCFFEDFFG00A1FA20A40A7FBCFA7FB70G00AC0A20A10AF0B98AF0B70J00A0FA10A1FA2FA1FA19K00B80A40B80L00A06A0FA09_00A03"
3 J=S-J*(J<96-S):H=J\16:FORW=0TO2:VPOKE8208+W,P(H+W):NEXT:IFTTHENRESUMENEXTELSEKEYOFF:SCREEN1,3,0:LOCATE8,1:PRINT"PLEASE WAIT!":FORI=256TO1023:VPOKE7952+I,85:O=VPEEK(I):VPOKEI,(OORO/2)/(2-(IAND4)\4):NEXT:TIME=--0:FORW=0TO1:FORO=1TO212STEP3
4 Q=ASC(MID$(S$(W),O,1))-65:Y=VAL("&H"+MID$(S$(W),O+1,2)):N=14336:FORA=ATOA+Q:VPOKEA+N,Y:NEXT:NEXT:PUTSPRITE8+W,(80+64*W,159),V,6+W:NEXT:ONERRORGOTO3:FORO=1TO12:FORH=0TO31:VPOKE6496+H+O*32,(O<9ORH<VORH>17)*(ASC(MID$("ABCSBRCKSBJR",O))-211)
5 NEXT:P(-O*(O<9))=50-15*(O/3AND1):NEXT:FORI=ITO1167:VPOKEI,(8ANDI)*255\8:VPOKE2335-I,(4ANDI)*255\4:NEXT:VPOKE8192,V:SOUND3,V:SOUND8,V:FORT=7TON/2:IF:PUTSPRITE0,(X+80,156),1,12:M=(X>72)-(X<0):SOUND1,83:F=B:B:IFC<TTHENC=V+T+TMOD99:B=CMOD3-1
6 S=S-(S<18ANDSTRIG(0))*2+(S>0):S=S*((X-15-E\3)\15<>0ORD<73)*(M=0):-:T=T+S-1:X=X+5*(M+(U=7)-(U=3))-S*B\4:LOCATE2,1:SOUND9,V:SOUND0,225-S*9:E=NAND128:8:FORW=3TO4:PUTSPRITEW+1,(F*10+W*32,95),V,4*B+W+1:PUTSPRITE3+W,(W*32,127),V,4*F+3+W:NEXT:T
7 N=N+9-S:D=96-(NAND127):Y=D>0:D=D*D/96:PUTSPRITE1,(115-(D<34)*((24-D)*B+F*10)+(E-64)*D/225,-Y*(98+D)-31),6,16-D/24:I:U=STICK(0):PRINTUSING"SPEED:###kmh    RANK:###";S*10;(N-65)/128-82:NEXT:A$=SPACE$(V):A=TIME\60:PUTSPRITE1,,0:FORN=0TO244
8 S=16:D=88-3*N:Y=D>0:U=Y*(N\6-V):SOUND8,U:SOUND9,U:PUTSPRITE0,(116-(D<58)*((24-D*D/96)*B+F*10)+(X-36)*D/126,-Y*(98+D)-31),1,16+Y*D/24:LOCATE6,4:PRINTMID$(A$+"Game Over   Time ="+STR$(A)+"s"+A$,N\2MOD42+1,15):IOMBCC 2005:NEXT:SCREENY


As Manuel already pointed out the time is still going wrong even after the fix in 50Hz machines. To fix that, we should make a=time\(60-(peek(43)\128)*10) to fit in there... I'll try to experiment with the sprite data, if I'll get enough time from somewhere, but I think, that it is starting to get quite a ready.


snout

msx legend
Berichten: 4981
Geplaatst: 05 April 2005, 18:23   
Holy crap, this is crazy. turboR owners: just look at that blazing speed on R800 ^_^

BASIC slow? PAH!
dvik
msx master
Berichten: 1262
Geplaatst: 05 April 2005, 20:39   
I did some speed improvments to speed it up a little. It may need some fine tuning though (I don't really think it was needed on TR machines though ).

I'll also try to find space to get the 50/60Hz switch in.

1 DEFINTA-Z:V=14:S$(0)="A18A0CA0FB07C03C01H00A80AE0AF0AFCIFFH00A80AE0AF0AF8AFCBFEAFFP00F3FF7FTFFAF0AF8AFCAFELFFE00A80AC0AE0BF0AF8AFCBFEBFFP00B01B03B07B0FB1FB3FB7FBFFB80BC0BE0BF0BF8BFCBFEBFFP00B01B03B07B0FB1FB3FB7FbFFB80BC0BE0BF0BF8BFCBFE"
2 COLOR15,5,1:X=V:S$(1)="BFFX00A01A07A0FA1FA3FB7FAFFC00A01A07A0FA3FIFFA18A30AF0BE0CC0C80J00A01A03A07B0FA1FA3FB7FBFFA0FA1FA3FA7F\FFFFCFFEDFFG00A1FA20A40A7FBCFA7FB70G00AC0A20A10AF0B98AF0B70J00A0FA10A1FA2FA1FA19K00B80A40B80L00A06A0FA09_00A03"
3 J=S-J*(J<96-S):H=J\16:FORW=0TO2:VPOKE8208+W,P(H+W):NEXT:IFTTHENRESUMENEXTELSEKEYOFF:SCREEN1,3,0:LOCATE8,1:PRINT"PLEASE WAIT!":FORI=256TO1023:VPOKE7952+I,85:O=VPEEK(I):VPOKEI,(OORO\2)\(2-(IAND4)\4):NEXT:TIME=--0:FORW=0TO1:FORO=1TO212STEP3
4 Q=ASC(MID$(S$(W),O,1))-65:Y=VAL("&H"+MID$(S$(W),O+1,2)):N=14336:FORA=ATOA+Q:VPOKEA+N,Y:NEXT:NEXT:PUTSPRITE8+W,(80+64*W,159),V,6+W:NEXT:ONERRORGOTO3:FORO=1TO12:FORH=0TO31:VPOKE6496+H+O*32,(O<9ORH<VORH>17)*(ASC(MID$("ABCSBRCKSBJR",O))-211)
5 NEXT:P(-O*(O<9))=50-15*(O\3AND1):NEXT:FORI=ITO1167:VPOKEI,(8ANDI)*255\8:VPOKE2335-I,(4ANDI)*255\4:NEXT:VPOKE8192,V:SOUND3,V:SOUND8,V:FORT=7TON\2:IF:PUTSPRITE0,(X+80,156),1,12:M=(X>72)-(X<0):SOUND1,83:F=B:B:IFC<TTHENC=V+T+TMOD99:B=CMOD3-1
6 S=S-(S<18ANDSTRIG(0))*2+(S>0):S=S*((X-15-E\3)\15<>0ORD<73)*(M=0):-:T=T+S-1:X=X+5*(M+(U=7)-(U=3))-S*B\4:LOCATE2,1:SOUND9,V:SOUND0,225-S*9:E=NAND128:8:FORW=3TO4:PUTSPRITEW+1,(F*10+W*32,95),V,4*B+W+1:PUTSPRITE3+W,(W*32,127),V,4*F+3+W:NEXT:T
7 N=N+9-S:D=96-(NAND127):Y=D>0:D=D*D\96:PUTSPRITE1,(115-(D<34)*((24-D)*B+F*10)+(E-64)*D\225,-Y*(98+D)-31),6,15-D\24:I:U=STICK(0):PRINTUSING"SPEED:###kmh    RANK:###";S*10;(N-65)\128-82:NEXT:A$=SPACE$(V):A=TIME\60:PUTSPRITE1,,0:FORN=0TO244
8 S=16:D=88-3*N:Y=D>0:U=Y*(N\6-V):SOUND8,U:SOUND9,U:PUTSPRITE0,(116-(D<58)*((24-D*D\96)*B+F*10)+(X-36)*D\126,-Y*(98+D)-31),1,15+Y*D\24:LOCATE6,4:PRINTMID$(A$+"Game Over   Time ="+STR$(A)+"s"+A$,N\2MOD42+1,15):IOMBCC 2005:NEXT:SCREENY

dvik
msx master
Berichten: 1262
Geplaatst: 06 April 2005, 05:12   
I found some more characters and added the time on 50Hz machines.
I also made the time with one decimal to make it a bit more interesting.
Then I added an extra line in the horizon to make it look more distant.

1 DEFINTA-Y:V=14:S$(O1)="A18A0CA0FB07C03C01H00A80AE0AF0AFCIFFH00A80AE0AF0AF8AFCBFEAFFP00F3FF7FTFFAF0AF8AFCAFELFFE00A80AC0AE0BF0AF8AFCBFEBFFP00B01B03B07B0FB1FB3FB7FBFFB80BC0BE0BF0BF8BFCBFEBFFP00B01B03B07B0FB1FB3FB7FbFFB80BC0BE0BF0BF8BFCBFE"
2 COLOR15,5,1:X=V:S$(1)="BFFX00A01A07A0FA1FA3FB7FAFFC00A01A07A0FA3FIFFA18A30AF0BE0CC0C80J00A01A03A07B0FA1FA3FB7FBFFA0FA1FA3FA7F\FFFFCFFEDFFG00A1FA20A40A7FBCFA7FB70G00AC0A20A10AF0B98AF0B70J00A0FA10A1FA2FA1FA19K00B80A40B80L00A06A0FA09_00A03"
3 J=S-J*(J<96-S):K=J\16:FORW=0TO2:VPOKE8208+W,P(W+K):NEXT:IFTTHENRESUMENEXTELSEKEYOFF:SCREEN1,3,0:LOCATE8,1:PRINT"PLEASE WAIT!":FORI=256TO1023:VPOKE7952+I,85:O=VPEEK(I):VPOKEI,(OORO\2)\(2-(IAND4)\4):NEXT:SOUND3,V:FORW=0TO1:FORO=1TO212STEP3
4 Q=ASC(MID$(S$(W),O,1))-65:Y=VAL("&H"+MID$(S$(W),O+1,2)):N=14336:FORA=ATOA+Q:VPOKEA+N,Y:NEXT:NEXT:PUTSPRITE8+W,(80+64*W,159),V,6+W:NEXT:ONERRORGOTO3:FORR=1TO12:FORH=0TO31:VPOKE6496+H+R*32,(R<9ORH<VORH>17)*(ASC(MID$("ABCSBRCKSBJR",R))-211)
5 P(H\4)=50-15*(H\12AND1):NEXT:NEXT:FORI=ITO1168:VPOKEI-(I=1168),(8ANDI)*255\8:VPOKE8+I,(4AND7-I)*255\4:NEXT:VPOKE8192,V:TIME=0:SOUND8,V:R=N\2:FORT=7TOR:R:FORW=3TO4:PUTSPRITEW+1,(F*10+W*H,95),V,4*B+W+1:PUTSPRITE3+W,(W*H,127),V,4*F+3+W:NEXT
6 IF:T=T+S-1:PUTSPRITE1,(115-(D<34)*((24-D)*B+F*10)+(E-64)*D\225,-Y*(98+D)-31),-6*(T<R),15-D\25:OR:M=(X>72)-(X<0):SOUND0,O-S*9:S=S-(S<18ANDSTRIG(0))*2+(S>0):S=S*((X-15-E\3)\15<>0ORD<73)*(M=0):E=NAND128:F=B:B:IFC<TTHENC=V+T+TMOD99:B=CMOD3-1
7 SOUND9,V:X=X+5*(M+(U=7)-(U=3))-S*B\4:LOCATE1,1:8:N=N+9-S:TO:PUTSPRITE0,(X+80,156),1,12:SOUND1,83:D=96-(NAND127):Y=D>0:D=D*D\96:U=STICK(0):.:PRINTUSING"SPEED:###kmh    RANK:###";S*10;N\128-82:NEXT:Z$=SPACE$(V):Z=(TIME\(6-PEEK(43)\128))/10
8 FORN=0TO244:D=88-3*N:S=16:U=Y*(N\6-V):Y=D>0:SOUND8,U:SOUND9,U:PUTSPRITE0,(116-(D<58)*((21-D*D\96)*B+F*10)+(X-36)*D\126,-Y*(98+D)-31),1,15+Y*D\24:LOCATE6,4:PRINTMID$(Z$+"Race Over   Time ="+STR$(Z)+"s"+Z$,N\2MOD42+1,15):NEXTI:NEXT:SCREENY


dvik
msx master
Berichten: 1262
Geplaatst: 06 April 2005, 06:21   
I didn't check but . expands to 0! which made line 7 too long. So I fixed that and
also a sound bug at startup. Here is an update:

1 DEFINTA-Y:V=14:S$(O1)="A18A0CA0FB07C03C01H00A80AE0AF0AFCIFFH00A80AE0AF0AF8AFCBFEAFFP00F3FF7FTFFAF0AF8AFCAFELFFE00A80AC0AE0BF0AF8AFCBFEBFFP00B01B03B07B0FB1FB3FB7FBFFB80BC0BE0BF0BF8BFCBFEBFFP00B01B03B07B0FB1FB3FB7FbFFB80BC0BE0BF0BF8BFCBFE"
2 COLOR15,5,1:X=V:S$(1)="BFFX00A01A07A0FA1FA3FB7FAFFC00A01A07A0FA3FIFFA18A30AF0BE0CC0C80J00A01A03A07B0FA1FA3FB7FBFFA0FA1FA3FA7F\FFFFCFFEDFFG00A1FA20A40A7FBCFA7FB70G00AC0A20A10AF0B98AF0B70J00A0FA10A1FA2FA1FA19K00B80A40B80L00A06A0FA09_00A03"
3 J=S-J*(J<96-S):K=J\16:FORW=0TO2:VPOKE8208+W,P(W+K):NEXT:IFTTHENRESUMENEXTELSEKEYOFF:SCREEN1,3,0:LOCATE8,1:PRINT"PLEASE WAIT!":FORI=256TO1023:VPOKE7952+I,85:O=VPEEK(I):VPOKEI,(OORO\2)\(2-(IAND4)\4):NEXT:SOUND3,V:FORW=0TO1:FORO=1TO212STEP3
4 Q=ASC(MID$(S$(W),O,1))-65:Y=VAL("&H"+MID$(S$(W),O+1,2)):N=14336:FORA=ATOA+Q:VPOKEA+N,Y:NEXT:NEXT:PUTSPRITE8+W,(80+64*W,159),V,6+W:NEXT:ONERRORGOTO3:FORR=1TO12:FORH=0TO31:VPOKE6496+H+R*32,(R<9ORH<VORH>17)*(ASC(MID$("ABCSBRCKSBJR",R))-211)
5 P(H\4)=50-15*(H\12AND1):NEXT:NEXT:FORI=ITO1168:VPOKEI-(I=1168),(8ANDI)*255\8:VPOKE8+I,(4AND7-I)*255\4:NEXT:VPOKE8192,V:TIME=0:SOUND9,V:R=N\2:FORT=7TOR:R:FORW=3TO4:PUTSPRITEW+1,(F*10+W*H,95),V,4*B+W+1:PUTSPRITE3+W,(W*H,127),V,4*F+3+W:NEXT
6 IF:T=T+S-1:PUTSPRITE1,(115-(D<34)*((24-D)*B+F*10)+(E-64)*D\225,-Y*(98+D)-31),-6*(T<R),15-D\25:OR:M=(X>72)-(X<0):SOUND0,O-S*9:S=S-(S<18ANDSTRIG(0))*2+(S>0):S=S*((X-15-E\3)\15<>0ORD<73)*(M=0):E=NAND128:F=B:B:IFC<TTHENC=V+T+TMOD99:B=CMOD3-1
7 X=X+5*(M+(U=7)-(U=3))-S*B\4:LOCATE1,1:8:N=N+9-S:TO:PUTSPRITE0,(X+80,156),1,12:SOUND1,83:SOUND8,V:D=96-(NAND127):Y=D>0:D=D*D\96:U=STICK(0):*:PRINTUSING"SPEED:###kmh    RANK:###";S*10;N\128-82:NEXT:Z$=SPACE$(V):Z=(TIME\(6-PEEK(43)\128))/10
8 FORN=0TO244:D=88-3*N:S=16:U=Y*(N\6-V):Y=D>0:SOUND8,U:SOUND9,U:PUTSPRITE0,(116-(D<58)*((21-D*D\96)*B+F*10)+(X-36)*D\126,-Y*(98+D)-31),1,15+Y*D\24:LOCATE6,4:PRINTMID$(Z$+"Race Over   Time ="+STR$(Z)+"s"+Z$,N\2MOD42+1,15):NEXTI:NEXT:SCREENY

NYYRIKKI
msx master
Berichten: 1463
Geplaatst: 06 April 2005, 07:59   
You are a wizard! BTW do you typically sleep at all?

dvik
msx master
Berichten: 1262
Geplaatst: 06 April 2005, 09:21   
Its amazing what you can squeze into 8 lines of code. I'm supprised that its still
possible to find characters to save. But it is getting harder and harder.

If we didn't have the size limit I have some ideas that would be nice, for
example scrolling mountains in the horizon and arrows showing upcoming
curves. But these features are impossible to squeze into this one (although
I've thought that about almost all features we added since the first version )

Unless you find something I think this version is close to the final one. I don't
really have anymore good ideas of character saving or new features that
doesn't require too much code.

So here is the latest code:

1 DEFINTA-Y:V=14:S$(O1)="A18A0CA0FB07C03C01H00A80AE0AF0AFCIFFH00A80AE0AF0AF8AFCBFEAFFP00F3FF7FTFFAF0AF8AFCAFELFFE00A80AC0AE0BF0AF8AFCBFEBFFP00B01B03B07B0FB1FB3FB7FBFFB80BC0BE0BF0BF8BFCBFEBFFP00B01B03B07B0FB1FB3FB7FbFFB80BC0BE0BF0BF8BFCBFE"
2 COLOR15,5,1:X=V:S$(1)="BFFX00A01A07A0FA1FA3FB7FAFFC00A01A07A0FA3FIFFA18A30AF0BE0CC0C80J00A01A03A07B0FA1FA3FB7FBFFA0FA1FA3FA7F\FFFFCFFEDFFG00A1FA20A40A7FBCFA7FB70G00AC0A20A10AF0B98AF0B70J00A0FA10A1FA2FA1FA19K00B80A40B80L00A06A0FA09_00A03"
3 J=S-J*(J<96-S):K=J\16:FORW=0TO2:VPOKE8208+W,P(W+K):NEXT:IFTTHENRESUMENEXTELSEKEYOFF:SCREEN1,3,0:LOCATE8,1:PRINT"PLEASE WAIT!":FORI=256TO1023:VPOKE7952+I,85:O=VPEEK(I):VPOKEI,(OORO\2)\(2-(IAND4)\4):NEXT:SOUND3,V:FORW=0TO1:FORO=1TO212STEP3
4 Q=ASC(MID$(S$(W),O,1))-65:Y=VAL("&H"+MID$(S$(W),O+1,2)):N=14336:FORA=ATOA+Q:VPOKEA+N,Y:NEXT:NEXT:PUTSPRITE8+W,(80+64*W,159),V,6+W:NEXT:ONERRORGOTO3:FORR=1TO12:FORH=0TO31:VPOKE6496+H+R*32,(R<9ORH<VORH>17)*(ASC(MID$("ABCSBRCKSBJR",R))-211)
5 P(H\4)=50-15*(H\12AND1):NEXT:NEXT:FORI=ITO1168:VPOKEI-(I=1168),(8ANDI)*255\8:VPOKE8+I,(4AND7-I)*255\4:NEXT:VPOKE8192,V:TIME=0:SOUND9,V:R=N\2:FORT=7TOR:R:FORW=3TO4:PUTSPRITEW+1,(F*10+W*H,95),V,4*B+W+1:PUTSPRITE3+W,(W*H,127),V,4*F+3+W:NEXT
6 IF:T=T+S-1:PUTSPRITE1,(115-(D<34)*((24-D)*B+F*10)+(E-64)*D\225,-Y*(98+D)-31),-6*(T<R),15-D\25:OR:M=(X>72)-(X<0):SOUND0,O-S*9:S=S-(S<18ANDSTRIG(0))*2+(S>0):S=S*((X-15-E\3)\15<>0ORD<73)*(M=0):E=NAND128:F=B:B:IFC<TTHENC=V+T+TMOD99:B=CMOD3-1
7 X=X+5*(M+(U=7)-(U=3))-S*B\4:LOCATE1,1:8:N=N+9-S:TO:PUTSPRITE0,(X+80,156),1,12:SOUND1,83:SOUND8,V:D=96-(NAND127):Y=D>0:D=D*D\96:U=STICK(0):*:PRINTUSING"SPEED:###kmh    RANK:###";S*10;N\128-82:NEXT:Z$=SPACE$(V):S=15:Z=TIME\(6-PEEK(43)\128)
8 FORN=0TO244:D=88-3*N:U=Y*(N\6-V):Y=D>0:SOUND8,U:SOUND9,U:D/2:PUTSPRITE0,(116-(D<58)*((21-D*D\96)*B+F*10)+(X-36)*D\126,-Y*(98+D)-31),1,15+Y*D\24:LOCATE6,4:PRINTMID$(Z$+"Race Over   Time ="+STR$(Z/10)+"s"+Z$,NMOD42+1,S):NEXTI:NEXT:SCREENUP

manuel
msx guru
Berichten: 3188
Geplaatst: 06 April 2005, 11:07   
What about using NYYRIKKI's trick to replace basic statements with single letters? PUT SPRITE is quite a long text....
BiFi
msx guru
Berichten: 3142
Geplaatst: 06 April 2005, 11:11   
how about using the catapult type tab to let catapult/openMSX do the typing? or simply copy/paste the code in a file?

life can be so easy sometimes when you know you can do it in other ways than just typing
Arjan
msx addict
Berichten: 437
Geplaatst: 06 April 2005, 11:55   
I'm sure manuel knows that, BiFi
The purpose is to reduce code size to be able to add extra features
manuel
msx guru
Berichten: 3188
Geplaatst: 08 April 2005, 19:27   
Indeed. What do you think about it, dvik and/or NYYRIKKI?
dvik
msx master
Berichten: 1262
Geplaatst: 08 April 2005, 19:51   
In order to do that we also need to add an ONSTOPGOSUB.... to catch a break
so that we can get the regular basic syntax back. But I think that it still would
save some space and it would for sure make it look more obfuscated.

Doing the one character commands would probably increase the speed a little
bit as well since the parsing will be quicker but maybe it won't be noticable.

I guess the biggest problem is to develop using the one character commands.
A lot of work is actually to just move code arround to make the lines 239 characters
long. And since there are dependencies between different statements it will
be a bit tricky to do.
manuel
msx guru
Berichten: 3188
Geplaatst: 08 April 2005, 22:44   
dvik, tricky is where obfuscation is all about!
I'm sure you can manage it
BTW: you can also disable CTRL-STOP with one poke and let Q exit the game e.g. (and restore basic).

Also, the speed is incredibly much higher on turboR as snout already mentioned...
NYYRIKKI
msx master
Berichten: 1463
Geplaatst: 09 April 2005, 05:10   
Quote:

Indeed. What do you think about it, dvik and/or NYYRIKKI?



I think, that there are people who don't know anything about ML, but they still have good BASIC ideas to implement. Although I made the rules and even later found a way to redefine part of MSX-BASIC code, I think it is not fair to redefine whole MSX-BASIC just because it is possible. I think, that if you come up with something original it is more than welcome, but redefine of code just because it is possible just don't make sense to me... The code will be totally unreadable.

BTW poke-1103,1 will disable CTRL+STOP

 
Ga naar pagina ( Vorige pagina 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 Volgende pagina )
 







(c) 1994 - 2008 Stichting MSX Resource Center. MSX is een trademark van MSX Association.