Jump to content
IGNORED

ProSystem Emulator Update?


gstanton

Recommended Posts

Great job! Glad to see ProSystem get some needed updates. :thumbsup:

 

[...]

And if anyone has some clues for making it work as well as MESS, I'm greatly interested too !!

[...]

The most dramatic visual improvements can be had by:

 

1. implement DMA cycle penalties. Maria halts the 6502 while it updates the next line buffer. If these are implemented from the backport, make sure the correct number of cycles are used for each type of object Maria is drawing.

2. implement a maximum number of cycles for DMA. Maria will work on the line buffer only for a certain amount of time before it stops and returns control back to the 6502.

3. drop ProSystem's game specific kludges. e.g. DMA always starts 7 cycles after hblank, and this doesn't vary from game to game. These kludges are almost entirely in place due missing/incorrect emulation for points #1 and #2.

 

All of the details for DMA can be found in the latest MAME source. Check out draw_scanline() in src/mess/video/maria.c. Anywere "maria_cycles" is used or updated is relevant. The DMA related code is heavily commented.

  • Like 3
Link to comment
Share on other sites

One difference between Prosystem and Mame/Mess that I've run across when writing a game shows up in mode 320B. (The game is entirely in that mode)

 

In my initial early builds I found in mame and on hardware palette entries P0C1 and P4C1 would blacken out under certain conditions on hardware/mame, but would display the way I expected it to in prosystem. After some testing it seemed that if C1 was used in a pixel pair with just itself or the background color, both would end up taking the background color. Unsure if this became transparent or if it overwrote things under it. If C1 was used with either C2 or C3 in a pixel pair, then the C1 would display properly. After I started observing this rule in my sprite design we stopped seeing this pop up.

 

For example we got things like this in the earlier builds:

 

post-4460-0-12102900-1441558777_thumb.png

 

While most notable in the status bar in the letters, and on the player (which gets almost entirely wiped out), the gears are also slightly affected by it along the edges. The only reason the numbers aren't affected the same way is because they avoid using C1 (Which is the red.)

 

Link to comment
Share on other sites

Thank you for your answers !

 

@Dragonstomper : yes, of course I know MAME and MESS are now a one and single project. In fact, I used MAME 0.164 extensively these last days, as a reference for the 7800 behaviour (the 7800 I got a few years ago is out of order in fact, and I never tried to fix it... it deserves having got me interested in this console though). And indeed, what motivated me in enhancing Prosystem is its low CPU power need comparing to MAME, which makes it perfect for devices such as Android ones or such.

 

@RevEng : thank you for these indications! I already put a glance at the MAME 0.164 code, but I must admit it's quite more complex than the ProSystem one... with your information it'll be easier, and I'll do a few tests around that in the weeks to come.

 

@Mord : what you tell me is interesting, this makes me think about the few pixels which are red in the test from Midnight Mutants, or the red pixels which appear in BallBlazer when you don't specify the spécific hblank value in ProSystem.dat...

Link to comment
Share on other sites

...I'll do a few tests around that in the weeks to come.

 

What may save you some leg work is checking out RevEng's post here; especially the "7800 Test" ROMs provided.

They contain several tests to help measure how well an emulator stacks up against the real hardware.

 

Additionally, there is a plethora of information as it relates to 7800 hardware/timings/etc.

  • Like 2
Link to comment
Share on other sites

  • 4 weeks later...

Trying to set this up using EmulationStation as my front-end, and when I feed ProSystem 1.3f a ROM from it, the colors are all off and no blending of the rainbow effect of the BIOS. If at that point I reset the emulator, it just keeps having weird colors; but if I use the 'Open' menu command from within the running emulator and choose the same ROM (or any other ROM), the colors are fine... this happens whether I have a palette loaded or if I'm on the default, I'm running auto for region, and I have both BIOS files available.

 

Is there a command line switch I need or something? or is this just another bug? Really glad people are still working on this, as so far it's the most reliable emulator I've used for the 7800, but I need to get a front-end working with it for others in the house...

 

Thanks!

Link to comment
Share on other sites

  • 3 weeks later...

the colors are all off and no blending of the rainbow effect of the BIOS. If at that point I reset the emulator, it just keeps having weird colors;

 

Hi KhenemetHeru,

Thanx for your message as well as your interest in Prosystem emu.

