MAMEWorld >> Programming
Previous thread Previous  View all threads Index   Next thread Next   Flat Mode Flat  

Heihachi_73
I am the Table!
Reged: 10/29/03
Posts: 1074
Loc: Melbourne, Australia
Send PM
Re: Status of x-86 emulation
08/12/21 06:55 AM


> I just have a few questions to ask, and maybe it's not the place to do so, but i'll
> ask you anyway I don't know where I should ask elsewhere.
>
> What is the status of X-86 emulation, and everything related to X-86 emulation? It's
> been years now, and I don't see (maybe i'm wrong, it's soooo complicated) a way to
> launch a win 95 in mame (mess) for example, or an xbox game.
>

Windows 95 has been possible inside MAME for about a decade. Xbox (2001) on the other hand is a complex beast, which is why MAME's Xbox driver is just a placeholder for BIOS ROMs and there is pretty much nothing emulating the Xbox these days aside from Cxbx Reloaded. Likewise, MAME's PS2 and GameCube emulation is also next to nonexistent, and MAME hasn't even started on Wii, PSP or 3DS.

> Everything is known about this architecture, so I don't understand why it's sooooo
> impossible, now for 26 years...
>
> VM-Ware works nicely, soooooo... Why not in Mame? I don't understand why, when
> downloading the fullset, there is slot games with 3,2 gigs to emulate an LCD display
> when it works with 3 functions and 5 numbers... I know everything is important, it's
> the history, etc... But I can't understand nobody is motivated to have Win 95
> applications useable with a Mame panel or joystick... The way Mame works is so nice,
> everything should be "Mame-like".
>

Most PC "emulators" and VMs (including DOSBox/TeknoParrot etc.) are simply translating the software's I/O calls to something that a modern PC can understand, much like early HLE-based Nintendo 64 emulators did over twenty years ago with N64 games.

MAME on the other hand emulates every single component of a given system rather than just translating it to work with modern PC architecture.

In other words, instead of MAME emulating Windows 95 on a "Pentium 1", it might be running Windows 95 on an emulated Epox P55IT motherboard with a 200 MHz Pentium MMX, 32MB of RAM, a PCI 2MB S3 ViRGE video card, an ISA Sound Blaster 16, a Mitsumi 3.5" floppy drive in A:, a Sony 5.25" floppy in B:, a 2GB Seagate ST32122A hard drive in C:, a Sony CDU4811 48x CD-ROM drive in D:, a PS/2 104-key keyboard and a PS/2 3-button mouse with scroll wheel. Which also means, it needs the BIOS ROM from that board, the video card's BIOS, the keyboard controller ROM (if applicable), the sound card ROM, and possibly the HDD and CD drive firmware as well as anything else I have forgotten to mention. MAME also has to emulate every single CPU, GPU, MCU and any other necessary logic otherwise nothing will run.

MAME doesn't emulate "generic" x86 PCs as they simply don't exist, every single make and model of PC is completely different and that's before you start swapping internal parts like CPUs, RAM or video/sound cards, due to the open design of the IBM-compatible PC. MAME's modular design means that you can swap components just like in a real PC, as long as said components have their ROMs dumped and have been emulated e.g. you could swap the Sound Blaster 16 for an AWE32 or even an inferior ESS AudioDrive as long as they were dumped and emulated.

MAME is designed specifically to emulate devices the hard way (e.g. no HLE) in order to figure out what makes them tick. Being able to play the games is just a nice side effect, which means the emulation of said components is working somewhat correctly.

> (And about the "legal" stuff (sorry for the word), everything is also illegal,

Not all people live in the United States where the DMCA applies.

> starting from the bios to the roms when you don't own the original. As far as I see,
> it's Ok to break one market, but not another. Just Saying... Plus, it's impossible to
> use Win95 now outside an emulator, so this wouldn't break anything.)
>

Actually, it is possible to use Windows 95 outside an emulator, you just need an old enough 32-bit PC (preferably nothing newer than a Pentium 3) that is still working and has less than 2GB of RAM. A Pentium 4 might even work but 95 will not support modern components so you'll probably be stuck with 640x480, 16 colors, no sound and no ethernet for example, unless a miracle happens and there are still drivers that work in 95 as opposed to 98SE or later. You'll also have to find some PS/2 keyboards and mice as 95's USB support is nonexistent by default and practically nonexistent even with the USB supplement upgrade (I couldn't even get it to detect a basic USB mouse).

> And, even if we talk about linux, I have a few old Linuxes that doesn't work anymore
> in my computer, so they are lost "from history", for now at least.
>
> Sooooo.......? Do I have every time to use emulators from the outside? I would really
> like to use Mame for everything. The way I launch a CPS3 game, in Mame from a CD CPS3
> game, or a Saturn game in SSF, every Win95 game could be launched that way? Win95
> becoming the Bios. Even with a command script, why not? And, plus, in SSF, you can
> launch some games without bios. For example, if you could use the available stuff in
> win95 installation to just launch these games, and query all related files when
> needed?
>

MAME doesn't work that way, it isn't DOSBox or TeknoParrot etc. (see above)

The closest you can get to auto-running a Windows-based CD game inside MAME (does it not just install to the HDD, or is it some sort of basic copy protection that always needs the original disc to be inserted?) is having MAME run a PC which already has Windows 95 and everything else it needs set up and working, and telling MAME to pre-load the CD image so that Windows 95 auto-runs it the instant it boots to desktop (assuming the CD has an autorun.inf like most Windows-based discs should).

> I want to say, no offense. I really appreciate your work and all stuff in Mame/Mess,
> even if, in my opinion, Mess functions are really complicated. The project is so big,
> just find a game is quite a "mission"... I can't even find a list of systems
> (computer) commands in duckduckgo. But i'm a big fan of the ensemble. I just can't
> understand why win is so "spared" by everybody...
>
> And, if this already exist but poorly documented, I could make a video on Youtube?
> Boki Ball the name.

Lastly, the biggest issue IMO is that MAME currently doesn't have a dynamic recompiler (DRC) for x86 hardware. This will be a major hurdle in running later PC-based hardware, including arcade games, especially when the main CPU of an early-2000s PC-based arcade system is running at something like 1.5 GHz when most 90s arcade games were running in the tens of MHz instead, rarely ever reaching 100 MHz, let alone ten times that.

Edited by Heihachi_73 (08/15/21 11:42 PM)







Entire thread
Subject Posted by Posted on
* Status of x-86 emulation Boki 07/20/21 10:46 AM
. * Re: Status of x-86 emulation Heihachi_73  08/12/21 06:55 AM
. * Re: Status of x-86 emulation Boki  12/30/21 07:26 AM
. * Re: Status of x-86 emulation MooglyGuy  08/15/21 05:18 AM
. * Re: Status of x-86 emulation Heihachi_73  08/15/21 11:42 PM
. * Re: Status of x-86 emulation Sune  07/30/21 05:23 AM
. * Re: Status of x-86 emulation mahlemiut  07/30/21 11:33 PM
. * Re: Status of x-86 emulation MooglyGuy  07/23/21 11:20 AM
. * Re: Status of x-86 emulation Boki  12/28/21 07:06 AM

Extra information Permissions
Moderator:  Pi 
0 registered and 4 anonymous users are browsing this forum.
You cannot start new topics
You cannot reply to topics
HTML is enabled
UBBCode is enabled
Thread views: 841