gnu-linux-libre
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [GNU-linux-libre] MAME emulator is giving incentive to use non-free


From: Felipe Sanches
Subject: Re: [GNU-linux-libre] MAME emulator is giving incentive to use non-free software
Date: Mon, 4 Apr 2016 19:59:33 -0300

I am also sending the screenshot of the Another World virtual machine
debugger as an attachment to this message.

On Mon, Apr 4, 2016 at 7:58 PM, Felipe Sanches <address@hidden> wrote:
> The other situation when I was able to benefit from the automatically
> generated custom debugger UI was when working on emulating the
> (non-free) game Another World from the 90's. It was originally
> executed on Amiga computers, so the debugger would let me see the
> opcodes of the Amiga CPU. But the game was actually originally
> implemented in a custom virtual machine created by its author, Eric
> Chahi. I decided to emulate this virtual machine in MAME as if it were
> a real CPU. The end-result was that I got for the first time the
> ability to inspect the game (non-free) bytecode at the virtual-machine
> level by running it on the automatically generated debugger that MAME
> provides.
>
> This opens up a new level of insight on the internal workings of the
> program that was never possible before with so much ease. A screenshot
> of that can be seen here:
> https://twitter.com/juca_gnu/status/686597622417719296
>
> Happy Hacking,
> Felipe Sanches
>
> On Mon, Apr 4, 2016 at 7:47 PM, Felipe Sanches <address@hidden> wrote:
>> On Mon, Apr 4, 2016 at 7:23 PM, alírio eyng <address@hidden> wrote:
>>> Felipe Sanches:
>>>>MAME provides an interactive debugger
>>> so mame is not just an emulator.
>>> it is a emulator, disassembler and debugger.
>>> this is relevant information i can't see in official documentation, thanks.
>>>
>>> it seems even with a obsolete executable format, it can be a
>>> interesting development environment.
>>> a interesting development environment is useful in itself and don't
>>> need free games.
>>> is there a similar environment to a current architecture?
>>> can this development environment be used in freedom to develop a game
>>> from scratch?
>>
>> Yes. I did it.
>> https://github.com/garoa/GunSmoke/tree/master/
>>
>>> this development environment works for all architectures mame supports?
>> Yes. The debugger dialog is generic and you get it automatically as a
>> bonus if you implement a new CPU emulation module. This happened with
>> me a couple times already. I got access to the technical manuals of
>> the first computer designed and manufactured in Brazil, which was
>> called "Patinho Feio" (meaning something like "Ugly Duckling
>> Computer"). I got the printed documentation from the hands of one of
>> my university professors at the engineering school. He was involved in
>> the team that developed the pioneer computer back in 1972.
>>
>> Based on the documentation (which I published it all on the Internet
>> Archive with authorization form the original author:
>> https://archive.org/details/Montador_do_Patinho_Feio__Julho1977) I
>> wrote a new CPU emulation driver in MAME to emulate the custom
>> instruction set of this Brazilian machine. Not only emulation works
>> when loading its sample software - a trivially simple hello-world
>> extracted from a punched data tape, trivial enough to not even be
>> copyrightable I guess... - It also allows me to run the code step by
>> step and to inspect the system memory because the whole debugging
>> framework was "magically" inherited by the way MAME codebase is
>> structured.
>>
>> So this makes it sure that absolutely every CPU architecture supported
>> by MAME does also provide such nice interactive debugger. And the list
>> of supported CPUs is absurdly broad:
>>
>> address@hidden:~/mame/src/devices/cpu$ ls
>> 8x300      arm       drcbec.cpp    drccache.h  e0c6200   hd61700
>> i860     m6800     mcs51        pdp8       sc61860  sm8500   tms32010
>> ucom4    x86emit.h
>> adsp2100   arm7      drcbec.h      drcfe.cpp   e132xs    hmcs40
>> i960     m68000    mcs96        pic16c5x   scmp     spc700   tms32025
>> uml.cpp  x86log.cpp
>> alph8201   asap      drcbeut.cpp   drcfe.h     es5510    hphybrid
>> ie15     m6805     melps4       pic16c62x  score    ssem     tms32031
>> uml.h    x86log.h
>> alto2      avr8      drcbeut.h     drcuml.cpp  esrip     i386
>> jaguar   m6809     minx         powerpc    scudsp   ssp1601  tms32051
>> unsp     z180
>> am29000    ccpu      drcbex64.cpp  drcuml.h    f8        i4004
>> lc8670   mb86233   mips         pps4       se3208   superfx  tms32082
>> upd7725  z8
>> amis2000   cop400    drcbex64.h    drcumlsh.h  g65816    i8008
>> lh5801   mb86235   mn10200      psx        sh2      t11      tms34010
>> upd7810  z80
>> apexc      cosmac    drcbex86.cpp  dsp16       h6280     i8085
>> lr35902  mb88xx    nec          rsp        sh4      tlcs90   tms57002
>> v30mz    z8000
>> arc        cp1610    drcbex86.h    dsp32       h8        i8089
>> m37710   mc68hc11  patinhofeio  s2650      sharc    tlcs900  tms7000
>> v60
>> arcompact  cubeqcpu  drccache.cpp  dsp56k      hcd62121  i86
>> m6502    mcs48     pdp1         saturn     sm510    tms1000  tms9900
>> v810

Attachment: 2016_JAN_11_AnotherWolrd_interactive_debugger.png
Description: PNG image


reply via email to

[Prev in Thread] Current Thread [Next in Thread]