I've already seen the bug you describe (well, the weird colors when in fullscreen at least), when I tried the emulator on my Windows Seven PC.

The bug doesn't seem to happen on Win XP though, afaik.

I'll try to fix this in the weeks to come, for the next release I'm currently preparing and which will have, at least :

- support for the light gun, emulated with the mouse

- correct management of the difficulty switches (F5/F6 keys)

 

Stay tuned ! :)

Link to comment
Share on other sites

Hi,

Here's a new release - Prosystem 1.3g - with the few enhancements I made in the last weeks.

So, now:
- the light gun is supported! For the 5 games which support it and via the prosystem.dat file, it is now activated by default (you still can de-activate the lightgun through the "Emulation" menu). Thanks to Raz0red for his lightgun related code in wii7800 ;)
- the lightgun timing isn't accurate enough (it isn't in wii7800 either), so some offset has been added in the prosystem.dat for x and y coordinates (raz0red has made the same type of hack, too)
- the difficulty switches now are correctly managed. Their states are displayed in the menu bar, on the upper right
- I've added some hblank values in prosystem.dat for a few games, in a hope to enhance the resulting emulation (graphical glitches) for these: for example, The "Commando" title screen is perfect now. Of course I know this isn't the definitive solution, but it's better than before though... (in the previous version, only BallBlazer had a hblank specific value).

What I've worked on too, but without great success (so far ?) :
- better overall emulation accuracy by using the Maria timing values from Mame, as suggested by RevEng
- excessive sound latency when starting a game from the command line. This seems to be a Windows API specific problem.
- on recent Windows versions, there seems to be some problems related to palette colors allocation when in full screen (I think this is the problem reported by KhenemetHeru). This seems to be Windows API related too.
- sound quality for PAL games. Not sure but I've the feeling it's related to overall timing issues.

I'll continue to work on these and keep you informed if I get any result.

As always, any feedback is welcome ;)

Enjoy!

ProSystem_13g.zip

ProSystem_1.3g_Src.zip

  • Like 4
Link to comment
Share on other sites

thanks for the info and the update JnO, I'll check it out, and yes, I read Trebor's post, I've stuck with MESS 0.159 as my alternative for now because I don't really want to deal with the unified MAME if I don't have to, but I'll probably try that too... the palette thing on fullscreen command-line is a real deal breaker for me because I want to make the family's experience as seamless/no-brainer as possible... but it's the only deal-breaker, everything else is flawless with ProSystem as far as I'm concerned, so hopefully it'll be something you can ultimately chase down.

Link to comment
Share on other sites

  • 5 months later...

Hi JnO, nice that you merged raz0red's changes from Wii7800. This is much welcomed after the hoarding that was going on for years by supposed 'respected' yet unethical members of the community that kept private builds of ProSystem among themselves with fixes and improvements...

 

Anyway, I sent raz0red a few patches upstream for fixing supercart games loading, a bit shift overflow and a database update that you may want to merge into your builds:

 

https://github.com/raz0red/wii7800/commits/master

 

I was also looking at another issue with Pole Position II where you apparently cannot select the two tracks on the left side of the screen with the joystick. According to the changelog for EMU7800 v1.3:

 

- Moved VBLANK OFF up by four scanlines, making the track selection screen in Pole Position II work with the joystick (thanks to Tom Hafner for the hardware report)

 

So I looked at changing the scanline count for NTSC and PAL to 258 and 308 respectively, and that corrected the track selection issue for Pole Position II in both regions of the cart. I'm not sure if this is the 'correct fix' or if this introduces any regressions, so somebody else that knows the hardware will need to chime in.

Edited by clobber
  • Like 1
Link to comment
Share on other sites

  • 4 months later...

I came across it and there are a few things which I'd like to see fixed. This is the only 7800 emulator that works on my computer, along with emu7800, and both have enough problems to make me have to use both for everything. (I couldn't figure out how to get MESS working but that's another issue)

 

