Il ne s’agit pas vraiment d’un émulateur mais plutot d’une machine virtuelle pour développer et faire tourner des applications Atari ST, mais aussi TT & Falcon tournant sous Windows et en Open Source. Maintenant ARAnyM est fourni avec EmuTOS, un TOS gratuit. Deux versions sont disponible : Une avec et l’autre sans l’émulation du DSP.

 

Les améliorations sont les suivantes:

– input.cpp: improved the help message in window title
– various files: version++ and other minor updates for the new release
– MacAranym.xcodeproj, configure.ac: Fixing build on Mac OS 10.9 / Xcode 5.1
– New config setting [LILO] LoadToFastRAM to load kernel in FastRAM
– Delete some FreeMiNT’s specific code, like usb_device struct, leave
  the updates to the members of this struct to FreeMiNT’s driver.
– Remove some endianess swapping where not necessary, and add them
  where was needed. Use SDL function instead our owns.
– Update API version, because some function have now less parameters.
– Fix some return values.
– ikbd.cpp – force transition for GPIP pin
– fpu_mpfr.cpp – Be more careful about SNaN
– newcpu.cpp – Fix printing of sign-extended operands in disassembler
– fpu_mpfr.cpp – Preserve the bits of NaN
– fpu_mpfr.c – Improve accuracy of denormal results, fix decoding of FBcc.L
– Unix/vm_alloc.cpp – Use MAP_32BIT only when requested
– m68k.h – Added ARM flags optimization
– configure.ac – Added ARM flags optimization
– sysdeps.h – Improved clobber list
– configure.ac : Added ARM Assembly compiler flags (build armv6 optimized
  assembly on armv6 and above)
– src/Unix/sysdeps.h : Improved __asm__ memory access (supports armv6, armv7
  and common arm)
  (ARMV6_ASSEMBLY for armv6 -> armv8; or ARM_ASSEMBLY for armv1 -> armv5)
  because extended optimation is for armv6 and above
  i.e. –build=armv5l-unknown-linux-gnueabi will build an
  generic arm version with common ARM instructions
– sigsegv_linux_arm.cpp  : Bug fixed with word/int byte order
– configure.ac : Added sigsegv_linux.arm.cpp for linux ARM Architecture
– sigsegv_linux_arm.cpp  : sigsegv support for ARM Linux
– Support for –enable-addr-check=sseg on ARM Linux
– configure.ac : Reverted to previous FIXED_ADDRESS implementation for 64 Bit
  previous change wasn’t necessary
– sigsegv_darwin_x86.cpp : 64 Bit code
– sigsegv_darwin_x86.cpp : xor added statement
– New files: MachServer.c, MachUser.c and gen_machfiles.sh
– MacAranym.xcodeproj: New build phase gen_machfiles
– sigsegv_linux_x86_64.cpp : New 64 Bit Jit for Linux
– MacAranym.xcodeproj: Fixed Profile settings
– configure.ac : Fixed typo
– bpf_helper.c: Set executable flag in fix permissions and wait for child
  processes to finish.
– configure.ac prepared for 64Bit Fixed addressing vm_allocate on darwin targets
– MacAranym.xcodeproj: Fixed Packaging scheme for 32/64 Bit Targets
– sigsegv_darwin_x86.cpp: added break in set_eflags. (Not sure if the eflags
  are really relevant)
– sigsegv_darwin_x86.cpp: Fixed X86_REG_EDX
– sigsegv_darwin_x86.cpp: Limit to BAD_ACCESS and forward_exception to enable
  XCode Debugging
– MacAranym.xcodeproj: Removed specific compilation flags of bpf_helper target.
  This should enable error-free compilation with Xcode 3.1.
– newcpu.cpp/compemu_fpp.cpp/fpu_ieee.cpu: fixed bugs which were reported as
  warnings by LLVM.
– ethernet_macosx.cpp: BPF packet filtering improvements: added a new filter for
  multi-cast packets (MAC based) and another filter solely based on the IP
  address (ARP and IP protocol only).
  « nofilter » should only be used for debugging, as it causes memory leaks on the
  Atari/MiNT side and therefore system crashes.
  Implemented multi-packet reads from BPF device (one read operation can deliver
  multiple ethernet frames).
