Main Restorations Software Audio/Jukebox/MP3 Everything Else Buy/Sell/Trade
Project Announcements Monitor/Video GroovyMAME Merit/JVL Touchscreen Meet Up Retail Vendors
Driving & Racing Woodworking Software Support Forums Consoles Project Arcade Reviews
Automated Projects Artwork Frontend Support Forums Pinball Forum Discussion Old Boards
Raspberry Pi & Dev Board controls.dat Linux Miscellaneous Arcade Wiki Discussion Old Archives
Lightguns Arcade1Up Try the site in https mode Site News

Unread posts | New Replies | Recent posts | Rules | Chatroom | Wiki | File Repository | RSS | Submit news

Poll

Does The Forum Think: That hardware 3D Acceleration being incorporated into MAME, would be a good idea.

Yes!! Bring it on!! I Want Mame to play those damned slow 3D Games Properly!
No, I think it's a bad idea, Mame is not about playing games, it's purely about archiving them.
I use other emulators when I want to run the games that won't run in MAME (eg Nebula)
Who Cares!!
  

Author Topic: Hardware 3D Acceleration In Mame  (Read 30249 times)

0 Members and 1 Guest are viewing this topic.

Fozzy The Bear

  • Handbags at dawn in here!!!
  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1831
  • Last login:September 18, 2011, 11:29:59 am
  • It's Been One Of Those Days... Don't Ask!
Re: Hardware 3D Acceleration In Mame
« Reply #40 on: February 23, 2008, 07:14:08 am »
Lets face some facts guys.... They're reverse engineering encrypted chips to make them run in an emulation where the protection is cracked out and is running on a modern piece of hardware, they're now even releasing a version that runs on dual core and quad core processors, precisely what is original apart from the Rom Dump code and even some of that is cracked to remove protection. So it's hardly any less original to be writing Direct X drivers and making it run as efficiently as possible with our modern hardware. It already isn't running on original arcade hardware.

The fact is, that as we know they don't want to do it. It has nothing to do with copyright infringement at all. All they want to do is pick every piece of arcade hardware to pieces to find out how it works. It's like a kid pulling a radio or a clock to bits to find out where and what all the parts are for. It's a purely academic mental exercise for them and it's clear that that is all they see it as.

Which is why they don't care what end users want or need. The end application is simply not their objective. Lets face it this is exactly why Microsoft has such a piece of defective bloatware in Windows.

I'm kind of in two camps here, mostly because I'm hearing what several people are saying in this forum and finding that I agree with almost all of it.  On the one hand I do indeed understand and acknowledge and appreciate the huge amount of work and effort that is put into Mame. But on the other hand it has no actual application objective, which makes it a little pointless.

I'll absolutely acknowledge that it's their software and they can do as they please with it. They have the absolute right to determine what their own objectives are and how they want to proceed with them. Even if other people think it's just a pointless mental exercise if they don't apply it. That doesn't mean we don't, similarly, have a right to say that we think that. Nor does it mean that we don't have a right to say that we think they really need to consider using accelerated hardware, which is no less or more original than the rest of the hardware we're running this on.

Best Regards,
Julian (Fozzy The Bear)   
Most bottles and jars contain at least twenty-five percent recycled Pacman.
And research indicates that Space Invaders are strongly attracted to people who have recently eaten meat pies.

SavannahLion

  • Wiki Contributor
  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 5986
  • Last login:December 19, 2015, 02:28:15 am
Re: Hardware 3D Acceleration In Mame
« Reply #41 on: February 23, 2008, 10:52:04 am »
Quote
What about when some of the more recent games hit the market? How could MAME ever hope to properly emulate games like Police 911 (aka Police 24/7)? WTF are they going to do? Assign body movements to keys so people can use their DDR pads for motion? That would be an insult.

Eye Toy does a pretty good job in that department.

Thank you for missing my point.

All they want to do is pick every piece of arcade hardware to pieces to find out how it works. It's like a kid pulling a radio or a clock to bits to find out where and what all the parts are for. It's a purely academic mental exercise for them and it's clear that that is all they see it as.

Exactly.

Fozzy The Bear

  • Handbags at dawn in here!!!
  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1831
  • Last login:September 18, 2011, 11:29:59 am
  • It's Been One Of Those Days... Don't Ask!
Re: Hardware 3D Acceleration In Mame
« Reply #42 on: February 23, 2008, 10:59:02 pm »
MMmmmm! Not even a single comment from a Mame Dev....... I wonder if they even noticed.

Best Regards,
Julian (Fozzy The Bear)
Most bottles and jars contain at least twenty-five percent recycled Pacman.
And research indicates that Space Invaders are strongly attracted to people who have recently eaten meat pies.

taz-nz

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 147
  • Last login:June 12, 2019, 10:12:13 am
  • If all else fails burn the manual!
Re: Hardware 3D Acceleration In Mame
« Reply #43 on: February 24, 2008, 02:03:56 am »
MMmmmm! Not even a single comment from a Mame Dev....... I wonder if they even noticed.

Best Regards,
Julian (Fozzy The Bear)

 :soapbox:

They probably have , and are probably ignoring the whole thread, aleast I hope they are.

They probaby haven't replied for the same reason I haven't until now, to reply to this rubbish only lends you more crediblity, where the best thing that can happen with this thread is that it falls of the bottom of the page and is forgotten.

Half the people in this thread have no clue what MAME is about or how complex emulation is, there are atleast a dozen comments that show complete lack of knowledge of how MAME works and how ROMS are handled. MAME is about reproducing the way games were in the arcade on the original hardware as closely as possible, and documenting how they work to get there. It's not about playing games thought that's what most of use are in it for.

Hell it would be great to be able to play any number of games at full speed on a mid range PC, but if it means the games no longer run and look like they did in the Arcade, Then what's the point of MAME as a emulator?  There are any number of ports, remakes and copies of most arcade games out there if you just want to play the games, most are hack jobs that have been made to suit their new plateform, But Ha you can play them on an average PC with 3D acceration who cares if it's not the same, the Dev's do and so do a large part of the MAME community, and that why MAME works the way it does, the Dev's have total control over the final results this way, everyone get to play the game as it was in the arcade no matter their hardware, their PC may run it slow but it looks and works just like it did in the arcade.

Now even if you overlooked the fact that no two 3D graphics card models produce the same results, and didn't care that a few things we a little of with some hardware setup, and you went the way of 3D acceration, do you have any idea how complex it would be to design a wrapper for each and every custom graphics chip used in the arcade, it's not like the programming in the roms is going to suddenly change to suit Directx hardware, the basic function of these chips may be the same but the call command are totally different, so you still need to emulate the rest of the system, map the entire graphics GPU and then write a customer wrapper to translate the commands coming for the emulated CPU into something the Directx API can understand, one effect may take a dozen command calls for Directx to preform, where as on it's native hardware it's was only one command. Then once you've manage to make the wrapper so all the data can be feed to your shiny 3D graphics card, you still have to deal with the GPU and the emulated CPU(s) getting out of step, the timing issues would be a nightmare to sort out.

Then you have to realise that you just done twice the work to get the same result, you still have to map the entire original harware, emulate multi chips, process all the graphics commands, and then translate them to another set of command and hand them off to the GPU, then check that the GPU stays in step with the rest of the emulation, it doesn't fix anything in just make for more problems.

Most of the games that are unplayable are not because of preformace, overclocked Core 2 Duo's fixed that issue, it's because the mapping and emulation of the original hardware is incomplete, atleast a third of what is in MAME runs on undocumented or barely documented custom hardware, the fact the Dev's manage to work this stuff out as fast as they do is incredable.

I challage anyone here that wants 3D hardware acceleration to write a Directx wrapper for any of the custom 3D graphics chip used in the arcade.
It took years to perfect the glide wrappers for 3DFX hardward and the glide API was open source and shared functions with OpenGL, most of the emulaters that support 3D acceration do so only on 3DFX based games because the wrappers have already been written.

Maybe with the move towards stream processoring on graphics card, their outputs will become standardised enough the Dev's can put them to use without changing they way the games look and feel, but even then it's more likely that the GPU will end up being used as sum sort of co-processor doing floating point calculations and feeding the results back to the CPU to handle the timing and final output.





   
« Last Edit: February 24, 2008, 02:08:33 am by taz-nz »

MaximRecoil

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1729
  • Last login:September 12, 2022, 09:50:44 pm
Re: Hardware 3D Acceleration In Mame
« Reply #44 on: February 24, 2008, 04:41:12 am »
Come to think of it, I have never heard of anyone actually downloading and examining the MAME code to figure out how to repair or replace some esoteric IC or component on an arcade PCB.

Now you have - link

Quote
Hey all,

I took at look at the Mame source and it does a good job of laying out the protection ports.

It didn't seem too big, so I converted the logic into VHDL, added the additional bits needed for implementing with a z80 and suprisingly it fitted nicely into a 72 macrocell xilinx part.

I've made up a simple carrier board and it's all running like clockwork. Here's the source code, JED and UCF file for the pinout. Soon as I have some more time I'll put up the PCB files for it.

 Super Punchout Protection on a Xilinx CPLD

The layout was simple enough to use a single sided board, gotta love programmable I/O's. It'd probably fit into an Altera or Atmel part too.

I've only completed two levels as I'm really not that good at the game ;) But not problems so far. Should there be bugs anyone can update the code.

- James

And from his page that he linked to:

Quote
Thanks must to the mame guys for figuring out the I/O port usage. Plus doing such a good job of documenting it in the punchout driver !