First, button 1 never responds (I see this has already been pointed out though). I tried to configure it using my keyboard and a game controller. Neither works. My keyboard layout doesn't use the one you use, but I've tried around and worked the key mappings out a bit and still nothing (yours probably have a key between the left shift and Z, judging by the configuration page. This is probably the reason my R shift doesn't work).

 

Some roms don't play, like Asteroids Deluxe and Space Duel. Space Duel plays on Emu7800, but Deluxe on neither. On the contrary, Super Pacman plays on this emulator, but not Emu7800.

 

Also, the full screen feature always causes it to crash on my Windows 10 computer. It's possible that it's because of the wide screen, but basically, I am unable to use full screen.

 

It'll also be a good feature to include to be able to toggle the TV blurring effects on and off. Sometimes when I feel more realistic then I use this emulator (which always has the blurry TV effects) but sometimes when I'm making a video for a friend who really hates blurry and pixel graphics, I use the other (which only has the HD graphics, with no blurring).

 

If these are fixed then it'll be a very good 7800 emulator in my opinion (though I do wish the key configuration menu wasn't so confusing/inconvenient, especially with a controller, but that isn't a big problem, though I switch between keyboard and gamepad a lot).

 

By the way, I downloaded it from here: http://www.zophar.net/a7800.html

So I'm not sure if they got an older version and you've already fixed some of the bugs. They say their version is "1.3".

I don't remember if it's featured on AtariAge, but the only one that worked on my computer from the AtariAge list was Emu7800. That's why I didn't download it from this site.

 

The strong points of this emulator are that it lets you configure your controller (and has a few settings) and that it supports 2 controllers so I can play Robotron.

Edited by Tangentg
Link to comment
Share on other sites

  • 4 weeks later...

There's one more problem I noticed: The auto detection doesn't seem to work well cause Space Duel was a PAL game and i had to manually set it there to run the game.

Space Duel comes in both NTSC and PAL flavors.

 

If you are utilizing the PAL ROM version of the game, and the Prosystem emulator is interpreting it as NTSC, then its internal database file (Prosystem.dat) needs to be updated accordingly (Notepad works just fine). The emulator relies heavily on that file for making games run properly.

  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...
  • 1 month later...

Just trying out the prosystem emulator for the first time. I cant get the input to work for controller 1. I'm correctly defining actions for both my usb generic controller and my 7800 controller with and without my db9 multiadapter. I've also put the seagull 78 inline but no joy. Any ideas?

Link to comment
Share on other sites

  • 1 year later...

My computer stopped working so I got a new computer and when I tried running the emulator again, none of the ROMS work. I'm guessing I need to insert the BIOS file but when I click on Options, the BIOS option is greyed out so I can't insert it.

 

Edit: After I posted this post, the BIOS stopped being greyed out. Weird. I didn't do anything other than restart the program but the previous times I restarted it, it was still grey.

Edited by Tangentg
Link to comment
Share on other sites

  • 1 year later...

I can't get this to run on my Windows 10 PC. In full screen mode it locks and crashes and puts an error in the logfile:

 

- Failed to set the display mode to 640x480x8.

- Direct draw offscreen surface is invalid.


Also, I'm not sure which format or naming it expects the bios files to be in.

 

Link to comment
Share on other sites

Honestly, it's probably time to give up on prosystem emulator. It has a number of quirks, and isn't supported anymore.

 

If you're attached to the prosystem interface, then bupsystem emulator would be a good plug-in replacement. It's been very actively maintained.

 

There is of course there's the A7800 emulator too, which is also maintained, and has a lot of alternative controller support (super accurate lightgun emulation), debugger, etc. It's a fork of the MAME a7800 driver, and that may be a good or bad thing, depending on your opinion of MAME.

  • Like 1
Link to comment
Share on other sites

Thanks. I'm not too familiar with where things are in terms of emulation since I'm just starting to get back into it. I've got A7800 running and working with my Xbox controller. I was hoping to find some alternatives too so I have options. A7800 doesn't seem to have an option for scanlines which I was hoping for.  EMU7800 doesn't even run for me, and Prosystem is also not running. So that leaves me with just A7800 and MAME which isn't set up yet.

 

Link to comment
Share on other sites

2 hours ago, fiudr said:

 A7800 doesn't seem to have an option for scanlines which I was hoping for.

It's there in spades - when advance video options are enabled.  ?

 

The manual that comes with the A7800 emulator on page 19 demonstrates it. 

Pages 20-30 goes into depth on all the video configuration options.

 

The short of it...Change video from auto to bgfx:

 

image.png.defb4d19a224ed3f79715eb2e47fbf57.png==>image.png.ae54f8e9c092fff2d7f9073f295fc1c1.png

That will open up these settings for scanlines among a plethora of other video options:

 

image.thumb.png.002759215f67027536cfd0d4bab9aff2.png

 

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...