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

Vladimir Menshakov whoozle at yandex.ru
Mon Jun 20 09:13:50 CEST 2011



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. So, I don't think that maintainability is *really* the case here. 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. :)))
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. 

> 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.
Let's try it on DS. Usually, simple SSA, found in every compiler, eliminates all unnecessary  writes. 

>
> Cheers,
> Bertrand
>
> --- En date de : Lun 20.6.11, Johannes Schickel <lordhoto at gmail.com>; a écrit :
>
>>  De: Johannes Schickel <lordhoto at gmail.com>;
>>  Objet: Re: [Scummvm-devel] Dreamweb code (+ general ScummVM focus/vision)
>>  À: "Vladimir Menshakov" <whoozle at yandex.ru>;
>>  Cc: scummvm-devel at lists.sourceforge.net
>>  Date: Lundi 20 juin 2011, 8h52
>>  On Mon, Jun 20, 2011 at 5:40 AM,
>>  Vladimir Menshakov <whoozle at yandex.ru>;
>>  wrote:
>>>>  Albeit I think it's some nice demo of the
>>  asm->c conversion I do not think
>>>>  that is what we want in ScummVM. ScummVM is about
>>  reimplementing the game
>>>>  engines or at least supporting them with the help
>>  of original source code.
>>>>  This means to me the code should be at least
>>  somewhat proper reimplementation
>>>>  of the original logic in C++.
>>>  Who do you want to reimplement this engines?
>>  Seeing that we have most of our other engines reimplemented
>>  I am not
>>  sure whether this is a real argument. If nobody cares
>>  about
>>  implementing it, when we don't have it supported. I don't
>>  see anything
>>  bad about it.
>>>  What's wrong with robot reimplementing the engine?
>>>  What if I replace gotos with while/do and register
>>  names with locals. Will it be "proper" reimplementation?
>>
>>  If you furthermore strip all the code from runtime.h then I
>>  would
>>  think of considering it proper.
>>>>  Dreamweb definitly is not like that. What we have
>>  with dreamweb is what I would
>>>  And like that, then?
>>  Like a proper reimplementation of the game and not just an
>>  asm -> C
>>  conversion utilizing a "runtime" which is basically a
>>  register set +
>>  memory + glue code used to display graphics etc.
>>>>  Also like Max, I have the feeling that people are
>>  discouraging that we
>>>>  reimplement it properly due to it being a "waste
>>  of time" and having a big
>>>>  chance of causing "regressions". That is IMHO bad
>>  too, we want a proper C++
>>>>  reimplementation IMHO.
>>>  Again, define "proper" please.
>>  Proper in this context is a reimplementation in C++ which
>>  makes the
>>  logic clear to someone not knowing assembly. If you look at
>>  the
>>  dreamweb code in dreamgen.cpp it is not really much
>>  different than to
>>  look at the assembly code.
>>>>  I do not say we should remove it from master right
>>  now! We should rather talk
>>>>  about what we really want with ScummVM (or in
>>  ScummVM). IMHO the merging shows
>>>>  that we really do not live up to our standards
>>  anymore when it comes to
>>>>  supporting new games.
>>>  Please tell what's wrong the dreamweb, beside "you
>>  don't like it". Dreamweb is not emulated, but translated
>>  from original source.
>>
>>  That's right Dreamweb is not emulated strictly speaking.
>>  But just
>>  looking at the code in runtime.h clearly shows it is using
>>  some kind
>>  of "virtual machine" to execute the translated assembly.
>>  This is what
>>  I would not consider a proper reimplementation of the
>>  engine anymore.
>>>>  So is this the new way to go? Should we really
>>  accept code like this in the
>>>>  future?
>>>  Why not?
>>  Because it is not reimplemented.
>>>>  And also what are we going to do about the
>>  dreamweb code? Personally I think
>>>>  we should not support it officially till we have
>>  reimplemented it properly.
>>>  Again, no real arguments, just emotions. You think. We
>>  should not. Why not? It's playable, completable. People who
>>  uses scummvm really don't care about how this game got
>>  supported
>>
>>  That's right people do not care about how it's done. But
>>  SucmmVM is
>>  (or at least was) a project aimed at reimplementations of
>>  the game,
>>  not like some pseudo emulated translation.
>>
>>  // Johannes
>>
>>  ------------------------------------------------------------------------------
>>  EditLive Enterprise is the world's most technically
>>  advanced content
>>  authoring tool. Experience the power of Track Changes,
>>  Inline Image
>>  Editing and ensure content is compliant with Accessibility
>>  Checking.
>>  http://p.sf.net/sfu/ephox-dev2dev
>>  _______________________________________________
>>  Scummvm-devel mailing list
>>  Scummvm-devel at lists.sourceforge.net
>>  https://lists.sourceforge.net/lists/listinfo/scummvm-devel




More information about the Scummvm-devel mailing list