From mboxrd@z Thu Jan 1 00:00:00 1970 From: Felipe Sanches Subject: Re: [GNU-linux-libre] MAME emulator is giving incentive to use non-free software Date: Mon, 4 Apr 2016 19:47:35 -0300 Message-ID: References: <20160402041955.484a1cb1@top-laptop> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:59583) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1anDHW-0006xB-Nh for guix-devel@gnu.org; Mon, 04 Apr 2016 18:47:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1anDHV-00078Z-CN for guix-devel@gnu.org; Mon, 04 Apr 2016 18:47:38 -0400 Received: from mail-ob0-x22d.google.com ([2607:f8b0:4003:c01::22d]:34596) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1anDHV-00078K-5v for guix-devel@gnu.org; Mon, 04 Apr 2016 18:47:37 -0400 Received: by mail-ob0-x22d.google.com with SMTP id bg3so44277729obb.1 for ; Mon, 04 Apr 2016 15:47:36 -0700 (PDT) In-Reply-To: List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Workgroup for fully free GNU/Linux distributions Cc: guix-devel@gnu.org On Mon, Apr 4, 2016 at 7:23 PM, al=C3=ADrio eyng wro= te: > 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, thank= s. > > 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