All Activity

This stream auto-updates   

  1. Last week
  2. Ultra Tank

    I have limited visibility into how the 6502 code works, but VBlank is read by the CPU and with that disconnected the game hangs after drawing the playfield boundary and connecting it to other signals causes the whole game to run much faster so I can make an educated guess as to what it's used for. I'm sure I can figure it out, I just haven't put much effort into that particular issue yet since I had bigger fish to fry. Now that everything is implemented and the game is more or less playable I'll spend some time tying up loose ends over the weekend. One of these days I'll get around to porting this stuff to the Papilio if nobody else does. I've just grown to like working with Quartus better overall than ISE and it's much faster to compile for these little Cyclone II FPGAs I'm using, the bigger/newer chips take noticeably longer. It sure would be nice if ISE could load standard hex files into internal block memory elements the way Quartus does.
  3. Ultra Tank

    Damn I miss the *old* games... Except clowns which somehow always surfaces again(damn u s.k...) Isn't the timer bound to one of the vs counters like sound ?
  4. Centipede

    i appreciate all the work you are doing on these. i will talk to @vlait and see what needs done to make them mergeable so they are compatible with RV and ArcadeBlaster. Hopefully he has time..
  5. Ultra Tank

    Ok I see what happened, the image was missing the extension for some reason so it wasn't being recognized as an image. Should be fixed now. Last night I did some more work on this, I think all the player controls are working now but there's still the issue with the timer running too fast which needs investigation. I believe this is dependent on the VBlank signal which is read by the CPU so I'll look at the timing and see if I can figure out what's going on.
  6. Ultra Tank

    Could you repost the image (assuming the attachment is one, it can't be downloaded) Gg once again.. haven't even had a chance to check your previous one live yet but wanted to chime in so you know at least someone wants to see more -V
  7. Ultra Tank

    After weeks of banging my head against the wall this is coming along again. Motion objects are finally working so I implemented the collision detection and audio circuitry. I think all I need to do now is finish the player input so the game can actually be played, and then figure out why the game timer is ticking down too fast and do some general cleanup of the code. The input circuitry is a little more complex on this because they used an analog multiplexing scheme to read two joystick switches over a single wire, something that doesn't make sense to do with an FPGA that has plenty of IO and no analog. I'm not sure why this was done but I suspect they wanted to use the same harness connector and RFI filter board as their other games. I'll try to wrap this up sometime in the next week or two and then I'll post the code and start working on Sprint 4. ultratank
  8. Earlier
  9. I have watched several of Jacks videos and followed them to a t with no good results when synthesizing or generating a program file in ISE designsuite14.7. The last one I attempted was Creating a new ZPUino SOC project. I did save as a new project to be able to modify read only files. ISE comes up with several errors including bram errors and wont finish creating the bitfile. I have tried editing other designlab example projects with the same type results. For instance I have the vga8 wing and papilio pro spartan6lx9, edited that working project with ISE, did nothing to it and tried to synthesize and create program file, same type errors. These were all working projects that I loaded to the papilio pro and ran with designlab and Zap2.3, with exception of the Creating a new ZPUino SOC project. I am trying to create a zpuino with vga and 2 uart/com ports. I dont know if i'm doing something wrong or the newer ISE design suite14.7 doesnt want to work these older Zap and designlab programs. Maybe I missed a step or need setup something in ISE? Thanks for any help..
  10. Programing Error Codes

    I did get past the problem, but with no resolution on the the error codes. I have control lines from several analog multiplexers connected to the free port I/O pins. For some reason during programing, power must be applied to these devices. Apparently they are holding I/O lines on the FPGA in a state that causes the issue. Thanks for checking.
  11. Papilio DUO Gameduino sketches not compiling

    Hello, Did you get this to work? I think the important thing is that you need to have the selected board as the AVR board and not the FPGA board. Jack.
  12. Programing Error Codes

    Hello, Did you get this resolved? If not can you post the full error message? I also suggest comparing the *.xise file with a known good xise file using a text editor to see what the differences might be. Jack.
  13. Centipede

    disregard. vlait said i am wrong not that i know a thing about verilog, but centipede.v assign sync_o = comp_sync; assign hsync_o = hsync; assign vsync_o = vsync; assign audio_o = { 2'b0, audio }; assign hblank_o = hblank; assign vblank_o = vblank; p1-arcade-mega.ucf NET AUDIO_L_O LOC = "P84" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8; # NET AUDIO_R_O LOC = "P86" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8; # shouldn't AUDIO_L_O and AUDIO_R_O both be AUDIO_O(1) ? or some such... or rather, i am guessing "2'b0" is the "return/gnd" and "audio" is the actual noise? as i wrote, i don't quite understand it but something just seems off..
  14. Papilio Pro still produced?

    Hi Papry, I can‘t speak for others, but at the end the DRAM is not that complicated, given that you don’t need to write all the code from scratch, there exist several implementations, one is the Hamsterworks controller. The latest version on his website unfortunately had a small issue which prevents running it out of the box. Here https://github.com/bonfireprocessor/bonfire-soc/tree/master/sdram you find my slightly modified version which definitely works (tested with a clock frequency of 96Mhz, its best you start with a clock close to it. When you build a design with it, you should definitely simulate it, there are two different simulation models for the SDRAM chip in the link above, I only have used the sdram_model.vhd yet. With simulation you will also easily understand how the thing works and how to run fast pipelined back-to-back reads or writes. The DRAM has some advantages over SRAM: It requires less adress lines and has 16 Bit width. So the peak throuput is actually nearly twice of a 8 Bit SRAM. If you are interested in a SRAM based board in the Papilio price range take a look at the Digilent Cmod A7, it works with the newer Artix-7 FPGA and 512KBytes SRAM, otherwise it is quite similar to the Papilio Pro.
  15. Papilio Pro still produced?

    I wonder how many users of this board are frightened or put off using the SDRAM due to the complexity? I am! I have read the datasheet, and I was surprised that this device is a lot more complicated than an old fashioned 64kbit DRAM which at least only needed the refresh. I was tempted by the Duo, mainly because of the use of the Static RAM, but the cost in the UK (from SKPang) has risen enough to put me off. I will be in the US in May, so perhaps I could order one and have it delivered to the hotel??? For my current project (which is stalled somewhat) I am using all the I/O for DAC and ADC connections, leaving no spare pins to wire up a simple DIL SRAM, or even the VGA adapter. I guess I was wondering how many people bought the Pro and then didn't ever use the SDRAM. Given that you possible have to re-work the board to take a different SDRAM, could you make connections for SDRAM on the top layer and SRAM on the bottom layer, allowing you to offer a Pro+ with either SDRAM mounted or SRAM mounted. Just wondering... Anyway Jack, thanks for a great product.
  16. Hi keesj, in case you are monitoring this thread (or get an alert). On Ebay UK at the moment (23-Nov-2017) there is a Papilio set for sale "Papilio Pro Spartan 6 LX9 FPGA + 2 Mega Wing". It is £70 "buy it now". It has been there for a few days. Description in bold. Selling a Papilio Pro FPGA, perfect to learn FPGA with 2 megawing. Papilio Pro - Spartan 6 LX9 FPGA / 64Mbit SDRAM Papilio LogicStart MegaWing Papilio Arcade MegaWing I am not the seller, nor do I have any connection. As usual, let the buyer beware. regards... --Gary P.S. I hate this editor! It seems to insert a paragraph when I hit return. It's just as irratating as the default email behaviour in Thunderbird.
  17. papilio_zpuino_simulation

    I would like to get a simulation of the zpuino process, but who can help me in the near future? Same simulation as emulation Thanks!
  18. Papilio DUO Gameduino sketches not compiling

    Although putting the 'new' Gameduino library in, this results in graphics not being rendered correctly. (black sprites, characters instead of graphics).
  19. Papilio DUO Gameduino sketches not compiling

    Hi, I did some more testing, and when I downloaded the newest version of the Gameduino library and set the board type correctly to 'AVR - No USB', I did get the source to compile. Could it be that an old version of the Gameduino library has been included with Designlab 1.0.8 ? Kind regards, Paul
  20. Sprint 2

    Here's my source for Sprint 1 and Sprint 2. I think these are in pretty good shape now, both work great, the sound is pretty good, I haven't found any remaining bugs. A really sharp observer may notice two of the cars in Sprint 1 are gray like in Sprint 2, I have since fixed that bug so all three drone cares are black. Sprint2.zip Sprint1.zip
  21. Hi, I'm new here so I hope I'm not breaking any rules by just writing a post to ask a beginner question. Wat I'm trying to do is build the Gameduino examples delivered with Designerstudio 1.0.8 (I tried 1.0.7 and 1.0.5 too), the FPGA circuit runs fine, but the C code won't compile. The errors I get are pasted below : I'm running Designer lab on Mint linux 18.2 Kind regards, Paul ###################################################################################################################33 Arduino: 1.0.8 (Linux), Board: "Papilio DUO - AVR - No USB - ISP" In file included from /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp:17:0: /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.h:50:39: error: 'prog_uchar' has not been declared static void copy(unsigned int addr, prog_uchar *src, int count); ^ /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.h:61:25: error: 'prog_uchar' has not been declared static void microcode(prog_uchar *src, int count); ^ /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.h:62:45: error: 'prog_uchar' has not been declared static void uncompress(unsigned int addr, prog_uchar *src); ^ /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp:129:47: error: 'prog_uchar' has not been declared void GDClass::copy(unsigned int addr, PROGMEM prog_uchar *src, int count) ^ /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp:151:33: error: variable or field 'microcode' declared void void GDClass::microcode(PROGMEM prog_uchar *src, int count) ^ In file included from /home/paul/work/fpga/papilio/DesignLab-1.0.8/hardware/arduino/avr/cores/arduino/Arduino.h:28:0, from /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp:14: /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp:151:25: error: expected primary-expression before '__attribute__' void GDClass::microcode(PROGMEM prog_uchar *src, int count) ^ /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp:151:50: error: expected primary-expression before 'int' void GDClass::microcode(PROGMEM prog_uchar *src, int count) ^ In file included from /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp:242:0: /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/font8x8.h:1:16: error: 'prog_uchar' does not name a type static PROGMEM prog_uchar font8x8[] = { ^ In file included from /home/paul/work/fpga/papilio/DesignLab-1.0.8/hardware/arduino/avr/cores/arduino/Arduino.h:28:0, from /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp:14: /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp: In static member function 'static void GDClass::ascii()': /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp:258:28: error: 'font8x8' was not declared in this scope byte b = pgm_read_byte(font8x8 + i); ^ /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp: At global scope: /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp:346:14: error: 'prog_uchar' has not been declared void begin(prog_uchar *s) { ^ /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp:368:3: error: 'prog_uchar' does not name a type prog_uchar *src; ^ /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp: In member function 'void GDflashbits::begin(int*)': /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp:347:5: error: 'src' was not declared in this scope src = s; ^ In file included from /home/paul/work/fpga/papilio/DesignLab-1.0.8/hardware/arduino/avr/cores/arduino/Arduino.h:28:0, from /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp:14: /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp: In member function 'byte GDflashbits::get1()': /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp:351:34: error: 'src' was not declared in this scope byte r = (pgm_read_byte_near(src) & mask) != 0; ^ /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp:355:7: error: 'src' was not declared in this scope src++; ^ /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp: At global scope: /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp:374:45: error: 'prog_uchar' has not been declared void GDClass::uncompress(unsigned int addr, prog_uchar *src) ^ Error compiling. This report would have more information with "Show verbose output during compilation" enabled in File > Preferences.
  22. Sprint 2

    I have the audio working now and everything is pretty much done, I do need to tweak some of the values that control the engine sound frequency but otherwise it's ready to go. I also did Sprint 1 because the hardware is almost identical. I'll post the code here soon in case anyone else wants to play with it, I have not had time to port it to the Papilio, been too busy working on more games but that should be simple, other than the ROMs and RAM the code should be platform-agnostic. The biggest challenge with actually playing the Sprint games is the controls, you need some sort of steering wheel with an optical encoder, ideally 36 pulse per revolution. You also need a gear shift, this has 3 switches for 1st, 2nd and 3rd gear, open circuit selects 4th. Super Bug is one that I considered doing at some point, the hardware is a bit different on that though, 6800 based and more closely related to Fire Truck which is another game I'd like to make. For now I'm working on some other 6502 based games, Ultra Tank first and from that I can derive Sprint 4 which is one of the first games to have color. I'm also looking at Atari Football which has an interesting scrolling playfield. Later perhaps Missile Command, it uses relatively simple hardware though it will probably require external RAM.
  23. Sprint 2

    nice!! The screenshot brings up good memories. Super Bug next ? :DD -V
  24. Programing Error Codes

    I'm new to the Papilio world. I've created a new .bit file to change some basic functionality within a design. I now get 0x19 or 0x11 as an error code. (failed to configure). Where can I find a detailed description of these error codes? Thanks in advance for any help.
  25. SPI MODE0

    Let me take a look at that and I'll get back to you. Probably there's a bug there, I don't recall testing it with non-usual modes (it's also tricy to implement). Alvie
  26. Hello,I want to share an interesting project of designing a color detector by using RGB LEDs with you. If you have any interests, then keep on reading. Have you ever wanted an automated way to detect the color of an object? By shining light of a certain color on the object and looking at how much light is reflected back, you can tell what color the object is. For example, if you shine a red light on a red object, that light will be reflected back. If you shine a blue light on a red object, the object will absorb some of that light and less of it will be reflected back. https://www.youtube.com/watch?v=DqboDjQX0UE Step 1: Parts Needed I used a PIC 16F887 Microcontroller, but almost any with a pulse-width-modulation capability will work. 1 RGB LED (http://www.kynix.com/Product/Cate/545.html) 1 Microcontroller (http://www.ti.com/microcontrollers/msp430-ultra-low-power-mcus/overview/overview.html) 1 Standard red LED 1 1k ohm resistor 1 Photoresistor (changes resistance depending on the amount of light shone on it) Some wires I only need the microcontroller and RGB LED to have a wide range of color detectors, but if you only want a circuit that detects one color, you don't need a microcontroller - you only need a bright LED of the color you want to detect. The standard red LED is the "indicator LED" - it lights up when the right color is detected. Step 2: Build the Circuit The schematic is rather simple, and in general form, is shown below. The RGB LED is externally powered by a PWM signal. I put electrical tape around the photoresistor so ambient light doesn't get in - only the light directly above it will be detected. Step 3: The Code This code was written for a Microchip PIC 16F887, but hopefully you can get the general idea. I used the built-in potentiometer on my development board to vary the color spectrum of the RGB LED (and it doesn't go through the entire spectrum because I don't have 3 PWM modules, but it's good enough) Comments included. #include <16F887.h> #include <delay.h> #include "delay.c" #include <stdlib.h> #include <STRING.h> #use delay(clock = 4000000) #FUSES INTRC,NOWDT,NOPUT,NOMCLR,NOPROTECT,NOCPD,NOBROWNOUT,NOIESO,NOFCMEN,NOLVP #byte CCP1CON = 0x17 #byte CCP2CON = 0x1D #byte PWM1CON = 0x9B int value = 128; int p1 = 0; int p2 = 0; void my_setup_ccp1(int8 value) { output_low(PIN_C2); CCP1CON = value; PWM1CON = 0; } void my_setup_ccp2(int8 value) { output_low(PIN_C1); CCP2CON = value; } //=================================== void main() { //A4 = power source for photodiode output_high(PIN_A4); output_high(PIN_B1); setup_adc(ADC_CLOCK_INTERNAL); set_adc_channel(0); setup_adc_ports(sAN0); //Timer/Interrupt setup enable_interrupts(INT_TIMER2); my_setup_ccp1(CCP_PWM); my_setup_ccp2(CCP_PWM); setup_timer_2(T2_DIV_BY_1, 128, 1); //setup_compare(2,COMPARE_PWM|COMPARE_TIMER2); while(1){ // Prevent PIC from going to sleep. //SET PWM DUTY CYCLE output_high(PIN_A5); //Pin A3 is the photodiode connection if(input(PIN_A3) == 1) output_high(PIN_A4); else output_low(PIN_A4); //Read value of potentiometer to change color of LED value = read_adc(); switch (value) { case 0: p1 = value; output_low(PIN_C0); p2 = value; break; case 50: p1 = value; output_high(PIN_C0); p2 = value; break; case 100: p1 = value; output_high(PIN_C0); p2 = value; break; case 150: output_high(PIN_C0); p1 = 50; p2 = value; break; case 200: output_low(PIN_C0); p1 = 0; p2 = value; break; case 250: p1 = 0; p2 = value; output_low(PIN_C0); break; } p1 = value; p2 = 128 - p1; set_pwm1_duty(p1); set_pwm2_duty(p2); } } Step 4: Applications! A simple color detector like this can be used in robotics, or for cool projects like separating legos by color, sorting M&Ms;, or as an aid for color blindness. Hopefully this guide was helpful in enhancing a project you had in mind! LEDs are good for so many things....
  27. hamster tutorial help

    Excellent, glad you got that sorted out too. BTW, I'm working on new papilio pro examples over at gitlab. I've still got a long way to go but it might be interesting to see what you think. https://gitlab.com/Papilio-FPGA/papilio-quickstart-vhdl I've also put together a cloud environment so you don't have to mess around with installing Xilinx ISE to synthesize these new projects. You will need to place your Xilinx.lic file in ~/.Xilinx/Xilinx.lic for it to work. Keep in mind this is all just tests that I'm running, not really ready for prime time yet. But might be worth checking out if you are interested. https://codenvy.io/f?id=factoryyd01z6lgdawlk52f Jack
  28. Load more activity