{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "Στέφανος Κορνήλιος Μίτσης Ποιητίδης",
  "description": "A fun mix of programming, DIY electronics and art",
  "home_page_url": "https://skmp.dev/",
  "feed_url": "https://skmp.dev/feed.json",
  "language": "en",
  "items": [
    {
      "id": "https://skmp.dev/blog/hello-world/",
      "url": "https://skmp.dev/blog/hello-world/",
      "title": "Γεια σου Κόσμε",
      "content_text": "Η πρώτη δοκιμαστική ανάρτηση στα ελληνικά.",
      "date_published": "2026-04-10T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/orgasm-kickoff/",
      "url": "https://github.com/nilware-io/orgasm",
      "title": "Introducing the ORGanic ASseMbler",
      "content_text": "Kicking off orgasm — an operating system for instruments. A visual dataflow language and runtime for building real-time synthesizers.",
      "date_published": "2026-03-23T00:00:00.000Z",
      "image": "/images/orgasm.png"
    },
    {
      "id": "https://skmp.dev/blog/bloom-elf-bloom26/",
      "url": "https://www.youtube.com/watch?v=5-2eZ4vuS7I",
      "title": "bloom_26.cdi — capture by Esppiral",
      "content_text": "bloom.elf build 26, captured by Esppiral.",
      "date_published": "2026-02-25T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/5-2eZ4vuS7I/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/broadcast/",
      "url": "https://www.youtube.com/watch?v=_q20s7q0dfg",
      "title": "Broadcast",
      "content_text": "A short broadcast.",
      "date_published": "2026-02-17T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/_q20s7q0dfg/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/cubed-kickoff/",
      "url": "https://github.com/skmp/cubed",
      "title": "Introducing CUBED — 144 Forth processors in your browser",
      "content_text": "Kicking off CUBED — an in-browser emulator for the GreenArrays GA144 with a 3D visual logic programming language.",
      "date_published": "2026-02-14T00:00:00.000Z",
      "image": "/images/cubed.png"
    },
    {
      "id": "https://skmp.dev/blog/bloom-elf-bloom20/",
      "url": "https://www.youtube.com/watch?v=I5V36etqm_w",
      "title": "bloom20.cdi",
      "content_text": "bloom.elf build 20 running on the Dreamcast.",
      "date_published": "2025-12-31T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/I5V36etqm_w/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/greek-swiss-constitutions/",
      "url": "https://www.youtube.com/watch?v=MAYKkVxyGFs",
      "title": "Greek and Swiss Constitutions Compared",
      "content_text": "Greek and Swiss constitutions compared, generated via NotebookLM.",
      "date_published": "2025-11-12T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/MAYKkVxyGFs/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/asynarties-skepseis/",
      "url": "https://www.youtube.com/watch?v=qVwSENFSjtI",
      "title": "Ασυνάρτητες Σκέψεις",
      "content_text": "Recorded on 2018.02.19 in Josefstrasse, Zürich by skmp using Garageband for iPad. Remastered by masterHeatwave, October 2025.",
      "date_published": "2025-10-04T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/qVwSENFSjtI/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/emudrama/",
      "url": "https://skmp.dev/blog/emudrama/",
      "title": "emudrama and interpersonal relationships: a retrospective",
      "content_text": "A public retrospective on the Reicast/Flycast and FEX-Emu/hex-emu dramas.",
      "date_published": "2025-09-25T00:00:00.000Z",
      "image": "/images/tragedy.jpg"
    },
    {
      "id": "https://skmp.dev/blog/lunar-miasma-gone/",
      "url": "https://www.youtube.com/watch?v=qWsjSXNqN6I",
      "title": "Lunar Miasma — Gone",
      "content_text": "Music video for \"Gone\" from Sweet Lodge Guru.",
      "date_published": "2025-09-24T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/qWsjSXNqN6I/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/bloom-elf-2nd-level/",
      "url": "https://www.youtube.com/watch?v=UQX20_1m-uc",
      "title": "The Liquid Jet — 2nd level on the Dreamcast!",
      "content_text": "Second level of The Liquid Jet running on the Dreamcast.",
      "date_published": "2025-05-05T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/UQX20_1m-uc/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/bloom-elf-progress-04-29/",
      "url": "https://www.youtube.com/watch?v=nVB1FuBpfJE",
      "title": "The Liquid Jet — Dreamcast Progress (2025.04.29)",
      "content_text": "Continued Dreamcast port progress for The Liquid Jet.",
      "date_published": "2025-04-29T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/nVB1FuBpfJE/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/bloom-elf-progress-04-22/",
      "url": "https://www.youtube.com/watch?v=AI1blPk1lRE",
      "title": "The Liquid Jet — Dreamcast Port Progress (2025.04.22)",
      "content_text": "Dreamcast port progress for The Liquid Jet.",
      "date_published": "2025-04-22T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/AI1blPk1lRE/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/bloom-elf-decimation-tooling/",
      "url": "https://www.youtube.com/watch?v=Bijrd-n4AK4",
      "title": "The Liquid Jet — Model Decimation Tooling",
      "content_text": "Model decimation tooling for The Liquid Jet's Dreamcast port.",
      "date_published": "2025-04-20T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/Bijrd-n4AK4/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/bloom-elf-full-intro/",
      "url": "https://www.youtube.com/watch?v=FcBtB26Q7o4",
      "title": "The Liquid Jet — Full Intro (Dreamcast)",
      "content_text": "Full intro sequence for The Liquid Jet running on a Dreamcast devcast.",
      "date_published": "2025-04-10T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/FcBtB26Q7o4/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/bloom-elf-partial-intro/",
      "url": "https://www.youtube.com/watch?v=tPK_JMUpoyQ",
      "title": "The Liquid Jet — Partial Intro Animation (Dreamcast)",
      "content_text": "Partial intro animation for The Liquid Jet running on a Dreamcast devcast.",
      "date_published": "2025-04-10T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/tPK_JMUpoyQ/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/bloom-elf-kickoff/",
      "url": "https://github.com/skmp/dcue/tree/bloom.elf",
      "title": "Introducing bloom.elf — a Dreamcast adventure",
      "content_text": "Kicking off bloom.elf — a 3D adventure game for the Sega Dreamcast featuring bloom effects, physics, and interactive levels.",
      "date_published": "2025-04-04T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/croft-kickoff/",
      "url": "https://github.com/skmp/dcue",
      "title": "Introducing Croft — Lara on the Dreamcast",
      "content_text": "Kicking off Croft — a Lara Croft game for the Sega Dreamcast, derived from the DCUE engine.",
      "date_published": "2025-04-04T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/dcue-kickoff/",
      "url": "https://github.com/skmp/dcue",
      "title": "Introducing DCUE — DreamCast Unity Exporter",
      "content_text": "Kicking off DCUE — exporting Unity scenes and rendering them natively on the Sega Dreamcast.",
      "date_published": "2025-04-04T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/dca3-miami-animation-compression/",
      "url": "https://www.youtube.com/watch?v=cgfOnOzomDA",
      "title": "DCA3-miami animation compression progress",
      "content_text": "Animation compression progress for DCA3's Miami scene.",
      "date_published": "2025-03-04T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/cgfOnOzomDA/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/dca3-miami-boat-party/",
      "url": "https://www.youtube.com/watch?v=tkoke6vKG9Q",
      "title": "dca3-miami boat party with animations disabled",
      "content_text": "DCA3 Miami boat party scene on the Dreamcast, animations disabled.",
      "date_published": "2025-02-24T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/tkoke6vKG9Q/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/dca3-miami-one-bug-down/",
      "url": "https://www.youtube.com/watch?v=gXg0CPRZXqU",
      "title": "dca3-miami: One bug down, more to go",
      "content_text": "Debugging DCA3's Miami scene on the Dreamcast.",
      "date_published": "2025-02-23T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/gXg0CPRZXqU/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/dca3-miami-32mb/",
      "url": "https://www.youtube.com/watch?v=22xy2ZCToLs",
      "title": "dca3-miami on devcast w/ 32 MB RAM",
      "content_text": "DCA3 Miami scene running on a Dreamcast devcast with 32 MB RAM.",
      "date_published": "2025-02-22T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/22xy2ZCToLs/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/dca3-regta3dc-16mb/",
      "url": "https://www.youtube.com/watch?v=Ahfg_X52ZKw",
      "title": "regta3dc: 16mb Dreamcast, glitch city edition",
      "content_text": "DCA3 running on a 16MB Dreamcast — glitchy but alive.",
      "date_published": "2024-07-20T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/Ahfg_X52ZKw/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/hex-cache/",
      "url": "https://skmp.dev/blog/hex-cache/",
      "title": "Another Code Cache approach for hex-emu (fex-emu derivative/fork)",
      "content_text": "Multi-threaded, multi-process JIT object code cache for hex-emu with BST index and crash safety.",
      "date_published": "2023-08-17T00:00:00.000Z",
      "image": "/images/fex-aotir-clang.png"
    },
    {
      "id": "https://skmp.dev/blog/nulldc-ps2/",
      "url": "https://skmp.dev/blog/nulldc-ps2/",
      "title": "Dreamcast Emulation on PS2?",
      "content_text": "Thought experiment on running Dreamcast emulation on the PS2 hardware.",
      "date_published": "2023-08-15T00:00:00.000Z",
      "image": "/images/PS2_GH-001_Motherboard.png"
    },
    {
      "id": "https://skmp.dev/blog/dc-devtools/",
      "url": "https://skmp.dev/blog/dc-devtools/",
      "title": "Introducing DC DevTools",
      "content_text": "A collection of web-based development and debugging tools for the Sega Dreamcast — from texture compression to pipeline simulation.",
      "date_published": "2023-07-07T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/fex-hex-portal2/",
      "url": "https://www.youtube.com/watch?v=NyHBAoI88pQ",
      "title": "hex-emu: Portal 2 (arm64, thunked)",
      "content_text": "Portal 2 running under hex-emu on arm64 with thunks.",
      "date_published": "2023-04-17T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/NyHBAoI88pQ/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/fex-hex-hl2-ep2/",
      "url": "https://www.youtube.com/watch?v=ZYN-VqnvWmI",
      "title": "hex-emu: Half Life 2, Episode 2 (arm, thunked)",
      "content_text": "Half Life 2 Episode 2 running under hex-emu on arm with thunks.",
      "date_published": "2023-04-16T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/ZYN-VqnvWmI/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/fex-aex-dota-underlords/",
      "url": "https://www.youtube.com/watch?v=vXcS08p2okE",
      "title": "aex-emu Dota Underlords",
      "content_text": "Dota Underlords running under aex-emu.",
      "date_published": "2022-10-20T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/vXcS08p2okE/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/fex-aex-hl2-ingame/",
      "url": "https://www.youtube.com/watch?v=0lsyoQg6tYE",
      "title": "aex-emu Half Life 2 ingame",
      "content_text": "Half Life 2 running ingame under aex-emu.",
      "date_published": "2022-10-20T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/0lsyoQg6tYE/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/fex-aex-l4d2/",
      "url": "https://www.youtube.com/watch?v=RyZrC82pzT0",
      "title": "aex-emu Left 4 Dead 2",
      "content_text": "Left 4 Dead 2 running under aex-emu.",
      "date_published": "2022-10-18T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/RyZrC82pzT0/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/fex-aex-steam-portal-launch/",
      "url": "https://www.youtube.com/watch?v=IS1Rq4McUAw",
      "title": "aex-emu steam & portal launch",
      "content_text": "Steam and Portal launching under aex-emu.",
      "date_published": "2022-10-18T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/IS1Rq4McUAw/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/fex-aex-rethunks-heaven/",
      "url": "https://www.youtube.com/watch?v=-Uwm9UEaI4M",
      "title": "aex-emu rethunks — Unigine Heaven",
      "content_text": "Unigine Heaven benchmark under aex-emu with rethunks.",
      "date_published": "2022-10-14T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/-Uwm9UEaI4M/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/fex-aex-rethunks-superposition/",
      "url": "https://www.youtube.com/watch?v=9Fuu-ldzLFc",
      "title": "aex-emu rethunks — Unigine Superposition 1080p Extreme",
      "content_text": "Unigine Superposition 1080p extreme benchmark under aex-emu with rethunks.",
      "date_published": "2022-10-14T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/9Fuu-ldzLFc/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/fex-aex-hl2-lost-coast/",
      "url": "https://www.youtube.com/watch?v=8IK7j7GD0xY",
      "title": "aex-emu Half Life 2 Lost Coast Video Stress Test",
      "content_text": "Half Life 2 Lost Coast video stress test under aex-emu.",
      "date_published": "2022-10-12T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/8IK7j7GD0xY/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/fex-aex-portal-gameplay/",
      "url": "https://www.youtube.com/watch?v=ziR1tQWaZK8",
      "title": "aex-emu Portal Gameplay",
      "content_text": "Portal gameplay under aex-emu.",
      "date_published": "2022-10-12T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/ziR1tQWaZK8/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/fex-aex-steam-startup/",
      "url": "https://www.youtube.com/watch?v=cgILAjAXXbo",
      "title": "aex-emu steam startup",
      "content_text": "Steam starting up under aex-emu.",
      "date_published": "2022-10-11T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/cgILAjAXXbo/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/fex-aex-rethunks-orin/",
      "url": "https://www.youtube.com/watch?v=6B0w8gq3QwM",
      "title": "aex-emu rethunks on NVIDIA Orin",
      "content_text": "aex-emu with rethunks running on NVIDIA Orin.",
      "date_published": "2022-10-08T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/6B0w8gq3QwM/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/fex-aotir/",
      "url": "https://skmp.dev/blog/fex-aotir/",
      "title": "Implementing an AOT pipeline for FEX-Emu",
      "content_text": "Ahead-of-time IR caching that cuts clang launch time from 1.3s to 0.38s under FEX-Emu.",
      "date_published": "2021-05-04T00:00:00.000Z",
      "image": "/images/fex-aotir-clang.png"
    },
    {
      "id": "https://skmp.dev/blog/getting-hls-started/",
      "url": "https://skmp.dev/blog/getting-hls-started/",
      "title": "Getting started with FPGAdc and HLS, part 1",
      "content_text": "First steps implementing the Dreamcast's CLX2 CORE rendering unit in HLS for FPGA.",
      "date_published": "2021-03-12T00:00:00.000Z",
      "image": "/images/fpagdc-hls-clx2core.jpg"
    },
    {
      "id": "https://skmp.dev/blog/interview-nulldc-reicast/",
      "url": "https://arcadestrikerblog.wordpress.com/2020/04/19/full-interview-with-nulldc-reicast-developers-skmp-znullptr/",
      "title": "Full interview with NullDC/Reicast developers (skmp, ZNullptr)",
      "content_text": "An in-depth interview covering the history of NullDC and Reicast, the Dreamcast emulation scene, and the technical journey behind these projects.",
      "date_published": "2020-04-19T00:00:00.000Z",
      "image": "https://arcadestrikerblog.wordpress.com/wp-content/uploads/2020/04/nulldc_logo.jpg?w=256"
    },
    {
      "id": "https://skmp.dev/blog/anbox-rpi4/",
      "url": "https://skmp.dev/blog/anbox-rpi4/",
      "title": "Running Anbox on Raspberry Pi",
      "content_text": "Step-by-step guide to running Android apps on Raspberry Pi 4 via Anbox.",
      "date_published": "2019-08-25T00:00:00.000Z",
      "image": "/images/anbox-pi.png"
    },
    {
      "id": "https://skmp.dev/blog/new-site/",
      "url": "https://skmp.dev/blog/new-site/",
      "title": "New site",
      "content_text": "Yet another year passes, yet another personal site comes.",
      "date_published": "2019-03-07T00:00:00.000Z",
      "image": "/images/new-site.png"
    },
    {
      "id": "https://skmp.dev/blog/micro-optimizations/",
      "url": "https://skmp.dev/blog/micro-optimizations/",
      "title": "Micro optimizations & emulation",
      "content_text": "How fixing pointer aliasing, signed modulo, and using SSE/AVX intrinsics yielded a 32% speedup in reicast's TA processing.",
      "date_published": "2015-08-13T00:00:00.000Z",
      "image": "/images/emu-micro-opts.png"
    },
    {
      "id": "https://skmp.dev/blog/negative-addressing-bswap/",
      "url": "https://skmp.dev/blog/negative-addressing-bswap/",
      "title": "Efficiently handling endian differences using negative memory addressing",
      "content_text": "A novel technique for handling endian conversion in emulators using negative memory offsets.",
      "date_published": "2015-07-12T00:00:00.000Z",
      "image": "/images/endian.png"
    },
    {
      "id": "https://skmp.dev/blog/reicast-ci-site-update/",
      "url": "https://skmp.dev/blog/reicast-ci-site-update/",
      "title": "Updated Reicast CI builds page",
      "content_text": "Redesigned the Reicast automated builds page with jquery, underscorejs and regex.",
      "date_published": "2015-06-10T00:00:00.000Z",
      "image": "/images/reicast-ci.png"
    },
    {
      "id": "https://skmp.dev/blog/reicast-websocket-ogl/",
      "url": "https://skmp.dev/blog/reicast-websocket-ogl/",
      "title": "reicast, websockets & opengl (es) streaming",
      "content_text": "Streaming Dreamcast rendering over websockets using glReadPixels and WebGL.",
      "date_published": "2015-05-22T00:00:00.000Z",
      "image": "/images/reicast-websocket-gl.gif"
    },
    {
      "id": "https://skmp.dev/blog/tegra-k1-reicast-port/",
      "url": "https://skmp.dev/blog/tegra-k1-reicast-port/",
      "title": "Tegra K1: First impression",
      "content_text": "First reicast test on NVIDIA Jetson TK1 - amazing Dreamcast emulation performance.",
      "date_published": "2015-04-12T00:00:00.000Z",
      "image": "/images/tegra-k1.jpg"
    },
    {
      "id": "https://skmp.dev/blog/simple-soc-16-wait-states/",
      "url": "https://oldwiki.hackerspace.gr/wiki/PLD_Workshop_2.15",
      "title": "Simple SoC 16: Wait States",
      "content_text": "Add wait states for ICE & module integration on the CPU. Have it talk nicely with the debugger.",
      "date_published": "2014-02-26T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/simple-soc-15-debugger-integration/",
      "url": "https://oldwiki.hackerspace.gr/wiki/PLD_Workshop_2.14",
      "title": "Simple SoC 15: Debugger Integration",
      "content_text": "ICE state machine implementation, got it talking with the debugger — VGA writes working!",
      "date_published": "2014-02-05T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/simple-soc-14-making-it-work-once-more/",
      "url": "https://oldwiki.hackerspace.gr/wiki/PLD_Workshop_2.13",
      "title": "Simple SoC 14: Making it work once more",
      "content_text": "Get the modularised code back into working state. Implement some of the ICE state machine.",
      "date_published": "2014-01-29T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/simple-soc-13-iceful-modules/",
      "url": "https://oldwiki.hackerspace.gr/wiki/PLD_Workshop_2.12",
      "title": "Simple SoC 13: ICEful modules",
      "content_text": "Modularization and refactoring of the SoC codebase.",
      "date_published": "2014-01-22T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/simple-soc-12-debuggable-hardware/",
      "url": "https://oldwiki.hackerspace.gr/wiki/PLD_Workshop_2.11",
      "title": "Simple SoC 12: Debuggable Hardware",
      "content_text": "Work on the ICE implementation.",
      "date_published": "2013-12-11T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/simple-soc-11-clocks-and-io/",
      "url": "https://oldwiki.hackerspace.gr/wiki/PLD_Workshop_2.10",
      "title": "Simple SoC 11: Clocks and IO",
      "content_text": "Worked around the IO/DCM issues. WIP on the ICE implementation.",
      "date_published": "2013-12-04T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/simple-soc-10-want-some-ice/",
      "url": "https://oldwiki.hackerspace.gr/wiki/PLD_Workshop_2013/11/20",
      "title": "Simple SoC 10: Want some ICE?",
      "content_text": "Almost implemented UART. Ran into pin collisions on clock vs DCM vs IO-standards per bank.",
      "date_published": "2013-11-20T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/simple-soc-09-differential-debugging/",
      "url": "https://oldwiki.hackerspace.gr/wiki/PLD_Workshop_2013/11/06",
      "title": "Simple SoC 9: Differential debugging",
      "content_text": "Investigate serial communications, try out UART sample, draft out ICE spec.",
      "date_published": "2013-11-13T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/simple-soc-08-corrupted-pixels/",
      "url": "https://oldwiki.hackerspace.gr/wiki/PLD_Workshop_2013/10/30",
      "title": "Simple SoC 8: Corrupted Pixels",
      "content_text": "No luck locating the VGA corruption bug — simulator results and simpler test cases work fine. Implemented wait.",
      "date_published": "2013-10-30T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/simple-soc-07-we-love-glitches/",
      "url": "https://oldwiki.hackerspace.gr/wiki/PLD_Workshop_2013/10/23",
      "title": "Simple SoC 7: We love glitches",
      "content_text": "Fixed VGA, centered image — still outputs corrupted data though. VRAM resized to 256x256x3 to fit.",
      "date_published": "2013-10-23T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/simple-soc-06-how-about-conditions/",
      "url": "https://oldwiki.hackerspace.gr/wiki/PLD_Workshop_2013/10/16",
      "title": "Simple SoC 6: How about conditions?",
      "content_text": "Implemented beq, bga, bgt, jr, draw, fixed write16/read16. Wired up VRAM and added VGA output — glitchy but alive.",
      "date_published": "2013-10-16T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/simple-soc-05-howdy-simulator-for-real/",
      "url": "https://oldwiki.hackerspace.gr/wiki/PLD_Workshop_2013/10/09",
      "title": "Simple SoC 5: Howdy Simulator, for real",
      "content_text": "Debug, debug, debug, and simulate. Implemented more state logic — CPU mostly works, needs some more opcodes.",
      "date_published": "2013-10-09T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/simple-soc-04-howdy-simulator/",
      "url": "https://oldwiki.hackerspace.gr/wiki/PLD_Workshop_2013/10/02",
      "title": "Simple SoC 4: Howdy Simulator",
      "content_text": "Implemented RAM and added delays for RAM.",
      "date_published": "2013-10-02T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/simple-soc-03-verilog-at-last/",
      "url": "https://oldwiki.hackerspace.gr/wiki/PLD_Workshop_2013/09/25",
      "title": "Simple SoC 3: Verilog at last",
      "content_text": "Spec now has vsync, reviewed sdlcore code, hacked together some very basic Verilog.",
      "date_published": "2013-09-25T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/simple-soc-02-let-there-be-code/",
      "url": "https://oldwiki.hackerspace.gr/wiki/PLD_Workshop_18_09_2013",
      "title": "Simple SoC 2: Let there be code",
      "content_text": "Debugged and finished the sdlcore implementation.",
      "date_published": "2013-09-18T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/simple-soc-01-september-reunion/",
      "url": "https://oldwiki.hackerspace.gr/wiki/PLD_Workshop_11_09_2013",
      "title": "Simple SoC 1: September reunion",
      "content_text": "Discuss and improve specs, update documentation and C# reference implementation. Forked from Programmable Logic Lessons.",
      "date_published": "2013-09-11T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/pld-lesson-6-computer-architecture-part-3/",
      "url": "https://oldwiki.hackerspace.gr/wiki/PLD_Workshop_02_07_2013",
      "title": "PLD Workshop 6: Computer architecture, part 3",
      "content_text": "Brainstorming the final CPU design, porting to Verilog, and assembler implementation, at hackerspace.gr.",
      "date_published": "2013-07-02T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/pld-lesson-5-computer-architecture-part-2/",
      "url": "https://oldwiki.hackerspace.gr/wiki/PLD_Workshop_25_06_2013",
      "title": "PLD Workshop 5: Computer architecture, part 2",
      "content_text": "ISA design — ALU, branching, registers, load/store. Pipeline stages and ISA implementation, at hackerspace.gr.",
      "date_published": "2013-06-25T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/pld-lesson-4-computer-architecture/",
      "url": "https://oldwiki.hackerspace.gr/wiki/PLD_Workshop_18_06_2013",
      "title": "PLD Workshop 4: Computer architecture",
      "content_text": "Introduction to computer architecture — buses, ALU, registers, instruction sets. Teams implement a basic CPU in C/C++, at hackerspace.gr.",
      "date_published": "2013-06-18T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/pld-lesson-3-more-complicated-structures/",
      "url": "https://oldwiki.hackerspace.gr/wiki/PLD_Workshop_11_06_2013",
      "title": "PLD Workshop 3: More complicated structures",
      "content_text": "Clocked vs asynchronous design, clock dividers, clock domains, buffers, FIFOs, and pipelines, at hackerspace.gr.",
      "date_published": "2013-06-11T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/pld-lesson-2-tooling-vhdl-verilog-basics/",
      "url": "https://oldwiki.hackerspace.gr/wiki/PLD_Workshop_04_06_2013",
      "title": "PLD Workshop 2: Tooling, VHDL/Verilog basics",
      "content_text": "Xilinx tooling, VHDL & Verilog introduction — design goals, history, syntax, and hands-on basics, at hackerspace.gr.",
      "date_published": "2013-06-04T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/pld-lesson-1-digital-electronics-recap/",
      "url": "https://oldwiki.hackerspace.gr/wiki/PLD_Workshop_28_05_2013",
      "title": "PLD Workshop 1: Digital electronics recap",
      "content_text": "Fast recap of digital electronics basics — binary system, logic gates, combinational and sequential circuits, at hackerspace.gr.",
      "date_published": "2013-05-28T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/hsgr-blender-lulz/",
      "url": "https://www.youtube.com/watch?v=Qsb_6x0Qtqc",
      "title": "HSGR Blender Animation lulz",
      "content_text": "A Blender animation made at hackerspace.gr.",
      "date_published": "2012-11-16T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/Qsb_6x0Qtqc/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/quick-update/",
      "url": "https://skmp.dev/blog/quick-update/",
      "title": "quick update",
      "content_text": "ndce compiles with psl1ght, but no 3D output yet.",
      "date_published": "2010-12-28T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/ports-ports-and-ports/",
      "url": "https://skmp.dev/blog/ports-ports-and-ports/",
      "title": "ports, ports & ports !",
      "content_text": "ARM code-path ported to Android, dynamic code running on PS3.",
      "date_published": "2010-12-14T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/resuming-operations/",
      "url": "https://skmp.dev/blog/resuming-operations/",
      "title": "Resuming operations !",
      "content_text": "Back to coding after a break - nullDCe on Android, PPC rec improvements for Wii.",
      "date_published": "2010-12-09T00:00:00.000Z",
      "tags": [
        "android",
        "arm",
        "news",
        "nullDC",
        "nulldce",
        "pandora",
        "ps3",
        "release",
        "wii"
      ]
    },
    {
      "id": "https://skmp.dev/blog/got-the-ps3/",
      "url": "https://skmp.dev/blog/got-the-ps3/",
      "title": "Got the ps3!",
      "content_text": "PS3 acquired thanks to donations.",
      "date_published": "2010-10-04T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/more-progress/",
      "url": "https://skmp.dev/blog/more-progress/",
      "title": "More progress !",
      "content_text": "Video of nullDCe progress on PS3, working towards runtime generated code.",
      "date_published": "2010-09-23T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/progess/",
      "url": "https://skmp.dev/blog/progess/",
      "title": "Progess",
      "content_text": "nullDCe showing first visuals on PS3 - main menu and VMUs working.",
      "date_published": "2010-09-18T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/progress-on-ps3-toolchain/",
      "url": "https://skmp.dev/blog/progress-on-ps3-toolchain/",
      "title": "Progress on ps3: toolchain / basic open source sdk is the next target ...",
      "content_text": "Basic cross compile of nulldce core working on PS3, now targeting open toolchain.",
      "date_published": "2010-09-10T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/resuming-work-on-nulldc/",
      "url": "https://skmp.dev/blog/resuming-work-on-nulldc/",
      "title": "Resuming work on nullDC ! -- also, donations needed :|",
      "content_text": "Officially back to working on nullDC, with plans for PS3 and Xbox ports.",
      "date_published": "2010-09-05T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/some-habits-are-too-hard-to-break/",
      "url": "https://skmp.dev/blog/some-habits-are-too-hard-to-break/",
      "title": "Some habits are too hard to break, huh",
      "content_text": "nullDC dynarec instrumentation and profiling results for Shenmue.",
      "date_published": "2010-08-28T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/nulldc-open-source/",
      "url": "https://skmp.dev/blog/nulldc-open-source/",
      "title": "nullDC mainline is open source ! also, moved servers :)",
      "content_text": "nullDC mainline code released as open source on Google Code.",
      "date_published": "2010-05-21T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/whee/",
      "url": "https://skmp.dev/blog/whee/",
      "title": "Whee ?",
      "content_text": "Wii hacked, BeagleBoard received from ZeZu.",
      "date_published": "2009-05-17T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/finaly-some-progress/",
      "url": "https://skmp.dev/blog/finaly-some-progress/",
      "title": "Finaly some progress !",
      "content_text": "New dynarec with IL, backends for x86/arm/mips-allegrex, and first PSP/BeagleBoard results.",
      "date_published": "2009-05-04T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/nulldc-arm-bios/",
      "url": "https://www.youtube.com/watch?v=1wIYfutx1ZI",
      "title": "nullDCe for ARM running bios",
      "content_text": "nullDCe compiled for ARM with a primitive renderer, running on a Beagleboard at 500 MHz.",
      "date_published": "2009-03-10T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/1wIYfutx1ZI/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/robotic-car/",
      "url": "https://www.youtube.com/watch?v=fawesaBWxxc",
      "title": "Small robotic car, test 1",
      "content_text": "A small robotic car test. Not nullDC related.",
      "date_published": "2009-01-29T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/fawesaBWxxc/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/emudev-kickoff/",
      "url": "https://skmp.dev/blog/emudev-kickoff/",
      "title": "Introducing emudev.org",
      "content_text": "Kicking off emudev.org — a network for documenting, emulating, and preserving hardware near extinction.",
      "date_published": "2008-09-01T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/clarifications-about-nulldc-psp/",
      "url": "https://skmp.dev/blog/clarifications-about-nulldc-psp/",
      "title": "Clarifications about nullDC/psp",
      "content_text": "Setting expectations about nullDC/psp development, speed, and future ports.",
      "date_published": "2008-07-29T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/nulldc-psp-doa2/",
      "url": "https://www.youtube.com/watch?v=UANxIWTXriA",
      "title": "nullDC/PSP — Dead or Alive 2 ingame",
      "content_text": "DOA2 Limited Edition running ingame on nullDC/PSP.",
      "date_published": "2008-07-28T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/UANxIWTXriA/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/nulldc-psp-sotb/",
      "url": "https://www.youtube.com/watch?v=EvloAQbRZZk",
      "title": "nullDC/PSP — Soul of the Blade ingame",
      "content_text": "VQ textures working on nullDC/PSP. No optimisations yet.",
      "date_published": "2008-07-28T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/EvloAQbRZZk/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/nulldc-psp-update-2/",
      "url": "https://skmp.dev/blog/nulldc-psp-update-2/",
      "title": "nullDC/PSP update #2++",
      "content_text": "GDrom support added, DOA2LE and SOTB running on PSP.",
      "date_published": "2008-07-27T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/nulldc-for-psp-update/",
      "url": "https://skmp.dev/blog/nulldc-for-psp-update/",
      "title": "nullDC for psp update",
      "content_text": "First PSP port of nullDC running bios with texturing.",
      "date_published": "2008-07-26T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/nulldc-grandia2-dsp/",
      "url": "https://www.youtube.com/watch?v=KSHCC_rlBo8",
      "title": "nullDC 1.0.1 running Grandia 2 with partial DSP emulation",
      "content_text": "nullDC 1.0.1 pre-1 build running Grandia 2 with partial DSP emulation.",
      "date_published": "2008-03-13T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/KSHCC_rlBo8/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/nulldc-naomi-virtua-striker/",
      "url": "https://www.youtube.com/watch?v=TZE1o7yLlgY",
      "title": "nullDC-Naomi running Virtua Striker 2 2k(a)",
      "content_text": "Virtua Striker 2 2000 intro running on nullDC-Naomi.",
      "date_published": "2008-01-25T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/TZE1o7yLlgY/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/nulldc-naomi-bios/",
      "url": "https://www.youtube.com/watch?v=X95Jsmjvl_E",
      "title": "NAOMI bios booting on nullDC",
      "content_text": "The NAOMI bios running on a special build of nullDC.",
      "date_published": "2008-01-20T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/X95Jsmjvl_E/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/first-post/",
      "url": "https://skmp.dev/blog/first-post/",
      "title": "First Post !",
      "content_text": "The first post on drk||Raziel's blog.",
      "date_published": "2007-06-23T00:00:00.000Z"
    },
    {
      "id": "https://skmp.dev/blog/nulldc-kickoff/",
      "url": "https://skmp.dev/blog/nulldc-kickoff/",
      "title": "Introducing nullDC",
      "content_text": "Kicking off nullDC — a Dreamcast emulator that started as an April Fools' joke.",
      "date_published": "2007-04-01T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/tfn1IlrMAYY/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/nulldc-jgr/",
      "url": "https://www.youtube.com/watch?v=U8UUhwIbn9I",
      "title": "nullDC JGR ingame video",
      "content_text": "Jet Grind Radio running ingame on the nullDC emulator.",
      "date_published": "2007-03-18T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/U8UUhwIbn9I/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/nulldc-102-dalmatians/",
      "url": "https://www.youtube.com/watch?v=2VRoWGiSM5Q",
      "title": "nullDC 102 Dalmatians ingame video",
      "content_text": "102 Dalmatians running ingame on the nullDC emulator.",
      "date_published": "2007-03-17T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/2VRoWGiSM5Q/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/nulldc-dave-mirra/",
      "url": "https://www.youtube.com/watch?v=4rhmN2NQetw",
      "title": "nullDC Dave Mirra ingame video",
      "content_text": "Dave Mirra running ingame on the nullDC emulator.",
      "date_published": "2007-03-17T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/4rhmN2NQetw/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/nulldc-gauntlet-legends/",
      "url": "https://www.youtube.com/watch?v=fi4aPaJWwYw",
      "title": "nullDC Gauntlet Legends ingame video",
      "content_text": "Gauntlet Legends running ingame on the nullDC emulator.",
      "date_published": "2007-03-17T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/fi4aPaJWwYw/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/nulldc-grandia2/",
      "url": "https://www.youtube.com/watch?v=tfn1IlrMAYY",
      "title": "nullDC Grandia 2 ingame video",
      "content_text": "Grandia 2 running ingame on the nullDC emulator.",
      "date_published": "2007-03-17T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/tfn1IlrMAYY/hqdefault.jpg"
    },
    {
      "id": "https://skmp.dev/blog/nulldc-head-hunter/",
      "url": "https://www.youtube.com/watch?v=E5Mi_oTbNq8",
      "title": "nullDC Head Hunter ingame video",
      "content_text": "Head Hunter running ingame on the nullDC emulator.",
      "date_published": "2007-03-17T00:00:00.000Z",
      "image": "https://img.youtube.com/vi/E5Mi_oTbNq8/hqdefault.jpg"
    }
  ]
}