Good work guys !!!
« Last Edit: February 24, 2008, 04:44:35 am by MaximRecoil »

Loafmeister

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 487
  • Last login:December 08, 2020, 03:21:17 am
Re: Hardware 3D Acceleration In Mame
« Reply #45 on: February 24, 2008, 03:55:41 pm »
I haven't read the entire thread so my apologies if this was already written somewhere.

If I recall, aside from the main point of mame being a "documenting" project, their goal is also to make code that is easily portable to other platforms.  IMHO, the reality of adding hardware acceleration would probably fall outside of the portability, tying them to a select few platforms as they would need to take into consideration the different platforms (PC, Mac, PSP, XBox, etc, etc), vid hardware (different video cards) and API's (Direct X, OpenGL, etc).

I think Zinc, etc will need to do for now.

Fozzy The Bear

  • Handbags at dawn in here!!!
  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1831
  • Last login:September 18, 2011, 11:29:59 am
  • It's Been One Of Those Days... Don't Ask!
Re: Hardware 3D Acceleration In Mame
« Reply #46 on: February 24, 2008, 07:27:55 pm »
They probaby haven't replied for the same reason I haven't until now, to reply to this rubbish only lends you more crediblity, where the best thing that can happen with this thread is that it falls of the bottom of the page and is forgotten.

I'm not sure why I'm even bothering to reply to this, given that you don't seem to have any manners whatsoever. What is it with you, that you can't post a reply to anything without insulting people before giving your usual complete garbage and ranting.

Hell it would be great to be able to play any number of games at full speed on a mid range PC, but if it means the games no longer run and look like they did in the Arcade, Then what's the point of MAME as a emulator? 

What utter and complete hogwash.... Who said anything about having games not look or play like they did in the arcade?  Nobody proposed any change whatsoever to the way they look or play. It's entirely about moving the speed they play closer to the original.

They already don't look or play like they did in the arcade. Who runs Mame on an intentionally badly adjusted monitor, with a bit of colour bleed and screen bow for good measure, just to get them to look how they did in the arcade?? Answer: NOBODY!! The majority of people already run it on PC monitors, and the majority of people (excepting here) don't build replica cabinets or run original arcade monitors to do it. So it already isn't anything like the original arcade.

Most of the games that are unplayable are not because of preformace, overclocked Core 2 Duo's fixed that issue. 

You just screwed the pooch on your own argument..... Now you're telling us that running multi thread code on multi core processors (which hadn't even been invented when 99.99% of these games were in commercial use) from inside Mame, is acceptable to increase speeds, but running 3D Hardware from inside Mame is not. Geeezzzz  :dizzy:

Your irrelevant rants might get given more credance or have more notice taken of them, if you didn't spend your time insulting the people you are trying to convince!!

Best Regards,
Julian (Fozzy The Bear) 


 
« Last Edit: February 24, 2008, 08:33:42 pm by Fozzy The Bear »
Most bottles and jars contain at least twenty-five percent recycled Pacman.
And research indicates that Space Invaders are strongly attracted to people who have recently eaten meat pies.

Afterburner

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 164
  • Last login:July 27, 2016, 01:02:00 am
Re: Hardware 3D Acceleration In Mame
« Reply #47 on: February 24, 2008, 07:48:10 pm »
What i would LOVe to see though, is the ability to offload some of the processing over to the GPU.  I've seen applications for this before and that might be an interesting compromise.

This is *exactly* the direction the code should be going....at least for emulating games which used a separate processor for shading/texturing, etc.  It would be a slightly more accurate emulation that just depending upon the primary CPU to pretend to be the primary and graphics chips used in the original.

I say go for it!
  2-player upright dual trackball / dual 8-way rotary joysticks - built from scratch

hbm*rais

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 116
  • Last login:September 03, 2010, 08:43:44 pm
  • Relaxen und watchen das blinkenlichten!
Re: Hardware 3D Acceleration In Mame
« Reply #48 on: February 24, 2008, 08:33:05 pm »
I don't think things have to be necessarily one way or the other. If MAME were to include a plug in architecture, as found on N64 and DC emulators, you could have it both ways. The 3D load could me sent to an emulated GPU, and be "correctly" emulated the way MAMEDevs seem to prefer, or it could be mapped to an API (OpenGL, D3D...) that would use the real hardware you have on your PC.

MAMEDevs could concentrate on the emulated GPUs, let other people develop the mapping plug ins.

Then again, perhaps MAME is not the best framework for that kind of emulation. Perhaps MAME should be left alone and unpolluted with its "monolithic" emulation and another plug in based emulator should be created to deal with the new challenges.


Fozzy The Bear

  • Handbags at dawn in here!!!
  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1831
  • Last login:September 18, 2011, 11:29:59 am
  • It's Been One Of Those Days... Don't Ask!
Re: Hardware 3D Acceleration In Mame
« Reply #49 on: February 24, 2008, 08:41:50 pm »
Then again, perhaps MAME is not the best framework for that kind of emulation. Perhaps MAME should be left alone and unpolluted with its "monolithic" emulation and another plug in based emulator should be created to deal with the new challenges.

That actually makes a lot of sense.... Mame runs the classics up to the early 90's reasonably well. The problems really come with CHD and genuinely 3D games. It might be worth calling a cutoff date and developing a new architechture for other games after that date.  That said, there's no reason why that new architechture couldn't be incorporated into Mame and run when it needs to be.

Not that it hasn't already been done.... as I mentioned earlier, Aaron Giles developed a piece of test software, as a specific emulator for one 3D game a while ago. It's not impossible to do. Nobody is suggesting that it's easy to do either though. That one 3D game has technical derivatives, that lead down the line as far as games like "Tokyo Cop" and "ATV Trak" on very similar original hardware.

To be honest the games in the arcade do get to a point where no emulation is required, when they start running the original hardware on PC's and Linux Boxes. The downside here is that we will at some point end up having to emulate obsolete 3D graphics cards in order to get it to run. Then I suspect, we'll be back in the same boat again.

Best Regards,
Julian (Fozzy The Bear)
« Last Edit: February 24, 2008, 09:06:13 pm by Fozzy The Bear »
Most bottles and jars contain at least twenty-five percent recycled Pacman.
And research indicates that Space Invaders are strongly attracted to people who have recently eaten meat pies.

ark_ader

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 5645
  • Last login:March 02, 2019, 07:35:34 pm
  • I glow in the dark.
Re: Hardware 3D Acceleration In Mame
« Reply #50 on: February 24, 2008, 08:42:43 pm »
There is a great danger of the MAME team wrapping things up.   :cry:

The major portion of popular emulated games have pretty much been assimilated.

With comments like Fozzy's (which is to his credit, a reasonable request) can tick someone off and just make the whole scene go underground.  Besides they are doing these efforts for their own ends right?

And we are living in Disneyland in the process.  When we were 12 years old playing Donkey Kong, did we ever imagine we would have a whole arcade with 4000+ machines?   The mamedevs made it possible, so we should respect that and let this thread die away..........
If I had only one wish, it would be for three more wishes.

hbm*rais

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 116
  • Last login:September 03, 2010, 08:43:44 pm
  • Relaxen und watchen das blinkenlichten!
Re: Hardware 3D Acceleration In Mame
« Reply #51 on: February 24, 2008, 10:32:58 pm »
To be honest the games in the arcade do get to a point where no emulation is required, when they start running the original hardware on PC's and Linux Boxes. The downside here is that we will at some point end up having to emulate obsolete 3D graphics cards in order to get it to run. Then I suspect, we'll be back in the same boat again.

I don't know about no emulation being required for x86 based arcade machines. You'll still have problems with drivers and protection devices. The situation must be akin to trying and running MacOS X x86 on a generic PC. Yes, it runs natively on your CPU, but it cannot speak to your Brand X NIC/HDD Adapter/GPU..., because Apple never used a Brand X NIC/HDD Adapter/GPU... on a real Mac.

You'll end up with a kind of VMWare environment with every NIC/ATA/SATA/GPU/Chipset... ever used on an arcade either emulated or mapped to an abstraction layer.

brandon

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 807
  • Last login:October 19, 2023, 03:08:43 pm
  • I <3 arcade games.
Re: Hardware 3D Acceleration In Mame
« Reply #52 on: February 24, 2008, 11:12:16 pm »
well.. if Mamedevs have already emulated nearly all of the classics, and can't or wont try to emulate more modern games for fear of legal ramifications, then what else is really left for them to do?  Sure there are tweaks and bugfixes for existing games but in general is there anything significant left?  I remember when I used to go to the WIP page every month and get excited about new games coming out.  They havent done that since 2004 because I guess there really isnt anything to get excited about in the way of new, playable games.  I'm not saying that's the Mamedevs faults or that they've let anyone down because they havent by any means!  I just think maybe PC power will have to catch up before emulation can proceed.   HEck, look at console emulation.   Consoles from the last 10 years are just too complicated to emulation at full speed.   When do you think we'll see a PS2 or gamecube emu with the compatibility and speed of the 16-bit console emulators?  It will be a while.. and there really isnt any point since you can go right out and buy last gen consoles for nearly nothing.   Maybe what we should be doing is pressuring the original developers of more modern games to make arcade perfect PC ports. 

OTOH, I really do like the idea of a HLE, plugin based emu like PJ64... but I dont know if anybody out there wants to tackle that with all the different arcade hardware out there...

purpledrillmonkey

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 20
  • Last login:September 27, 2011, 02:50:08 pm
  • PRESS P1 START
