Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 02:12 23 Nov 2024 Privacy Policy
Jump to

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: Germany
Posts: 1113
Posted: 01:17pm 20 Jul 2023
Copy link to clipboard 
Print this post

@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: Netherlands
Posts: 4221
Posted: 01:31pm 20 Jul 2023
Copy link to clipboard 
Print this post

  Mixtel90 said  Quality gaming. Kids nowadays don't know what they're missing. ;)

Remember folks, set your display to green screen or, if you are feeling really posh, amber screen!

Go get those Klingons...


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: Australia
Posts: 1611
Posted: 01:42am 21 Jul 2023
Copy link to clipboard 
Print this post

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: Netherlands
Posts: 4221
Posted: 06:19am 21 Jul 2023
Copy link to clipboard 
Print this post

  Turbo46 said  For the CMM1 MaxiTrek

Maybe it could be converted by someone?

Bill


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: Netherlands
Posts: 4221
Posted: 11:10am 21 Jul 2023
Copy link to clipboard 
Print this post

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: Germany
Posts: 1113
Posted: 11:32am 21 Jul 2023
Copy link to clipboard 
Print this post

  Volhout said  
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.

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: Germany
Posts: 1113
Posted: 08:10am 31 Jul 2023
Copy link to clipboard 
Print this post

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: Netherlands
Posts: 4221
Posted: 12:38pm 31 Jul 2023
Copy link to clipboard 
Print this post

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: Germany
Posts: 1113
Posted: 01:10pm 31 Jul 2023
Copy link to clipboard 
Print this post

  Volhout said  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

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: Germany
Posts: 1113
Posted: 03:19pm 31 Jul 2023
Copy link to clipboard 
Print this post

  Quote  when starting from scratch, we should create sound and vision in one block. since we have PLAY SOUND x,b,N (noise) we can avoid these nasty SETTICK interrupts a lot.

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: Netherlands
Posts: 4221
Posted: 09:34pm 21 Feb 2024
Copy link to clipboard 
Print this post

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: Ukraine
Posts: 198
Posted: 07:39pm 24 Feb 2024
Copy link to clipboard 
Print this post

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: Netherlands
Posts: 4221
Posted: 09:04pm 24 Feb 2024
Copy link to clipboard 
Print this post

  javavi said  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


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: Ukraine
Posts: 198
Posted: 10:32am 25 Feb 2024
Copy link to clipboard 
Print this post

  Volhout said  [
Hi Volhout,
I slightly modified the 2048 Game with a Matrix screensaver and sound...
Javavi


PicoMiteVGA__2048_Game.zip
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4221
Posted: 07:32am 26 Feb 2024
Copy link to clipboard 
Print this post

Nice !!

Volhout
PicomiteVGA PETSCII ROBOTS
 
javavi

Senior Member

Joined: 01/10/2023
Location: Ukraine
Posts: 198
Posted: 11:26am 03 Mar 2024
Copy link to clipboard 
Print this post


Game "2048" on top of the current Matrix
2048.zip
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4221
Posted: 12:47pm 03 Mar 2024
Copy link to clipboard 
Print this post

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: Germany
Posts: 1113
Posted: 01:33pm 09 Mar 2024
Copy link to clipboard 
Print this post

  Volhout said  Hi Martin,

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

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: Netherlands
Posts: 4221
Posted: 02:05pm 09 Apr 2024
Copy link to clipboard 
Print this post

ChemiChaos for PicoMiteVGA and Game*Mite

Find it Here

Volhout
PicomiteVGA PETSCII ROBOTS
 
Martin H.

Guru

Joined: 04/06/2022
Location: Germany
Posts: 1113
Posted: 10:00am 26 Apr 2024
Copy link to clipboard 
Print this post

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
© JAQ Software 2024