Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 03:21 27 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 : PETSCII ROBOTSfor PICOMITE beta

     Page 1 of 4    
Author Message
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4238
Posted: 08:50am 30 Nov 2023
Copy link to clipboard 
Print this post

All,

The development of the PETSCII ROBOTS game (original designer David Murray aka The 8-bit guy) for MMBasic for the PicoMite is in beta phase.

The game should have all game elements implemented. In this phase we are looking for testers. People who want to play the game, and report problems with functionality of compatibility.





Attached in this post are
- the original game manual
- the game itself
- picomite firmware versions for picomite and picomiteVGA (V050708RC21)

The game will run on:
- Picomite VGA platforms, using keyboard control
- Game*Mite platform (LCD), using the 8 buttons for playing. You must start the game using the keyboard though, since it is not autorun becuase you replaced the GameMite firmware.
- PicoGameVGA platform, using either keyboard or NES controller.

Install
- install the required firmware (.uf2 file) on the picomite (unzip the ZIP first)
- Unzip the game "petrobot25d" to an SD card

Setup
You need to enable the MOD buffer, and run the pico at 252MHz.
The game must be run from an SD card


OPTION SDCARD your_specific_GPIO_pins
OPTION MODBUFF ENABLE
OPTION CPUSPEED 252000
B:
CHDIR "petrobot25d"
RUN "pet25d.bas"


You can use the attached user manual to get fammiliar with the game mechanics.
This game is partly a shooter, and partly a puzzle game (you can never win if you just shoot every robot you encounter).
Read the manual before playing the game, it enlightens, and explains the keyboard controls.

Happy gaming, and let's hear your comments....

Martin_H
Volhout


PicoMiteVGAV5.07.08RC21.uf2.zip

PicoMiteV5.07.08RC21.uf2.zip

petrobot25d.zip

manual

P.S. cheat keys are disabled....
Edited 2023-11-30 19:08 by Volhout
PicomiteVGA PETSCII ROBOTS
 
Martin H.

Guru

Joined: 04/06/2022
Location: Germany
Posts: 1113
Posted: 09:11am 30 Nov 2023
Copy link to clipboard 
Print this post

Additional ..
Due to the too few keys, on NES Controllers and Game Mite some have a double assignment
The Controlls on the Game*Mite (and NES Controllers)are:



use Select Key to Pause and/or Exit
Edited 2023-11-30 19:16 by Martin H.
'no comment
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4238
Posted: 10:30am 30 Nov 2023
Copy link to clipboard 
Print this post

To enable the NES controller for PicoGameVGA boards, change the option in line 7 of the program from "0" to "1".


PicomiteVGA PETSCII ROBOTS
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9119
Posted: 01:37pm 30 Nov 2023
Copy link to clipboard 
Print this post

There is a bug in the code

  Quote    Option default integer
 Const Game_Mite=1-(MM.Device$="PicoMiteVGA")
 Const nesPG1=0 'NES controller connected to PicoGameVGA ?

 If Game_Mite Then
   nesPG1=0:sc$="f":init_game_ctrl ' Init Controller on Game*Mite '************
 Else
   sc$="n":MODE 2
 EndIf
 If nesPG1 Then config_nes


Starred line fails as cannot change a constant
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4238
Posted: 02:05pm 30 Nov 2023
Copy link to clipboard 
Print this post

Thanks Peter,

We hate these last minute changes. The change was not tested on a Game*Mite. Good thing you did.

pet25e.zip

bugs fixed:
- Peters find: nesPG1 constant definition fault
- when moving a closed box with hidden item, the item moves with it
- when inspecting a closed box, remove the lid, also when it contains no hidden item
- show loading popup

place this in the folder where pet25d.bas resides, and run it with
RUN "pet25e.bas"

Regards,

Martin_H & Volhout
Edited 2023-12-01 04:45 by Volhout
PicomiteVGA PETSCII ROBOTS
 
Martin H.

Guru

Joined: 04/06/2022
Location: Germany
Posts: 1113
Posted: 07:31am 01 Dec 2023
Copy link to clipboard 
Print this post

  Quote   when moving a closed box with hidden item, the item moves with it

Yes, tried, works.
In the video I had the problem to have moved away the box and the item was no longer in it.
  Quote  show loading popup