Re: Hardware 3D Acceleration In Mame
« Reply #53 on: February 25, 2008, 02:32:50 am »
I'm obviously a new guy in this world of MAME, but I have a few points I would like to counter and table in this debate...

everyone get to play the game as it was in the arcade no matter their hardware, their PC may run it slow but it looks and works just like it did in the arcade.

First off, this statement kind of surprises me.  Without even debating whether or not 3d acceleration should be used, this statment , to me, is just incorrect.  My prime example is NFL Blitz.  MAWS currently suggests that this game is supported and is well emulated in MAME, which by your logic suggests that everyone is getting to play the game as it was in the arcade.  I personally do NOT recall chopped up sound and an unplayable frame rate in the arcade release, but perhaps I am mistaken.  Blitz doe NOT "look and work just like it did in the arcade." because it was playable in the arcade, and it is NOT playable in MAME without very high-end hardware.  Perhaps the emulated hardware functions much like the arcade hardware, but this is not the same as the game running as it did in the arcade.

Quote
Now even if you overlooked the fact that no two 3D graphics card models produce the same results, and didn't care that a few things we a little of with some hardware setup, and you went the way of 3D acceration, do you have any idea how complex it would be to design a wrapper for each and every custom graphics chip used in the arcade

no I do not have any idea how complex it would be, but i would also be willing to bet it is not simple to emulate every custom graphics chip used in the arcade with software.  Perhaps someone more knowledgeble should weight the costs and benfeits of such an endeavor?  Incidentally, you are correct that two different 3d card models can produce different results, but by that same train of thought, two different CPU's also do not produce the same results.  Somehow we have managed to run MAME on everything from Pentium  166's to Athlon X2 5000+'s.  I would doubt graphics cards would pose too much of a problem in this department since Direct X and OpenGL can handle some of the compatability issue you are referring to here.  I could, of course, be wrong on this point as 3d acceleration is not my line of work ;) .

Quote
Then you have to realise that you just done twice the work to get the same result, you still have to map the entire original harware, emulate multi chips, process all the graphics commands, and then translate them to another set of command and hand them off to the GPU, then check that the GPU stays in step with the rest of the emulation, it doesn't fix anything in just make for more problems.

so you are saying that by dumping 3d rendering to the GPU and saving CPU cycles, there will be no increase in performance?  I guess I can unplug my videocard and play Crysis with my onboard graphics processor.... good to know.  I'm not saying that it isn't less work to use 3d acceleration, but assuming it is done in a fashion comparable to 99.99% of the 3d software avaliable, it is guaranteed to increase performance.

Quote
Most of the games that are unplayable are not because of preformace, overclocked Core 2 Duo's fixed that issue, it's because the mapping and emulation of the original hardware is incomplete, atleast a third of what is in MAME runs on undocumented or barely documented custom hardware, the fact the Dev's manage to work this stuff out as fast as they do is incredable.

As i mentioned earlier, Blitz is apparantly emulated well in MAME, its not an incomplete piece in MAME at all.  Yes the OC'd C2D processor will work to play it decently, but how is this any different than using a GPU in the grand scheme of things?  The power of that processor is unparalleled by anything avaliable from the mid to late 90's, yet it is fine to use to emulate the arcade machine, while using a 3d accelerator is considered taboo to use because the original arcade game didnt use it? please....

Quote
I challage anyone here that wants 3D hardware acceleration to write a Directx wrapper for any of the custom 3D graphics chip used in the arcade.

im not sure that is the point here, nor is your comment constructive.


now, all of that being said, I can't say I would support or denounce 3d acceleration in MAME.  To me there are two sides to this, and only a MAME dev could clear up which side MAME truely sits on.

1: MAME is meant to duplicate arcade HARDWARE.  ie- MAME code is an exact replica of arcade machine code.  In this case, 3D Acceleration is a no-go.

2: MAME is meant to duplicate arcade GAMEPLAY.  ie- The sounds, colors, controls and overall experience of the arcade machine are exactly replicated.  In this case 3d acceleration can/should be used ONLY to better duplicate the play experience.

Option 1 is what I believe the currently promoted goal of MAME is, although in most of the official statements I have read, there is some grey area.

Anywho just my 2 cents.

brandon

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 807
  • Last login:October 19, 2023, 03:08:43 pm
  • I <3 arcade games.
Re: Hardware 3D Acceleration In Mame
« Reply #54 on: February 25, 2008, 03:00:59 am »
I think that the Mamedevs could accurately emulate arcade hardware and still offload some of the processing to the GPU.   Mame already has Hardware stretching and filtering.. and the sound effects in game make use of APIs right?  so why not do the same with the graphics in 3D games?  Perhaps some programmers will come along to create an offshot of Mame that could focus on such games. ???  Hell, I large percentage of people play Mame on a PC monitor and a keyboard.. How accurate is that?  seems if Mamedev were so concerned about duplicating arcade hardware then Mame wouldnt even have keyboard or mouse support, especially for light gun games, since that should be considered an unauthentic "hack"

taz-nz

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 147
  • Last login:June 12, 2019, 10:12:13 am
  • If all else fails burn the manual!
Re: Hardware 3D Acceleration In Mame
« Reply #55 on: February 25, 2008, 05:32:19 am »
Quote from: M.A.M.E. Dev's
MAME®, the Multiple Arcade Machine Emulator
Copyright © 1997-2007 by Nicola Salmoria and the MAME team

I. Purpose
MAME is strictly a non-profit project. Its main purpose is to be a reference to the inner workings of the emulated arcade machines. This is done both for educational purposes and for preservation purposes, in order to prevent many historical games from disappearing forever once the hardware they run on stops working. Of course, in order to preserve the games and demonstrate that the emulated behavior matches the original, you must also be able to actually play the games. This is considered a nice side effect, and is not MAME's primary focus.

It is not our intention to infringe on any copyrights or patents on the original games. All of MAME's source code is either our own or freely available. To operate, the emulator requires images of the original ROMs, CDs, or hard disks from the arcade machines, which must be provided by the user. No portions of the original game code are included in the executable.

It's there in black and white (or black & blue in this case because I'm quoting) Mame is about documentation and preservation, not gaming. Now maybe I'm just getting old, but those are very noble goals to have, without M.A.M.E. all the arcade games we played in our youth and still do today thanks to M.A.M.E. would be lost to history within a couple of generations at best, M.A.M.E. primary goal is to prevent that from happening and that is where it's strenght lies. Where as most emulators exist only to make games playable on another hardware plateform and little more, they soon fall victum to a loss of interest once the most populer games are working, You can find the rallics of dozens of dead emulation projects on the Interent, projects that were never completed, they reached a point in their developemnt and then just slowly died out. M.A.M.E. will go on as long as their a people interest in presevation of all Arcade games, and that is why I believe it has a long life ahead of it, long after all the populer games are fully emulated their will be someone in M.A.M.E. still interested in cracking encryption on sum game none of us have heard of, and couldn't care less about, just because it there and without it M.A.M.E. would be incomplete.

I Hope there is never a version one of M.A.M.E. until the every last acrade machine ever made is emulated, only on that day should the counter hit M.A.M.E. 1.0 and one week later the Dev's will still stick out M.A.M.E. v1.00u1 because they still will not be happy.

Now onto the comments:

First off, this statement kind of surprises me.  Without even debating whether or not 3d acceleration should be used, this statment , to me, is just incorrect.  My prime example is NFL Blitz.  MAWS currently suggests that this game is supported and is well emulated in MAME, which by your logic suggests that everyone is getting to play the game as it was in the arcade.  I personally do NOT recall chopped up sound and an unplayable frame rate in the arcade release, but perhaps I am mistaken.  Blitz doe NOT "look and work just like it did in the arcade." because it was playable in the arcade, and it is NOT playable in MAME without very high-end hardware.

I think I see where your trying to go with this, but it feels like you got lost in there somewhere, by your logic Crysis is not the same game if it's played on a celeron with a 9800pro, than if it is played on a QX9750 with dual 8800 ultras in SLI, simple on the grounds that the celeron is to slow to run the game, the game has some how changed, then in fact it hasn't, if it had changed in it's nature in would run on the Celeron without issue, but it won't as it a resource hog and always will be. So just because a PC isn't fast enough to emulate a game in M.A.M.E., doesn't mean M.A.M.E. has change the game in any way it is still accurately emulating the game, it's just the PC M.A.M.E. is running on is unable to do it well.

Perhaps the emulated hardware functions much like the arcade hardware, but this is not the same as the game running as it did in the arcade.

It never will be without the physical arcade machine to play the game on, and that's where this forum kicks in, because once you have a perfect emulation of an arcade game you need a prefect reproduction of an arcade machine to play it on, otherwise it never feels like the real thing, most people here are on a quest to recapture the feeling of playing on a real arcade machine.


Quote
now I do not have any idea how complex it would be, but i would also be willing to bet it is not simple to emulate every custom graphics chip used in the arcade with software.  Perhaps someone more knowledgeble should weight the costs and benfeits of such an endeavor?  Incidentally, you are correct that two different 3d card models can produce different results, but by that same train of thought, two different CPU's also do not produce the same results.  Somehow we have managed to run MAME on everything from Pentium  166's to Athlon X2 5000+'s.  I would doubt graphics cards would pose too much of a problem in this department since Direct X and OpenGL can handle some of the compatability issue you are referring to here.  I could, of course, be wrong on this point as 3d acceleration is not my line of work ;) .