– uae_cpu/compiler/compemu.h: Avoid conflict with definitions from
  <byteswap.h>, imported by SDL.
– ethernet_macosx.cpp: fixed memory leak on Atari side by implementing a
  working packet filter which ensures that only valid ethernet frames are
  forwarded to the Atari side. Removed the « nofilter » keyword.
  Thanks to Zorro for pointing me to this severe bug.
– natfeat/ethernet.h: Increase MAX_PACKET_SIZE to 9000 to allow enabling
  Ethernet on systems with MTU bigger than 1514.
– ethernet_macosx.cpp: Fix memory overflow in BPF driver.
– input.cpp: fixed click to grab input, added proper host<->Atari mouse sync
– ikbd.cpp: fixed SendMouseMotion() and MergeMousePacket()
– include/aradata.h: added setAtariMousePosition()
– natfeat/nfvdi.cpp: fixes a bug (sort of a race condition) in NFVDI.
  When fVDI switches to 32-bit display in VdiDriver::setResolution(),
  a new HostSurface is created immediately for the VDI driver.
  Then the video mode change is applied to the host window only on next VBL,
  in HostScreen::refreshSurface().
  But in VdiDriver::expandArea(), there was a bogus test:
    if (host->video->getBpp() == 8) {
  This was wrong, because the VDI made a test on the host window surface,
  which would only be correct on next VBL. Found and fixed by Vincent Riviere.
– bootos_emutos.cpp: fix for now correct BCD date format in EmuTOS by Vincent.
– include/natfeats.h: added proper check for end of memory block that
  is to be copied between host and guest using the LIBC memcpy().
  Re-enabled NATFEAT_LIBC_MEMCPY fast copying in NatFeats because
  I believe it’s relatively safe now when there are checks for
  begin and end of the Atari memory block. Atari memory is contiguous
  so when both begin and end of the block is readable/writeable
  the whole block should be OK to copy by LIBC memcpy.
– input.cpp: « Reseting weird mouse packet » error message changed to
  « Resetting suspicious mouse packet » debug message thus it’ll no longer
  annoy you. Thanks to Helmut Karlowski for pointing it out.
– include/natfeats.h: added switch for previously default and dangerous
  direct LIBC memcpy() to/from guest provided memory pointer. Now it is
  disabled by default and byte by byte copying routine is used instead
  (guest programs should no longer be able to kill the whole ARAnyM).
  It might affect the NatFeats performance negatively so if required
  set the newly introduced NATFEAT_LIBC_MEMCPY define to 1.
  In addition the direct LIBC memcpy() is now guarded by proper pointer check
  so even if you enable it for speed reasons you should still be relatively
  safe. Thanks to Thorsten Glaser for providing simple linux user program
  that was able to kill ARAnyM by issuing NF_NAME NatFeat.
– natfeat/nf_basicset.cpp, natfeat/ethernet.cpp: removed incorrect ValidAddr
  checks.
– Xcode 4.5 project/build system: fixes for building with OS X 10.8, changed
  packaging DMG to include README_ethernet.rtf instead of TunTap description,
  adjusted detection of aclocal and makedepend to support usage of MacPorts
– Disabled loading of WMIcon on MacAranym as the correct icon is already bundled
  with the application.
– README, NEWS: updated for a new release
– aranym.spec, version.h, export: increased version to 0.9.14
– input.cpp: use host middle mouse button for keyboard/mouse ungrab. Works only
  if Eiffel mouse middle button/wheel mode is not enabled.
– Added new option –enable-bpf-ethernet for Mac OS X. This allows using bridged
  ethernet without installing TunTap kernel extensions. See README_ethernet.rtf.
– ethernet_macosx.cpp: Berkley Packet Filter (BPF) based ethernet driver
  for Mac OS X. This driver supports only « bridge » mode, i.e. Aranym
  is part of your LAN, with its own IP address.
– bpf_helper.c,fd_trans.c: a small utility used to do privileged operations
  like opening a BPF device. When run for the first time it tries to
  fix the permissions (chown root, chmod ug+s).
  The file descriptor to the device is then passed using Unix sockets.
– Added Xcode 4 scheme files: added shared schemes for building the targets
– Source cleanup/remove warnings for compilation with latest LLVM compiler of
  Xcode 4.5
– Building on Mac OS 10.7: Do not set « -isysroot » during compilation. Targetting
  Mac OS 10.5 is still possible without explicitely specifying the SDK to use
  for compilation. This was only necessary during Universal Binary builds where
  explicitely the MacOSX10.4u.sdk had to be used to build multi architecture
  builds.
– hostscreen.cpp: « enforce VIDEL refresh » was missing => no screen updates
  during boot up when no nfVDI was active.
– gui-osx/SDLMain.m: Fix « deprecated » warning for « poseAsClass »
– Xcode project: enable X86_64 compilation beside i386 architecture and build
  fat binaries. 64 bit support in SDL is only available as of Mac OS 10.6.
  Therefore on 10.5 only the 32 bit version will run.
– hostscreen.cpp: fix missing check for « SingleBlitRefresh » configuration in
  refreshScreen().
– nfvdi_soft.cpp: Performance improvements by skipping memory translation
  if MMU emulation is disabled.
– dirty_rect.cpp: maintain a surrounding rectangle containing the whole
  dirtied area.
– hostscreen.cpp: Two possible modes for updating the atari screen surface
  and the host screen surface: « chunky » (as in previous versions, uses
  multiple, small rectangular updates) and « single » (which uses one single
  rectangular update over the whole « dirty » surface)
– parameters.cpp/dlgVideo.cpp: new boolean « SingleBlitRefresh »
  and « SingleBlitComposing » for the video configuration segment.
  If set to « Yes » the screen to be composed/screen to be refreshed will be sent
  in a single BitBlit to the screen/graphics card. If set to « No », only the
  dirty screen areas are sent by using multiple BitBlits.
  Default is « No ».
  => Checkout what combination gives you the best performance.
– hostscreen: Merge consecutive dirty blocks to reduce number of update to
  screen operations.
– MacAranym.xcodeproj: Support compilation with SDL 1.2.15.
  The standard Mac OS X deployment target is now 10.6, Intel only.
  It’s still possible to compile binaries with PowerPC and OS 10.5
  but no more Universal Binaries are going to be built.
  Build configuration « Release G5 » has been removed.
– MacAranym.xcodeproj: Added new target « MacAranym MMU MPFR » with MPFR FPU
  engine enabled. This target needs libgmp and libmpfr from MacPorts.
  Please checkout the README_Xcode.rtf for more details on how to build.
– MacAranym.xcodeproj: Renamed « MacAranym JIT IEEE » to « MacAranym JIT » as JIT
  already implies IEEE FPU.
  Further this target has been modified to include always « –enable-jit-fpu ».
– MacAranym.xcodeproj: Clean-up of project global and target specific configure
  flags (CONFIGURE_OPTIONS_BASE and CONFIGURE_OPTIONS_TARGET).
  Automatic detection when COMPILE_DEFS do not match what is generated in the
  Makefile during configure. It is now easier to change configure options on a
  target and really getting the right stuff compiled.
– sigsegv_darwin_x86.cpp: Fix compilation of JIT if Mac OS X Deployment target >= 10.5
– fpu/mathlib.h: fix compilation problem with in fp_do_expm1 inline assembly
  and LLVM GCC compiler.
– dirty_rects.cpp/h: implemented setDirtyLine which calculates the surrounding
  rectangle and adds it to the dirty rectangle list.
– nfvdi_soft.cpp: use setDirtyLine instead of setDirtyRect whenever a line is
  drawn. This fixes redraw glitches whenever a line is not drawn from top left
  to bottom right.
– configure.ac: don’t stop if libusb not found (apparently Debian on kfreebsd
  has the libusb as a fake package or what so the build was failing there)
– fpu_mpfr.cpp: Fix range check when converting to long word
– Fix MacAranym JIT: set/enforce deployment target to OS 10.4
– fpu_mpfr.cpp: Fix missing fpu exception update

 

Télécharger ARAnyM v0.9.16 (3,5 Mo)

Site Officiel

En savoir plus…