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 : PICO PETSCII
Page 16 of 38 | |||||
Author | Message | ||||
Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 4247 |
Thanks to Martins hard work, here is the latest version for the VGA version. It uses magenta as transparent color in the L-layer, allowing use to use black as a solid color for the sprites. It also contains the improved game sound file. Robots are alternating sprites, but that actually does not bring much. I may remove it in newer versions. petrobot.zip Go as follows: 1/ Install: PicoMiteVGA V5.07.08RC10 (this version is also compatible with the RC4 for the earlier release pet18.zip. But you need RC10 to run this version). 2/ UNZIP the pet19.zip to a folder. 3/ In this folder LIBRARY DELETE LIBRARY DISK LOAD "lib/pet_lib.bin" RUN "pet19.bas" Enjoy.... Volhout Edited 2023-10-19 05:58 by Volhout PicomiteVGA PETSCII ROBOTS |
||||
Bleep Guru Joined: 09/01/2022 Location: United KingdomPosts: 512 |
And here is the same bas file, but for a LCD display. :-) Not yet at full speed as the background merge is currently commented out. lcdpet.bas.zip |
||||
lizby Guru Joined: 17/05/2016 Location: United StatesPosts: 3150 |
With the latest, I got the same endless loop as Martin, and had to clear flash to be able to reload the latest firmware. PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed |
||||
Martin H. Guru Joined: 04/06/2022 Location: GermanyPosts: 1114 |
That's interesting, with Bleep the LCD version works, with Lizby and me loading the library leads to a total crash. To narrow this down, OPTION SYSTEM SPI GP6,GP3,GP4 º OPTION AUTORUN 1 º OPTION CPUSPEED (KHz) 252000 º OPTION DISPLAY 28, 80d SELECT º OPTION LCDPANEL ILI9341, RLANDSCAPE,GP2,GP1,GP0 OPTION TOUCH GP5,GP7 GUI CALIBRATE 0, 368, 294, 882, 666 OPTION SDCARD GP22 OPTION AUDIO GP20,GP21, ON PWM CHANNEL 2 OPTION MODBUFF 128 I use an original Pico, not a clone with more memory. Since this is soldered in for reasons of space, in the Game*Mite I can't even change it quickly to test it with a Pico clone with more memory. However, a test with a new bare clone showed the same result (endless boot), .. At the moment I have no idea what the difference is, but I have to go to work now, so I can't look at it again until later. @ Volhout This only affects the Picomite version. the PicomiteVGA version runs smoothly. I'm going to test your new version this evening . Have a nice one Mart!n Edited 2023-10-19 15:17 by Martin H. 'no comment |
||||
Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 4247 |
The Game*Mite shares SPI between LCD and SD-card and Touch. Peter says that is not compatible anymore with this fast update. Het drives the LCD SPI bus with maximum speed. I hope there is some OPTION setting to go back to the slower (and Game*Mite compatible) LCD control. Otherwise there will be a fourth PicoMite version (a branch). The one that Tom maintains, and remains compatible with his new platform. Volhout PicomiteVGA PETSCII ROBOTS |
||||
Martin H. Guru Joined: 04/06/2022 Location: GermanyPosts: 1114 |
It all sounds logical, but I also had the same issue (endless reboot after LIBRARY DISK LOAD) on a freshly installed clone that had never connected an LCD or a LCD Configuration, before.So I didn't even get around to loading the basic program. Edited 2023-10-19 16:58 by Martin H. 'no comment |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 9129 |
The current version should work properly with the continuous background merge or foreground merge as I programmed the continuous version to circumvent this issue. I'll look at the single shot background merge (same probably applies to background copy) The issue is that I have to block CPU1 access to SPI while CPU2 is using it. The routine that updates the audio buffers is the same one that checks for the SDcard being removed and this has to be deferred when CPU2 is using SPI. Prior to MOD files this was OK as FLAC and WAV playback both needed SDcard access so couldn't and can't work. MOD playback doesn't need SPI access so I need to special case it some more. There are two H/W solutions. One, use a parallel display, my high spec game design doesn't have the problem Two, use different pins for SDcard than the system SPI pins - uses three extra pins but solves the issue completely |
||||
Mixtel90 Guru Joined: 05/10/2019 Location: United KingdomPosts: 6798 |
Tom has used SPI for the on-board stuff, but SP2 is available in the form of the ADC pins. It may be possible to do a bit of PCB carving to use that channel as well. Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
Martin H. Guru Joined: 04/06/2022 Location: GermanyPosts: 1114 |
MMBasic (non VGA) crashes through LIBRARY DISK LOAD even there is nothing configured freshly unpacked, No SPI no SD Card etc. configured. 'no comment |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 9129 |
Seems reasonable |
||||
thwill Guru Joined: 16/09/2019 Location: United KingdomPosts: 4043 |
In what way is it reasonable ? I look away for a few days and we seem to have jumped the shark. Can I confirm that people have updated their Game*Mites and are experiencing this issue on one of Peter's recent standard PicoMite 5.07.08 RCs ? Peter, have you made a change that ALWAYS makes sharing of SPI pins between LCD and SDI card/touch IMPOSSIBLE ? Or, as I assumed from first reading is this new behaviour only enabled via: FRAMEBUFFER MERGE col,R Specifically the R option which makes the merge run continuously in the background ? Best wishes, Tom Edited 2023-10-19 18:28 by thwill Game*Mite, CMM2 Welcome Tape, Creaky old text adventures |
||||
Mixtel90 Guru Joined: 05/10/2019 Location: United KingdomPosts: 6798 |
How are you going to do a LIBRARY DISK LOAD without a disk? :) I don't think any changes have broken Game*Mite, it's just that it doesn't support that new-fangled R mode. Mind you, nothing does yet, I don't think. Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 9129 |
He said he used an explicitly disk activity without enabling the disk first. Of course it should be trapped but it is a nonsensical thing to do. No, of course not, the issue arises with any use of the second core to do SPI things. When I first implemented FRAMEBUFFER COPY s,d,BACKGROUND I said there was no interlock and the same applies to any CPU2 activity. MERGE R is of course worst case as, unless the optional cycle time is used it completely takes over the SPI channel allocated to the LCD - that is easy to handle as I have just blocked any attempt to use SPI for anything else. MOD file playback (not load) doesn't use SPI, unlike flac or wav playback, so can be special cased. Merge B and copy B are the hardest to handle as they have undefined durations depending on the display in use and we don't want normal Basic processing to block because a background activity like audio buffer update or touch checking is taking place. All-in-all quite a difficult challenge without a multi-tasking OS |
||||
Martin H. Guru Joined: 04/06/2022 Location: GermanyPosts: 1114 |
Before we bloat the thread with endless policy discussions, it would be the Point to clarify why the LCD version works with Bleep, but it causes Lizby and me to load the library to a total crash. And if / how we can get it working. Edited 2023-10-19 18:52 by Martin H. 'no comment |
||||
thwill Guru Joined: 16/09/2019 Location: United KingdomPosts: 4043 |
No, of course not ... Good, I thought as much, but had to ask as this fire is generating a lot of smoke. All-in-all quite a difficult challenge without a multi-tasking OS Ignoring MERGE for the moment (which is new since I last looked), but I thought you had COPY B working with the SD card ... ah, that was the issue of polling the SD card. Is the issue here that someone is reading the SD card during a background copy ? Right, that should be verboten, or failing that it's the programmer's problem, add a sufficient PAUSE. I'm also confused because I thought the initially reported issue was that a 'mite with a loaded LIBRARY was going into a continuous reboot cycle and don't see how that is related to this. I had guessed that the issue there was that the LIBRARY contained executable code (i.e. non functions/subs) that were causing a "sigbus" error and that the LIBRARY was always loaded when the firmware started (like the AUTORUN problem) ... but I haven't verified that. Best wishes, Tom Edited 2023-10-19 18:52 by thwill Game*Mite, CMM2 Welcome Tape, Creaky old text adventures |
||||
thwill Guru Joined: 16/09/2019 Location: United KingdomPosts: 4043 |
Agreed, and I don't think @lizby even has a Game*Mite unless he has sorted one out for scratch himself. Best wishes, Tom Game*Mite, CMM2 Welcome Tape, Creaky old text adventures |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 9129 |
Please post the library file in question and your complete option list when trying to load and exactly which firmware version you are using - suggest you re-download from Geoff's site before anything else. I'm going to try to implement proper locking between the CPUs using spinlocks but unfortunately this is one area where there are no examples from Raspberry Pi, the documentation is very poor, and there are far more sdk functions than you would see in a normal spinlock library on windows or Linux Edited 2023-10-19 19:12 by matherp |
||||
Martin H. Guru Joined: 04/06/2022 Location: GermanyPosts: 1114 |
the Lib file is in the Zip Archve, Bleep posted yesterday. I posted the PicoMite version in the Error message: library delete > library disk load "LCDLIB.BIN Error: Invalid address - resetting PicoMite MMBasic Version 5.07.08RC10 Copyright 2011-2023 Geoff Graham Copyright 2016-2023 Peter Mather so it is PicoMite MMBasic Version 5.07.08RC10 I don't know which version Bleep is using Edited 2023-10-19 19:23 by Martin H. 'no comment |
||||
Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 4247 |
I created the magenta version of the library with RC10 (since ti requires RC10 to run). This version saves only the active part of the library (~90k), not the whole 100k, as in previous library publications. Maybe Bleeps derived version is incomplete ? Could this be of importance ? Volhout Edited 2023-10-19 19:35 by Volhout PicomiteVGA PETSCII ROBOTS |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 9129 |
Loads perfectly for me using the RC10 in the download from Geoff. Also tested on VGA version with no issues UPDATE: loads but won't run as the index of sprite addresses seems wrong. Line 342 fails with invalid dimensions i.e. the w and h are out of range Edited 2023-10-19 21:21 by matherp |
||||
Page 16 of 38 |
Print this page |