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 --]
next prev parent 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).