openMSX - minimum system requirements XML?

By snout

Ascended (15187)

snout's picture

27-10-2003, 00:20

Okay, this takes some explanation. openMSX is getting better and better and, if I understood everything correctly, it should be quite portable. However, if you'd wanted to port openMSX to a low-specification platform (like the Nokia series 60 phones ;P) a minimum system requiremens XML could be useful (apart from quite some ASM optimizations).

openMSX already comes with a ROMDB.XML.Okay, this takes some explanation. openMSX is getting better and better and, if I understood everything correctly, it should be quite portable. However, if you'd wanted to port openMSX to a low-specification platform (like the Nokia series 60 phones ;P) a minimum system requiremens XML could be useful (apart from quite some ASM optimizations).

openMSX already comes with a ROMDB.XML. In this database the checksums of many, if not all, ROM cartridges are stored. If you want to run a certain ROM game, no matter what filename you give the ROM, openMSX will probably recognize the game and select the correct mapper type accordingly, thanks to this XML.

I'd say: lets take this thing to the next level. openMSX is very advanced, but only in very few products (mainly demo's) you need to put it to the max, emulating multiple soundcards and pixel accuracy. A lot of MSX1 games already do fine on an MSX1 config with 32kB RAM a TM9918 (wasn't it?) VDP and 'screen accuracy'. It seems to me the latter is a lot easier to emulate than the first.

So, if we, all users of openMSX, start creating an XML in which we define the lowest system requirements needed to make a software product work, we could benefit a lot from this when openMSX is ported to other systems. Not only does it help reducing CPU-load, it also makes the emulator a LOT more user-friendly if it can 'auto-select' the proper configuration.

How about this idea? Smile

Login or register to post comments

By anonymous

incognito ergo sum (109)

anonymous's picture

27-10-2003, 09:20

What about games like Nemesis 3, is the minimum requirement then MSX1 or MSX2?
What about Space Manbow, is it MSX2 or MSX2+?
Microcabin games run fine on a 64kB MSX2, but often they run better on a system with more RAM. (Let alone MSX-MUSIC or not)

I think both a 'minimum' and a 'recommended' specification should be made to handle these cases.

By snout

Ascended (15187)

snout's picture

28-10-2003, 01:23

that would indeed be an ideal situation... still, it's quite a challenge to create such an XML, even with the combined efforts of several people.

By Manuel

Ascended (15125)

Manuel's picture

28-10-2003, 20:06


So, if we, all users of openMSX, start creating an XML in which we define the lowest system requirements needed to make a software product work, we could benefit a lot from this when openMSX is ported to other systems. Not only does it help reducing CPU-load, it also makes the emulator a LOT more user-friendly if it can 'auto-select' the proper configuration.

How about this idea? Smile

Note that what you call 'an XML' is actually called a 'hardware configuration' by us Smile. The romdb.xml is also an XML file, but has a different DTD and a completely different content, of course.

So, if I understand you correctly, you want to make sure that you are always running the program on an emulated MSX that is as minimal as possible to run the software on?

Anyway: if there is a database (e.g. Generation MSX) with the minimum system requirements for a certain piece of software, you could just generate the right hardwareconfig. You just take a minimum config (minimum as in: it's just qualified as an MSX, see MSX Technical databook) and generate extra devices when needed according to the data in that db.
Note that not only the hardwareconfig determines the system's performance, as you already mentioned. Things like the renderer accuracy, renderer type, special effects (GL renderer) and system color depth also have a great influence, probably a lot more than the emulated MSX itself (maybe except in the case of the turboR).
From minimal hardware requirements of the software it is hard to determine what settings are best. But it is possible to make a good guess so that most of the software works, sometimes. As you already mentioned, probably all MSX1 softwares will work on screen accurate rendering (which is indeed a lot faster than the others). Most MSX2 and up software will work fine with line accuracy rendering.
But, if you have a videocard and drivers that implement a very good openGL infrastructure, you may need a lot less resources if you switch to SDLGL. On the other hand, using SDLLo will also give you a lot better performance, but only 1/4 of all the pixels compared to SDLHi and SDLGL....
And what about the special fx? Do you *need* them? Probably not...
(If you didn't notice yet: the graphics are the main bottleneck....)

In any case, if you don't require too fancy output, it must be possible to run openMSX on quite basic hardware, I think.
One example: at work I could run openMSX perfectly using SDLHi and a normal MSX2 config with FMPAC and such on a Pentium II 450 MHz. So, if you use screen accuracy and SDLLo you could get quite far with running it on very low specced machines, I think.

By mth

Champion (480)

mth's picture

29-10-2003, 01:32

Decisions about the output rendering (video, audio) can be made by the person porting openMSX. For example, if you port it to a mobile phone with a 320x240 screen, it is logical to use the SDLLo renderer since there simply aren't enough pixels available for SDLHi and there is no OpenGL on mobile phone (not yet, anyway). Audio rendering is also tied to the hardware. If a portable game console has a single builtin speaker, emulating 22kHz mono sound is good enough. But if the native sound hardware runs at 48kHz stereo and good quality headphones are used, then it makes sense to emulate at 48kHz stereo as well. So which output rendering to use depends far more on the platform you port to, than on the MSX software you want to run.

Which leaves the question of which MSX machine to select to run a certain piece of MSX software. I am wondering whether using a minimum spec machine really speeds things up compared to using a higher-spec machine without utilizing its extra features. For example MoonSound emulation takes a lot of CPU power. But if the machine you selected has a MoonSound, but the software you're running doesn't use the MoonSound, emulating the MoonSound doesn't use any CPU cycles at all. Most of openMSX is written in this way: only if you actually use a feature, the code for emulating it is executed. I think running MSX1 games on a V9958 would require just as much CPU power as running them on a TMS9918.

So before you start writing down minimum specs XML, please try benchmarking the performance of running software on a minimum spec machine and on an overspecced machine. I'm interested in hearing the results.

By anonymous

incognito ergo sum (109)

anonymous's picture

29-10-2003, 09:21

Nevertheless, specifying the need for pixel/line/screen accuracy per game will help alot.
A mobile phone might not be able to play games with line or pixel accuracy full speed, but I imagine Unknown Reality is cool even in slowmotion.

My MSX profile