{"id":31056,"date":"2014-06-18T11:16:59","date_gmt":"2014-06-18T11:16:59","guid":{"rendered":"http:\/\/www.emu-france.com\/?p=31056"},"modified":"2014-06-18T11:16:59","modified_gmt":"2014-06-18T11:16:59","slug":"ordi-aranym-v0-9-16","status":"publish","type":"post","link":"https:\/\/www.emu-france.com\/?p=31056","title":{"rendered":"[Ordi.] ARAnyM v0.9.16"},"content":{"rendered":"<p>Il ne s&rsquo;agit pas vraiment d&rsquo;un \u00e9mulateur mais plutot d&rsquo;une machine virtuelle pour d\u00e9velopper et faire tourner des applications Atari ST, mais aussi TT &amp; 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&rsquo;autre sans l&rsquo;\u00e9mulation du DSP.<\/p>\n<p>&nbsp;<\/p>\n<p>Les am\u00e9liorations sont les suivantes:<\/p>\n<p><em>&#8211; input.cpp: improved the help message in window title<\/em><br \/>\n<em>&#8211; various files: version++ and other minor updates for the new release<\/em><br \/>\n<em>&#8211; MacAranym.xcodeproj, configure.ac: Fixing build on Mac OS 10.9 \/ Xcode 5.1<\/em><br \/>\n<em>&#8211; New config setting [LILO] LoadToFastRAM to load kernel in FastRAM<\/em><br \/>\n<em>&#8211; Delete some FreeMiNT&rsquo;s specific code, like usb_device struct, leave<\/em><br \/>\n<em>\u00a0 the updates to the members of this struct to FreeMiNT&rsquo;s driver.<\/em><br \/>\n<em>&#8211; Remove some endianess swapping where not necessary, and add them<\/em><br \/>\n<em>\u00a0 where was needed. Use SDL function instead our owns.<\/em><br \/>\n<em>&#8211; Update API version, because some function have now less parameters.<\/em><br \/>\n<em>&#8211; Fix some return values.<\/em><br \/>\n<em>&#8211; ikbd.cpp &#8211; force transition for GPIP pin<\/em><br \/>\n<em>&#8211; fpu_mpfr.cpp &#8211; Be more careful about SNaN<\/em><br \/>\n<em>&#8211; newcpu.cpp &#8211; Fix printing of sign-extended operands in disassembler<\/em><br \/>\n<em>&#8211; fpu_mpfr.cpp &#8211; Preserve the bits of NaN<\/em><br \/>\n<em>&#8211; fpu_mpfr.c &#8211; Improve accuracy of denormal results, fix decoding of FBcc.L<\/em><br \/>\n<em>&#8211; Unix\/vm_alloc.cpp &#8211; Use MAP_32BIT only when requested<\/em><br \/>\n<em>&#8211; m68k.h &#8211; Added ARM flags optimization<\/em><br \/>\n<em>&#8211; configure.ac &#8211; Added ARM flags optimization<\/em><br \/>\n<em>&#8211; sysdeps.h &#8211; Improved clobber list<\/em><br \/>\n<em>&#8211; configure.ac : Added ARM Assembly compiler flags (build armv6 optimized<\/em><br \/>\n<em>\u00a0 assembly on armv6 and above) <\/em><br \/>\n<em>&#8211; src\/Unix\/sysdeps.h : Improved __asm__ memory access (supports armv6, armv7<\/em><br \/>\n<em>\u00a0 and common arm)<\/em><br \/>\n<em>\u00a0 (ARMV6_ASSEMBLY for armv6 -&gt; armv8; or ARM_ASSEMBLY for armv1 -&gt; armv5)<\/em><br \/>\n<em>\u00a0 because extended optimation is for armv6 and above<\/em><br \/>\n<em>\u00a0 i.e. &#8211;build=armv5l-unknown-linux-gnueabi will build an<\/em><br \/>\n<em>\u00a0 generic arm version with common ARM instructions<\/em><br \/>\n<em>&#8211; sigsegv_linux_arm.cpp\u00a0 : Bug fixed with word\/int byte order<\/em><br \/>\n<em>&#8211; configure.ac : Added sigsegv_linux.arm.cpp for linux ARM Architecture<\/em><br \/>\n<em>&#8211; sigsegv_linux_arm.cpp\u00a0 : sigsegv support for ARM Linux<\/em><br \/>\n<em>&#8211; Support for &#8211;enable-addr-check=sseg on ARM Linux<\/em><br \/>\n<em>&#8211; configure.ac : Reverted to previous FIXED_ADDRESS implementation for 64 Bit<\/em><br \/>\n<em>\u00a0 previous change wasn&rsquo;t necessary<\/em><br \/>\n<em>&#8211; sigsegv_darwin_x86.cpp : 64 Bit code<\/em><br \/>\n<em>&#8211; sigsegv_darwin_x86.cpp : xor added statement<\/em><br \/>\n<em>&#8211; New files: MachServer.c, MachUser.c and gen_machfiles.sh<\/em><br \/>\n<em>&#8211; MacAranym.xcodeproj: New build phase gen_machfiles<\/em><br \/>\n<em>&#8211; sigsegv_linux_x86_64.cpp : New 64 Bit Jit for Linux<\/em><br \/>\n<em>&#8211; MacAranym.xcodeproj: Fixed Profile settings<\/em><br \/>\n<em>&#8211; configure.ac : Fixed typo<\/em><br \/>\n<em>&#8211; bpf_helper.c: Set executable flag in fix permissions and wait for child<\/em><br \/>\n<em>\u00a0 processes to finish.<\/em><br \/>\n<em>&#8211; configure.ac prepared for 64Bit Fixed addressing vm_allocate on darwin targets<\/em><br \/>\n<em>&#8211; MacAranym.xcodeproj: Fixed Packaging scheme for 32\/64 Bit Targets<\/em><br \/>\n<em>&#8211; sigsegv_darwin_x86.cpp: added break in set_eflags. (Not sure if the eflags<\/em><br \/>\n<em>\u00a0 are really relevant)<\/em><br \/>\n<em>&#8211; sigsegv_darwin_x86.cpp: Fixed X86_REG_EDX<\/em><br \/>\n<em>&#8211; sigsegv_darwin_x86.cpp: Limit to BAD_ACCESS and forward_exception to enable<\/em><br \/>\n<em>\u00a0 XCode Debugging<\/em><br \/>\n<em>&#8211; MacAranym.xcodeproj: Removed specific compilation flags of bpf_helper target.<\/em><br \/>\n<em>\u00a0 This should enable error-free compilation with Xcode 3.1.<\/em><br \/>\n<em>&#8211; newcpu.cpp\/compemu_fpp.cpp\/fpu_ieee.cpu: fixed bugs which were reported as<\/em><br \/>\n<em>\u00a0 warnings by LLVM.<\/em><br \/>\n<em>&#8211; ethernet_macosx.cpp: BPF packet filtering improvements: added a new filter for<\/em><br \/>\n<em>\u00a0 multi-cast packets (MAC based) and another filter solely based on the IP<\/em><br \/>\n<em>\u00a0 address (ARP and IP protocol only).<\/em><br \/>\n<em>\u00a0 \u00ab\u00a0nofilter\u00a0\u00bb should only be used for debugging, as it causes memory leaks on the<\/em><br \/>\n<em>\u00a0 Atari\/MiNT side and therefore system crashes.<\/em><br \/>\n<em>\u00a0 Implemented multi-packet reads from BPF device (one read operation can deliver<\/em><br \/>\n<em>\u00a0 multiple ethernet frames).<\/em><br \/>\n<em>&#8211; uae_cpu\/compiler\/compemu.h: Avoid conflict with definitions from<\/em><br \/>\n<em>\u00a0 &lt;byteswap.h&gt;, imported by SDL.<\/em><br \/>\n<em>&#8211; ethernet_macosx.cpp: fixed memory leak on Atari side by implementing a <\/em><br \/>\n<em>\u00a0 working packet filter which ensures that only valid ethernet frames are <\/em><br \/>\n<em>\u00a0 forwarded to the Atari side. Removed the \u00ab\u00a0nofilter\u00a0\u00bb keyword.<\/em><br \/>\n<em>\u00a0 Thanks to Zorro for pointing me to this severe bug.<\/em><br \/>\n<em>&#8211; natfeat\/ethernet.h: Increase MAX_PACKET_SIZE to 9000 to allow enabling<\/em><br \/>\n<em>\u00a0 Ethernet on systems with MTU bigger than 1514.<\/em><br \/>\n<em>&#8211; ethernet_macosx.cpp: Fix memory overflow in BPF driver.<\/em><br \/>\n<em>&#8211; input.cpp: fixed click to grab input, added proper host&lt;-&gt;Atari mouse sync<\/em><br \/>\n<em>&#8211; ikbd.cpp: fixed SendMouseMotion() and MergeMousePacket()<\/em><br \/>\n<em>&#8211; include\/aradata.h: added setAtariMousePosition()<\/em><br \/>\n<em>&#8211; natfeat\/nfvdi.cpp: fixes a bug (sort of a race condition) in NFVDI.<\/em><br \/>\n<em>\u00a0 When fVDI switches to 32-bit display in VdiDriver::setResolution(),<\/em><br \/>\n<em>\u00a0 a new HostSurface is created immediately for the VDI driver.<\/em><br \/>\n<em>\u00a0 Then the video mode change is applied to the host window only on next VBL,<\/em><br \/>\n<em>\u00a0 in HostScreen::refreshSurface().<\/em><br \/>\n<em>\u00a0 But in VdiDriver::expandArea(), there was a bogus test:<\/em><br \/>\n<em>\u00a0\u00a0\u00a0 if (host-&gt;video-&gt;getBpp() == 8) {<\/em><br \/>\n<em>\u00a0 This was wrong, because the VDI made a test on the host window surface,<\/em><br \/>\n<em>\u00a0 which would only be correct on next VBL. Found and fixed by Vincent Riviere.<\/em><br \/>\n<em>&#8211; bootos_emutos.cpp: fix for now correct BCD date format in EmuTOS by Vincent.<\/em><br \/>\n<em>&#8211; include\/natfeats.h: added proper check for end of memory block that<\/em><br \/>\n<em>\u00a0 is to be copied between host and guest using the LIBC memcpy().<\/em><br \/>\n<em>\u00a0 Re-enabled NATFEAT_LIBC_MEMCPY fast copying in NatFeats because<\/em><br \/>\n<em>\u00a0 I believe it&rsquo;s relatively safe now when there are checks for<\/em><br \/>\n<em>\u00a0 begin and end of the Atari memory block. Atari memory is contiguous<\/em><br \/>\n<em>\u00a0 so when both begin and end of the block is readable\/writeable<\/em><br \/>\n<em>\u00a0 the whole block should be OK to copy by LIBC memcpy.<\/em><br \/>\n<em>&#8211; input.cpp: \u00ab\u00a0Reseting weird mouse packet\u00a0\u00bb error message changed to<\/em><br \/>\n<em>\u00a0 \u00ab\u00a0Resetting suspicious mouse packet\u00a0\u00bb debug message thus it&rsquo;ll no longer<\/em><br \/>\n<em>\u00a0 annoy you. Thanks to Helmut Karlowski for pointing it out.<\/em><br \/>\n<em>&#8211; include\/natfeats.h: added switch for previously default and dangerous<\/em><br \/>\n<em>\u00a0 direct LIBC memcpy() to\/from guest provided memory pointer. Now it is<\/em><br \/>\n<em>\u00a0 disabled by default and byte by byte copying routine is used instead<\/em><br \/>\n<em>\u00a0 (guest programs should no longer be able to kill the whole ARAnyM).<\/em><br \/>\n<em>\u00a0 It might affect the NatFeats performance negatively so if required<\/em><br \/>\n<em>\u00a0 set the newly introduced NATFEAT_LIBC_MEMCPY define to 1.<\/em><br \/>\n<em>\u00a0 In addition the direct LIBC memcpy() is now guarded by proper pointer check<\/em><br \/>\n<em>\u00a0 so even if you enable it for speed reasons you should still be relatively<\/em><br \/>\n<em>\u00a0 safe. Thanks to Thorsten Glaser for providing simple linux user program<\/em><br \/>\n<em>\u00a0 that was able to kill ARAnyM by issuing NF_NAME NatFeat.<\/em><br \/>\n<em>&#8211; natfeat\/nf_basicset.cpp, natfeat\/ethernet.cpp: removed incorrect ValidAddr<\/em><br \/>\n<em>\u00a0 checks.<\/em><br \/>\n<em>&#8211; Xcode 4.5 project\/build system: fixes for building with OS X 10.8, changed <\/em><br \/>\n<em>\u00a0 packaging DMG to include README_ethernet.rtf instead of TunTap description,<\/em><br \/>\n<em>\u00a0 adjusted detection of aclocal and makedepend to support usage of MacPorts<\/em><br \/>\n<em>&#8211; Disabled loading of WMIcon on MacAranym as the correct icon is already bundled<\/em><br \/>\n<em>\u00a0 with the application.<\/em><br \/>\n<em>&#8211; README, NEWS: updated for a new release<\/em><br \/>\n<em>&#8211; aranym.spec, version.h, export: increased version to 0.9.14<\/em><br \/>\n<em>&#8211; input.cpp: use host middle mouse button for keyboard\/mouse ungrab. Works only<\/em><br \/>\n<em>\u00a0 if Eiffel mouse middle button\/wheel mode is not enabled.<\/em><br \/>\n<em>&#8211; Added new option &#8211;enable-bpf-ethernet for Mac OS X. This allows using bridged<\/em><br \/>\n<em>\u00a0 ethernet without installing TunTap kernel extensions. See README_ethernet.rtf.<\/em><br \/>\n<em>&#8211; ethernet_macosx.cpp: Berkley Packet Filter (BPF) based ethernet driver<\/em><br \/>\n<em>\u00a0 for Mac OS X. This driver supports only \u00ab\u00a0bridge\u00a0\u00bb mode, i.e. Aranym <\/em><br \/>\n<em>\u00a0 is part of your LAN, with its own IP address.<\/em><br \/>\n<em>&#8211; bpf_helper.c,fd_trans.c: a small utility used to do privileged operations<\/em><br \/>\n<em>\u00a0 like opening a BPF device. When run for the first time it tries to<\/em><br \/>\n<em>\u00a0 fix the permissions (chown root, chmod ug+s).<\/em><br \/>\n<em>\u00a0 The file descriptor to the device is then passed using Unix sockets.<\/em><br \/>\n<em>&#8211; Added Xcode 4 scheme files: added shared schemes for building the targets<\/em><br \/>\n<em>&#8211; Source cleanup\/remove warnings for compilation with latest LLVM compiler of<\/em><br \/>\n<em>\u00a0 Xcode 4.5<\/em><br \/>\n<em>&#8211; Building on Mac OS 10.7: Do not set \u00ab\u00a0-isysroot\u00a0\u00bb during compilation. Targetting<\/em><br \/>\n<em>\u00a0 Mac OS 10.5 is still possible without explicitely specifying the SDK to use<\/em><br \/>\n<em>\u00a0 for compilation. This was only necessary during Universal Binary builds where<\/em><br \/>\n<em>\u00a0 explicitely the MacOSX10.4u.sdk had to be used to build multi architecture<\/em><br \/>\n<em>\u00a0 builds.<\/em><br \/>\n<em>&#8211; hostscreen.cpp: \u00ab\u00a0enforce VIDEL refresh\u00a0\u00bb was missing =&gt; no screen updates <\/em><br \/>\n<em>\u00a0 during boot up when no nfVDI was active.<\/em><br \/>\n<em>&#8211; gui-osx\/SDLMain.m: Fix \u00ab\u00a0deprecated\u00a0\u00bb warning for \u00ab\u00a0poseAsClass\u00a0\u00bb<\/em><br \/>\n<em>&#8211; Xcode project: enable X86_64 compilation beside i386 architecture and build<\/em><br \/>\n<em>\u00a0 fat binaries. 64 bit support in SDL is only available as of Mac OS 10.6.<\/em><br \/>\n<em>\u00a0 Therefore on 10.5 only the 32 bit version will run.<\/em><br \/>\n<em>&#8211; hostscreen.cpp: fix missing check for \u00ab\u00a0SingleBlitRefresh\u00a0\u00bb configuration in<\/em><br \/>\n<em>\u00a0 refreshScreen().<\/em><br \/>\n<em>&#8211; nfvdi_soft.cpp: Performance improvements by skipping memory translation<\/em><br \/>\n<em>\u00a0 if MMU emulation is disabled.<\/em><br \/>\n<em>&#8211; dirty_rect.cpp: maintain a surrounding rectangle containing the whole<\/em><br \/>\n<em>\u00a0 dirtied area.<\/em><br \/>\n<em>&#8211; hostscreen.cpp: Two possible modes for updating the atari screen surface <\/em><br \/>\n<em>\u00a0 and the host screen surface: \u00ab\u00a0chunky\u00a0\u00bb (as in previous versions, uses <\/em><br \/>\n<em>\u00a0 multiple, small rectangular updates) and \u00ab\u00a0single\u00a0\u00bb (which uses one single<\/em><br \/>\n<em>\u00a0 rectangular update over the whole \u00ab\u00a0dirty\u00a0\u00bb surface)<\/em><br \/>\n<em>&#8211; parameters.cpp\/dlgVideo.cpp: new boolean \u00ab\u00a0SingleBlitRefresh\u00a0\u00bb <\/em><br \/>\n<em>\u00a0 and \u00ab\u00a0SingleBlitComposing\u00a0\u00bb for the video configuration segment. <\/em><br \/>\n<em>\u00a0 If set to \u00ab\u00a0Yes\u00a0\u00bb the screen to be composed\/screen to be refreshed will be sent<\/em><br \/>\n<em>\u00a0 in a single BitBlit to the screen\/graphics card. If set to \u00ab\u00a0No\u00a0\u00bb, only the <\/em><br \/>\n<em>\u00a0 dirty screen areas are sent by using multiple BitBlits. <\/em><br \/>\n<em>\u00a0 Default is \u00ab\u00a0No\u00a0\u00bb.<\/em><br \/>\n<em>\u00a0 =&gt; Checkout what combination gives you the best performance.<\/em><br \/>\n<em>&#8211; hostscreen: Merge consecutive dirty blocks to reduce number of update to<\/em><br \/>\n<em>\u00a0 screen operations.<\/em><br \/>\n<em>&#8211; MacAranym.xcodeproj: Support compilation with SDL 1.2.15.<\/em><br \/>\n<em>\u00a0 The standard Mac OS X deployment target is now 10.6, Intel only.<\/em><br \/>\n<em>\u00a0 It&rsquo;s still possible to compile binaries with PowerPC and OS 10.5<\/em><br \/>\n<em>\u00a0 but no more Universal Binaries are going to be built.<\/em><br \/>\n<em>\u00a0 Build configuration \u00ab\u00a0Release G5\u00a0\u00bb has been removed.<\/em><br \/>\n<em>&#8211; MacAranym.xcodeproj: Added new target \u00ab\u00a0MacAranym MMU MPFR\u00a0\u00bb with MPFR FPU <\/em><br \/>\n<em>\u00a0 engine enabled. This target needs libgmp and libmpfr from MacPorts.<\/em><br \/>\n<em>\u00a0 Please checkout the README_Xcode.rtf for more details on how to build.<\/em><br \/>\n<em>&#8211; MacAranym.xcodeproj: Renamed \u00ab\u00a0MacAranym JIT IEEE\u00a0\u00bb to \u00ab\u00a0MacAranym JIT\u00a0\u00bb as JIT <\/em><br \/>\n<em>\u00a0 already implies IEEE FPU.<\/em><br \/>\n<em>\u00a0 Further this target has been modified to include always \u00ab\u00a0&#8211;enable-jit-fpu\u00a0\u00bb.<\/em><br \/>\n<em>&#8211; MacAranym.xcodeproj: Clean-up of project global and target specific configure<\/em><br \/>\n<em>\u00a0 flags (CONFIGURE_OPTIONS_BASE and CONFIGURE_OPTIONS_TARGET).<\/em><br \/>\n<em>\u00a0 Automatic detection when COMPILE_DEFS do not match what is generated in the<\/em><br \/>\n<em>\u00a0 Makefile during configure. It is now easier to change configure options on a<\/em><br \/>\n<em>\u00a0 target and really getting the right stuff compiled.<\/em><br \/>\n<em>&#8211; sigsegv_darwin_x86.cpp: Fix compilation of JIT if Mac OS X Deployment target &gt;= 10.5<\/em><br \/>\n<em>&#8211; fpu\/mathlib.h: fix compilation problem with in fp_do_expm1 inline assembly<\/em><br \/>\n<em>\u00a0 and LLVM GCC compiler.<\/em><br \/>\n<em>&#8211; dirty_rects.cpp\/h: implemented setDirtyLine which calculates the surrounding<\/em><br \/>\n<em>\u00a0 rectangle and adds it to the dirty rectangle list.<\/em><br \/>\n<em>&#8211; nfvdi_soft.cpp: use setDirtyLine instead of setDirtyRect whenever a line is<\/em><br \/>\n<em>\u00a0 drawn. This fixes redraw glitches whenever a line is not drawn from top left<\/em><br \/>\n<em>\u00a0 to bottom right.<\/em><br \/>\n<em>&#8211; configure.ac: don&rsquo;t stop if libusb not found (apparently Debian on kfreebsd<\/em><br \/>\n<em>\u00a0 has the libusb as a fake package or what so the build was failing there)<\/em><br \/>\n<em>&#8211; fpu_mpfr.cpp: Fix range check when converting to long word<\/em><br \/>\n<em>&#8211; Fix MacAranym JIT: set\/enforce deployment target to OS 10.4<\/em><br \/>\n<em>&#8211; fpu_mpfr.cpp: Fix missing fpu exception update<\/em><\/p>\n<p>&nbsp;<\/p>\n<p class=\"p_telecharger_icone_zip\"><a class=\"telecharger_icone_zip\" title=\"Download ARAnyM\" href=\"https:\/\/www.emu-france.com\/?wpfb_dl=929\">T\u00e9l\u00e9charger ARAnyM v0.9.16 (3,5 Mo)<\/a><\/p>\n<p class=\"p_site_officiel\"><a class=\"site_officiel\" href=\"http:\/\/aranym.sourceforge.net\/\" target=\"_blank\">Site Officiel<\/a><\/p>\n<p class=\"p_en_savoir_plus\"><a class=\"en_savoir_plus\" href=\"https:\/\/www.emu-france.com\/emulateurs\/10-ordinateurs\/106-atari-st-autres\/\">En savoir plus&#8230;<\/a><\/p>\n<div class=\"fcbkbttn_buttons_block\" id=\"fcbkbttn_left\"><div class=\"fb-share-button  \" data-href=\"https:\/\/www.emu-france.com\/?p=31056\" data-type=\"button_count\" data-size=\"small\"><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Il ne s&rsquo;agit pas vraiment d&rsquo;un \u00e9mulateur mais plutot d&rsquo;une machine virtuelle pour d\u00e9velopper et faire tourner des applications Atari ST, mais aussi TT &amp; Falcon tournant sous Windows et en Open Source. Maintenant ARAnyM est fourni avec EmuTOS, un &#8230;<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[1],"tags":[],"class_list":["post-31056","post","type-post","status-publish","format-standard","hentry","category-par-defaut","uentry","postonpage-1","odd","post-author-Jets"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pKi2R-84U","jetpack_likes_enabled":false,"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/posts\/31056","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=31056"}],"version-history":[{"count":1,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/posts\/31056\/revisions"}],"predecessor-version":[{"id":31057,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/posts\/31056\/revisions\/31057"}],"wp:attachment":[{"href":"https:\/\/www.emu-france.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=31056"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=31056"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=31056"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}