You make a couple assumption about CPUs and GPUs that are not total correct and are easily made, I'll try to explain without sounding like a total geek, the thing you need to understand is CPUs and GPUs are two total different beasts, they are made the same way and the function in the same basic way, but there are a couple of very big differences, a CPU is a general purpose device it does everything well, where as a GPU is a fixed purpose device design to do a few things over and over very well and very quickly, the other big difference is CPU are very standardised everything that works on an AMD should work on an INTEL cpu and you should get the same result everytime, this is not so with graphics cards, they are anything but standardised and this is why you see differences in image quality between GPUs even when displaying the same scene and why graphics drivers need endless tweaks and updates to make them work with new software.

Now because of these differences a CPU is easier to emulate on as it can process any standard type of calculation quickly and with easy, as where GPU is limited to a small number of calculation types that it can preform in many difference ways. Now your average custom emulated arcade chip isn't going to be nice enough to spit out a string of graphics commands in a form that is going to be easily passed to your GPU to process, what you get is a whole bunch of request for calculation to be preformed on a bunch of data, now those commands can basically be pass directy to a CPU and as long as they are directed to the right places it will understand them and preform the required calculations with little to no change in their format. On the other hand graphics cards expect data to be handed to them in a set way, that's why we have a graphics API, a program hands data in standardised way to the API then it in turn hands it to the graphics drive that finally hands it to the GPU in a format it likes, now the problem is the commands and data stucture of the emulated graphics chip are unlikely to be the same as that of Directx or OpenGL, so to make use of your GPU the emulator still has to hand the commands to your CPU to process but instead of just doing as they say in preforms a bunch of commands to translate the commands into a format that the suits the API being used and then pass this newly formated commands to GPU.

Now because a single command may require thosands of calculation to be preformed on a piece of data before it outputed, while changing the format of that command may only take a few hundred at worst, you will see a notice preformance gain by getting the GPU to do all the gunt work, but the CPU is still doing a whole hell of a lot of work do all those translations, plus emulate the arcade CPU(s) sound chips and half a dozen other smaller chips at the same time, in a number of cases your CPU will have more trouble emulating the original arcade CPU than it does the graphics chip, due to the structure of the commands the original CPU used, these may be badly suited to x86 CPU design and make for extra work to process. There are always going to preformace gains to be had from using 3D acceration the problem is that the gains are going to be noticably CPU limited (like it's pointless running a 8800 gts on a celeron 300), and once that data is passed to GPU you have little control over how the GPU processes it, the result will vary noticable from one GPU to another and not just in colour shading. You gain some graphics preformance but at the cost of accuracy of emulation.

I hope that helps you understand the issue a little better, and to those in the know already, yes I made several generalisations and simplifications in order to make it more understand to everyone, so please don't read into it to much.

Quote
so you are saying that by dumping 3d rendering to the GPU and saving CPU cycles, there will be no increase in performance?  I guess I can unplug my videocard and play Crysis with my onboard graphics processor.... good to know.  I'm not saying that it isn't less work to use 3d acceleration, but assuming it is done in a fashion comparable to 99.99% of the 3d software avaliable, it is guaranteed to increase performance.


I explained this one above, and if Crysis would allow you to, you could run it entirely with software rending, which might not be a bad idea, since atleast then you could run it on a computer cluster and have it look good and run well at the same time. (really, just see the above section, I'm just being a smartass here ;D, I think Crysis is a rubbish game unless you like the eye candy and a slide show.)

Quote
As i mentioned earlier, Blitz is apparantly emulated well in MAME, its not an incomplete piece in MAME at all.  Yes the OC'd C2D processor will work to play it decently, but how is this any different than using a GPU in the grand scheme of things?  The power of that processor is unparalleled by anything avaliable from the mid to late 90's, yet it is fine to use to emulate the arcade machine, while using a 3d accelerator is considered taboo to use because the original arcade game didnt use it? please....

Using the GPU is only an issue because M.A.M.E. is about accuracy of emulation first, so the DEV's, myself and many others rate this more important than any preformance gains there might be to have in the short turn by using a GPUs for 3D acceration, because you have to give up accuracy for said preformace. And give credit where credit is due when it comes to Acrade hardware, some of these systems used up to 4 GPUs multiple CPU and dozens or other standalone chips, their preformance at the time of there release was years ahead of anything on the PC and that's why they're so hard to emulate today.

I think that the Mamedevs could accurately emulate arcade hardware and still offload some of the processing to the GPU.   Mame already has Hardware stretching and filtering.. and the sound effects in game make use of APIs right?  so why not do the same with the graphics in 3D games?  Perhaps some programmers will come along to create an offshot of Mame that could focus on such games. ???  Hell, I large percentage of people play Mame on a PC monitor and a keyboard.. How accurate is that?  seems if Mamedev were so concerned about duplicating arcade hardware then Mame wouldnt even have keyboard or mouse support, especially for light gun games, since that should be considered an unauthentic "hack"

By that logic they shouldn't emulate anything at all, because anything they do is a hack, or if they are going to emulate something, they may as well use as many hacks as they can come up with as long as the games are playable, stuff what they look and act like. We don't have personal holodecks yet so M.A.M.E. is as close as the DEV's can get with todays technology to the original thing, for everything else I suggest reading the rest of the Forum and building your own Cabinet.


M.A.M.E. is they way it is because it purpose is to be that way, the ability to play games is secondary to it's reason for being, and that's the way I hope it stays, The lastest generation of CPUs from Intel all but eleminate the preformance issues in most ROMS, and the Additional price tag for that preformance is no more than it is for a good mid range 3D graphics card. So until it can be done without the loss of accuracy I think 3D acceration is best left on the shelf for now.


I guess that's my three bucks twenty and a stick of chewing gun.  ;D
 
« Last Edit: February 25, 2008, 05:52:35 am by taz-nz »

brandon

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 807
  • Last login:October 19, 2023, 03:08:43 pm
  • I <3 arcade games.
Re: Hardware 3D Acceleration In Mame
« Reply #56 on: February 25, 2008, 10:23:29 am »
Quote
MAME®, the Multiple Arcade Machine Emulator
Copyright © 1997-2007 by Nicola Salmoria and the MAME team

I. Purpose
MAME is strictly a non-profit project. Its main purpose is to be a reference to the inner workings of the emulated arcade machines. This is done both for educational purposes and for preservation purposes, in order to prevent many historical games from disappearing forever once the hardware they run on stops working. Of course, in order to preserve the games and demonstrate that the emulated behavior matches the original, you must also be able to actually play the games. This is considered a nice side effect, and is not MAME's primary focus.

It is not our intention to infringe on any copyrights or patents on the original games. All of MAME's source code is either our own or freely available. To operate, the emulator requires images of the original ROMs, CDs, or hard disks from the arcade machines, which must be provided by the user. No portions of the original game code are included in the executable.

Personally, I think that's their way of covering their asses from lawsuits.  Mame has games like Mortal Kombat and Street Fighter II.. are they "historical games" in danger of "disappearing forever" ?  Out of the nearly 6000 games that Mame supports how many actually are "historical games" in danger of "disappearing forever"?  I small percentage I'd say.  and in the case of games like Carnievil or any other modern games that used PC hardware, they aren't in any danger of "disappearing forever" whatsoever... so why are they even emulated?  "for preservation purposes"?   Come on!  I big part of Mame's purpose is for playing games.. The mission statement might not say so.. but the actions of the Mamedev prove it. Side effect ---my bottom---...

CheffoJeffo

  • Cheffo's right! ---saint
  • Wiki Master
  • Trade Count: (+2)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 7780
  • Last login:April 08, 2024, 03:49:06 pm
  • Worthless button pusher!
Re: Hardware 3D Acceleration In Mame
« Reply #57 on: February 25, 2008, 10:36:38 am »
Perhaps it is time for folks to stop second-guessing the MAMEDevs ... I totally GET the people want to play games and that there are shortcuts to making games playable.

That doesn't mean that the MAMEDevs have to do it for you -- even if it is them "covering their asses" -- those are their asses, so their choices in that regard aren't for those who don't contribute to the effort (like, say, me) to criticize. Even for those who would say that recent games are not in any danger of disappearing, I would say that in a few years that may not be the case. And, even if it is, just grab the original hardware (which is currently available) and use that to run the game instead of being upset that somebody else isn't going to make it for you for free.

Anybody who knows me knows that I do not worship the MAMEDevs or anything remotely close to it (hell, I don't even have a MAME cab running in my house right now), but for those who don't like what the MAMEDevs do, you are always free to not use their product or to modify the source code to make it do what you want (distribution of such changes may be a different issue, but can change MAME to make it do what you want).

Something about gift horses and mouths ... and the fact that the MAMEDevs seem to be rather sensitive about stuff like this ...

EDIT: For incomplete statement
« Last Edit: February 25, 2008, 10:39:04 am by CheffoJeffo »
Working: Not Enough
Projects: Too Many
Progress: None

Jdurg

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1127
  • Last login:October 04, 2020, 09:26:27 pm
  • A young guy feeling older than sin......
Re: Hardware 3D Acceleration In Mame
« Reply #58 on: February 25, 2008, 01:20:31 pm »
The HUGE, MASSIVE thing that it seems EVERYBODY is this thread has ignored is the reasoning behind WHY most of these 3D games run slow and I'll give you a big hint about why they are slow and it is NOT because of the graphics.  These games like Cruisin USA, Wargods, Carnevil, Area 51, Tekken, Killer Instinct, Prop Cycle, San Francisco Rush, Blitz, etc. run VERY slow because the main CPUs that run the game are incredibly powerful and fast CPUs compared to simple games like Pacman and Donkey Kong.

This has been proven by disabling video emulation altogether and seeing that the speed of the emulation didn't change at all.  So by porting the graphics emulation to the 3D Graphics Card won't produce any positive change in the emulation and may just invoke some negative changes.

This is like saying that playing in an orchestra would be easy if you had a better trombone.  Granted, the music you put out might sound a little bit better with a good trombone and there is a very minimal percentage of people that could put out something nice, but the truth of the matter is that the reason you aren't playing in an orchestra right now is NOT because of your trombone.   :P

Now in regards to modern arcade games that run on PC hardware, it's aking to saying that you can easily install Macintosh software on a Windows system because they are both PCs.   ;D
Donkey Kong High Scores:
1): 49,500
2): 35,600
3): 30,100
4): 29,400
5): 28,200

