I figured after last week’s bumper issue that this week would be quite light. I was very wrong, the community does not rest! Welcome to the latest issue of TWiP!
PiStorm Diagnostics Testing
Pi GPIO Test
The Raspberry Pi’s GPIO is quite versatile and extremely useful for so many projects. Unfortunately it is also very vulnerable and it is directly wired to the Pi’s CPU chip so once a GPIO pin is dead, it can never be revived.
The two easiest ways to damage them with PiStorm is plugging the Pi into the PiStorm with the pins misaligned and turning it on, or a static shock to the GPIO pins.
So, if your PiStorm is malfunctioning, how can you test if the Pi is the cause?
Well, there is a tool called “gpiotest” which can, as the name implies, test the GPIO pins to see if they function correctly.
To use it, the first very important thing you must do is remove your Pi from the PiStorm. There cannot be anything connected to the GPIO when running the test. Then run the following commands on the Pi:
sudo apt-get install pigpio wget abyz.me.uk/rpi/pigpio/code/gpiotest.zip unzip gpiotest.zip sudo pigpiod ./gpiotest
If the GPIO is good, the output will look like this:
Once this test is done, the next step is “buptest”. This is a tool which tests the communication Pi <-> PiStorm <-> Amiga Chip RAM. It is worth noting that this tool will not work correctly if you are using the experimental firmware, so if you are, run
./flash.sh first to flash the normal firmware. With the experimental firmware you will get false failures.
How do you use it? First it needs building, then running:
cd pistorm ./build_buptest.sh sudo ./buptest
If something is bad, you will either get a the tool hanging or lots of errors appearing, at which point you should contact the hardware-support channel on the PiStorm Discord. Otherwise it will show something like this:
If you have a PiStorm, you are likely plugging it into a machine that is ~30 years old. Parts of these ageing machines can unfortunately fail over time. The RAM in particular is quite sensitive to this. So, how do you test it?
If the Amiga is at least booting to Kickstart then I highly recommend Amiga Test Kit. With ATK you can test pretty much all the hardware of the Amiga. A RAM test in particular can be run from this tool, and I recommend testing everything except the Fast RAM, since this is RAM generated by the Pi from its own RAM pool.
If your Amiga isn’t booting properly, there is DiagROM. This is a ROM file which the Amiga can boot from and often works when the Kickstart ROM won’t. It can be used to diagnose issues in a similar way to ATK, but the results can sometimes be harder to read. Once downloaded you can change your PiStorm configuration file to use either the
DiagROM file or the
16bit.bin file in your
map type=rom line. Or you can use a physical DiagROM chip which can often be found on places such as eBay.
Again, the community in the hardware-support channel may be able to help you pinpoint the issue with these tool.
The alpha release of the PiStorm AHI driver has been added to wip-crap. This allows any AHI compatible utility to use the Pi to process the audio and it comes out via the Pi’s audio jack or HDMI (this switch may require a code hack right now).
There are caveats with this driver. Due to the way the AHI API is designed it currently only works if the video output is going via Denise and at 50Hz. It probably won’t work at all if you are using RTG graphics.
If you want to try it, you’ll find it called
platforms/amiga/ahi/ahi_driver_amiga/pi-ahi.audio. It is not included on the PiStorm drive at the moment as it is not in the position where it can be easily supported by the community. There are known issues with it and you’ll need to be more of a power user to be able to try it out.
Proto 3.5 Development
If I had a penny when someone asked me when Proto 4 will come out, I’d be a very rich person. For those who missed previous issues of TWiP, Proto 4 (short for Protocol version 4) should in-theory solve a lot of the current compatibility issues with PiStorm and allow it to support the Pi 4.
The current roadmap is to work on Proto 3.5 first, which instead of supporting a minimal Amiga 68K bus implementation, supports the full 68K bus. This will then lead to us working on porting to the protocol version 4 way of communication, which at the moment is just a test of the theory of better bus transactions.
This week I started helping Claude with the development of Proto 3.5. I quickly got it to a point where certain bus signals such as “reset” function correctly and a few bus transactions sort-of work, but the RW signal is not synchronised yet. Kickstart even immediately green screens.
To answer everyone’s question of “when”, the answer is “when it is ready”. This is a community project that we all work on in our spare time outside of our day jobs. But we do really want to get Proto 4 released this year. Especially since this is likely the key to making the PiStorm32 work.
PiStorm Software Compatibility List
Lemaru has created a list of software that is known to work or not work with PiStorm which users can submit new entries to. The list is viewable here and you can create new entries to it here. The PiStorm admins will try and keep the list as clean as possible so that it is easy to navigate.
It seems every time I publish a TWiP issue, Emu68 hits huge milestones. Whilst Michal is currently awaiting a new Amiga 500 motherboard to work with, other members of the community have stepped up to help with the testing of Emu68. ShK in particular has put up a lot of videos in the “emu68” channel on Discord of various thing working in a special build of it. Claude has also posted a video on Twitter:
PiStorm on an Amiga2000
Mark Green created a video on putting the PiStorm in an Amiga 2000, featuring a CPU relocator designed by me!
PiStorm Improving My Amiga (Spanish)
El Viejoven FX has created a Spanish video on installing and using the PiStorm as below, unfortunately this is another language I do now speak but it does look well made.
I thought I’d put this video in this section instead of the Emu68 section, another video on YouTube of the Emu68 emulator on PiStorm running a demo: