Felix

galaxian / alieninv / lizwiz

Recommended Posts

anyone got either of these to work properly ?

galaxian comes up but has no controls (i possibly need to rtfm if the

controlls don't match the pacman ones)

and lizwiz/alieninv wont even ?synthesize? for me.

on the other hand, i did get a few

pac-bootlegs (hangly, hangly2,ctrpllrp,pacfast [i forget what else]),

pac-man plus and jumpshot to work relatively easy...

Share this post


Link to post
Share on other sites

Hey Felix,

I'm going to start looking at these issues one at a time. For the first one, with Galaxian. I just downloaded the published source code and synthesized the project. It looks like the buttons are different, if you push the joystick up that will add a coin and start the game and then you can play as usual.

I haven't standardized this game yet, I need to work out the buttons so it matches Pac-Man and Scramble and then add a bmm file so the ROMs can be merged into the bit file. Once that is done we will be able to add galaxian to the Arcade Blaster app.

I'm going to look at alieninv and lizwiz next and will post a followup.

Jack.

Share this post


Link to post
Share on other sites

Ok, I see the problem with alieninv. Sometimes ISE will act funny when a file is missing and then added.  When you download the source code package the invaders_rom.vhd file is not included because it includes copyrighted ROM information. When you provide the ROM files and run the generation script it creates the invaders_rom.vhd file but ISE is confused. The solution is to go to the "Files" tab underneath the processes window and remove invaders_rom.vhd file from the project. Then add the file back into the project and it should find it and you can synthesize.

I'm going to work on a better solution to this, I think it will be better to include an invaders_rom.vhd file that is just zeroed out.

Looking at lizwiz next.

Jack.

Share this post


Link to post
Share on other sites

Ok,

Lizwiz is a little more complicated...

When I updated the PacMan source so that ROMs could be merged in without requiring synthesis I ran into a problem with Lizard Wizard. LizWiz uses a second block of BRAM to store its program code. It is the only Pacman based game that does so. Unfortunately it required one too many BRAMs then we have available on the P1 500K so I disabled the second block for program code.

In order to synthesize Liz Wiz you need to make the following changes:

Changes in pacman_video.vhd

Original:

  col_rom_4a : entity work.PROM4_DST
    port map (
      CLK        => CLK,
      ENA        => ENA_6,   
      ADDR        => col_rom_addr,
      DATA        => lut_4a
      );

Changed:

  col_rom_4a : entity work.PROM4_DST
    port map (
--      CLK        => CLK,
--      ENA        => ENA_6,   
      ADDR        => col_rom_addr,
      DATA        => lut_4a
      );

Original:

  col_rom_7f : entity work.PROM7_DST
    port map (
      CLK        => CLK,
      ENA        => ENA_6,   
      ADDR        => final_col,
      DATA        => lut_7f
      );

Changed:

  col_rom_7f : entity work.PROM7_DST
    port map (
--      CLK        => CLK,
--      ENA        => ENA_6,   
      ADDR        => final_col,
      DATA        => lut_7f
      );

Changes in pacman.vhd

Original:

--    Commented out for use on the Papilio board so ROMs can be merged into the bitstream. Not enough BRAM to include this for the Papilio One.
--  u_program_wiz : entity work.ROM_PGM_1
--    port map (
--      CLK        => clk,
--      ENA        => ena_6,
--      ADDR        => cpu_addr(12 downto 0),
--      DATA        => program_rom_dinh
--      );

Changed:

--    Commented out for use on the Papilio board so ROMs can be merged into the bitstream. Not enough BRAM to include this for the Papilio One.
  u_program_wiz : entity work.ROM_PGM_1
    port map (
      CLK        => clk,
      ENA        => ena_6,
      ADDR        => cpu_addr(12 downto 0),
      DATA        => program_rom_dinh
      );

Ok, now the final solution is going to be merging the ROMs that only require a couple of bytes into one BRAM file. Then lizwiz will fit into the available BRAMs and we will not have to worry about this.

Jack.

Share this post


Link to post
Share on other sites

Jack,

Thanks for looking into these issues. 

I will try them out tonight and report back.

As for Arcade Blaster, whenever gmpundlik replies

back to my email and hopefully he will tell me how to properly

merge filesets for the arcade blaster app, since 'out of the box'

it is capable of running so much more...

Regards,

Felix

Share this post


Link to post
Share on other sites

ERROR:HDLParsers:850 - "D:/GadgetFactory-Papilio-Arcade-Papilio_Arcade_Source_V1.0-1-gf953c2e/pacman_rel004_sp3e_papilio WOODPECKER/source/pacman_audio.vhd" Line 227. Formal port CLK does not exist in Entity 'PROM1_DST'.

ERROR:HDLParsers:850 - "D:/GadgetFactory-Papilio-Arcade-Papilio_Arcade_Source_V1.0-1-gf953c2e/pacman_rel004_sp3e_papilio WOODPECKER/source/pacman_audio.vhd" Line 228. Formal port ENA does not exist in Entity 'PROM1_DST'.

commented out CLK/ENA in pac audio vhd file, re-synthesized now got these errors ::

ERROR:NgdBuild:989 - Failed to process BMM information pacman_500k.bmm

INTERNAL_ERROR:(null):45 - Memory allocation leak of 112 bytes at 0x06E60A58 for a 'AddressMappingType' record.

INTERNAL_ERROR:(null):45 - Memory allocation leak of 44 bytes at 0x06EC1E20 for a StrNew.

INTERNAL_ERROR:(null):45 - Memory allocation leak of 88 bytes at 0x06DD3EB8 for a 'AddressMapType' record.

INTERNAL_ERROR:(null):45 - Memory allocation leak of 40 bytes at 0x06ED2858 for a 'symbol_context' record.

INTERNAL_ERROR:(null):45 - Memory allocation leak of 30 bytes at 0x06E22BE0 for a StrDup.

INTERNAL_ERROR:(null):45 - Memory allocation leak of 16 bytes at 0x06EC34C0 for a 'DataFileNameListType' record.

INTERNAL_ERROR:(null):45 - Memory allocation leak of 24 bytes at 0x06EC3788 for a 'AddressSpaceLinkType' record.

INTERNAL_ERROR:(null):45 - Memory allocation leak of 24 bytes at 0x06EC3308 for a 'AddressSpaceLinkType' record.

INTERNAL_ERROR:(null):45 - Memory allocation leak of 24 bytes at 0x06EC39C8 for a 'AddressSpaceLinkType' record.

INTERNAL_ERROR:(null):45 - Memory allocation leak of 24 bytes at 0x06EC3A58 for a 'AddressSpaceLinkType' record.

INTERNAL_ERROR:(null):45 - Memory allocation leak of 24 bytes at 0x06EC3AE8 for a 'AddressSpaceLinkType' record.

INTERNAL_ERROR:(null):45 - Memory allocation leak of 96 bytes at 0x06DD3F80 for 'void *' data.

i assume those are the ones you were talking about ?

Ok, now the final solution is going to be merging the ROMs that only  require a couple of bytes into one BRAM file. Then lizwiz will fit into  the available BRAMs and we will not have to worry about this.

do you mean concat the wiza/wizb to the end of 6e/f/h/j  into main.bin?

(sorry i am still very new to fpga stuff..) 

Share this post


Link to post
Share on other sites

Felix,

Ooops, you need to remove the bmm file from the project to get past that last error.

If you look at the mamedb page for Lizard Wizard you see at the very end that 7f.cpu is 32 bytes and the next three files are 256 bytes. The way things are setup now each one of those files is using its own BRAM block which wastes a lot of space. I'm thinking to merge those files into one BRAM block which should get us enough space for lizwiz.

Jack.

Share this post


Link to post
Share on other sites

Jack, those changes allow mspacmab (pacman w/ ms pacman overlays[ms pacman daughterboard] permanently installed) to work. ^_^

they probably allow other sets to work also. i will have to do some testing at some point

Share this post


Link to post
Share on other sites
Jack, those changes allow mspacmab (pacman w/ ms pacman overlays[ms pacman daughterboard] permanently installed) to work. ^_^

Really? Oh, that's cool, I tried to get Ms. Pacman to work at one point without luck... Good to hear you got it going. We definitely need to get you able to add the new games to the xml file in the Arcade Blaster.

Jack.

Share this post


Link to post
Share on other sites

On, another note.

I just cleaned up the Galaxian code and committed it to Github. The changes:

  • Fixed synthesis error, I include zeroed out vhdl files for the ROM VHDL files. There is no copyrighted information in the ROM files, but they are there now to prevent errors.
  • Fixed the start and coin buttons, they behave as expected now.
  • Added everything needed to merge the galaxian ROMs into a blank bit file. We can add galaxian to the Arcade Blaster app now.

I haven't made a new release yet because I'm going to see if I can straighten out the Lizard Wizard situation.

Jack.

Share this post


Link to post
Share on other sites

very cool. i will be sure to pull it in a bit :)