Jdurg

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1127
  • Last login:October 04, 2020, 09:26:27 pm
  • A young guy feeling older than sin......
Re: Hardware 3D Acceleration In Mame
« Reply #59 on: February 25, 2008, 01:41:17 pm »
Personally, I think that's their way of covering their asses from lawsuits.  Mame has games like Mortal Kombat and Street Fighter II.. are they "historical games" in danger of "disappearing forever" ?  Out of the nearly 6000 games that Mame supports how many actually are "historical games" in danger of "disappearing forever"?  I small percentage I'd say.  and in the case of games like Carnievil or any other modern games that used PC hardware, they aren't in any danger of "disappearing forever" whatsoever... so why are they even emulated?  "for preservation purposes"?   Come on!  I big part of Mame's purpose is for playing games.. The mission statement might not say so.. but the actions of the Mamedev prove it. Side effect ---my bottom---...

So by your logic, you should only start preserving something when it gets difficult to find copies of it and trying to obtain it becomes a horrific task.  This is opposed to preserving something when it is recent and you're able to get ahold of the items quite easily and inexpensively before they start becoming difficult. 

This is akin to adding coins to a coin collection only when they are rare and hard to find as opposed to when they just came from the mint and are inexpensive.
Donkey Kong High Scores:
1): 49,500
2): 35,600
3): 30,100
4): 29,400
5): 28,200

hbm*rais

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 116
  • Last login:September 03, 2010, 08:43:44 pm
  • Relaxen und watchen das blinkenlichten!
Re: Hardware 3D Acceleration In Mame
« Reply #60 on: February 25, 2008, 02:14:26 pm »
That doesn't seem to be true at all. Most of the games you mention aren't much more complex than an N64 or DC, and I can emulate both of these systems on my Athlon X2 3600 + onboard GeForce 6150. That's CPU, GPU, sound and all.

Hell, I could emulate a Dreamcast on my old AthlonXP 2200+ + FX5200 (although with frameskip) pretty decently. And a DC is a basically a Naomi with less memory.

Prop Cycle runs on a 24Mhz 68EC020. That should be 3 or 4 times more cpu power than a Neo Geo, tops. That's not a lot.

There is nothing impossible about emulating these "modern" CPUs on today's 2Ghz+ dual core host CPUs. Most of them are under 100Mhz anyway.

GPUs on the other hand are highly specialized. How many modern dual core CPUs you'd think it would be necessary to emulate even the most basic Voodoo or Riva128? I'm not talking about implementing software rendering, but actually emulating the GPU, register by register. That's a HUGE amount of processing power we're talking about. General purpose CPUs were never meant to that king of task.

The HUGE, MASSIVE thing that it seems EVERYBODY is this thread has ignored is the reasoning behind WHY most of these 3D games run slow and I'll give you a big hint about why they are slow and it is NOT because of the graphics.  These games like Cruisin USA, Wargods, Carnevil, Area 51, Tekken, Killer Instinct, Prop Cycle, San Francisco Rush, Blitz, etc. run VERY slow because the main CPUs that run the game are incredibly powerful and fast CPUs compared to simple games like Pacman and Donkey Kong.

This has been proven by disabling video emulation altogether and seeing that the speed of the emulation didn't change at all.  So by porting the graphics emulation to the 3D Graphics Card won't produce any positive change in the emulation and may just invoke some negative changes.

This is like saying that playing in an orchestra would be easy if you had a better trombone.  Granted, the music you put out might sound a little bit better with a good trombone and there is a very minimal percentage of people that could put out something nice, but the truth of the matter is that the reason you aren't playing in an orchestra right now is NOT because of your trombone.   :P

Now in regards to modern arcade games that run on PC hardware, it's aking to saying that you can easily install Macintosh software on a Windows system because they are both PCs.   ;D

Jdurg

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1127
  • Last login:October 04, 2020, 09:26:27 pm
  • A young guy feeling older than sin......
Re: Hardware 3D Acceleration In Mame
« Reply #61 on: February 25, 2008, 02:46:18 pm »
That doesn't seem to be true at all. Most of the games you mention aren't much more complex than an N64 or DC, and I can emulate both of these systems on my Athlon X2 3600 + onboard GeForce 6150. That's CPU, GPU, sound and all.

Hell, I could emulate a Dreamcast on my old AthlonXP 2200+ + FX5200 (although with frameskip) pretty decently. And a DC is a basically a Naomi with less memory.

Prop Cycle runs on a 24Mhz 68EC020. That should be 3 or 4 times more cpu power than a Neo Geo, tops. That's not a lot.

There is nothing impossible about emulating these "modern" CPUs on today's 2Ghz+ dual core host CPUs. Most of them are under 100Mhz anyway.

GPUs on the other hand are highly specialized. How many modern dual core CPUs you'd think it would be necessary to emulate even the most basic Voodoo or Riva128? I'm not talking about implementing software rendering, but actually emulating the GPU, register by register. That's a HUGE amount of processing power we're talking about. General purpose CPUs were never meant to that king of task.


If the version of Blitz on your Dreamcast and N64 used the exact same code as that in the arcade, then your point would be valid.  The versions of Blitz being played on your N64 and DC have been COMPLETELY rewritten from the code that is used in the arcade.  Therefore, the language they use is much easier to "translate" than that of the arcade.  What you said makes absolutely no sense at all.

Think about emulation as a form of language translation.  Playing an arcade game on your computer is akin to translating from one language into another.  Emulating the arcade version of Blitz is like translating Ancient Sanscrit into Chinese.  Emulating the N64 or the DC version of Blitz is like tranlating English into Chinese.  Sure, it's not super easy to do, but it doesn't take nearly as much processing power (in your brain) to convert English to Chinese as it does Ancient Sanscrit.

NOT EVERY CPU ON THE MARKET IS THE EXACT SAME ARCHITECHTURE WITH THE EXACT SAME LANGUAGE IN THERE!!!!!!!!!!!!!!!!!!!!!!!

A 25 MHz CPU in one architechture may be equivalent to a 2500 MHz CPU in another architechture.  If the setup and code contained with all CPUs were the same, then CPU speed would be everything and there would be no issues with installing a Mac OS on anything out there with a CPU.

Your argument is completely invalid.  I HIGHLY suggest taking a look into CPU architechture and all the different CPUs that are used by arcade games.  Plus, take a look at all the other processors on an arcade PCB and other input devices and realize that your computer's CPU has to emulate those as well and translate whatever language they used.  You see, it's not that easy.   ;D
Donkey Kong High Scores:
1): 49,500
2): 35,600
3): 30,100
4): 29,400
5): 28,200

brandon

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 807
  • Last login:October 19, 2023, 03:08:43 pm
  • I <3 arcade games.
Re: Hardware 3D Acceleration In Mame
« Reply #62 on: February 25, 2008, 03:31:41 pm »
I'm not complaining here..  I am quite grateful to the creators of Mame for what they've done to basically create an entire community based around the software that they created.  If they charged for Mame I would of course pay for it.  All total I'm sure I've sent thousands on this hobby so far.   If the Mamedevs called it quits tommorrow you wouldnt hear me complain.   BUT I just dont agree with the arguement that taking full advantage of modern CPUs and GPUs is somehow going against the goal of "preservation" that Mame has set out to acheive.  but then again.. I also don't buy the arguement that preservation is Mames primary goal. At least not anymore... I mean, lets be honest.. Pacman, Donkey Kong, Galaga.. etc are in ZERO immediate danger of "disappearing forever" let alone any of these 3D games in question.  Hell, I can download most of those games on my cell phone for God's sake...  Out of all the games in Mame how many games do you REALLY think are in danger of disappearing?  5% ?   So I guess the other 95% of the playable games are a "side effect"?  Please..   Mamedevs dont owe us anything and I'm perfectly happy with the way Mame was 4 years ago.. but seriously.. don't feed me a line of bull.  Let's say suddenly every NFL Blitz PCB died tommorrow.. so what?  Midway still has the original source code, schematics etc..  You think by porting it to Mame we are somehow saving it from impending doom?

brandon

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 807
  • Last login:October 19, 2023, 03:08:43 pm
  • I <3 arcade games.
Re: Hardware 3D Acceleration In Mame
« Reply #63 on: February 25, 2008, 03:44:50 pm »
That doesn't seem to be true at all. Most of the games you mention aren't much more complex than an N64 or DC, and I can emulate both of these systems on my Athlon X2 3600 + onboard GeForce 6150. That's CPU, GPU, sound and all.

Hell, I could emulate a Dreamcast on my old AthlonXP 2200+ + FX5200 (although with frameskip) pretty decently. And a DC is a basically a Naomi with less memory.

Prop Cycle runs on a 24Mhz 68EC020. That should be 3 or 4 times more cpu power than a Neo Geo, tops. That's not a lot.

