Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 07:42 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 : PicoGAME 2.0

     Page 1 of 2    
Author Message
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6768
Posted: 12:22pm 13 Jul 2022
Copy link to clipboard 
Print this post

You've all been very patient, and I've not been exactly fast in sorting out the docs. I hope this has been worth waiting for. :)

PicoGAME 20 Constructors Pack.zip

Incidentally, the USB-A socket now gets it's power from the barrel jack input only. If you want to use it to power a VGA-HDMI converter or to charge your phone then you will now need a suitable lead (unless you hack the PCB, of course).
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4221
Posted: 12:53pm 13 Jul 2022
Copy link to clipboard 
Print this post

Excellent work Mick!
PicomiteVGA PETSCII ROBOTS
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4035
Posted: 12:57pm 13 Jul 2022
Copy link to clipboard 
Print this post

  Mixtel90 said  You've all been very patient, and I've not been exactly fast in sorting out the docs. I hope this has been worth waiting for. :)


Thanks Mick,

I will order myself some as soon as you tell us what the canonical PCB colour for the PicoGAME 2.0 is going to be ?

  Mixtel90 said  Incidentally, the USB-A socket now gets it's power from the barrel jack input only.


As opposed to what ?

Best wishes,

Tom
Edited 2022-07-13 23:45 by thwill
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
pwillard
Senior Member

Joined: 07/06/2022
Location: United States
Posts: 292
Posted: 02:35pm 13 Jul 2022
Copy link to clipboard 
Print this post

On the schematic, when you refer to changing out C9 for a 100uF Capacitor when using an SD card versus a microSD socket... I assume you mean C15 and forgot that a renumbering happened since C9 is now in the Audio Filter section.
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6768
Posted: 02:35pm 13 Jul 2022
Copy link to clipboard 
Print this post

Hmmm... colour... It's completely up to you. :)  I was going to order blue again personally, but that's only because I have a blue case here. Do you fancy black? Maybe with gold copperwork instead of HASL (or whatever the name is - if they don't charge extra)? It might look kinda cool for those who don't want cases.

I've just thought - I think there are pillars in the top and bottom of those cases. You could house two "topless" boards in one case. :)

Previously it didn't matter how the 5V was derived, the USB-A was connected. Now there is the option to power the entire board from the PicoMite's USB connector. In that mode you can't (officially) use the USB-A output.
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4035
Posted: 03:57pm 13 Jul 2022
Copy link to clipboard 
Print this post

Well I've pulled the trigger on 5 in black for very little money - though not with the gold copperwork as that is a lot more expensive.

Thanks Mick,

Tom
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4035
Posted: 04:01pm 13 Jul 2022
Copy link to clipboard 
Print this post

An error in the documentation:

The BOM refers to the PCB as "PicoGAME PCB (version 1.5)"

Best wishes,

Tom
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6768
Posted: 04:16pm 13 Jul 2022
Copy link to clipboard 
Print this post

All errors and omissions will be logged in my foggy memory and hopefully get fixed in the near future. :)


Wow... an extra $17 for the gold finish. I don't think I'll bother either. :)
Edited 2022-07-14 03:28 by Mixtel90
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4035
Posted: 09:56am 14 Jul 2022
Copy link to clipboard 
Print this post

Hi Mick,

Can I upload the latest construction pack to the Wiki ?

What's the position with regards the PicoGAME Mini construction pack, you asked me to hold off on putting that on the Wiki, is that still the case ?

Best wishes,

Tom
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6768
Posted: 10:13am 14 Jul 2022
Copy link to clipboard 
Print this post

Ideally I'd like to hold off any of the PicoGAME stuff until someone has built one and found any major bugs for me. :)  Once I've had a chance to correct the silly errors there's no problem. I don't think inflicting buggy designs on the world in general is too good. That's for the commercial stuff. ;)

You could put "Coming Soon" notes on there about any new designs if you like, possibly with a brief description and maybe a link to the forum. If people want to build them then they are welcome to, but they have to understand that they may come complete with "unknown features". lol
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4035
Posted: 01:35pm 19 Apr 2024
Copy link to clipboard 
Print this post

Hi Mick,

Sorry to resurrect an old thread, but I never put together my PicoGAME 2.0 so am still using the 1.4.

IIRC the capabilities of Port B on the 1.4 are different to those on the 2.0 ... something to do with not supporting the Atari joystick ? I may have asked before, but is it possible to bodge the 1.4 board to make it compatible in this respect - save me the time and components for building up a 2.0 ?

Best wishes,

Tom
Edited 2024-04-19 23:36 by thwill
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
Turbo46