as for lizwiz, what i am wondering is, with the changes that you posted above, to get lizwiz to run,

will the other pacman hardware based games still work ?

will try that tonight.

i basically copied "pacman_rel004_sp3e_papilio" to "pacman_rel004_sp3e_papilio-woodpecker" and did the mods you suggested, and lizwiz worked peachy. (after deleting the bmm file)

Share this post


Link to post
Share on other sites

as for lizwiz, what i am wondering is, with the changes that you posted above, to get lizwiz to run,

will the other pacman hardware based games still work ?

will try that tonight.

i basically copied "pacman_rel004_sp3e_papilio" to "pacman_rel004_sp3e_papilio-woodpecker" and did the mods you suggested, and lizwiz worked peachy. (after deleting the bmm file)

nope doesn't work... means we need a different .bit file to merge with for arcade blaster? or maybe someone who understands these vhd's better than me :)

Share this post


Link to post
Share on other sites

*nod* thats a good site.  i ran across it while trying to find out more about the Ms PacMan daughter board.

i have been using the pacman.c source file from MAME to see what should run on the hardware.

Share this post


Link to post
Share on other sites

On, another note.

I just cleaned up the Galaxian code and committed it to Github.

  • Fixed synthesis error, I include zeroed out vhdl files for the ROM VHDL files. There is no copyrighted information in the ROM files, but they are there now to prevent errors.

I have the source code (and hence rom images when I get it assembled) for a game that runs on galaxian hardware  written by a friend. He is OK for them to be made available, so let me get it sorted and I can post it up here (or work out how github actually works!)

I also have an alternate raster doubler for invaders that inverts the picture to the same as normal ways, it has a couple of 'magic numbers' in to centre the screen that I don't totally understand why they need to be the values I use, but if you are OK with that and still need it, then I can upload that as well.

Share this post


Link to post
Share on other sites

That would be greatly appreciated! Flipping the Space Invaders picture would be great and if your friend has some non-commercial ROMs for galaxian that we can include with the Arcade Blaster application that would be great.

Submitting contributions as a Github pull request is always appreciated, but it is a bit of a hassle so if you just want to post to the forum that is just fine. :)

Jack.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now