[Scummvm-devel] Dreamweb code (+ general ScummVM focus/vision)

Max Horn max at quendi.de
Mon Jun 20 10:05:51 CEST 2011


Am 20.06.2011 um 09:13 schrieb Vladimir Menshakov:

> 
> 
> 20.06.2011, 11:03, "Bertrand Augereau" <bertrand_augereau at yahoo.fr>:
>> I quite agree with the philosophy of having everything reimplemented in proper C++, but wouldn't it be a shame not allowing people to play Dreamweb in ScummVM if it is completable and supported properly?
> Let's face the truth - noone except engine authors will fix bugs except trivial/generic ones.

But how does one become an engine author? The barrier with dreamweb is right now quite a bit higher than with other engines. One needs to know x86 assembler, *and* be familiar with the ASM->C converter. Then you need to determine whether to fix the ASM source; the converter; or whether to turn some ASM code into a hand-written C++ method (once you discovered that this is possible, and how).

Quite a steep learning curve. For other engines, in the past people become an engine contributor because they noticed a bug, and set out to try if they could fix it. After doing this successfully, they submitted a patch. And possibly one day, a new ScummVM contributor was born.

Sadly, this is less frequent these days than it used to be (the increased overall complexity of ScummVM doesn't help, I guess). But it did happen, and I would love for it to happen again. I myself "joined" various engine team in a similar way.



> So, I don't think that maintainability is *really* the case here.

I disagree, maintainability *is* part of the problem.


> I think it's just form of self-preferences or so. Years ago people blamed computers for losing their jobs because of automation. Today the same people blame me for automatic rewriting the code. :)))

Riiigh... that "ad hominem" angle works in both directions, you know? E.g. I could point out that this is your baby we are talking about, and that your strong emotions about it cloud your feeling ;).  (Note the added smiley to make it seem less offensive).

Alas, that is silly. *Of course* you are upset because people are criticizing your code (after carefully pointing out that it is not your code per-se, but rather how it fits into ScummV), and I fully understand that. But just because you disagree with your views doesn't mean we are retarded idiots.


> I don't have another year to spend meaninglessly rewriting the code from c++ to c++. I will fully support dreamweb as a developer. But anyway I will not protest if you unmerge dreamweb, I'm pretty fed up struggling with windmills.

Hehe funny, I was using the "windmills" analog, too, just last night, but in the other direction :).

>  
> 
>> At least, now the world knows, and there is a solid basis for reimplementing incrementally parts of the engine from generated sphagetti code to clean C++. Now there is the question that Vladimir doesn't see it any useful.
>> Vladimir, you have to admit that reimplementing cleanly the engine would give a *much* better performance. You don't want to commit to memory everytime you touch a register and emulate flags, that's what an emulator does, and... watch out guys, here comes my point :)... this probably is what would prevent playing Dreamweb in Scummvm on a DS and possibly other slow platforms.

... I am actually myself not so much concerned about efficiency, but gotta reply to this one anyway:

> Let's try it on DS. Usually, simple SSA, found in every compiler, eliminates all unnecessary  writes. 

Assuming alias analysis is enabled and working, this *might* be true. But sadly we can't enable it, due to various parts of our code getting broken by the GCC alias analysis. 
Alas, it would be easy enough to find out for sure by compiling the code with -O2 / -O3 for various architectures and looking at the asm. But I am not that much concerned about this bit.




Bye,
Max



More information about the Scummvm-devel mailing list