• Content count

  • Joined

  • Last visited

Posts posted by RorschachUK

  1. Hi,  check to make sure that in the Tools / Programmer menu, 'Papilio Programmer' is the selected programmer?


    Also, if you pick the Hyperion variant for LogicStart and LX9, there's examples included for outputting LCD 16x2 text to a 'virtual' LCD on a VGA screen, via a drop-in replacement for the Arduino LiquidCrystal.h library.

  2. Great progress!  I'd wondered if the first power-on CMOS settings would be a problem, in MAME the first time you start a Williams game it makes you go through all that factory settings press advance nonsense, but saves it into some sort of non-volatile CMOS memory and boots properly afterwards.  Grabbing a snapshot of already-setup values sounds easier than reimplementing saving to CMOS with FLASH or EEPROM or something.  Oh and just in case any observers are thinking that bottom screenshot shows horrible corrupted graphics, that's just what Robotron does normally when a level starts! 

  3. Not sure if this is common knowledge but I more or less accidentally came across it when I was playing around in Impact and did a JTAG scan with my Pipistrello attached. It was detected by Impact and I was able to point Impact to a bit file and it successfully uploaded it to the board.

    Magnus did tell me on purchase that "Unlike the Papilio boards, this board is also fully supported by all the Xilinx tools (Impact, ChipScope, SDK etc.) using the Digilent driver plugin.", although having no prior experience of using ISE outside of using the Papilio boards with WebPack I didn't really appreciate what this really amounted to.

  4. Would completing this also unlock the other Williams games of the era, which look to be on more or less the same hardware, control schemes aside?  Defender, Joust, Sinistar all start up with that rainbow visual noise memory test and pinball-esque sound effects suggesting they're reusing routines from each other, so I'd be surprised if the hardware platforms are much different.

  5. Hi, I'm not quite clear about your post, particularly about GCC or version 1.0.  But I shall assume that what you're wanting to do is use ZAP Arduino environment with Papilio Pro. 


    So, for starters the thing you need to install is this: ZAP ZPUino Arduino Papilio - it's version 2.05, although it's based around Arduino 1.5.2.


    If you've got that installed, you can start it up (Arduino.exe) - it's visually unchanged from the standard Arduino environment which I hope you're already familiar with.  The differences are in the menus - in the Tools menu, you will be able to select various flavours of Papilio boards.  For a Papilio Pro you will have choices such as selecting one with VGA support built in for either a Logic Start or Arcade Megawing.  If you have one of these add-on boards and want to try the VGA examples, pick one of those board entries from the menu.


    Also in the Tools menu you should pick the right serial port for the board and select 'Papilio programmer' from the Programmer submenu.


    Finally before you can send any programs to the Papilio Pro you will need to select the 'Burn Bootloader' option from the Tools menu - this sends the bitfile for the selected flavour of ZPUino to the Papilio's FLASH.


    Once the bootloader's flashed to the board, you will be able to send Arduino programming to it using the Send toolbar button same as with a regular Arduino.


    Hope that was what you wanted to do - if not, some more detail would be needed.

  6. Ah - the small subset of items already converted to Papilio aren't what I was looking for, rather the large amount of other games, consoles and computers that haven't been converted to Papilio that were previously mentioned on the old FPGAArcade website, I wondered if any might work on Pipistrello LX45.


    So there's Jack's at GitHub [here] and yours at Google Code [here].

  7. Hi, recompiled (resynthesized?) with the new tweaks from Github, still didn't display but *almost* did on the big TV, when I caught a glimpse of what looked like alternating black and white block stripes on bootup but then vanished to 'mode not supported' blackness.  Does B&W block stripes sound like what an Oric does on power-up?


    The Pacman and bouncing ball bitfiles came from the Pipistrello front page at, no source given for either though so I can't say - presumably Magnus compiled these.


    To end on a success story though - have had the 48K Spectrum bitfile successfully loading games from WAV files generated from TZX files!

  8. Must be more to it than just the pixel clock frequency though, since PacMan displays over HDMI and that's 24MHz too.  Resolutions?  Another experiment - BombJack doesn't display on the small display I use for development but does on the main TV.  Small display is 10.1" Lilliput FA1011-np, main TV is Samsung PS50C7000.  So that's Spectrum, bouncing ball, VTC_Demo and Pacman working on either display, Oric not working on either and Bombjack working on the big TV but not the 10" display, all over HDMI.

  9. OK so I just rebuilt - the only change I'd made previously was pre-emptively editing the UCF to disable PMOD PS/2 and enable it on Arcade wing instead (as I'd also done on the Spectrum one), so I reverted that 'just in case'.  Was indeed 35 warnings.  Flashed it to the Pipistrello, still no joy from the 'small' monitor I was testing with that works OK with the Spectrum one, took it through to main TV, didn't work on that one either although the TV did at least acknowledge it was trying by saying 'Mode not supported' - it wasn't quite helpful enough to tell me what mode it was trying, but I'm guessing whatever it is differs from whatever the Spectrum implementation was trying.


    Oh, also I had to drop '/trunk' from the SVN checkout command listed in Github to get the source as otherwise it said it couldn't be found - but I doubt that's any connection to the HDMI modes.

  10. Hi, after getting the Spectrum implementation running on my new Pipistrello (arrived today), I tried the Oric one too, but so far didn't seem to work, or at least my monitor thinks no signal whereas it sees one with the Spectrum and the various bouncing ball etc bitfiles..  Is there any other step to do, like maybe build ROMs or set configuration constants or similar?  Are the timings any different to the Spectrum one such that my monitor might be happy with that one and not this one?

  11. Nice - have had this working on the Papilio Pro with 32K mem and VGA on the Arcade MegaWing, and just now also on the Pipistrello over HDMI with 48K.  I notice though that in the Pipistrello HDMI version, red and green channels are swapped round - "Border 2" is supposed to give you a red border, gives green, and likewise "Border 4" gives green where it should give red.  I fixed this editing the UCF to swap the <2>s and <1>s round on TMDS_P and _N, but I don't know if there's a more 'correct' place to fix it.

  12. OK, but that brings us back to my original post, doesn't it?  I mentioned one specific 'for instance' example there of a Papilio Plus SRAM-using project I'd like to see working with Papilio Pro and SDRAM: Hamster's DSPFract Mandelbrot browser - and Mike was the first person to answer, with what sounded to my newbie ears to be "It's hard", although that was probably in answer to my suggestion of a wrapper.


    So since this one specific example uses 512K of memory as a frame buffer, which is predictably accessing consecutive memory locations as you say, how would this be converted to Papilio Pro?

  13. Is there any way to have Spartan-6 plus enough SRAM for reasonable resolution/bit depth video frame buffer plus onboard VGA connector plus wing headers or Arduino headers?  Almost all the projects I'm most interested in running are asking for SRAM as either a framebuffer for VGA, or for RAM for a retro microcomputer that would also want VGA, or to give ZPUino a better video output.  This would also leave enough free I/O for Arduino-esque hardware to talk to ZPUino, or PS/2 keyboards for retro computers, or joysticks and buttons for arcade games.  Currently ZPUino's video bitfiles rely on either LogicStart or Arcade Megawing, both of which use up every port and make it tricky to talk to any other hardware - maybe have to resort to poking wires into unused joystick ports and the like.  Would be nice to use external SRAM to back a better resolution and leave I/O free and easy to access.  Would this require the BGA package though?

  14. Thanks guys - no wonder there are so few examples of projects using the SDRAM.  Since the implementations of 48k ZX Spectrum and Oric Atmos (nice work Alex!) are exactly the sort of thing I'd like to get running, sounds like Pipistrello might be the most straightforward way to go - and they're down to their last four units from this batch!  Even on that though, projects look more likely to use onboard block ram on the larger LX45 than touch the external 64Mb DRAM.  I assume that it would be easier to take one of the Papilio Plus projects - Mike's DSPFract Mandelbrot one for instance - and adapt that for Pipistrello using internal block ram generated in ISE than it would to adapt for Papilio Pro?

  15. Hi, I'm still very much a newbie with this stuff, but am slowly reaching a point where I can figure out just enough to be able to adapt VHDL intended for one board and change pin constraints and get a 50Mhz clock from the 32Mhz oscillator and so on with some limited successes.  But I'm coming across various things I want to get working which rely on external SRAM (or more internal block ram than I've got available).  For example, Mike Field's Hamsterworks wiki has several projects aimed at the Papilio Plus and other FPGAs with external SRAM, and I'd really like to see that Mandelbrot browser running on the Pro.  Or, recreations of old computer hardware that require external RAM.  But SDRAM seems to be far from trivial to use in place of SRAM and I've seen surprisingly few examples of source code making use of it.


    Is there any kind of VHDL wrapper / adapter layer that might talk to your external SDRAM and present an instantiation component interface to use that looks like SRAM so that designs targeting SRAM can be easily adapted?  Would such a thing be possible, hiding away details about refreshing or bursts or whatever?  If a 'generic' one-wrapper-fits-all solution isn't feasible, how do I take source code intended for external SRAM and adapt it to use the external SDRAM instead?

  16. I'm also new to FPGA's. I have a Papilio One 500 and a LogicStart MegaWing. I’ve gone through the first project in Mike Field's book “Introducing the Spartan 3E and VHDL.” After multiple attempts, I still cannot get it to work.

    Hi, I'm new to it too and recently went through the same path, and also had trouble getting it to work with a P1-500. It seemed to me that the first time I'd done it, I tried to make the constraints file by copy&paste from the PDF, and although it looked fine and looked like the PDF version the resulting bitfile just didn't do anything. When I tried it a second time and typed all the code and text instead of copy/pasting it, it seemed to work as expected. I concluded that either there was something significant about the copy/paste (like whitespace for instance) or maybe I'd just overlooked something the first pass through (like an include, perhaps).

  17. If you want a small, very basic interpreted BASIC to try for a laugh, have a look at http://hamsterworks....p/Arduino_Basic. It fits in < 8k on an AVR, Now that you have lots of shiny new SDRAM will even be able to have BASIC programs larger than 1.4k bytes! Who knows, maybe you could even add some custom key words to speed up your dev/test cycle, avoiding the need to have a new build every time you want to do something a little different.

    Hi Hamster and Alvie,

    Not wanting to derail the ZPUIno focus of this thread, a few weeks ago I borrowed Mike's Arduino TinyBasic port to adapt it to the Arduino's TVOut and PS2Keyboard libraries, was a bit of a squeeze but the result was here:

    . I was connecting the RCA composite video cable with crocodile clips and pushing female jumper leads directly into the PS/2 keyboard plug's pins, so was a bit rough.

    Since then I've got the Papilio One and am trying to get started (working through the LogicStart tutorial and getting Pacman etc working, so far). I have Alvie's Jet Set Willy ZPUino implementation running, using the bitfile which came with it on GitHub - this bitfile seems to be ZPUino with a VGAZX video generator for P1-500, which isn't one of the ones offered on the ZPUino site. I had the idea to try to use this bitfile to recreate what I'd done with TinyBasic on Arduino, using Papilio One with the Arcade megawing to connect a PS/2 keyboard and VGA, and the Spectrum's character set over VGAZX.

    Unfortunately I had some trouble running my adapted TinyBasic sketch in ZPUino. Examples of things that wouldn't compile included font files defined as arrays of binary numbers e.g. B00001, this looks like the sort of thing the compiler shouldn't have any trouble with but it seemed to want to treat them as unknown tokens.

    Also, is there an actual library for using VGAZX? The Jet Set Willy code didn't refer to a library but had some internal routines getting stuff done via memcpy, but if a friendlier library did exist would be nice to use.

    Lastly - In the Jet Set Willy sketch is a directory SmallFS containing files JSW (64k, presumably a memory dump of the Spectrum when JSW is running, including ROM) and ZPUINO. Looks like the Spectrum's character set is grabbed from this 64k file. If I was wanting to borrow just the text display bits (PRMESSAGE & putChar), could I cut this 64k file down to just the bit with the character set in it?