Nice Loading Message ..
If I may make a wish, I would like to have a fade_in from the loading message into the game like here:
'game play variables
 spn=0                   'sprite number
 em_on=0                 '1=is emp active
 mg_on=0                 '1=magent in use
 FRAMEBUFFER write l:fade_in:FRAMEBUFFER write sc$
 Timer =0:playtime=0      'time played in ms

(untested on Game*Mite)

I thought I had found another bug.
You can block your own path by placing boxes in external doors but the same thing happens in the Dos version.




so its not a bug
but There's a slight difference:
In the Dos version, objects in the direct area of the bomb can be destroyed. and you can move on


on Pico they just open and you are stuck .. esc to end the Game

Edited 2023-12-01 19:14 by Martin H.
'no comment
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4238
Posted: 09:16am 01 Dec 2023
Copy link to clipboard 
Print this post

Fade in works

Volhout
PicomiteVGA PETSCII ROBOTS
 
Martin H.

Guru

Joined: 04/06/2022
Location: Germany
Posts: 1113
Posted: 08:01am 02 Dec 2023
Copy link to clipboard 
Print this post

  Volhout said  Fade in works

Volhout

Also on Game*Mite
another special feature in the gameplay...



somehow you can have a negative number of Timebombs (and use them)..
Edited 2023-12-02 18:51 by Martin H.
'no comment
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4238
Posted: 09:56am 02 Dec 2023
Copy link to clipboard 
Print this post

Thans Martin,

I will look at these. Both should be easy to fix. I assume the plasma gun would also destroy boxes.

Volhout
PicomiteVGA PETSCII ROBOTS
 
Martin H.

Guru

Joined: 04/06/2022
Location: Germany
Posts: 1113
Posted: 10:23am 02 Dec 2023
Copy link to clipboard 
Print this post

  Volhout said   I assume the plasma gun would also destroy boxes.

