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

Vladimir Menshakov whoozle at yandex.ru
Mon Jun 20 09:42:28 CEST 2011


In this case, yes, you're right. But in the most cases like group of instructions, ssa will work well I guess, eliminating useless multiple flags write, for example. Anyway this is the case for the investigation too. :)

20.06.2011, 11:29, "Bertrand Augereau" <bertrand_augereau at yahoo.fr>:
>>  Let's try it on DS. Usually, simple SSA, found in every
>>  compiler, eliminates all unnecessary  writes.
>
> Sure, this is the only way to know! I don't have access to the hardware anymore sadly.
>
> However, I don't really see what SSA has to do with the present case.
> The lhs is in memory (as a global or member variable for each register and flags) so the compiler can ditch multiple consecutive writes at function scopes but if you translate
> push ebp
> mov ebp, esp
> mov eax, 12
> mov dword ptr [twelve], eax
> ret
> The compiler won't know if eax is needed or not outside the function, so it'll definitely store it in memory.
> Ditto for the flags.
>
> We'll have to wait for the next round of DS tests I guess :)
>
>>>  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