{"id":3257,"date":"2025-11-03T21:36:49","date_gmt":"2025-11-03T21:36:49","guid":{"rendered":"https:\/\/www.robertprice.co.uk\/robblog\/?p=3257"},"modified":"2025-11-03T21:36:51","modified_gmt":"2025-11-03T21:36:51","slug":"rc2025-part-9-using-a-snes-controller","status":"publish","type":"post","link":"https:\/\/www.robertprice.co.uk\/robblog\/rc2025-part-9-using-a-snes-controller\/","title":{"rendered":"RC2025 \u2013 Part 9 \u2013 Using a SNES controller"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">The RetroChallenge may have finished, but I have a few more things to add.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/mastodonapp.uk\/@ChartreuseK@restless.systems\">Chartreuse on Mastodon<\/a> pointed out that the SNES controller is quite like the NES controller. Instead of returning a single byte, it returns two bytes. The first byte is the same as the NES controller; the second contains extra buttons.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I wanted to see if my existing work could be easily extended to use a SNES controller, so <a href=\"https:\/\/s.click.aliexpress.com\/e\/_c3AosWvV\">I bought one on AliExpress<\/a>. I also bought a <a href=\"https:\/\/s.click.aliexpress.com\/e\/_c3fV7go3\">SNES extension lead<\/a> so I could cut it in half and add Dupont sockets to the wires. This means I could wire it directly to the RC2014 module I designed for the NES controller using one of the debug connectors I added to the PCB.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The SNES controller uses a different connector, but the pins work in the same way. This diagram shows the 5 pins we are interested in, and how we need to wire them up to the RC2014 NES controller module.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.robertprice.co.uk\/robblog\/assets\/snes-socket-1.svg\"><img loading=\"lazy\" decoding=\"async\" width=\"202\" height=\"371\" src=\"https:\/\/www.robertprice.co.uk\/robblog\/assets\/snes-socket-1.svg\" alt=\"The pinout of a SNES controller\" class=\"wp-image-3271\"\/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.robertprice.co.uk\/robblog\/assets\/RC2025-SNES1.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/www.robertprice.co.uk\/robblog\/assets\/RC2025-SNES1.jpg\" alt=\"The SNES cable wired up via dupont connectors to the RC2014\" class=\"wp-image-3273\" srcset=\"https:\/\/www.robertprice.co.uk\/robblog\/assets\/RC2025-SNES1.jpg 1024w, https:\/\/www.robertprice.co.uk\/robblog\/assets\/RC2025-SNES1-300x225.jpg 300w, https:\/\/www.robertprice.co.uk\/robblog\/assets\/RC2025-SNES1-768x576.jpg 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Writing a reusable Z80 routine<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">As there are two bytes being returned, I can&#8217;t just call <a href=\"https:\/\/www.robertprice.co.uk\/robblog\/rc2025-part-5-writing-a-reusable-z80-subroutine-to-read-the-nes-controller\/\">my get_buttons routine<\/a>. This will toggle the Latch twice, so I will never get the extra buttons.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Instead, I have to toggle Latch one at the start of the routine, and call a cut down version of the original get_buttons routine that reads the 8 bits twice. The first byte returned will be the original NES buttons. The second byte will be the extra buttons on the SNES controller. Instead of returning a single byte in register a, I will instead use register pair de. Register d will hold the NES button data, and register e will hold the SNES button data.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>; SNESController.inc\n; Definitions and subroutine to read SNES controller button states\n; Robert Price - 1st November 2025\n\n\n; The Z80 port address to use for the controller interface.\nNES_PORT    EQU $01\n\n; The bit masks for the controller interface lines.\nCLOCK   EQU $01\nLATCH   EQU $02\nDATA    EQU $01\n\n\n; subroutine to read the NES controller button states.\n; returns the button states in DE registers.\n; register D contains the high byte, and register E the low byte. \n; All other registers are preserved.\n; The high byte is like the NES controller, low has the extra SNES buttons.\nget_buttons:\n        push af           ; save af registers\n        push bc           ; save bc registers\n\n; pulse the LATCH line low to high and back to low again.\n        xor a               ; set a to 0 \n        out (NES_PORT), a\n        ld a, LATCH\n        out (NES_PORT), a\n        xor a               ; set a to 0\n        out (NES_PORT), a\n\n        call .get_buttons\n        ld d, a             ; store the button states in register d\n        call .get_buttons\n        ld e, a             ; store the button states in register e\n\n        pop bc              ; restore bc registers\n        pop af              ; restore af registers\n\n        ret                 ; return to caller with button states in a\n\n\n.get_buttons:\n; setup the loop counter to read 8 buttons.\n        ld b, 8             ; 8 buttons to read. \n\n; now we rebuild the byte into register c. As we are setting all 8 bits,\n; we don't need to worry about clearing c first.\n.loop:\n; read the controller button states\n        in a, (NES_PORT)    ; read the DATA line\n\n; move the DATA bit into register c to rebuild the send byte\n        srl a               ; shift right to get the DATA bit into carry\n        rr c                ; rotate carry into bit 7 of c\n\n; pulse the CLOCK line to read the next button.\n        ld a, CLOCK\n        out (NES_PORT), a\n        xor a               ; set a to 0\n        out (NES_PORT), a\n\n; loop to read all buttons.\n        djnz .loop\n\n; return the button states in register a\n        ld a, c             ; put the final button states in a \n        ret<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Using the new Z80 routine<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To test the new routine, I can use LEDs as before. I have two modules that can display an 8-bit value using LEDs. A RC2014 Digital IO module at IO address 0, and a SC134 module at IO address 2. I will display one returned byte on one of the modules, and the second returned byte on the other module. This can be run using SCM as before.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code> ; A simple button reading program for the RC2014 Z80 computer running SCM\n ; this version outputs the SNES button states to a LED output\n ; Robert Price - 1st November 2025\n\n        ORG $9000\n\n; the Z80 port address to use for the LED output.\n; This expects two Digital IO ports to be connected to the RC2014,\n; one at IO address 0 for the high byte, and one at IO address 2 for the low byte.\nLED_PORT_H  EQU $00\nLED_PORT_L  EQU $02\n\nmain:\n; get the button states from the SNES controller\n        call get_buttons     ; call the get_buttons subroutine\n        ld a, d              ; get the high byte button states\n        cpl                  ; invert the bits in register a so pressed buttons are 1, and unpressed are 0\n        out (LED_PORT_H), a  ; output the button states to the LED port\n\n        ld a, e              ; get the low byte button states\n        cpl                  ; invert the bits in register a so pressed buttons are 1, and unpressed are 0\n        out (LED_PORT_L), a  ; output the button states to the LED port\n\n        jr main              ; repeat forever\n\n        INCLUDE \"SNESController.inc\"\n\n        END<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The RetroChallenge may have finished, but I have a few more things to add. Chartreuse on Mastodon pointed out that the SNES controller is quite like the NES controller. Instead of returning a single byte, it returns two bytes. The first byte is the same as the NES controller; the second contains extra buttons. I &hellip; <a href=\"https:\/\/www.robertprice.co.uk\/robblog\/rc2025-part-9-using-a-snes-controller\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;RC2025 \u2013 Part 9 \u2013 Using a SNES controller&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":3267,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[181,187],"tags":[183,117,185,197,119],"class_list":["post-3257","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-rc2025","category-retrochallenge","tag-nes-joypad","tag-rc2014","tag-rc2025","tag-snes-controller","tag-z80"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>RC2025 \u2013 Part 9 \u2013 Using a SNES controller - Robert Price<\/title>\n<meta name=\"description\" content=\"Extending the RC2014 NES controller module to use a SNES controller instead, and using Z80 assembly language to read it.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.robertprice.co.uk\/robblog\/rc2025-part-9-using-a-snes-controller\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"RC2025 \u2013 Part 9 \u2013 Using a SNES controller - Robert Price\" \/>\n<meta property=\"og:description\" content=\"Extending the RC2014 NES controller module to use a SNES controller instead, and using Z80 assembly language to read it.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.robertprice.co.uk\/robblog\/rc2025-part-9-using-a-snes-controller\/\" \/>\n<meta property=\"og:site_name\" content=\"Robert Price\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-03T21:36:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-03T21:36:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.robertprice.co.uk\/robblog\/assets\/RC2025-SNES2.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"768\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"rob\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"rob\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/rc2025-part-9-using-a-snes-controller\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/rc2025-part-9-using-a-snes-controller\\\/\"},\"author\":{\"name\":\"rob\",\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/#\\\/schema\\\/person\\\/fac6d5b076e0e14e1fb13e15b542a6c5\"},\"headline\":\"RC2025 \u2013 Part 9 \u2013 Using a SNES controller\",\"datePublished\":\"2025-11-03T21:36:49+00:00\",\"dateModified\":\"2025-11-03T21:36:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/rc2025-part-9-using-a-snes-controller\\\/\"},\"wordCount\":361,\"image\":{\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/rc2025-part-9-using-a-snes-controller\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/assets\\\/RC2025-SNES2.jpg\",\"keywords\":[\"NES Joypad\",\"RC2014\",\"RC2025\",\"SNES Controller\",\"Z80\"],\"articleSection\":[\"RC2025\",\"RetroChallenge\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/rc2025-part-9-using-a-snes-controller\\\/\",\"url\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/rc2025-part-9-using-a-snes-controller\\\/\",\"name\":\"RC2025 \u2013 Part 9 \u2013 Using a SNES controller - Robert Price\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/rc2025-part-9-using-a-snes-controller\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/rc2025-part-9-using-a-snes-controller\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/assets\\\/RC2025-SNES2.jpg\",\"datePublished\":\"2025-11-03T21:36:49+00:00\",\"dateModified\":\"2025-11-03T21:36:51+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/#\\\/schema\\\/person\\\/fac6d5b076e0e14e1fb13e15b542a6c5\"},\"description\":\"Extending the RC2014 NES controller module to use a SNES controller instead, and using Z80 assembly language to read it.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/rc2025-part-9-using-a-snes-controller\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/rc2025-part-9-using-a-snes-controller\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/rc2025-part-9-using-a-snes-controller\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/assets\\\/RC2025-SNES2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/assets\\\/RC2025-SNES2.jpg\",\"width\":1024,\"height\":768,\"caption\":\"SNES Controller on an RC2014\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/rc2025-part-9-using-a-snes-controller\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"RC2025 \u2013 Part 9 \u2013 Using a SNES controller\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/#website\",\"url\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/\",\"name\":\"Robert Price\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/#\\\/schema\\\/person\\\/fac6d5b076e0e14e1fb13e15b542a6c5\",\"name\":\"rob\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6f0eb511179100a4e968abc70403e33686e6ab3e992e392bedd2ccac01da666c?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6f0eb511179100a4e968abc70403e33686e6ab3e992e392bedd2ccac01da666c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6f0eb511179100a4e968abc70403e33686e6ab3e992e392bedd2ccac01da666c?s=96&d=mm&r=g\",\"caption\":\"rob\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"RC2025 \u2013 Part 9 \u2013 Using a SNES controller - Robert Price","description":"Extending the RC2014 NES controller module to use a SNES controller instead, and using Z80 assembly language to read it.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.robertprice.co.uk\/robblog\/rc2025-part-9-using-a-snes-controller\/","og_locale":"en_GB","og_type":"article","og_title":"RC2025 \u2013 Part 9 \u2013 Using a SNES controller - Robert Price","og_description":"Extending the RC2014 NES controller module to use a SNES controller instead, and using Z80 assembly language to read it.","og_url":"https:\/\/www.robertprice.co.uk\/robblog\/rc2025-part-9-using-a-snes-controller\/","og_site_name":"Robert Price","article_published_time":"2025-11-03T21:36:49+00:00","article_modified_time":"2025-11-03T21:36:51+00:00","og_image":[{"width":1024,"height":768,"url":"https:\/\/www.robertprice.co.uk\/robblog\/assets\/RC2025-SNES2.jpg","type":"image\/jpeg"}],"author":"rob","twitter_card":"summary_large_image","twitter_misc":{"Written by":"rob","Estimated reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.robertprice.co.uk\/robblog\/rc2025-part-9-using-a-snes-controller\/#article","isPartOf":{"@id":"https:\/\/www.robertprice.co.uk\/robblog\/rc2025-part-9-using-a-snes-controller\/"},"author":{"name":"rob","@id":"https:\/\/www.robertprice.co.uk\/robblog\/#\/schema\/person\/fac6d5b076e0e14e1fb13e15b542a6c5"},"headline":"RC2025 \u2013 Part 9 \u2013 Using a SNES controller","datePublished":"2025-11-03T21:36:49+00:00","dateModified":"2025-11-03T21:36:51+00:00","mainEntityOfPage":{"@id":"https:\/\/www.robertprice.co.uk\/robblog\/rc2025-part-9-using-a-snes-controller\/"},"wordCount":361,"image":{"@id":"https:\/\/www.robertprice.co.uk\/robblog\/rc2025-part-9-using-a-snes-controller\/#primaryimage"},"thumbnailUrl":"https:\/\/www.robertprice.co.uk\/robblog\/assets\/RC2025-SNES2.jpg","keywords":["NES Joypad","RC2014","RC2025","SNES Controller","Z80"],"articleSection":["RC2025","RetroChallenge"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/www.robertprice.co.uk\/robblog\/rc2025-part-9-using-a-snes-controller\/","url":"https:\/\/www.robertprice.co.uk\/robblog\/rc2025-part-9-using-a-snes-controller\/","name":"RC2025 \u2013 Part 9 \u2013 Using a SNES controller - Robert Price","isPartOf":{"@id":"https:\/\/www.robertprice.co.uk\/robblog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.robertprice.co.uk\/robblog\/rc2025-part-9-using-a-snes-controller\/#primaryimage"},"image":{"@id":"https:\/\/www.robertprice.co.uk\/robblog\/rc2025-part-9-using-a-snes-controller\/#primaryimage"},"thumbnailUrl":"https:\/\/www.robertprice.co.uk\/robblog\/assets\/RC2025-SNES2.jpg","datePublished":"2025-11-03T21:36:49+00:00","dateModified":"2025-11-03T21:36:51+00:00","author":{"@id":"https:\/\/www.robertprice.co.uk\/robblog\/#\/schema\/person\/fac6d5b076e0e14e1fb13e15b542a6c5"},"description":"Extending the RC2014 NES controller module to use a SNES controller instead, and using Z80 assembly language to read it.","breadcrumb":{"@id":"https:\/\/www.robertprice.co.uk\/robblog\/rc2025-part-9-using-a-snes-controller\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.robertprice.co.uk\/robblog\/rc2025-part-9-using-a-snes-controller\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.robertprice.co.uk\/robblog\/rc2025-part-9-using-a-snes-controller\/#primaryimage","url":"https:\/\/www.robertprice.co.uk\/robblog\/assets\/RC2025-SNES2.jpg","contentUrl":"https:\/\/www.robertprice.co.uk\/robblog\/assets\/RC2025-SNES2.jpg","width":1024,"height":768,"caption":"SNES Controller on an RC2014"},{"@type":"BreadcrumbList","@id":"https:\/\/www.robertprice.co.uk\/robblog\/rc2025-part-9-using-a-snes-controller\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.robertprice.co.uk\/robblog\/"},{"@type":"ListItem","position":2,"name":"RC2025 \u2013 Part 9 \u2013 Using a SNES controller"}]},{"@type":"WebSite","@id":"https:\/\/www.robertprice.co.uk\/robblog\/#website","url":"https:\/\/www.robertprice.co.uk\/robblog\/","name":"Robert Price","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.robertprice.co.uk\/robblog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Person","@id":"https:\/\/www.robertprice.co.uk\/robblog\/#\/schema\/person\/fac6d5b076e0e14e1fb13e15b542a6c5","name":"rob","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/6f0eb511179100a4e968abc70403e33686e6ab3e992e392bedd2ccac01da666c?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/6f0eb511179100a4e968abc70403e33686e6ab3e992e392bedd2ccac01da666c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6f0eb511179100a4e968abc70403e33686e6ab3e992e392bedd2ccac01da666c?s=96&d=mm&r=g","caption":"rob"}}]}},"_links":{"self":[{"href":"https:\/\/www.robertprice.co.uk\/robblog\/wp-json\/wp\/v2\/posts\/3257","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.robertprice.co.uk\/robblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.robertprice.co.uk\/robblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.robertprice.co.uk\/robblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.robertprice.co.uk\/robblog\/wp-json\/wp\/v2\/comments?post=3257"}],"version-history":[{"count":5,"href":"https:\/\/www.robertprice.co.uk\/robblog\/wp-json\/wp\/v2\/posts\/3257\/revisions"}],"predecessor-version":[{"id":3275,"href":"https:\/\/www.robertprice.co.uk\/robblog\/wp-json\/wp\/v2\/posts\/3257\/revisions\/3275"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.robertprice.co.uk\/robblog\/wp-json\/wp\/v2\/media\/3267"}],"wp:attachment":[{"href":"https:\/\/www.robertprice.co.uk\/robblog\/wp-json\/wp\/v2\/media?parent=3257"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.robertprice.co.uk\/robblog\/wp-json\/wp\/v2\/categories?post=3257"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.robertprice.co.uk\/robblog\/wp-json\/wp\/v2\/tags?post=3257"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}