Random Thoughts (About Arcade MegaWing)


Guest sjdavies

Recommended Posts

Guest sjdavies

Hi All,

am new to Papilio, bought a 250K but it's still in the anti-static bag. The arcade megawing 1.1 turned up today.

Have been working with a Digilent S3 starter board and apple2fpga. Have got a working Apple][ with SD ram disk. I would like to be able to use the Papilio & megawing as a dedicated retrocomputer (apple][, C64, Vic20 etc.) AND for retrogaming (eg. galaxians, space invaders etc.). I would like to be able to do all of these functions standalone i.e. without reconfiguring via USB/JTAG.

Moving to the Spartan 6 sounds fantastic, as does the provision of external RAM. I'd also like to propose some additional features. Consider other configuration options besides JTAG/single flash. Possibly make M0/1/2 strapable (if they exist on S6). My thinking here is to allow some sort of menu system to select one of many game images present on an SD card i.e. to have selectable MAME ROMS to play. Consider adding an AVR or external logic to act as bootloader for the FPGA. Another thread has suggested something similar.

From the viewpoint of retrocomputing, a second SD card is desirable. Allow it to be configured as the floppy/hard drive for the retrocomputer. Configure the FPGA from the first SD, allow the retrocomputer to boot from the second.

The megawing 1.1 has loads of empty board space, why not make a 1.2 and add some solder pads for user config and/or extend the pins coming up from underneath?

Papilio One and the arcade wing are interesting but after buying into the concept it really doesn't offer enough flexibility to do what I want to do. Disclaimer: what I want is not necessarily what other peeps want to do ;) . Papilio seems to have a lot in common with http://www.fpgaarcade.com/.

I intend my comments to be taken as constructive criticism. My personal ideal is to have a standalone box where I can select arcade games AND apple2/C64 games stored on SD cards.

What do you think?

Cheers,

Steve

Link to comment
Share on other sites

Steve,

Thank you for your feedback, I think we are on the same wavelength and are heading in the same direction.

The availability of the Papilio Plus is going to be a game changer.

One of the nice features of the Spartan 6 is multi-boot. It will allow us to put multiple bit files on one SPI Flash chip and build a menu system to decide which one to boot. Take a look at this thread where I have started working on this solution. I'm specifying that the Papilio Plus be built with 64MB of SPI Flash which will allow 22 bit files to be multi-booted.

I agree that an SD card is crucial for many of the things that we will want to do with the Papilio Plus. I have been looking at the MegaWing board and trying to figure out the best approach for the next version. There are a couple things that I think we need (in order of importance):

1) SD Card

2) Expansion port so people can add another SD card or composite video output.

2) DIP switches to control things like cabinet vs cocktail mode.

My first thought is that the 4 LED's are not used as much as I thought they would be so we can get rid of them and that frees up an 8-bit Wing slot. We can include a stack through header on that 8-bit wing slot which will allow people to snap in expansion Wings such as another SD card or composite video.

So then we need to free up some pins for a dedicated SD card on the MegaWing. I'm thinking that we can do two things, 1) Switch to 8 bit VGA output (3r, 3g, 2b) which would free up 4 pins for a SD card. 2) Reclaim two pins from the Joysticks by permanently grounding pin 8. Right now pin 8 is connected to an I/O and we ground it in software.

I absolutely agree that we need a standalone solution like this where people can load games to a SD card and have a menu to select them. The other option is to expand the soon to be released Papilio Arcade Blaster app to let people choose the games they want loaded to SPI flash for multiboot. Then the first bootable image will be a menu system that lets people select the games to start from SPI Flash.

I'd love to get the apple2fpga project working and I have open source code for the C64 that I came across on the web. I also have an open source Atari 2600 project working on the Papilio One, but it uses composite video and I need to convert it to VGA before we can use it with the Arcade MegaWing. I think with the Papilio Plus we will be removing the memory constraint and that will allow us to implement many more systems and games. Then the challenge will be to make it as easy and convenient as a MAME system.

The Papilio Arcade does have a lot in common with FPGA Arcade, I spoke with MikeJ and asked for his permission to make his games work on the Papilio Arcade. I think where we differ is that I'm trying to offer low end, low cost hardware and Mike is working on very high end and expensive hardware. He will be able to do amazing things like run Amiga games with DVI output.

Anyway, it's been a blast working with the Arcade MegaWing and we intend to keep working on it and making it better with each step.

Jack.

Link to comment
Share on other sites

+1 with the idea of putting an sd card reader on the megawing.

I agree with dropping the leds => use a wing if you need them.

