unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Felipe Sanches <juca@members.fsf.org>
To: Workgroup for fully free GNU/Linux distributions
	<gnu-linux-libre@nongnu.org>
Cc: guix-devel@gnu.org
Subject: Re: MAME emulator is giving incentive to use non-free software
Date: Mon, 4 Apr 2016 19:59:33 -0300	[thread overview]
Message-ID: <CAK6XL6Df2YrD5gSYVfzuXbC=URapBjZ91RSgAUCxwUjQYB950Q@mail.gmail.com> (raw)
In-Reply-To: <CAK6XL6D5+ZJ_K-VB1SHP0AcaASAhuHPWqJFjV+B-Yq8KqCsEQw@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 5046 bytes --]

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 <juca@members.fsf.org> 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 <juca@members.fsf.org> wrote:
>> On Mon, Apr 4, 2016 at 7:23 PM, alírio eyng <alirioeyng@gmail.com> 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:
>>
>> felipe@guarana:~/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 #2: 2016_JAN_11_AnotherWolrd_interactive_debugger.png --]
[-- Type: image/png, Size: 203556 bytes --]

  reply	other threads:[~2016-04-04 22:59 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-29 16:31 MAME emulator is giving incentive to use non-free software alírio eyng
2016-03-30 22:30 ` Isaac David
2016-04-02  3:17   ` Denis 'GNUtoo' Carikli
2016-03-31 22:50 ` alírio eyng
2016-04-01  6:23   ` Ricardo Wurmus
2016-04-01 12:15     ` alírio eyng
2016-04-01 20:03       ` alírio eyng
2016-04-02  2:19 ` Denis 'GNUtoo' Carikli
2016-04-02  8:48   ` [GNU-linux-libre] " alírio eyng
2016-04-03 14:20     ` alírio eyng
2016-04-03 18:36       ` alírio eyng
2016-04-03 19:39         ` Felipe Sanches
2016-04-03 21:02         ` alírio eyng
2016-04-03 21:22           ` Felipe Sanches
2016-04-04  3:26           ` alírio eyng
2016-04-04 11:19             ` Felipe Sanches
2016-04-04 22:23             ` alírio eyng
2016-04-04 22:47               ` [GNU-linux-libre] " Felipe Sanches
2016-04-04 22:58                 ` Felipe Sanches
2016-04-04 22:59                   ` Felipe Sanches [this message]
2016-04-05  2:29               ` alírio eyng
2016-04-09  9:00               ` Denis 'GNUtoo' Carikli
2016-04-09 19:43                 ` alírio eyng
2016-04-27  0:31                   ` [GNU-linux-libre] " alírio eyng
2016-04-05 15:59     ` Denis 'GNUtoo' Carikli
2016-04-06 11:02       ` alírio eyng
  -- strict thread matches above, loose matches on Subject: below --
2016-03-30  4:10 IngeGNUe
2016-03-30 16:11 ` Mark H Weaver
2016-03-30 21:26   ` IngeGNUe
2016-03-29 14:01 Jean Louis
2016-03-29 14:46 ` Nils Gillmann
2016-03-28 21:55 Jean Louis
2016-03-29  0:26 ` Jookia
2016-03-29  4:42   ` Jean Louis
2016-03-29  6:27     ` Jookia
2016-03-29  7:30       ` Jean Louis
2016-03-29  8:25         ` Jookia
2016-03-29 11:35           ` rain1
2016-03-29 12:00             ` Jean Louis
2016-03-29 12:48               ` Nils Gillmann
2016-03-29 14:23               ` Mathieu Lirzin
2016-03-29 14:52                 ` Jean Louis
2016-03-29 16:15                   ` Ludovic Courtès
2016-03-29 17:29                     ` Jean Louis
2016-03-29 17:47                     ` Jean Louis
2016-03-29 12:41         ` Nils Gillmann
2016-03-29  1:44 ` Mark H Weaver
2016-03-29 13:03   ` Ludovic Courtès
2016-03-29 17:30   ` Christopher Allan Webber
2016-03-29 17:32     ` Thompson, David
2016-03-29 17:37       ` Eric Bavier
2016-03-30 20:25     ` Ludovic Courtès
2016-03-29  8:58 ` Taylan Ulrich Bayırlı/Kammer
2016-03-29 10:12   ` Jean Louis
2016-03-29 13:14     ` Ludovic Courtès
2016-03-29 13:51       ` Jean Louis
2016-03-29 16:09         ` Ludovic Courtès

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAK6XL6Df2YrD5gSYVfzuXbC=URapBjZ91RSgAUCxwUjQYB950Q@mail.gmail.com' \
    --to=juca@members.fsf.org \
    --cc=gnu-linux-libre@nongnu.org \
    --cc=guix-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).