Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.
|
Forum Index : Microcontroller and PC projects : Picomite VGA games
Page 2 of 4 | |||||
Author | Message | ||||
Martin H. Guru Joined: 04/06/2022 Location: GermanyPosts: 1113 |
@Volhout If you Like this, than should it be easys to convert BASICCODE2 Programms to the Pico. There are hunderts of programs available. (BASICODE was a computer project intended to create a unified standard for the BASIC programming language. BASIC was available on many popular home computers, but there were countless variants that were mostly incompatible with each other. The project was initiated in 1980 by Hobbyscoop, a radio program of the Dutch broadcasting organisation Nederlandse Omroep Stichting (NOS).) To achieve this, all program lines below 1000 were reserved for the Bascoder, and BASICODE programs could only start at line number 1000. The subroutines of the Bascoder in the lines below 1000 were called with a GOSUB command. Necessary arguments were passed to the Bascoder by using special predefined variables that were reserved for use by the Bascoder. GOSUB 100 Clear Screen GOSUB 110 Set Cursorposition to Variablen HO and VE GOSUB 120 Read Cursorposition to Variablen HO and VE GOSUB 200 Get keypress and return it in Variable IN$ if N$ is empty no Key was pressed GOSUB 210 Wait for keypress and return it in Variable IN$ GOSUB 250 "Beep" GOSUB 260 Returns a Random Number between 0 and 1 in Variable RV GOSUB 270 Get free memory and return it in FR GOSUB 300 Change a number to a String Variablen SR ->SR$ (does not work on Pico) GOSUB 310 Analog to GOSUB 300, Additional: Passing a fixed string length in the CT variable Passing the position of the decimal point in the variable CN GOSUB 350 Print the Strings in Variable SR$ on the Printer GOSUB 360 Send CR/LF on Printer Edited 2023-07-20 23:26 by Martin H. 'no comment |
||||
Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 4222 |
To kill klingons: - CAPS LOCK ON - DISPLAY 38,80 (when using terminal). Go for it... PicomiteVGA PETSCII ROBOTS |
||||
Turbo46 Guru Joined: 24/12/2017 Location: AustraliaPosts: 1611 |
For the CMM1 MaxiTrek Maybe it could be converted by someone? Bill Keep safe. Live long and prosper. |
||||
Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 4222 |
Doesn't look to hard. Quit a lot of comonality between CMM1 and pico. Only the pico does not play MOD files.... Have to converto to WAV. Volhout EDIT: WAUW, the 88kbyte MOD file unpacks to a 51 Mbyte (yes..mega byte) WAV file... But the sound is great . This is a marvelous game sound... A game worth porting to picomite.... I tried convert it to FLAC, but that is also 47Mbyte.... To bad the pico does not play MOD. Edited 2023-07-21 19:59 by Volhout PicomiteVGA PETSCII ROBOTS |
||||
Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 4222 |
MaxiTrek quick update: The differences between CMM1 and pico are huge. I was far to optimistic. - sprite commands - the use of PWM and TONE and PLAY MOD on the audio - missing CLR$() - screen resolution CMM1 MODE 4 is not pico MODE 2 almost every line needs adaptations this will take considerable time... Volhout EDIT: especially the CLR$() where you embed the color into the text string is a nice function. a$=CLR$(2,1)"Hello"CLR$(3,1)" Boys" The color is embedded into the string itself... Edited 2023-07-21 21:21 by Volhout PicomiteVGA PETSCII ROBOTS |
||||
Martin H. Guru Joined: 04/06/2022 Location: GermanyPosts: 1113 |
MOD Files are more like Midi File + used 8 BIT Samples than WAV Format. Protracker 1.1B Song/Module Format So it is no suprise, as the WAV File uses ~10MB per Minute. Edited 2023-07-21 21:33 by Martin H. 'no comment |
||||
Martin H. Guru Joined: 04/06/2022 Location: GermanyPosts: 1113 |
As a first step, i converted Juris Starfield demo from the same Link to Pico 'Starfield by Juri Fossaroli 'PicomiteVGA version Martin Herhaus Dim integer starx(50),stary(50),ox(50),oy(50) Dim starz(50) maxstar=30 MODE 2 Do Inc star,-1:If star<1 Then star=maxstar If starx(star)=0 Or stary(star)=0 Then starx(star)=Int(Rnd(1)*40)-20:stary(star)=Int(Rnd(1)*40)-20 starz(star)=(Int(Rnd(1)*50)/100)+0.50 EndIf Pixel ox(star),oy(star),0:Pixel 160,120,0 x=(starx(star)/starz(star))+160 y=(stary(star)/starz(star))+120 If starz(star)>.3 Then cl=RGB(Cyan) Else cl=RGB(White) If starz(star)>.6 Then cl=RGB(BLUE) Inc starz(star),-0.02 If x>5 And x<320 And y>5 And y<240 Then Pixel x,y,cl:ox(star)=x:oy(star)=y If x<=5 Or x>=320 Or y<=5 Or y>=240 Then starx(star)=0:stary(star)=0 Loop Edited 2023-07-31 18:11 by Martin H. 'no comment |
||||
Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 4222 |
Hi Martin, You made the changes to the PIXEL command (replacing the "=" with a ",") and adapting the color numbers to RGB()'s. As long as you use OPTION LEGACY ON that throws you an error. When you do not use OPTION LEGACY ON, your code is fine, but you need to re-write the rest of the game also. It is full of LINE,,,,bf commands that need replacing with BOX. And you need to break up lines that have the CLR$(x) into several lines, each with a separate COLOR RGB(...):PRINT "..."; The later you have to do anyway. Aaaaahhhh, you also changed the video resolution. You are planning to go all the way. Allow me to send you the code as far as I am. It is partly playable. (start picotrek.bas). Picotrek.bas runs, I am working still on Picogame.bas. You need VGA version 50708b9 (MOD playback) to run it. maxitrek_pico_WIP.zip Volhout Edited 2023-07-31 22:46 by Volhout PicomiteVGA PETSCII ROBOTS |
||||
Martin H. Guru Joined: 04/06/2022 Location: GermanyPosts: 1113 |
would be better to rewrite those parts, so that you dont need to switch to legacy mode here are the Sprites in Pico friendly Format and the BMPs in 320x240 GFX.ZIP Use a Text editor. create an CL% Array for Pico Colors (as usual) .. Then replace the "Print" statements with a "WRT" if there is a PRINT @(x,y) use it, but just for the cursor position. Append those to your source SUB WRT TX$ for n=1 to len (TX$) if mid$(TX$,N,1)="~" then FC=VAL mid$(TX$,N+2,1):BC=VAL mid$(TX$,N+2,1) COLOR (CL%(FC),CL%(BC)):n=n+3 ELSE PRINT mid$(TX$,N,1); end if NEXT end sub Function CLR$ (F,B) CLR$="~"+str$(F)+str$(B) end function that way you can also create a "BF" Sub to handle the "Line x1,y1-x2,y2,BF" routines etc. Edited 2023-07-31 23:47 by Martin H. 'no comment |
||||
Martin H. Guru Joined: 04/06/2022 Location: GermanyPosts: 1113 |
I don't even want to start from scratch, the program is good on the Maximite, but then you should translate it so that it uses the functions of the Pico correctly. Maybe use the Layer just for the Crosshair and shots, so it doesn't come into conflict with other sprites (If there is enough memory available). dock.zip Edited 2023-08-01 01:22 by Martin H. 'no comment |
||||
Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 4222 |
PICOMAN Thanks to Javavi, This is PicoMan (pacman alike), written by Geoff Graham, adapted for NES controller by Javavi. This version plays on PORT A of the PicoGameVGA platform by Mixtel90 and thwill. Runs on V50800 and V50900beta PicoMan_NES_PicoGameVGA.zip PETSCII ROBOTS This is the version released at Christmas 2023, designed for PicoMiteVGA, but runs also on Game*Mite and PicoGameVGA(NES controller). Requires V5.08.00. Not tested on V5.09.00beta's PETSCII ROBOTS Flappy Bird There are 2 versions, one for PicoMiteVGA 5.08.00, and one for PicoMite 5.08.00 with LCD. Flappy Bird VGA Flappy Bird LCD Happy Gaming Volhout Edited 2024-02-22 18:59 by Volhout PicomiteVGA PETSCII ROBOTS |
||||
javavi Senior Member Joined: 01/10/2023 Location: UkrainePosts: 206 |
Here I slightly adapted the "2048 game CMM2” for PicoMiteVGA. It would be nice to improve it with sounds and animation of moving cells. PicoMiteVGA__2048_Game.zip |
||||
Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 4222 |
Hi Javavi, You just beat me to it with 3 hours.... All compliments to William Leue for the CMM2 version. The game is played with keyboard. 2048 for PicoMiteVGA port by Volhout A similar adaptation for the "flow" game by William Leue. The game is played with keyboard. Flow for PicoMiteVGA port by Volhout Happy Gaming, Volhout Edited 2024-02-25 07:20 by Volhout PicomiteVGA PETSCII ROBOTS |
||||
javavi Senior Member Joined: 01/10/2023 Location: UkrainePosts: 206 |
PicoMiteVGA__2048_Game.zip |
||||
Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 4222 |
Nice !! Volhout PicomiteVGA PETSCII ROBOTS |
||||
javavi Senior Member Joined: 01/10/2023 Location: UkrainePosts: 206 |
Game "2048" on top of the current Matrix 2048.zip |
||||
Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 4222 |
Very nice, Looks extremely polished. And works good. Had a few rounds of 256 and one of 512. Enjoyable to play. Only one (minor) remark. The readability of the messages at end of game is not very good (orange color text on the green "matrix" background). Maybe some color changes or a frame around text could help. Volhout Edited 2024-03-04 17:46 by Volhout PicomiteVGA PETSCII ROBOTS |
||||
Martin H. Guru Joined: 04/06/2022 Location: GermanyPosts: 1113 |
took a look and found that it would be the best, to keep the game in its 240x216 resolution. To keep it, all screen coordinates has an offset to be added (40 for x and 12 for y values) to keep it in center. Screen than could look like this: every BOXES and LINES the Line x1,y1,x2,2,col,b or bf commands have to be changet to Box commands, (x2 and y2 are also coordinates, so they have to be recalculated to W and H) or let a sub do this Sub bxf(x1,y1,x2,y2,co) Local integer ox=40,oy=12,w=x2-x1,h=y2-y1 Box ox+x1,oy+y1,w,h,,co,co End Sub Sub bx(x1,y1,x2,y2,co) Local integer ox=40,oy=12,w=x2-x1,h=y2-y1 Box ox+x1,oy+y1,w,h,,co End Sub ' Sub starfield Inc star,-1:If star<1 Then star=maxstar If starx(star)=0 Or stary(star)=0 Then starx(star)=Int(Rnd(1)*40)-20 stary(star)=Int(Rnd(1)*40)-20 starz(star)=(Int(Rnd(1)*50)/100)+0.50 EndIf Pixel ox(star),oy(star),RGB(Black) Pixel 160,120,RGB(Black) x=(starx(star)/starz(star))+160 y=(stary(star)/starz(star))+88 If starz(star)>.3 Then cl=RGB(Cyan) Else cl=RGB(White) If starz(star)>.6 Then cl=RGB(BLUE) Inc starz(star),-0.02 If x>37 And x<270 And y>52 And y<156 Then Pixel x,y,cl:ox(star)=x:oy(star)=y If x<=37 Or x>=270 Or y<=52 Or y>=156 Then starx(star)=0:stary(star)=0 End Sub so replace every Line (x1,y1)-(x2,y2),col,bf with bxf x1,y1,x2,y2,col and every Line (x1,y1)-(x2,y2),col,b with bx x1,y1,x2,y2,col Syntax of Lines has to be cahnged from Line (x1,y1)-(x2,y2)[,col] to Line x1,y1,x2,y2[,col] Starfield set the integer var "maxstar=10" at start of the Program Colornubers of the Maximite has to be be translatet to the first 8 Colors of Picomite colors: '--Colorscheme accordung to Spritecolors Data RGB(BLUE),RGB(GREEN),RGB(CYAN),RGB(RED) Data RGB(MAGENTA),RGB(YELLOW),RGB(WHITE),RGB(MYRTLE) Data RGB(COBALT) ,RGB(MIDGREEN),RGB(CERULEAN),RGB(RUST) Data RGB(FUCHSIA),RGB(BROWN),RGB(LILAC) more to come (if you still want to port the Game to PicoMiteVGA) sprites are cutted to PicoFriendly Sprite format PICOTREK-resources.zip Edited 2024-03-11 17:50 by Martin H. 'no comment |
||||
Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 4222 |
ChemiChaos for PicoMiteVGA and Game*Mite Find it Here Volhout PicomiteVGA PETSCII ROBOTS |
||||
Martin H. Guru Joined: 04/06/2022 Location: GermanyPosts: 1113 |
One of the first games I bought for my ZX81 back then. Who would have thought that I would be reprogramming it almost 43 years later 3D Monster Maze PicoMite VGA and others Edited 2024-04-28 12:00 by Martin H. 'no comment |
||||
Page 2 of 4 |
Print this page |