PicoGAME 2.0


Author Message
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9173
Posted: 10:37am 23 Sep 2024      

If it is worth doing, it is easy for the firmware to tell if a PS2 keyboard (or a USB keyboard) has initialised and this could be available via mm.info. However, the firmware can't tell if a PS2 keyboard has been subsequently removed (although that seems a fairly unlikely scenario)
Edited 2024-09-23 20:38 by matherp

Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4271
Posted: 10:40am 23 Sep 2024      

  Volhout said  
  thwill said  
The perennial 'Mite software problem.

Best wishes,

Tom


Well, it is very exciting to be part of this MMBasic development, and the ever growing set of functions and commands on the PicoMite. I love this dearly, but..

It has a drawback. I remember Peter saying PicroMite will not continue because of all the changes in the RP software stack, he can't keep up. This (to a much lesser degree) is also happening on PicoMite MMBasic. I am happy the mismatches are limitted, much is still the same. But little of the early work runs on the current MMBasic without changes.

You can hear this on the forum, where an old user manual is used, or a picomite with 5.07.04, or an old program will not work on a new 5.09 or 6.00 MMBasic.
There is not much you can do about it, but in the end you may loose leverage, and shrink the community. I think the 2350 is a nice new platform, but maybe if would be good to freeze the 2040, since it is at the edge of it's capabilities anyway. Let the 2040 be the "stable" branch, and the 2350 the "development branche".

I suggested few months ago, to freeze the 2040 at 5.09.00. But 6.0.0 is now almost par with 5.09.00, so 6.0.0 could also be a good baseline.

Harm

Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4271
Posted: 10:47am 23 Sep 2024      

@Peter,

I do not think it is a bad thing the ask the player to press a button on the controller he actually wants to use. Especially when there is a choice.
Keyboard, ot NES, or WII.

@Tom

In your source code you say there is no "key up" detect on PS2. However, there is a key specific code when a key is released when reading mm.info(ps2). Maybe that can also be used as "key up" code. That code however remains the same until a new key is pressed, so when reading it this code repeats until a new key is pressed).

Volhout
Edited 2024-09-23 20:48 by Volhout

thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4048
Posted: 10:55am 23 Sep 2024      

  Volhout said  In your source code you say there is no "key up" detect on PS2. However, there is a key specific code when a key is released when reading mm.info(ps2). Maybe that can also be used as "key up" code.


Nope, you misread my comment:

' Note that when using INKEY$ (as opposed to the CMM2 'KEYDOWN' function or
' the PicoMiteVGA 'ON PS2' command) to read the keyboard we cannot detect
' keyup events and instead automatically clear a byte after it is read.


The comment says there is no "key up" for INKEY$.

  matherp said  If it is worth doing, it is easy for the firmware to tell if a PS2 keyboard (or a USB keyboard) has initialised and this could be available via mm.info. However, the firmware can't tell if a PS2 keyboard has been subsequently removed (although that seems a fairly unlikely scenario)


I think that sounds like a good idea. Also I personally don't think you should be concerned about the behaviour if the user is doing the "Hokey Cokey" with either keyboards or controllers. If they insist on plugging/unplugging whilst a £10 computer is running then that is their malfunction not the firmware's.

Best wishes,

Tom
Edited 2024-09-23 21:06 by thwill

matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9173
Posted: 11:21am 23 Sep 2024      

Unless you can tell me different, the changes needed to a 5.07.04 program to run on 6.00.00 are minimal: not using new reserved words as variable names and a proper separation and definition of SPRITE and BLIT (which should have been done before).
There has been a necessary minor hiatus while I have brought all of the source code for all variants together.
The concept of freezing the RP2040 doesn't work. You will want bugs fixed and you will want enhancements where they make sense (e.g. reporting PS2 status as I proposed above, new math commands etc.) in which case I want a single source.
I do understand though that the diversity of versions is an issue (not least for me) but they meet different use-cases: web/none-web; usb host/usb CDC; TFT display/monitor.
FWIW I think the USB host/HDMI/PICO2 should now be the default games machine. This can use one of the cheap car monitors as per your "rig" and the assumption should be a basic USB controller would be available as an input device with 12 buttons but no analogue joysticks.
My USB host motherboard PCBs are on route from China ready for testing and Mick has designed a board that uses readily available modules to achieve the same thing. I'll include an OPTION RESET configuration for both when tested and working.



thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4048
Posted: 11:29am 23 Sep 2024      

  matherp said  ... and a proper separation and definition of SPRITE and BLIT (which should have been done before).


Are the id's for BLIT and SPRITE separate pools? ... they are on MMB4L (at least when simulating the CMM2/PicoMite) but I was looking at the CMM2 source during the weekend and thought I saw indications that they were the same pool.

  matherp said  FWIW I think the USB host/HDMI/PICO2 should now be the default games machine. This can use one of the cheap car monitors as per your "rig" and the assumption should be a basic USB controller would be available as an input device with 12 buttons but no analogue joysticks.


I agree with regards the USB host, though I'm not prepared to give up on my RP2040's yet.

Note however that there may be a wrinkle to sort out with the generic 12-button USB controllers; @Mixtel90 has one where the D-pad is not reading as button presses but instead as the left-analog stick pushed to its maximum extent. If/when I escape MMB4L I will do some testing of my own.