There is nothing impossible about emulating these "modern" CPUs on today's 2Ghz+ dual core host CPUs. Most of them are under 100Mhz anyway.

GPUs on the other hand are highly specialized. How many modern dual core CPUs you'd think it would be necessary to emulate even the most basic Voodoo or Riva128? I'm not talking about implementing software rendering, but actually emulating the GPU, register by register. That's a HUGE amount of processing power we're talking about. General purpose CPUs were never meant to that king of task.


If the version of Blitz on your Dreamcast and N64 used the exact same code as that in the arcade, then your point would be valid.  The versions of Blitz being played on your N64 and DC have been COMPLETELY rewritten from the code that is used in the arcade.  Therefore, the language they use is much easier to "translate" than that of the arcade.  What you said makes absolutely no sense at all.

I doubt the dreamcast versions of Arcade ports are that different than the original arcade games.  Dreamcast is basically a Noami.   sure they may have had to use lower res textures or something because they had less memory but the point hbm*rais was making is that if you can emulate DC on a low to mid range PC then Naomi could be emulated on the upper end PCs. 

Jdurg

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1127
  • Last login:October 04, 2020, 09:26:27 pm
  • A young guy feeling older than sin......
Re: Hardware 3D Acceleration In Mame
« Reply #64 on: February 25, 2008, 03:50:28 pm »
I'm not complaining here..  I am quite grateful to the creators of Mame for what they've done to basically create an entire community based around the software that they created.  If they charged for Mame I would of course pay for it.  All total I'm sure I've sent thousands on this hobby so far.   If the Mamedevs called it quits tommorrow you wouldnt hear me complain.   BUT I just dont agree with the arguement that taking full advantage of modern CPUs and GPUs is somehow going against the goal of "preservation" that Mame has set out to acheive.  but then again.. I also don't buy the arguement that preservation is Mames primary goal. At least not anymore... I mean, lets be honest.. Pacman, Donkey Kong, Galaga.. etc are in ZERO immediate danger of "disappearing forever" let alone any of these 3D games in question.  Hell, I can download most of those games on my cell phone for God's sake...  Out of all the games in Mame how many games do you REALLY think are in danger of disappearing?  5% ?   So I guess the other 95% of the playable games are a "side effect"?  Please..   Mamedevs dont owe us anything and I'm perfectly happy with the way Mame was 4 years ago.. but seriously.. don't feed me a line of bull.  Let's say suddenly every NFL Blitz PCB died tommorrow.. so what?  Midway still has the original source code, schematics etc..  You think by porting it to Mame we are somehow saving it from impending doom?

Heh.  What if your NFL Blitz Cabinet that you paid a LOT of money for suddenly stopped working because of something going wrong on the PCB?  Good luck getting Midway to fix it for you.  

How about if your Donkey Kong Cabinet started generating smoke when you turned it on?  Do you think Nintendo would send out a repairman to help you?

Read through the source code of MAME.  You'll see a LOT of documentation in there regarding the setup of the PCBs, how things worked, etc. etc.

I really get a kick out of all these people who say "why bother preserving it?  There are plenty of copies of it lying around."  I guess this is the same thing that people said of the 1952 Topps Mickey Mantle rookie card, or Amazing Spiderman#1, or Action Comics #1.  Just because it's new doesn't mean it doesn't deserve to be documented.  It just means that the rush to preserve it isn't as great as something that's 15 to 20 years old.  

Besides, PCBs don't last forever, and neither do ICs.  The problem with these is that they aren't like an old shirt where you can see things starting to fall apart and go bad.  One day, you'll go to turn it on and it just won't work anymore.

With regards to being able to play it on your cell phone or X-Box, that's fine if you don't mind playing a port or a version of the game different than the ones you played in an arcade.  But to tell people that they are the same thing is a bit naive.  There are differences between the arcade versions and ALL ports out there.  I don't know of a SINGLE game that is ported 100% exactly like the arcade version.  (Except for possibly Neo-Geo games but those really don't count since the home version and the arcade version are the same cart!).  To someone who is used to the way the arcade games work, they'll find each and every difference between the arcade version and any port you throw at them.  Saying that they can't is like saying that a mother can't recognize her child out of a group of children.

Damn.  I sound like a real ---tallywhacker--- here spouting off all this junk.   :P ;D  It's just that I've had all of these same thoughts before and wondering "Why can't MAME run faster?  Why don't they do this?  Why don't they use that?  What's the point of doing this?".  With a fair number of years of research, I began to understand why some things haven't been done and why what sounds like a simple correction actually isn't.  It's AMAZING that MAME even exists and that it is so ---Bad words, bad words, whatcha gonna do? Whatcha gonna do when saint censors you?--- portable.  It can run on nearly everything.  Hell, I bet I could get MAME to run on my refridgerator if I wanted it to.  (Heh.  "FridgeMAME".   :P )  This is because MAME has avoided getting tied into one type of hardware or operating system.

I too have heard the argument about using plugins and whatnot, but I think that's kind of icky and makes bug fixing quite difficult to do.  (Since MAMEDev would have to have every single graphics card plugin out there that is used, as well as the same driver versions and hardware versions of the GPUs).  Plus, I've used Project64 before and found it to be a complete nightmare with regards to getting it to run all the games right.  Ugggh.
Donkey Kong High Scores:
1): 49,500
2): 35,600
3): 30,100
4): 29,400
5): 28,200

Jdurg

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1127
  • Last login:October 04, 2020, 09:26:27 pm
  • A young guy feeling older than sin......
Re: Hardware 3D Acceleration In Mame
« Reply #65 on: February 25, 2008, 03:52:23 pm »
That doesn't seem to be true at all. Most of the games you mention aren't much more complex than an N64 or DC, and I can emulate both of these systems on my Athlon X2 3600 + onboard GeForce 6150. That's CPU, GPU, sound and all.

Hell, I could emulate a Dreamcast on my old AthlonXP 2200+ + FX5200 (although with frameskip) pretty decently. And a DC is a basically a Naomi with less memory.

Prop Cycle runs on a 24Mhz 68EC020. That should be 3 or 4 times more cpu power than a Neo Geo, tops. That's not a lot.

There is nothing impossible about emulating these "modern" CPUs on today's 2Ghz+ dual core host CPUs. Most of them are under 100Mhz anyway.

GPUs on the other hand are highly specialized. How many modern dual core CPUs you'd think it would be necessary to emulate even the most basic Voodoo or Riva128? I'm not talking about implementing software rendering, but actually emulating the GPU, register by register. That's a HUGE amount of processing power we're talking about. General purpose CPUs were never meant to that king of task.


If the version of Blitz on your Dreamcast and N64 used the exact same code as that in the arcade, then your point would be valid.  The versions of Blitz being played on your N64 and DC have been COMPLETELY rewritten from the code that is used in the arcade.  Therefore, the language they use is much easier to "translate" than that of the arcade.  What you said makes absolutely no sense at all.

I doubt the dreamcast versions of Arcade ports are that different than the original arcade games.  Dreamcast is basically a Noami.   sure they may have had to use lower res textures or something because they had less memory but the point hbm*rais was making is that if you can emulate DC on a low to mid range PC then Naomi could be emulated on the upper end PCs. 

True, but how accurately is it emulated?  I've also seen the specs of the DC Emulators out there (And I've yet to find one that actually works fully quite yet) and the minimum specs aren't really what I would call a "low to mid range" PC.  You have to realize that a lot of the people who really want to run these fancy games on low end hardware actually have REALLY low end hardware they want to run it on.   ;D
Donkey Kong High Scores:
1): 49,500
2): 35,600
3): 30,100
4): 29,400
5): 28,200

hbm*rais

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 116
  • Last login:September 03, 2010, 08:43:44 pm
  • Relaxen und watchen das blinkenlichten!
Re: Hardware 3D Acceleration In Mame
« Reply #66 on: February 25, 2008, 07:07:55 pm »
It's accurate enough for me to have a blast playing with these emulators. How accurately is Naomi emulated on MAME right now?

Notice that I'm not bitching about MAME's supposed inefficiency. What MAME does, it does well. It emulates a huge amount of 2D games. It does it accurately and it does it using affordable hardware.

What it doesn't do is playing modern 3D games in a way that is fun and using sensible hardware. That's OK, as I understand it was never supposed to.

Emulators that do play this kind of games tend to do so using things like dynamic recompilation and plug ins that map GPU calls to native APIs. They do it at the expense of accuracy, as MAME once did lots of things.

I'm not saying that MAMEDevs should do this or should do that. What I'm saying is that, if people want to play those games without waiting for 10Ghz processors to be readily avaiable, that's what would be required, either inside or outside the MAME framework.
« Last Edit: February 25, 2008, 07:13:08 pm by hbm*rais »

purpledrillmonkey

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 20
  • Last login:September 27, 2011, 02:50:08 pm
  • PRESS P1 START
Re: Hardware 3D Acceleration In Mame
« Reply #67 on: February 25, 2008, 07:36:06 pm »
sorry, but I can't be bothered to go through and quote a bunch of crap again, as the responses are too big and detailed to justify it ;)  good responses tho! very interesting topic...

anyways,

In response to Taz: your post does make alot of sence, and I have to assume you know what you are talking about being that my knowledge is quite limited in the area, but I still can't accept that offloading rendering to the gpu wouldn't increase performance.  This point was again reiterated (by Jdurg i believe) and it just doesnt make sense to me.  I'm reluctant to say it would be worth doing based on how difficult it may or may not be, but in my mind it would have to increase performance in some way.  The CPU is relieved of stress, and the GPU (which I am assuming to be basically unused until now for simplicity's sake) bears some of the brunt of running these games.

