What's new

Just a thought

taiken

New member
I was just wondering, what would be the viability of Dolphin (or any emulator, for that matter) writing an additional Windows boot sequence.
Running Windows XP SP1, I see a ton of processes and services that would plague emulators. Themes, networking, cryptography, and other miscellaneous services offer nothing for gamers. Unless running a server, networking and the internet in general are useless. Explorer.exe, svchost.exe, and winlogon.exe together drain 30MB of memory on average. Sure, after time, we can recreate the code to emulate the console's software/hardware interface but we often forget about the nature of the two systems. Consoles are meant for games and little else while the personal computer can be used for browsing, word processing, multimedia manipulation, game creation, maintenance, linking other pcs, games, etc; in other words, multitasking. If you have a pc to run a console game, it will still follow it's primal instinct and multitask.
Now that all that background info is taken care of, let's look at my original idea with a quick text prototype.

Bootup Wizard
Game:
D:\Emu\Dolphin\Games\MetroidPrime.gcm

Plugins:
Graphics: Dolphin Video Plugin (DX9)
Video Card: ATI Radio 9600 Pro
Drivers: CATALYST 04.3 7.991-0402...etc...
Advanced Settings (Button)

Sound: Dolphin Sound Plugin
Sound Card:
Drivers:

DVD: etc.

PAD Input: etc.

Options: (possibilty for hotkeys, although it would be ideal to have these locked after this page of the wizard)
Full Screen (default)
Enable GDI Framebuffer y/n
etc.
Display Statistics? y/n (fps, cpu usage, etc)(even if the previous values are locked, this shouldn't be a problem if it's toggled)

Final:
Network Sever? y/n
Run addition combatabily tests? y/n

Write boot sequence?
y/n

write game library rom?
y/n
(explained briefly below)

writing....(this would write all the info the winbootseq #2, saving #1 in case something goes horribly wrong)
rebooting...(here, the automated selective bootsequenced would run, omitting the standard windows crap)
loading...(would test the needed drivers for functionality, loads and configures the emulator from the prewritten startup file, tests again, opens rom)
playing...(this one's obvious, but do note that since it's run in fullscreen, the GUI would be unnecessary)

If one wanted to change games, pressing Alt+Ctrl+End, would stop the emulation and bring up a game menu where the player could select the next game and press A to confirm, next there'd be another config wizard, finally, the emulator would fall into a soft reboot and load the game. Again, there is no GUI and it's all navigated with the control pad. I know that the amount of memory salvaged from this is negligable but I beleive that it'd be better to have it all run through a simplified game media/bios based interface.

(My original idea called for a complete bypass of the user's OS having the emulator itself act as the operating system but a few seconds later, I realized that this would require universal drivers, completely rewritten architecture, and so forth. A project of such size may show the most compatibilty but would require a massive collaboration and may not be worth the effort. But all this is beside the point, I just wanted to point out my first draft.)

Since this is only a theory, I've no idea how much of an improvement this would provide and I can't offer any guarantees. I'm sure that the least that it'll do is increase the fps but I haven't seen any similar discussions so who knows, it may provide compatibility to a larger library of games. The gap between the console system and the pc is affected by a number of factors, this is only one of them. These are 'next generation' consoels but as far as the environmnet surrounding the emulator is concerned, I've only seen the old school way of thinking.
I encourage everyone to contribute what they can to this thread. I am aware that it's never as easy as it looks on paper (understatement...huge understatement) but as a community, we can work together to evolve little ideas like this one to give birth to a new era of emulation.
 

posty_2k3

T3h pwn3r3r
Sounds liek an interesting idea you got there. Maybe it'll work? I'm no genius at PCs, so we'll wait for the team to say if this will work.
 

Nemesis

New member
It's not about memory usage, it's about CPU cycles. On a modern day machine, the OS takes up only a fraction of the total processing time of the system. Even if you could cut out all of the time spent on other processes, you'd still probably only get about a 5% boost in time spent on dolphin. Just close all the junk you don't need running when you try and run dolphin that you can reasonably close, and that will be good enough. Apart from that, just be prepared to wait another 2-3 years for playing most games on the GC through an emulator to be feasible.
 

Nemesis

New member
Oh, just thought I'd add a little note. If you know about thread priority levels, you can set the Dolphin process up from "Normal" to "High", and you'll steal a little more time from every other process, including the OS. This should give you as much of a performance boost as you can get through windows without making the entire OS become unresponsive. Don't even think about setting it to the "highest" priority, or you'll effectively freeze your computer.
 

ector

Emulator Developer
I don't believe you'd get more than 1-2% performance boost in Dolphin by doing something like this since it's strictly CPU/memory bandwidth-bound and additional background services and stuff don't really take any significant CPU time. They do eat a small amount of memory but Dolphin performance isn't memory size bound if you have say 256 megs or more and the services will be mostly swapped out to disk anyway.
 

Top