Guru

Joined: 24/12/2017
Location: Australia
Posts: 1611
Posted: 01:56am 20 Apr 2024
Copy link to clipboard 
Print this post

Port A supports the Atari joystick?

  Constructors Notes said  Two Controllers can be used, or one joystick. If a single Controller or Joystick is used it will normally be in Port A. Port B can be used for a second Controller, a Paddle/potentiometer or for simple networking.


It looks like it would be a bit messy to make port B joystick capable.

Bill

Edit: Mick is usually fast to respond. Hope you are well Mick.
Edited 2024-04-20 11:58 by Turbo46
Keep safe. Live long and prosper.
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6768
Posted: 07:47am 20 Apr 2024
Copy link to clipboard 
Print this post

Yeah, I'm fine thanks. Just got carried away with the aquarium, an electricians forum and life in general.  :)

Right, to get 2 Atari joysticks on PicoGAME 1.4...
There is no connection on pin 1 so no "up" direction, but this can be got around. Link pin 1 to pin 9. This now gives:
Up - GP28
Down - GP4
Left - GP5
Right - GP22
Fire - GP15

You will need to set LB1 LH link to UP to turn on the pullup for GP28.

The pullup on pin 3 is a bit weak. If you have problems with Left then it might be an idea to connect a 22K resistor in parallel with R21 to give around 10K pullup like the other pins. If you do that then you could link out R20. The other components around there (R18, D4 and D5) will be doing nothing and can be ignored.
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4035
Posted: 09:04am 20 Apr 2024
Copy link to clipboard 
Print this post

Thanks Mick.

  Turbo46 said  Port A supports the Atari joystick?


It's a completionist thing Bill, I want to check that my code supports both.

Best wishes,

Tom
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4221
Posted: 08:35am 23 Sep 2024
Copy link to clipboard 
Print this post

Hi Mick, Tom,

I was trying to find a way to detect whether a NES controller was actually plugged in (or not). That seems impossible.
Any idea's from your side ?.

I think you can only detect it by pressing a button. As long as no button is pressed, there is no way to see that it is there.
Maybe we should have the data line without pullup. Then we could use the RP2040 internal pullup/pulldown to detect that the data line is low impedance, thus there is a chip connected. Or avoid all pullups (won't work with RP2350 since the pulldown bug).

Or do you have any idea.

FYI, I am trying to do a revision of petscii robots with autodetect of controller, and integrating the MM.INFO(PS2) for keyboard control (faster response that INKEY$).
So I am looking in detecting the NES controller automatic.

Volhout
Edited 2024-09-23 18:37 by Volhout
PicomiteVGA PETSCII ROBOTS
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6768
Posted: 09:28am 23 Sep 2024
Copy link to clipboard 
Print this post

I'm not too happy about using the internal pullups when the cable is of any length. Too much opportunity for noise pickup, especially with the unscreened lead and dodgy contacts of an Atari joystick. You could try disconnecting one end of R25 and/or R19 to try it.

As all inputs are active low I can't see any way to differentiate between NES/SNES and Atari. As you say, a low impedance on the Data line might do it, but you really need to use another pin to switch the pullup resistor onto it if it's not a NES/SNES.




(I really should have insisted on I2C only. You could have just asked it then. ;) )
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4035
Posted: 09:31am 23 Sep 2024
Copy link to clipboard 
Print this post

Hi @Volhout,

I never found a way to do this.

The games that I have written (or added controller support to) all initially prompt the user to "Press Fire, Start or Space" and poll multiple controller options. This works, but it's pretty "hairy" as you are opening an closing controllers that might not be there and in the case of the NES controllers sending signals to hardware that may or may not be NES controllers.

You are welcome to look at my (over engineered) code, see:

' Iterates through array of controller drivers$(), opening, polling and closing
' each in turn waiting for the user to provide an input that matches a mask%.
'
' @param[in]      drivers$()  controller drivers to poll.
' @param[in]      mask%       bit mask to match against.
' @param[in,out]  duration%   on entry the maximum duration to poll,
'                             or 0 to poll indefinitely.
'                             on exit the remaining duration,
'                             which will be 0 if it was 0 on entry.
' @param[out]     key%        matching bits, otherwise 0.
' @return                     entry from drivers$() or empty string if no match.
Function ctrl.poll_multiple$(drivers$(), mask%, duration%, key%)


in https://github.com/thwill1000/mmbasic-sptools/blob/master/src/splib/ctrl.inc