Also, you are correct about Crysis being un-fun :)

In response to Jdurg:
Quote
This is like saying that playing in an orchestra would be easy if you had a better trombone.  Granted, the music you put out might sound a little bit better with a good trombone and there is a very minimal percentage of people that could put out something nice, but the truth of the matter is that the reason you aren't playing in an orchestra right now is NOT because of your trombone.

this isn't quite my view of the situation.  If you like the orchestra analogy, here's my take: the situation is more like all of the members are playing the trombone, and they are spending all of the energy trying to collectively sound like a full orchestra.  What needs to happen is selective parts of the orchestra need to be given the proper instruments so that the orchestra can focus on what matters (in my opinion): the resulting output.

Basically, why would you use an orchestra of trombones to play a symphony poorly, when it's logical and more pleasing to hear a full orchestra play it?  In the case of MAME, using all parts of the computer (CPU + GPU) just makes sense.  If it didn't, nVidia and ATI/AMD would find themselves in a fruitless market.

And if my computer can emulate Dreamcast games, theres very little excuse in my opinion for not being able to play the arcade games the Dreamcast is based on.  Sure it's not identical hardware, but its damn close.

Now once again, the argument of whether or not 3d acceleration would/wouldn't work is moot if it is out of the question to use the GPU for rendering in MAME.

My question is, whats the point of preserving arcade hardware if we can't use it to PLAY arcade hardware?  The example of a 'backup' of sorts for the pcb's and hard disks of the machines of yester-year has been brought up, but to be 100% honest, I really don't see that as valuable.If that is what the MAMEdevs are wanting to do, then i say go for it, but the appeal of such a thing is, i assume, VERY limited and will only become more limited in the future.  In the next few years, does anyone truely believe that a significant portion of the population will be scrambling to repair their NFL Blitz cabinet using MAME data?  Sure there might be a couple, but for the 99.99% of the rest of us, we would just be happy to PLAY Blitz and experience the past again.

Again, I don't think the MAMEdev's care why I want MAME, and if they are truely looking to perfectly preserve arcade hardware, then so be it.  I think it's a waste of energy, but I also don't understand why anyone would want to watch basketball or baesball.  I'm told those sports are somewhat popular so what do I know ;)
« Last Edit: February 25, 2008, 07:38:08 pm by purpledrillmonkey »

Xiaou2

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 4098
  • Last login:November 12, 2023, 05:41:19 pm
  • NOM NOM NOM
Re: Hardware 3D Acceleration In Mame
« Reply #68 on: February 25, 2008, 10:36:18 pm »
a) you dont know what Hacks they use to make Dreamcast emulation run faster on your
PC.   Such hacks may cause gameplay differences that you are not aware of.

b) a Hack is not documentation.   Its a means to an end.   If you dont have the original
formula.. only educated guesses... then all you have is a guess,  and no way to get the
original behavior..  which is time may be lost forever.

c) Being 'LIKE'  a Dreamcast  means nothing.   

 A Naomi  has double the sound hardware capability right off the bat.   Sound alone is
responsible for a huge chunk of power needed to emulate something.

 It also has twice the memory.   And unlike a pc,  arcade hardware is generally pushed
to the absolute limits of capability.   This means, that in any one second,
there are more polygons on screen,  more sound data,  more characters,  more AI..etc.
 
 Any ports are major downgrades weather you can tell or not.   Every cycle is reduced in details
and sound quality. And even possibly mathematical simplifications in the actual re-programmings.

 
 While the specs may seem the same...  most all games can never push the full specs
of any system.   They have to make a choice of how much per cycle can handle.  Some will
cut polygon detail.  Some will cut number of sound effects or sound quality.    On a DC,
there is more need to cut things.   Where as the original hardware is designed to handle
every bit without compromise.   

 The DC is like a factory that has 2 sick people out of work.   The compromise is that the
factory has to cut corners to make the work get out the door on time.   

 
 Now, all that said,  Sure.. Id love to be able to fire up certain games and play
them full rate.   But there are many more things that Id rather see done before that..
such as support for actual arcade shifters,  force feedback output, surround sound,
and even stereoscopic 3d lcd glasses.  Ohh, and realtime 3d perspective tracking
for the artwork system.   Also, better support for discreet emulation such as
in the fantastic game  Monaco GP.  (which is a tragedy that such a classic is not emulated yet)
 
 MOST of the new 3d games are pure and utter crap anyways.  Compared to the 2d realm, 
they cant hold a candle in lasting gameplay and actual challenge...  and in many cases look awful,
as low poly doesnt hold up well compared to Real pixel art.

 Most of the popular 3d games also have decent ports and or sequels.


 Eventually,  CPU power will quadruple.   Running any of these games will be trivial. 

purpledrillmonkey

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 20
  • Last login:September 27, 2011, 02:50:08 pm
  • PRESS P1 START
Re: Hardware 3D Acceleration In Mame
« Reply #69 on: February 26, 2008, 12:55:36 am »
a) you dont know what Hacks they use to make Dreamcast emulation run faster on your
PC.   Such hacks may cause gameplay differences that you are not aware of.

this is basically my point - I personally don't care about any dissimilarities that the player doesn't and/or cannot detect

Quote
b) a Hack is not documentation.   Its a means to an end.   If you dont have the original
formula.. only educated guesses... then all you have is a guess,  and no way to get the
original behavior..  which is time may be lost forever.

this is the other point i'm kindof torn on.... in future years, when all of these game are (presumably) forgotten, will anyone care how the machines functioned? we are talking about GAMES here... when you boil it down, arcade games are just not that important in the grand scheme of things.  I care more about preserving the playability of these games, not how the machines functioned.

Quote
c) Being 'LIKE'  a Dreamcast  means nothing.   

 A Naomi  has double the sound hardware capability right off the bat.   Sound alone is
responsible for a huge chunk of power needed to emulate something.

even more reason to get the 3d rendering off the cpu

Quote
It also has twice the memory.   And unlike a pc,  arcade hardware is generally pushed
to the absolute limits of capability.   This means, that in any one second,
there are more polygons on screen,  more sound data,  more characters,  more AI..etc.

I find it hard to believe that a game like Blitz has more sound, polygons and AI than Call of Duty 4.....  the bottom line is that IS possible to do if we are really looking for playability

Quote
MOST of the new 3d games are pure and utter crap anyways.

sorry but a major portion of the 2d games could also be considered 'crap'.  Just because they are old, doesn't mean they are classics ;)

Quote
Eventually,  CPU power will quadruple.   Running any of these games will be trivial. 

true, but the big question is why do we have to wait?  why is the requirement of 4x more cpu power ok, while offloading to the GPU is not?

brandon

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 807
  • Last login:October 19, 2023, 03:08:43 pm
  • I <3 arcade games.
Re: Hardware 3D Acceleration In Mame
« Reply #70 on: February 26, 2008, 01:50:23 am »
a) you dont know what Hacks they use to make Dreamcast emulation run faster on your
PC.   Such hacks may cause gameplay differences that you are not aware of.

b) a Hack is not documentation.   Its a means to an end.   If you dont have the original
formula.. only educated guesses... then all you have is a guess,  and no way to get the
original behavior..  which is time may be lost forever.


Who says hacks aren't documented in the source code?

How would a "hack" that only effected rendering effect gameplay?

Why would making use of modern GPUs be considered a "hack" in the first place?

There are probably hacks involved in making Z80 code run on an X86...

Who ever said Mame was free from hacks to begin with?

Jdurg

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1127
  • Last login:October 04, 2020, 09:26:27 pm
  • A young guy feeling older than sin......
Re: Hardware 3D Acceleration In Mame
« Reply #71 on: February 26, 2008, 09:14:27 am »
Who says hacks aren't documented in the source code?

How would a "hack" that only effected rendering effect gameplay?

Why would making use of modern GPUs be considered a "hack" in the first place?

There are probably hacks involved in making Z80 code run on an X86...

Who ever said Mame was free from hacks to begin with?

The "hacks" that are in MAME are there so that other code can be written more accurately and more efficiently.  It's the same reason why 'cheats' are in MAME.  It's so that developers can test their programming and help fix bugs.

Emulation, and hell EVERYTHING computer related, is just math in one form or another.  If you use a hack to get around something you don't know, you are not certain how your new "math" will affect the other items.  If a player who is playing a game is used to a specific timing in order to play their game properly, but a hack causes that timing to change slightly, to them the game is not the same and how they expected it to react didn't happen.

MAME is about more than just one person's desire to play.  There is absolutely no point in playing a game if it is not being played the correct way.  As much as some of the members of this forum may disagree, the point is not to make the games playable.  It's to make the games function the exact same way as they did in the arcade.  EXACTLY.

If someone wants to put hacks into a game and make it completely inaccurate and unlike how it should be, then there is nothing stopping them from creating their own code and making their own horribly inaccurate emulator that only works on their system and nobody elses.  Nothing is stopping people from doing that except their own lazyness and unwillingess to learn how to code.

Asking MAME itself to change into a hack-filled, inaccurate, gameplay comes first emulator is akin to having the federal government enact a law that will benefit only a small % of the population but hurt the greater majority.
Donkey Kong High Scores:
1): 49,500
2): 35,600
3): 30,100
4): 29,400
5): 28,200

purpledrillmonkey

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 20
  • Last login:September 27, 2011, 02:50:08 pm
  • PRESS P1 START
Re: Hardware 3D Acceleration In Mame
« Reply #72 on: February 26, 2008, 09:34:58 am »
There is absolutely no point in playing a game if it is not being played the correct way.

