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.
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.