We have also talked in the past about standardising on a file (e.g. A:/.config) in INI file format in which the user could specify a default controller, but nobody seemed to be inclined to agree on anything I proposed. You could also use MM.INFO$(PLATFORM) to determine whether you were running on a PicoGAME 2 ... assuming the user has set OPTION PLATFORM, and assuming you consider that to be "good enough" indication that an NES controller is attached.

As you've indicated on a different thread if (and that's a big IF) we are ever going to build a larger community around retro-games in MMBasic we are going to have to try and standardise, and that isn't going to be on the PicoGAME and NES controllers . You could argue we should be standardising on the CMM2 rather than having this fundamental "schism" in the hardware ... though personally I find the limitations of the PicoMite more interesting.

BTW have you seen the latest Commander x16 video, we've got better hardware, but they have a better (retro) software community , not to mention all of the 8-bit Guy's social media presence pushing it.

Best wishes,

Tom
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4221
Posted: 09:59am 23 Sep 2024
Copy link to clipboard 
Print this post

Hi Tom,

Platform may not be filled with relevant data.
But on mm.info(device) you can see it is VGA, and if it should be controlled by PS2 or USB.

You cannot detect a attached PS2 keyboard by mm.info(ps2) unless a key was pressed previously. No keyboard responds 0, and keyboard,attached, but no key pressed also responds 0.

I have no USB keyboard setup yet, so that one stays in the dark for now.

WII (usb) controllers rely on SYSTEM I2C, and that one can be found in mm.info(system I2C). Then it is a matter of checking the I2C address is present, then checking the device ID (nunchuck or classic).

So for both PS2 as well as NES a key must be pressed.

That is how far I am. I will look at your "over engineered" code, and maybe it can be used as is. Although I know petscii robots is very much at the edge of ram. I already had to reduce some features to make it run.

I have seen the demo on the X16. CMM2 can do that in basic (altough I am not the one to code it), but it is very much in line with the demo code that was released when the CMM2 came out, and that has been shown by the 8 bit guy also.

Maybe this is also possible with the RP2350. If you look at the pictures MartinH showed, using the BMP palette, a lot could be done with 16 colors in 640x480.
But I am at the moment focussing on making most of the games run on the new 6.0.0 mmbasic. Changes are not very hard, but hard is to find out (from all these threads (especially mine can be very confusing) what the actual game is. Most of the threads show evolution of the games, but the last entry is not always the one that runs best. And even I can't remember anymore. Maybe I could add a list of "ZIP's" to FruitOf TheShed, to archive the versions that actually run fine (after some mods). Just to help others, that will get lost in the long long long threads on TheBackShed.

Volhout

P.S. I like the fact that ZMIM could run on pico. I still want to find time to play a text adventure.
Edited 2024-09-23 20:05 by Volhout
PicomiteVGA PETSCII ROBOTS
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4035
Posted: 10:23am 23 Sep 2024
Copy link to clipboard 
Print this post

  Volhout said  Platform may not be filled with relevant data.


True, but you could argue that if it hasn't been set then you fallback on INKEY$ and no controllers. Note that I always try to provide an INKEY$ method that will work even if support for MM.INFO(PS2) or KEYDOWN() are also provided.

  Volhout said  Changes are not very hard, but hard is to find out (from all these threads (especially mine can be very confusing) what the actual game is. Most of the threads show evolution of the games, but the last entry is not always the one that runs best. And even I can't remember anymore. Maybe I could add a list of "ZIP's" to FruitOf TheShed, to archive the versions that actually run fine (after some mods). Just to help others, that will get lost in the long long long threads on TheBackShed.


The perennial 'Mite software problem.

I have private git repositories containing many of these games, but not necessarily the latest versions and I don't have time to maintain this archive properly even if I sought permission to publish. It looks like https://cmm2.fun is still taking submissions even though @jirsoft no longer seems to be active here.

  Volhout said  P.S. I like the fact that ZMIM could run on pico. I still want to find time to play a text adventure.


Thanks, it still needs work, I would dearly love to find the time to implement z4 + z5 story support.

And before you ask (again ) I can't support the Spellcasting X01 series of games. I now know more about the games published by Legend Entertainment and they were all written for MS-DOS in native C so unless you have access to the source-code your only option would be to create a full 32-bit MS-DOS emulator ... not happening on the Pico.

Best wishes,

Tom
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4221
Posted: 10:37am 23 Sep 2024
Copy link to clipboard 
Print this post

  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.

Harm
Edited 2024-09-23 20:38 by Volhout
PicomiteVGA PETSCII ROBOTS
 
     Page 1 of 2    
Print this page
© JAQ Software 2024