This is the key difference to me as I don't see a point in emulating a game if it can't actually be played.

Quote
Nothing is stopping people from doing that except their own lazyness and unwillingess to learn how to code.

I think this is pretty harsh and inaccurate.  It isn't necessary to be able to code and write a new MAME in order to suggest what would be cool to see in MAME.  Not everyone has the time, desire, or ability to code as a hobby,  We're only asking questions and making suggestions here.

Quote
Asking MAME itself to change into a hack-filled, inaccurate, gameplay comes first emulator is akin to having the federal government enact a law that will benefit only a small % of the population but hurt the greater majority.

you mean like tax breaks for the wealthy? ;)

FrizzleFried

  • no one listens to me anyway.
  • Trade Count: (+4)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 5144
  • Last login:May 30, 2023, 01:14:24 pm
    • Idaho Garagecade
Re: Hardware 3D Acceleration In Mame
« Reply #73 on: February 26, 2008, 09:47:52 am »
People...MAME isn't about emulating games,  but rather HARDWARE.  It's a lot easier to emulate a piece of software.  It's a whole other matter to emulate the HARDWARE that runs said software.

In order to properly emulate 3d games,  MAME will have to emulate the 3d HARDWARE...

Bottom line is that this is a stupid topic.  None of us are MAMEDev and we all know where they stand on this issue.

Visit my arcade blog at: www.idahogaragecade.com (Updated 10-28-21)

Jdurg

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1127
  • Last login:October 04, 2020, 09:26:27 pm
  • A young guy feeling older than sin......
Re: Hardware 3D Acceleration In Mame
« Reply #74 on: February 26, 2008, 11:10:14 am »
There is absolutely no point in playing a game if it is not being played the correct way.

This is the key difference to me as I don't see a point in emulating a game if it can't actually be played.

Quote
Nothing is stopping people from doing that except their own lazyness and unwillingess to learn how to code.

I think this is pretty harsh and inaccurate.  It isn't necessary to be able to code and write a new MAME in order to suggest what would be cool to see in MAME.  Not everyone has the time, desire, or ability to code as a hobby,  We're only asking questions and making suggestions here.

Quote
Asking MAME itself to change into a hack-filled, inaccurate, gameplay comes first emulator is akin to having the federal government enact a law that will benefit only a small % of the population but hurt the greater majority.

you mean like tax breaks for the wealthy? ;)

Yes, but when the same questions/suggestions are asked on a seemingly daily basis and very valid reasons are given by the developers as to why they aren't going to implement it, it starts to get a bit annoying.  People have asked questions, been told no and a very detailed explanation and reason why the answer is no, but they still won't stop the complaining and whining about it. 

I would love to code my own emulator that will throw accuracy to the wind and just allow me to play games, but I fall into the too lazy to learn how to code it myself.  That's why all I ever ask is "why" can't it be done and I've been given all the explanation and reasoning I need.
Donkey Kong High Scores:
1): 49,500
2): 35,600
3): 30,100
4): 29,400
5): 28,200

purpledrillmonkey

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 20
  • Last login:September 27, 2011, 02:50:08 pm
  • PRESS P1 START
Re: Hardware 3D Acceleration In Mame
« Reply #75 on: February 26, 2008, 02:30:15 pm »
Yes, but when the same questions/suggestions are asked on a seemingly daily basis and very valid reasons are given by the developers as to why they aren't going to implement it, it starts to get a bit annoying.  People have asked questions, been told no and a very
detailed explanation and reason why the answer is no, but they still won't stop the complaining and whining about it. 

fair enough

u_rebelscum

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 3633
  • Last login:April 21, 2010, 03:06:26 pm
  • You rebel scum
    • Mame:Analog+
Re: Hardware 3D Acceleration In Mame
« Reply #76 on: February 26, 2008, 05:50:17 pm »
FWIW, getting mame to use 3d hardware acceleration would be harder than most other emu's.  Why?

Short Answer: Mame is set up to be able to be cross platform, and directX is windows only, and opengl is not on all OSs (and not as well supported on consumer video cards as directX on OSs it is on).


Long Answer:
Mame's architecture has many parts.  Core, game driver, CPU emulation, video hardware emu, sound emu, discrete circuit emu, and OS dependent code are separate from each other.  This is great for what mame does: emulate lots of different systems that share some (to none) hardware.  Want to add a game that is on the same system as other games? Map the roms to the memory with cut and pastes, add game to mame's internal list, and go.  New game on new system that all chips are already in mame?  "Connect" the parts to build the system and map the memory, and bang.  Need a new CPU emulated?  or sound chip?  Write the code into the CPU part of mame; the structure is ready for it.  (Hmmm, maybe this isn't that easy ;) but not too far if you know emulation, the chip and mame's structure.)

But notice how the OS code (ie: directX) is totally separate from the video emulation code?  (With the core directing the info between the two parts.)  This is perfect for mame's current cross platform flexibility, the support of many original hardwares, and documenting the original hardware.  Add since Mame has windows, linux, mac, and maybe PS3 current builds, whatever changes are made at least these OSs need to be considered.  Remember the 0.106 to 0.107 video change?  Non-windows OSs projects either stopped (ie: AdvanceMame) or took a little while to catch up; maybe one or two versions.  That's about the limit change would be accepted.  And remember, OS specific code like directX or openGL must be kept separate from the video emu code even though it's replacing it so the different OSs can all work, and the original code needs to still be there to fall back to.


It would be much easier (short term) for someone to take the mame structure, merge the OSD code into the core and emu code, then add 3d hardware use code.  I think most people (OP & others) are thinking the codes are merged already, and that's is the level of ease when they say it's easy.

(Note: this is basically the same problem forcefeedback has in being added to mame.)
Robin
Knowledge is Power

brandon

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 807
  • Last login:October 19, 2023, 03:08:43 pm
  • I <3 arcade games.
Re: Hardware 3D Acceleration In Mame
« Reply #77 on: February 26, 2008, 06:15:31 pm »
hmm.. maybe someone sould code an unofficial windows only build that optimize things for DirectX and DirectX Input since I'm sure that's what the majority of folks are running Mame on.  Then wouldnt it be easier to add things like force feedback?

SavannahLion

  • Wiki Contributor
  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 5986
  • Last login:December 19, 2015, 02:28:15 am
Re: Hardware 3D Acceleration In Mame
« Reply #78 on: February 26, 2008, 06:18:42 pm »
USB 05h + Randy or Andy = Kick ass products.

I say that's a nice starting point for feedback. Anyone know if MAMEDev looked into it?

Cakemeister

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1001
  • Last login:February 04, 2024, 10:15:45 pm
  • I'm a llama!
Re: Hardware 3D Acceleration In Mame
« Reply #79 on: February 26, 2008, 06:41:04 pm »
FWIW, getting mame to use 3d hardware acceleration would be harder than most other emu's.  Why?

Short Answer: Mame is set up to be able to be cross platform, and directX is windows only, and opengl is not on all OSs (and not as well supported on consumer video cards as directX on OSs it is on).


Long Answer:
Mame's architecture has many parts.  Core, game driver, CPU emulation, video hardware emu, sound emu, discrete circuit emu, and OS dependent code are separate from each other.  This is great for what mame does: emulate lots of different systems that share some (to none) hardware.  Want to add a game that is on the same system as other games? Map the roms to the memory with cut and pastes, add game to mame's internal list, and go.  New game on new system that all chips are already in mame?  "Connect" the parts to build the system and map the memory, and bang.  Need a new CPU emulated?  or sound chip?  Write the code into the CPU part of mame; the structure is ready for it.  (Hmmm, maybe this isn't that easy ;) but not too far if you know emulation, the chip and mame's structure.)

But notice how the OS code (ie: directX) is totally separate from the video emulation code?  (With the core directing the info between the two parts.)  This is perfect for mame's current cross platform flexibility, the support of many original hardwares, and documenting the original hardware.  Add since Mame has windows, linux, mac, and maybe PS3 current builds, whatever changes are made at least these OSs need to be considered.  Remember the 0.106 to 0.107 video change?  Non-windows OSs projects either stopped (ie: AdvanceMame) or took a little while to catch up; maybe one or two versions.  That's about the limit change would be accepted.  And remember, OS specific code like directX or openGL must be kept separate from the video emu code even though it's replacing it so the different OSs can all work, and the original code needs to still be there to fall back to.


It would be much easier (short term) for someone to take the mame structure, merge the OSD code into the core and emu code, then add 3d hardware use code.  I think most people (OP & others) are thinking the codes are merged already, and that's is the level of ease when they say it's easy.

(Note: this is basically the same problem forcefeedback has in being added to mame.)

Well said. I think you said it all.

I think some posters in this thread are confusing accelerated display with accelerated video hardware emulation.

Hardware accelerated display is a reality. The Windows backend can use Direct3D, and the SDLMAME derivitive can use OpenGL.

MAME also can run the display code in a separate thread than the other parts of the emulator.

Contrast that with accelerated video hardware emulation. Like you said, the OS-dependent stuff has been factored out of MAME into its own code. The video hardware emulation is done strictly in software that is platform-neutral.

The answer to Fozzy's question: Why doesn't MAME use hardware accelerated graphics? can be:
1) It does! (hardware accelerated display)
2) It can't, it completely goes against the architecture of the frontend. (hardware accelerated graphics emulation)

Other emulators are not bound by the restriction of platform independence. So other emulators can go ahead and run the graphics emulation on the video card.





Old, but not obsolete.