|
Post by mewchu on Aug 26, 2009 14:23:01 GMT -5
...but I'm possibly a dumb guy. So like everybody says in order to emulate something accurately, you have to have like 10x/14x/100x/1000,0000,000x the processor power of the original system you want to emulate. So why are we still emulating processors? It seems like that's a dead end road. What about simulation? What I was thinking is complicated and probably a hassle to do, but might work well (I'm no programmer though, so I can never make it work). Why not make a program that takes a ROM and rips all the graphic and sound assets. It then takes the code and basically translates it to your CPU. Like if some game ran on Dreamcast and you are using a Phenom, it would convert the CPU instructions from Hitachi to AMD-specific. It would do the same for the GPU and the sound chip. It would kind of be like MAME, I guess but with potentially better performance at the cost of all the hardware nerds screaming "IT'S NOT REAL! IT'S NOT REAL!". Once you get different CPU cores working it would be extremely portable too. I understand that it would be hard to do, considerably harder in fact, and that it would not be an end-all solution that spits perfect games every time, but I still think it would be interesting. Do you think this is an interesting idea or should I just STFU now?
|
|
|
Post by ReyVGM on Aug 26, 2009 14:36:44 GMT -5
I'm no programmer either but I remember in the old days the ongoing debate if emulation was really just simulation. Point is, no one knows, it's just semantics and it doesn't matter.
I don't understand exactly what your idea is, but if the people that know about emulators constantly build them the same way, then I guess that's the best way to go.
You don't need a computer 10x more powerful than a console to be able to emulate it correctly. Unless you are MAME, which its aim is not to make a game playable, but to accurately emulate the hardware. The game being playable is a side effect of emulating the hardware.
Most emulator authors just want to make the games playble, so as long as they look, feel and sound the same, then any speed hacks they used is worth it.
MAME doesn't use any kind of hardware hacks, that's why they take so long to properly emulate something and that's why most games are slow on an average computer.
|
|
|
Post by butanebob on Aug 27, 2009 1:06:54 GMT -5
Sounds like Porting games over really, and when you do that it's not really emulating and ends up being a different graphic/audio/gameplay experience.
|
|
|
Post by Weasel on Aug 27, 2009 2:08:53 GMT -5
Sounds like Porting games over really, and when you do that it's not really emulating and ends up being a different graphic/audio/gameplay experience. There's a difference there. Even with all the speed-hacks in place, emulation at its core is really just the program pretending to be the CPU, graphic and sound hardware of the system in question, and piping the video and sound outputs to the "host" system. If it were a port, then the programmer would have direct access to the original source code and would be able to rewrite the game to work on another system. Not the case with emulation.
|
|
|
Post by Dais on Aug 27, 2009 2:58:23 GMT -5
It then takes the code and basically translates it to your CPU. after asking many, many dumb questions on the internet, I've learned that there is no such thing as "basically" when it comes to code.
|
|
|
Post by mewchu on Aug 27, 2009 9:17:21 GMT -5
It then takes the code and basically translates it to your CPU. after asking many, many dumb questions on the internet, I've learned that there is no such thing as "basically" when it comes to code. Not even Visual BASICALLY? I didn't mean to imply the code would be easy, I meant it as a qualifier to my statement, as in that "the concept seems simple on paper" not nessecarily (i can never spell that word, sorry) in execution. Yeah my bad, I guess this was a dumb idea. But thanks for the input! :3
|
|
|
Post by jorpho on Nov 20, 2009 13:30:21 GMT -5
Why not make a program that takes a ROM and rips all the graphic and sound assets. It then takes the code and basically translates it to your CPU. Like if some game ran on Dreamcast and you are using a Phenom, it would convert the CPU instructions from Hitachi to AMD-specific. It would do the same for the GPU and the sound chip. It would kind of be like MAME, I guess but with potentially better performance at the cost of all the hardware nerds screaming "IT'S NOT REAL! IT'S NOT REAL!". This basically amounts to high-level emulation, no? I recall reading about UltraHLE and about how instead of any kind of processor emulation, it basically recognized some of the standard graphics routines used in a number of different N64 ROMs and emulated those instead.
|
|
|
Post by muteKi on Nov 20, 2009 14:57:02 GMT -5
Why not just copy all the processor logic onto an FPGA and re-create the system like that?
|
|
|
Post by neomerge on Nov 25, 2009 12:40:07 GMT -5
after asking many, many dumb questions on the internet, I've learned that there is no such thing as "basically" when it comes to code. Not even Visual BASICALLY? lmfaoooooooo funniest/nerdiest joke on this forum in years. Congrats! ;D
|
|
|
Post by verdures on Dec 11, 2009 12:49:00 GMT -5
When I was finding out about emulation in middle school there was a program that purportedly turned NES roms into executable files. Damn thing never worked. ;D
I'm no expert on emulation either, but I think why people don't do what you're talking about is because of incompatibilities with low level hardware. I think the gist of it is that the game makes 'on the fly' calls to memory that can't be replicated any other way than by emulating it the way emulators are written now. Too many differences in low level hardware to make it feasible.
|
|
|
Post by muteKi on Dec 11, 2009 13:09:48 GMT -5
It would be an interesting thing to try to do, though. Rather than emulate on-the-fly, try to pre-translate all the code by way of a machine and then run the translated game itself on the fly. I don't think it's impossible by any means. The only problem here is that I see a major problem in being that some systems' hardware had quirks or features that were often undocumented and used in hackish ways to get cool things to happen on the system. This is of course a major reason why I'm not a big fan of using emulators when I can get systems cheap, and a major reason why I have my Genesis -- as a place to record sound from.
|
|
|
Post by jorpho on Dec 15, 2009 1:44:03 GMT -5
It would be an interesting thing to try to do, though. Rather than emulate on-the-fly, try to pre-translate all the code by way of a machine and then run the translated game itself on the fly. I don't think it's impossible by any means. Isn't that basically what "dynamic recompilation" amounts to?
|
|
|
Post by muteKi on Dec 15, 2009 2:38:29 GMT -5
That was my assumption. Just wanted to make sure we were all on the same page. (I mean, I guess it would have made more sense if I had used a "Star Trek" simile, like putting too much air in a balloon.) And for what it's worth, this method was actually used in a number of occasions. I know that Sega has a 68k interpreter that they used to port Sonic 3D Blast to Saturn and PC; if you had that, for example, you could easily play Genesis games without an emulator. Saturn was a beast but not so much that it could emulate the Genesis with no effort
|
|