Best wishes,

Tom
Edited 2024-09-23 21:29 by thwill

Martin H.

Guru

Joined: 04/06/2022
Location: Germany
Posts: 1117
Posted: 11:33am 23 Sep 2024      

  matherp said  not using new reserved words as variable names and a proper separation and definition of SPRITE and BLIT (which should have been done before)

Dont blame it on us  
Blit and sprite commands were “automatically” exchanged depending on which version (VGA or not) was used.
but it is also no great effort to adapt your source texts once, similar to renaming the map array, if used.
Cheers
Martin

matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9173
Posted: 11:45am 23 Sep 2024      

  Quote  Dont blame it on us


No, it's entirely my doing but it had its origins in the limited number of command slots. The change to 16-bit command tokens gave the option to finally sort it out.

Sprites are "sprites", BLIT is a sophisticated memory copy

Martin H.

Guru

Joined: 04/06/2022
Location: Germany
Posts: 1117
Posted: 02:15pm 30 Sep 2024      

The Pico 2 runs without any problems with the VGA firmware in the board.

I still have a some PicoGAME 2.0 circuit boards here and would like to reuse them. I'm just thinking that it, with a little re-soldering , wouldn't be too much trouble to fit them as HDMI.
The SD connections GP12 and 13 would have to be moved to the (then) free connections GP20 and 21.
Audio, PS2 keyboard and game controller connections could remain as they are in the circuit diagram. The contacts from GP 12 to GP19 could then be wired to the DVI/HDMI breakout board.
Am I wrong in my thinking?

Cheers
Martin

Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6834
Posted: 02:51pm 30 Sep 2024      

That sounds like a fun project. :) I suspect it'll work, but maybe not in widescreen mode. A bit of PCB hacking adds spice to life. :)

Sasquatch

Guru

Joined: 08/05/2020
Location: United States
Posts: 362
Posted: 04:17pm 30 Sep 2024      

  Martin H. said  I still have a some PicoGAME 2.0 circuit boards here and would like to reuse them. I'm just thinking that it, with a little re-soldering , wouldn't be too much trouble to fit them as HDMI.


You may find these useful:

https://www.adafruit.com/product/5957

There is an open source version available but it uses 0402 SMD resistors.  Those are sure to add some excitement to your life!  The open source version is available on GitHub:

https://github.com/Wren6991/Pico-DVI-Sock


-
Edited 2024-10-01 02:17 by Sasquatch

Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4271
Posted: 06:54pm 30 Sep 2024      

Martin,

The PicoGame is a nice platform. The 2 DB9 connectors are a firm way to connect controllers and other circuits (I made an interface for the SSTV fitting on the DB9).

When you connect the DVI Sock, the HDMI connector is right over the SD card connector.
Not very pretty, but practical.

Volhout

Martin H.

Guru

Joined: 04/06/2022
Location: Germany
Posts: 1117
Posted: 08:01pm 30 Sep 2024      

Volhout

I plan to place the HDMI connection at the position of the VGA socket. 4 of the 8 required lines (GP16 to GP19) are already there if I use wire jumpers instead of R11 and R13. The VGA circuit will not be assembled as it is not used in this case.

I will separate the traces of GP12 and GP13 (as they are originally routed to the SD card) and route them together with the contacts of GP14 and GP15 to the DVI output using wire.Finally, GP20 and GP21 must be routed to the SD card. The rest of the board can be set up unchanged.
I have to order the transistors for the PS2 level shifters,but these are not required for the first attempts. Otherwise I should have everything I need here. Let's see how long I need this time, my eyes don't get any better with age.

Cheers
Martin

Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4271
Posted: 08:38pm 30 Sep 2024      

Mick may make this change for you if you ask him.
A set of 10x10cm pcbs is not very expensive

Volhout

Martin H.

Guru

Joined: 04/06/2022
Location: Germany
Posts: 1117
Posted: 03:29am 01 Oct 2024      

  Volhout said  Mick may make this change for you if you ask him.
A set of 10x10cm pcbs is not very expensive

Volhout
Certainly, but I think you misunderstood. I intend to do this to give the PCBs I already have a function.  

Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6834
Posted: 08:29am 01 Oct 2024      

I'm all in favour of attempting to use up existing boards. After all, they are incredibly expensive. ;)

I'm wondering...
Would anyone be interested in a combination board? One that's basically a DVI / USB system but with Port A fitted? Still in the same box if possible. It's rather like Gamma but with the I2C socket changed for Port A. I think there may be enough GPIO.

matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9173
Posted: 12:31pm 01 Oct 2024      

Mick

Thanks for the controller which I have sorted. RC3 on the main thread will have support so please check with your other device.
Should be supported on any USB variant RP2040 and RP2350
Edited 2024-10-01 22:32 by matherp

Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6834
Posted: 02:20pm 01 Oct 2024      

Excellent, thanks Peter. :)  Much appreciated.

matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9173
Posted: 02:26pm 01 Oct 2024      

PM me your address and I'll send the controller back (if it ever stops raining so I can get to the post office )

Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6834
Posted: 02:35pm 01 Oct 2024      

Just tested it. It works beautifully. :)
Thanks. :)

We had almost continuous rain yesterday. Only a few spits and spots so far today, but it doesn't look too good.