I would not touch the vga output though, as this is something that cannot be overriden with extra hardware : for one thing, you would definitely drop the possibility of running an Amiga inside a Papilio ;-) (or, more likely, a NeoGeo) I would at least keep 9 bits (333) as this have been used widely (I'm thinking of, at least, MegaDrive/Genesis and Atari ST)

Therefore : 3 bits from VGA + 2 bits from the joysticks (and use the extra bit for a dip switch ?), or 3 bits from VGA with CS grounded on the sdcard.

but, do we really need the 4 D-buttons ? (=> use a wing)

Link to comment
Share on other sites

Ok,

These are some great ideas, It's sounding like flexibility is going to be most valued. So why don't we drop all the things that could be considered optional, just provide the basics in the MegaWing and leave two 8-bit Wing slots open for expansion/customization.

Attached is a pdf with a quick layout of what the next version of the Arcade MegaWing can look like. It drops:

  • Directional buttons (Can be added with a B/LED Wing or Micro-Digital Joystick Wing)
  • LED's (Not doing much and can be added with B/LED Wing)
  • Second Joystick (You can add two more Joysticks with the open Wing Slots)

What is kept is:

  • 12-bit VGA (Ben is right, we don't want the hardware to be the limitation on what we can do.)
  • Stereo Audio (Looks like I need to find a smaller jack to squeeze it in though.)
  • Two PS/2 ports (I assume we will want Keyboard and Mouse... Maybe the second PS/2 port should be dropped in favor of DIP switches?)
  • One Joystick port.

What we gain:

  • A microSD card reader
  • This design uses 32 bits so you can see that the next revision of the Arcade MegaWing is much more compact and fits over the Row B and C Wing Slots. It will not extend over Row A so this means that we have two 8-bit Wing slots that are Open on Row A and can be populated with a composite video Wing, B/LED Wing, MicroJoystick Wing, Atari Joystick Wing etc. We can even create new Joystick Wings for other types of controllers like the sega controller and such. Or maybe we can use the open 16 bit Wing for a cartridge adapter... If gives us a lot more flexibility.

BPW5031_Arcade_MegaWing.pdf

post-3-13431627491721.png

Link to comment
Share on other sites

I'm actually thinking the second P/S2 port should be dropped in favor of DIP switches. Is there really any classic system we want to recreate that uses a mouse? I think they use keyboards and joysticks usually...

I would indeed favor dip switches over a second PS/2 (use a wing)

I'm a bit concerned about the second joystick port being gone, but having a compact wing and two free slots is certainly worth it.

Link to comment
Share on other sites

Guest sjdavies

Jack,

looking at the PCB overlay. I think the audio jack needs to overhang the board edge so that the plug body doesn't interfere with plug insertion.

IO pins appear to be at a premium. Adding DIP switches is desirable but has the potential to use up a lot of pins for signals that may only be read once on startup. You may want to consider a serial bus such as SPI and use a chip to encode the DIP switch to SPI. I'd favour SPI over I2C simply because this can be used with the micro SD as well.

Steve

Link to comment
Share on other sites

Steve,

Good idea about using the SPI bus, I'll think more on that one.

The audio jack needs to be squeezed in to the edge. I originally was thinking I need to find a narrower jack, but looking at it again it can probably be squeezed in to the edge. Or, if I drop one PS/2 port then it can fit in that space.

Jack.

Link to comment
Share on other sites

Hey Jack, long time...

Go on Digikey and search for "SJ-3524", I think it's narrower than the current phono jack.

EDIT: I have Eagle land patterns for it also, I can send you if you plan to use it.

Also in keeping with the "random" theme, my 2 cents, please separate the SRAM LB and UB pins so we can have byte access. This will tremendously speed up certain operations that currently require a lengthy read-modify-write cycle. I know that I/O pins are at a premium but... :)

Link to comment
Share on other sites

  • 3 weeks later...
Guest evil_andy

I like the new 'slim' design, I do have to say though, one thing I've noticed on the v1.1 arcade wing is that only the ground tabs of the joystick ports are actually soldered to the board...  I noticed that when I was connecting and disconnecting the VGA port, it did seem to put quite a bit of strain on the pins.

Link to comment
Share on other sites

I'm actually thinking the second P/S2 port should be dropped in favor of DIP switches. Is there really any classic system we want to recreate that uses a mouse? I think they use keyboards and joysticks usually...

Jack.

one of the mame sets that i got to run on the 500/arcade wing is 'shoot the bull', a cheesy darts game, which requires a trackball.  i have no desire to play said game, but i figure its worth mentioning since in the end, a trackball and a mouse are not all that different.  having said that, if you remove a ps/2 port, it should be possible to repurpose the left over ps/2 port for a trackball/mouse, even if it needs to be a different project right ?

Link to comment
Share on other sites

Guest gmpundlik

We had added a 3-way DIP switch along with a reset switch on a earlier revision (never prototypes it though). If we retain everything else (including the two PS/2 ports, each uses only 2 IOs) and dropping 4 LEDs and 4 it switches gives 8 additional IOs out of which a 4 can be used with SPI mode SD-card and 4 more for something else. Of course, removing one joystick will again free 8 more pins, so we have 12 pin in all available, out of which 8 can be used for a 8-bit wing extension and 4 for some other use, perhaps another SPI interface and power on a 6-pin header, or even a miniature 4x2-pin, 4-bit wing with same power pin layout. I guess the new Megawing may not be as compact as Jack's design, but it should be ok for everything being accessible and offering enough extension options.

Link to comment
Share on other sites

  • 5 weeks later...

Ok, after mulling this design over for a while longer I felt it was best to replace the Joystick port with a Micro-Joystick and two general purpose buttons. This way people can still play the games even if they do not have a dedicated joystick yet. Joystick Wings can be added to the two open 8-bit Wing Slots. We can create new joystick wings for things like NES controllers or JAMMA controllers to supplement the Atari 2600 style Joystick Wing we currently have.

Attached is a picture of the new design, I wanted to see what people think before I send the design out to the PCB house tomorrow.

index.php?action=dlattach;topic=383.0;attach=213;image

Jack.

post-3-13431627492865.png

Link to comment
Share on other sites

not to beat a dead horse, but in theory could i remove the ps/2 ports, replace the resistors on the ps/2 ports with jumpers/0 ohm resistors and then use the i/o from there to read in a PISO shift register which is in turn connected to a dip8/dip16?

(which btw is basically how you read data from a nes/snes controller)

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.