I checked it in the DOS Version.
Looks like Plasma gun does not, unless a Canister is near the Box which explosion also  destroys the box.
another little different, in DOS Version you can not place a bomb direct on top of the Bot, in the Pico Version you can. (I don't know if that makes a huge difference in gameplay).
My  strategy is to walk towards the hoverbot until it's sandwiched between me and the wall(or other turning point), then drop a bomb on it and move 3 steps away from him in the direction he is walking.The Bomb would kill the Hoverbot but dont hurt you
This works also in Dos version, but there you have to leave a space between you and the Bot and place the Bomb there.

Edited 2023-12-02 23:00 by Martin H.
'no comment
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4238
Posted: 09:39pm 02 Dec 2023
Copy link to clipboard 
Print this post

All,

I have taken Tom's version, and fixed the bugs that Martin mentioned.
The Timebomb now can destroy virtually all objects, where as the plasma gun can not.
You cannot use more bombs and magnets than you have.
I left the option open to put a bomb on top of a bot. I like it...

pet25g.zip

Unzip, Place this file in the same folder where "pet25d.bas" resides, and RUN "pet25g.bas"

@Tom,

In the intro page you created a rolling banner string that is longer than 255 characters.
See what happens at the roll-over. You get a mid$() index larger than 255, and mid$() errors.

Please see if you can fix it.

Your changes where quite intrusive, but they generally work, so I left them in.
I just tested VGA without any hidden file on A, which is what David Murray will get.

Volhout
Edited 2023-12-03 07:42 by Volhout
PicomiteVGA PETSCII ROBOTS
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4040
Posted: 10:17pm 02 Dec 2023
Copy link to clipboard 
Print this post

  Volhout said  In the intro page you created a rolling banner string that is longer than 255 characters.
See what happens at the roll-over. You get a mid$() index larger than 255, and mid$() errors.

Please see if you can fix it.


It depends on the device, one fix is to tidy up the text thus:

 Local msg$ = String$(36,32)
 Cat msg$, "Original game by David Murray - "
 Cat msg$, "Port to MMBasic by Volhout, Martin H & friends - "
 Cat msg$, "Graphics by Piotr Radecki - "
 Cat msg$, "Music by Noelle Aman - "
 Cat msg$, "MMBasic by Geoff Graham & Peter Mather - "
 Cat msg$, sys.get_config$("device", "Generic " + Mm.Device$) + " "


And/or put the device name somewhere else on the splash-screen, I think it useful to have, YMMV.

  Volhout said  Your changes where quite intrusive, but they generally work, so I left them in.


Thanks . I think they make it clearer and also means that the keys can be redefined and the controls otherwise messed with without too much further intrusion in the game logic.

  Volhout said  I just tested VGA without any hidden file on A, which is what David Murray will get.


Note that file isn't "hidden" on the 'mite, the dot prefix only hides on Linux IIRC.

Best wishes,

Tom
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
Martin H.

Guru

Joined: 04/06/2022
Location: Germany
Posts: 1113
Posted: 04:22am 03 Dec 2023
Copy link to clipboard 
Print this post

  Volhout said  

Unzip, Place this file in the same folder where "pet25d.bas" resides, and RUN "pet25g.bas"

stupid question: what do I have to do to be able to use the buttons on the gamemite?
'no comment
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4040
Posted: 07:01am 03 Dec 2023
Copy link to clipboard 
Print this post

  Martin H. said  stupid question: what do I have to do to be able to use the buttons on the gamemite?


Create file "A:/.spconfig" (or "A:/.config") with contents:

device = "Game*Mite"


Best wishes,

Tom
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
Martin H.

Guru

Joined: 04/06/2022
Location: Germany
Posts: 1113
Posted: 07:33am 03 Dec 2023
Copy link to clipboard 
Print this post


>open "A:/spconfig" for output as #1
>?#1 ,"device = ";chr$(34);"Game*Mite";CHR$(34)
>close #1

does not work
not spconfig nor config
and why not using the data folder? Then we would have it all in one package
Please don't complicate things unnecessarily
Edited 2023-12-03 17:39 by Martin H.
'no comment
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4040
Posted: 07:57am 03 Dec 2023
Copy link to clipboard 
Print this post

Hi Martin,

.spconfig or .config, note the leading dot "."

  Martin H. said  and why not using the data folder? Then we would have it all in one package. Please don't complicate things unnecessarily


Because it is not PETSCII specific. We need a general mechanism to distinguish between different hardware configurations which can't be determined by the firmware, i.e. Game*Mite vs. PicoMite and PicoGAME VGA vs. PicoMiteVGA.

Best wishes,

Tom
Edited 2023-12-03 18:19 by thwill
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
Martin H.

Guru

Joined: 04/06/2022
Location: Germany
Posts: 1113
Posted: 09:22am 03 Dec 2023
Copy link to clipboard 
Print this post

  thwill said  Hi Martin,

.spconfig or .config, note the leading dot "."


Tom

'no comment
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9119
Posted: 11:43am 03 Dec 2023
Copy link to clipboard 
Print this post

Slightly off topic - with apologies

Martin, Harm and Tom: between you, and with a little firmware support from me, you have pushed the boundaries on how to implement games on the PicoMite family. Obviously, I have included all the new commands created to support this in the manual but there is nothing there that explains how to put these together to create complex graphics. I think it would be great to try and capture your knowledge and experience in some sort of document that could be included in the manual or as a stand-alone explaining the various techniques for achieving the sort of results in Petscii and some of the other games - any volunteers to coordinate?
Edited 2023-12-03 22:39 by matherp
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4238
Posted: 01:47pm 03 Dec 2023
Copy link to clipboard 
Print this post

I have on my todo list a piece of text how it all works.
Need Martins support fot the mod files and samples.

Volhout
PicomiteVGA PETSCII ROBOTS
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4040
Posted: 05:00pm 03 Dec 2023
Copy link to clipboard 
Print this post

Well I've just played the first level intensively for the last two hours on my Game*Mite (I'm not very good, or it is really rather hard) and these are my observations (ignoring issues with my new control scheme that need ironing out ... including it crashing when you win):

1. When the game starts proper I think it should display something like the following messages:

   "Welcome to <level name>" or "Welcome to PETSCII Robots"
   "Find and kill all X robots"

2. When you destroy a robot it should display something like:

   "Target destroyed, Y robots remain"

3. Unless it was the final robot of the level in which case:

   "All robots destroyed"
   "Proceed to teleporter"

4. Sometimes when you move an object you automatically follow-up by moving yourself and sometimes you don't. I assume that the latter is correct and it is a controller timing issue. If someone can confirm the correct behaviour I don't mind taking a look.

5. In David's YouTube tutorial the message "You're terminated" is displayed when the EvilBot (any bot?) is destroyed by the trash compactor, I didn't see that ?

6. I would consider replacing CONTROLS on the intro menu with QUIT or EXIT. IMO it's not worth the effort to configure the controls within the game, that's better done externally with a little utility and a file to store them in.

Good work guys,

Tom
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
     Page 1 of 4    
Print this page
© JAQ Software 2024