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 KingdomPosts: 6846 |
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: NetherlandsPosts: 4280 |
Excellent work Mick! PicomiteVGA PETSCII ROBOTS |
||||
thwill Guru Joined: 16/09/2019 Location: United KingdomPosts: 4049 |
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 ? 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 StatesPosts: 292 |
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 KingdomPosts: 6846 |
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 KingdomPosts: 4049 |
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 KingdomPosts: 4049 |
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 KingdomPosts: 6846 |
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 KingdomPosts: 4049 |
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 KingdomPosts: 6846 |
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 KingdomPosts: 4049 |
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: AustraliaPosts: 1619 |
Port A supports the Atari joystick? 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 KingdomPosts: 6846 |
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 KingdomPosts: 4049 |
Thanks Mick. 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: NetherlandsPosts: 4280 |
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 KingdomPosts: 6846 |
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 KingdomPosts: 4049 |
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: NetherlandsPosts: 4280 |
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 KingdomPosts: 4049 |
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. 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. 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: NetherlandsPosts: 4280 |
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 |