XaiJu
Coin-Op Collection
Coin-Op Collection

patreon


Coin-Op Collection Presents: WWF WrestleFest (RC1)

WrestleFest FPGA Core for Analogue Pocket (Beta/ RC1)

Well, the time is upon us folks, here it is, WrestleFest for the Analogue Pocket. It is an absolute blast to play with your friends and Technos did a great job on the spritework for being a limited palette.

The core runs smooth and stable at 98Mhz on the SDRRAM and master system clock. The resolution is 320x240.

But first, some backstory. There's a story to every single board and game I own in my collection. I don't buy any game that I don't have some kind of personal connection to in the past. For me, WrestleFest was a game I remember the car service around the corner from my house used to have. I used to go there all the time to play the arcades, and there was also a laundromat next door to that and Italian bakery across the street they had games as well.

Growing up, I was a big pro wrestling fan. I certainly played this game and other wrestling games. I watched WWF and WCW shows on video tapes and on TV constantly, and my Dad, when he was alive, also took me to some of the shows and meet and greets when I was young.

To me, this game means a lot. It brings me back to the good old days, and also reminds me of my Dad. So, I hope you enjoy playing this game as much as I did.

Development Notes:

Making the base platform was a short project for me, because now I have a lot of experience, but the real board was necessary to make the core function properly. There is a lot of documentation on this platform in Raine and MAME, however, some of it is inaccurate and had to be verified against the real board. The implementation in MAME also has some glitches that I noticed late in development so I had to go back and check the board for those details. So, overall, it wasn't a bad project, and I gained some useful experience as always. However, had someone used MAME as their only source, the core would not work properly. There are critical pieces concerning the video layer buffer timings/ sequence as well as interrupts that are not implemented correctly, thereby causing some glitches. I will document the Technos 16-bit Platform in another post and/or video so that other developers may amend MAME and other emulators with the features and make it work as intended without glitches.

atrac17 did a great job on testing as always, and helped me uncover bugs in the process. He also did the peripheral devices programming and inputs, which he is an expert in.

Thanks to Darren for confirming and analyzing the video display timings and giving me a refresher!

Installation Notes:

This core has a slightly different procedure than other cores, in that there is a rom build script that also needs to be executed to decompress the graphics data in an optimal way to cut down on SDRAM reads and make everything more efficient. I felt it to be a waste of resources programming this system in verilog, and it wouldn't be like how the real board functioned anyway, so I thought a pre-processor script was better and more efficient.

Anyway, the real board graphics are arranged in segmented bitplanes and use RLE compression. There are buffer RAMs attached to each of the segments (4), and they are buffered out, decompressed, and eventually merged together to get the pixel data out (via a Technos custom chip that handles the interface).

So, do to this scheme properly in an FPGA core, I would need to arrange the data in a merged format that has all the bitplanes pre-combined. Otherwise, I would have to do quadruple the number of reads per pixel that I would normally do (because each of the bitplanes is in a disparate section of the ROM, causing non-sequential address reads). Since the game writes heavily in hblank, line buffer out occurs at the end of horizontal sync, so it may not really enough time to be doing all those fetches for rendering 4 layers. Plus, it taxes the SDRAM more and creates instability issues.

By the way, storing the data in this way, the developers of the game achieved a 50% compression ratio. Since the bitplanes are separated and compressed with RLE, the individual bitplane data is of course highly redundant, leading to a higher compression rate. Technos is really smart though, and you will see in my detailed platform post about their design and architecture for the platform.

Install Directions (Windows):

1) Please install Python (latest version is ok) on your system. Do not use version 2.x. This is needed to run my custom script.

2) Unzip the package somewhere on your computer (these instructions are for Windows computers).

3) In the root folder, you should have mra.exe, assemble_wf.bat, technos_gfx_repack.py, pocket_dist and mra objects.

4) Take a look at the mra/ folder to confirm the MRA for your rom version.

5) Put the ROM zip file in the root folder.

6) EDIT the assemble_wf.bat to point to the MRA for your ROM and save (default is WORLD version).

7) Double click the batch file to run it.

8) After some time, there will be a wrestlefest.rom file outputted in the pocket_dist/Assets/wrestlefest/Common/ directory.

9) Copy the contents inside of pocket_dist (ie. Assets, Cores, Platforms) to the root of your Analogue Pocket SD Card. It should merge in the folders in your existing structure.

10) Play!

-pram0d

Coin-Op Collection Presents: WWF WrestleFest (RC1)

Comments

just join in the fun where and how i can installed cores on the pocket?

norman george

https://twitter.com/_atrac17/status/1779256402847863183

atrac17

Got a link. Can't find it.

Frank McDonald

You have! Just tweeted instead.

atrac17

Have i missed the followup post?

Frank McDonald

Amazing - any chance you'll make it work for Mister? Would love this on my Mistercade! Thanks!

MichaelColeFan

Good going. Only FPGA patron I am on now. And it delivers.

80's spaceman

Thx for this game. Will pacland be the next game.

HT

I've removed the alts until I have time to investigate.

atrac17

Oh okay. I'll see if I can test the others this weekend and let y'all know if I see anything else that needs to be looked at. The only ROM I don't think I have is the original US one as it throws up a missing roms error when I try to make that MRA, but the US set 2 works on that rom just fine (wwfwfestu).

Rachel Schaeffer

World is the only tested ROM since inserting our names into the game. I'll take a look at all of them, probably has to do with that.

atrac17

Just to let y'all know, the US rom freezes at the start of the tag match but the world one is working fine so far. Haven't tested the others yet.

Rachel Schaeffer

Thanks for this release pramod! Appreciate your time and effort mate, especially with helping preserve this wrestling title!! Obviously thanks to attract and Darren and anyone else behind the scenes too, everyone's input in the coin-op collection has been a blast. Churry.

Rautz

Fantastic work on the GOAT arcade wrestling game! Thanks to all involved!

Louis Martinez


More Creators