{"id":5334,"date":"2026-04-18T09:49:37","date_gmt":"2026-04-18T07:49:37","guid":{"rendered":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?p=5334"},"modified":"2026-04-18T09:49:37","modified_gmt":"2026-04-18T07:49:37","slug":"one-rom-web-custom-images","status":"publish","type":"post","link":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?p=5334","title":{"rendered":"One ROM Web &#8211; Custom Images"},"content":{"rendered":"<h1 data-section-id=\"xzpok4\" data-start=\"102\" data-end=\"140\">One ROM \u2013 Arbeiten mit Custom Images<\/h1>\n<p data-start=\"142\" data-end=\"315\">Im letzten Beitrag ging es um das Web-Interface und die grundlegende Bedienung.<br data-start=\"221\" data-end=\"224\" \/>Diesmal schauen wir uns eine der spannendsten Funktionen von One ROM an: <strong data-start=\"297\" data-end=\"314\">Custom Images<\/strong>.<\/p>\n<p data-start=\"317\" data-end=\"399\">Denn damit wird aus dem kleinen Board erst so richtig ein universeller ROM-Ersatz.<\/p>\n<hr data-start=\"401\" data-end=\"404\" \/>\n<h2 data-section-id=\"akchnu\" data-start=\"406\" data-end=\"434\">Was sind \u201eCustom Images\u201c?<\/h2>\n<p data-start=\"436\" data-end=\"515\">Mit Custom Images kannst du dein One ROM <strong data-start=\"477\" data-end=\"514\">genau an deine Anwendung anpassen<\/strong>:<\/p>\n<ul data-start=\"517\" data-end=\"653\">\n<li data-section-id=\"c4bvfc\" data-start=\"517\" data-end=\"547\">eigene ROM-Daten verwenden<\/li>\n<li data-section-id=\"1vwn4he\" data-start=\"548\" data-end=\"576\">mehrere ROMs kombinieren<\/li>\n<li data-section-id=\"r4f2re\" data-start=\"577\" data-end=\"614\">verschiedene Chip-Typen emulieren<\/li>\n<li data-section-id=\"gvlqi4\" data-start=\"615\" data-end=\"653\">Speicheraufteilung frei definieren<\/li>\n<\/ul>\n<p data-start=\"655\" data-end=\"713\">Kurz gesagt: Du baust dir dein eigenes \u201evirtuelles EPROM\u201c.<\/p>\n<hr data-start=\"715\" data-end=\"718\" \/>\n<h2 data-section-id=\"1jbi1xo\" data-start=\"720\" data-end=\"754\">Einstieg \u00fcber das Web-Interface<\/h2>\n<div class=\"no-scrollbar flex min-h-36 flex-nowrap gap-0.5 overflow-auto sm:gap-1 sm:overflow-hidden xl:min-h-44 mt-1 mb-5 [&amp;:not(:first-child)]:mt-4\">\n<div class=\"border-token-border-default relative w-32 shrink-0 overflow-hidden rounded-xl border-[0.5px] md:shrink max-h-64 sm:w-[calc((100%-0.5rem)\/3)] rounded-s-xl\">\n<div class=\"group\/search-image @container\/search-image relative rounded-[inherit] h-full w-full\"><span style=\"font-size: 16px;\">Der Einstieg ist einfach:<\/span><\/div>\n<\/div>\n<\/div>\n<ol data-start=\"825\" data-end=\"947\">\n<li data-section-id=\"1r8welk\" data-start=\"825\" data-end=\"860\"><a class=\"decorated-link\" href=\"https:\/\/onerom.org\/web\/\" target=\"_new\" rel=\"noopener\" data-start=\"828\" data-end=\"851\">https:\/\/onerom.org\/web\/<\/a> \u00f6ffnen<\/li>\n<li data-section-id=\"1pxkhf\" data-start=\"861\" data-end=\"887\">Verbindung herstellen<\/li>\n<li data-section-id=\"c67afw\" data-start=\"888\" data-end=\"947\">Im Bereich <strong data-start=\"902\" data-end=\"936\">\u201eProgramming\u201c \u2192 \u201eCustom Image\u201c<\/strong> wechseln<\/li>\n<\/ol>\n<p data-start=\"949\" data-end=\"999\">Dort kannst du dein eigenes Image zusammenstellen.<\/p>\n<hr data-start=\"1001\" data-end=\"1004\" \/>\n<h2 data-section-id=\"pbalrm\" data-start=\"1006\" data-end=\"1035\">Aufbau eines Custom Images<\/h2>\n<p data-start=\"1037\" data-end=\"1097\">Ein Custom Image besteht im Prinzip aus mehreren Bausteinen:<\/p>\n<h3 data-section-id=\"123j8ij\" data-start=\"1099\" data-end=\"1115\">\ud83e\udde9 ROM-Slots<\/h3>\n<p data-start=\"1116\" data-end=\"1135\">Hier legst du fest:<\/p>\n<ul data-start=\"1137\" data-end=\"1224\">\n<li data-section-id=\"fnd92o\" data-start=\"1137\" data-end=\"1170\">welche ROM-Datei geladen wird<\/li>\n<li data-section-id=\"wcstqf\" data-start=\"1171\" data-end=\"1191\">wie gro\u00df sie ist<\/li>\n<li data-section-id=\"1huk3b2\" data-start=\"1192\" data-end=\"1224\">an welcher Adresse sie liegt<\/li>\n<\/ul>\n<p data-start=\"1226\" data-end=\"1291\">Je nach Konfiguration kannst du mehrere ROMs gleichzeitig nutzen.<\/p>\n<hr data-start=\"1293\" data-end=\"1296\" \/>\n<h3 data-section-id=\"1ex5pdn\" data-start=\"1298\" data-end=\"1327\">\u2699\ufe0f Hardware-Konfiguration<\/h3>\n<p data-start=\"1329\" data-end=\"1370\">Wichtige Einstellungen sind zum Beispiel:<\/p>\n<ul data-start=\"1372\" data-end=\"1466\">\n<li data-section-id=\"1b8ujoc\" data-start=\"1372\" data-end=\"1407\">ROM-Typ (z. B. EPROM, Mask ROM)<\/li>\n<li data-section-id=\"lox5kn\" data-start=\"1408\" data-end=\"1424\">Adressbreite<\/li>\n<li data-section-id=\"ui68v\" data-start=\"1425\" data-end=\"1440\">Datenbreite<\/li>\n<li data-section-id=\"1jdxhs9\" data-start=\"1441\" data-end=\"1466\">Chip-Select-Verhalten<\/li>\n<\/ul>\n<p data-start=\"1468\" data-end=\"1562\">Das klingt erstmal komplex \u2013 ist aber meist schnell verstanden, wenn man das Zielsystem kennt.<\/p>\n<hr data-start=\"1564\" data-end=\"1567\" \/>\n<h3 data-section-id=\"9wz4t9\" data-start=\"1569\" data-end=\"1597\">\ud83d\udd00 Mapping \/ Umschaltung<\/h3>\n<p data-start=\"1599\" data-end=\"1641\">Eine der st\u00e4rksten Funktionen von One ROM:<\/p>\n<p data-start=\"1643\" data-end=\"1706\">\ud83d\udc49 Mehrere ROMs k\u00f6nnen \u00fcber Steuerleitungen umgeschaltet werden<\/p>\n<p data-start=\"1708\" data-end=\"1738\">Das ist z. B. interessant f\u00fcr:<\/p>\n<ul data-start=\"1740\" data-end=\"1823\">\n<li data-section-id=\"t0vo6y\" data-start=\"1740\" data-end=\"1775\">verschiedene Firmware-Versionen<\/li>\n<li data-section-id=\"w1uulw\" data-start=\"1776\" data-end=\"1803\">mehrere Betriebssysteme<\/li>\n<li data-section-id=\"qam0g8\" data-start=\"1804\" data-end=\"1823\">Debug-Varianten<\/li>\n<\/ul>\n<hr data-start=\"1825\" data-end=\"1828\" \/>\n<h2 data-section-id=\"s5frlt\" data-start=\"1830\" data-end=\"1857\">Typischer Anwendungsfall<\/h2>\n<p data-start=\"1859\" data-end=\"1901\">Schauen wir uns ein konkretes Beispiel an.<\/p>\n<h3 data-section-id=\"b7ljge\" data-start=\"1903\" data-end=\"1941\">Beispiel: Zwei ROMs in einem Ger\u00e4t<\/h3>\n<p data-start=\"1943\" data-end=\"1955\">Du m\u00f6chtest:<\/p>\n<ul data-start=\"1957\" data-end=\"2019\">\n<li data-section-id=\"6qjacw\" data-start=\"1957\" data-end=\"1987\">Original-Firmware behalten<\/li>\n<li data-section-id=\"12ovypm\" data-start=\"1988\" data-end=\"2019\">modifizierte Version testen<\/li>\n<\/ul>\n<p data-start=\"2021\" data-end=\"2036\">Dann kannst du:<\/p>\n<ol data-start=\"2038\" data-end=\"2123\">\n<li data-section-id=\"1a9w70y\" data-start=\"2038\" data-end=\"2065\">zwei ROM-Dateien laden<\/li>\n<li data-section-id=\"19pzqwz\" data-start=\"2066\" data-end=\"2092\">beiden Slots zuweisen<\/li>\n<li data-section-id=\"1wovy5p\" data-start=\"2093\" data-end=\"2123\">Umschaltung konfigurieren<\/li>\n<\/ol>\n<p data-start=\"2125\" data-end=\"2206\">\ud83d\udc49 Ergebnis: Per Jumper oder Signal kannst du zwischen beiden Versionen wechseln.<\/p>\n<hr data-start=\"2208\" data-end=\"2211\" \/>\n<h2 data-section-id=\"vqortl\" data-start=\"2213\" data-end=\"2244\">Eigene ROM-Dateien verwenden<\/h2>\n<p data-start=\"2246\" data-end=\"2305\">Custom Images leben davon, dass du eigene Daten einbringst.<\/p>\n<p data-start=\"2307\" data-end=\"2324\">Typische Quellen:<\/p>\n<ul data-start=\"2326\" data-end=\"2411\">\n<li data-section-id=\"c404i7\" data-start=\"2326\" data-end=\"2348\">ausgelesene EPROMs<\/li>\n<li data-section-id=\"jawqcn\" data-start=\"2349\" data-end=\"2378\">BIN-Dateien aus Projekten<\/li>\n<li data-section-id=\"x3kh1q\" data-start=\"2379\" data-end=\"2411\">Firmware-Images aus dem Netz<\/li>\n<\/ul>\n<p data-start=\"2413\" data-end=\"2425\">Wichtig ist:<\/p>\n<ul data-start=\"2427\" data-end=\"2478\">\n<li data-section-id=\"vnaela\" data-start=\"2427\" data-end=\"2445\">richtige Gr\u00f6\u00dfe<\/li>\n<li data-section-id=\"1nvaiht\" data-start=\"2446\" data-end=\"2478\">korrektes Format (meist BIN)<\/li>\n<\/ul>\n<p data-start=\"2480\" data-end=\"2564\">Falls das ROM kleiner ist als erwartet, wird es in der Regel automatisch aufgef\u00fcllt.<\/p>\n<hr data-start=\"2566\" data-end=\"2569\" \/>\n<h2 data-section-id=\"19b5zm0\" data-start=\"2571\" data-end=\"2600\">Grenzen und Besonderheiten<\/h2>\n<p data-start=\"2602\" data-end=\"2652\">Ein paar Dinge solltest du im Hinterkopf behalten:<\/p>\n<ul data-start=\"2654\" data-end=\"2804\">\n<li data-section-id=\"1mhpw4u\" data-start=\"2654\" data-end=\"2707\">Maximale Gesamtgr\u00f6\u00dfe ist durch den Flash begrenzt<\/li>\n<li data-section-id=\"ya1mav\" data-start=\"2708\" data-end=\"2745\">Timing muss zum Zielsystem passen<\/li>\n<li data-section-id=\"1x3y6ln\" data-start=\"2746\" data-end=\"2804\">nicht jede exotische ROM-Logik l\u00e4sst sich 1:1 abbilden<\/li>\n<\/ul>\n<p data-start=\"2806\" data-end=\"2875\">\ud83d\udc49 In der Praxis funktioniert aber erstaunlich viel \u201eout of the box\u201c.<\/p>\n<hr data-start=\"2877\" data-end=\"2880\" \/>\n<h2 data-section-id=\"lqx0kx\" data-start=\"2882\" data-end=\"2923\">Wann lohnt sich Custom Image wirklich?<\/h2>\n<p data-start=\"2925\" data-end=\"2972\">Custom Images sind besonders sinnvoll, wenn du:<\/p>\n<ul data-start=\"2974\" data-end=\"3111\">\n<li data-section-id=\"197caly\" data-start=\"2974\" data-end=\"3006\">mehrere ROMs ersetzen willst<\/li>\n<li data-section-id=\"hnb8fa\" data-start=\"3007\" data-end=\"3031\">viel experimentierst<\/li>\n<li data-section-id=\"1yeyg3f\" data-start=\"3032\" data-end=\"3063\">eigene Firmware entwickelst<\/li>\n<li data-section-id=\"4v6mhw\" data-start=\"3064\" data-end=\"3111\">seltene oder schwer beschaffbare ROMs nutzt<\/li>\n<\/ul>\n<p data-start=\"3113\" data-end=\"3227\">F\u00fcr einfache F\u00e4lle reicht oft ein fertiges Image \u2013 aber sobald es individueller wird, f\u00fchrt kein Weg daran vorbei.<\/p>\n<hr data-start=\"3229\" data-end=\"3232\" \/>\n<h2 data-section-id=\"78x27p\" data-start=\"3234\" data-end=\"3268\">Alternative: Vorbereitung am PC<\/h2>\n<p data-start=\"3270\" data-end=\"3364\">F\u00fcr komplexere Projekte kann es sinnvoll sein, das Image au\u00dferhalb des Browsers vorzubereiten.<\/p>\n<p data-start=\"3366\" data-end=\"3444\">Das offizielle Projekt auf <span class=\"hover:entity-accent entity-underline inline cursor-pointer align-baseline\"><span class=\"whitespace-normal\">one-rom GitHub repository<\/span><\/span> bietet daf\u00fcr:<\/p>\n<ul data-start=\"3446\" data-end=\"3502\">\n<li data-section-id=\"13sut4z\" data-start=\"3446\" data-end=\"3455\">Tools<\/li>\n<li data-section-id=\"rtxurk\" data-start=\"3456\" data-end=\"3469\">Beispiele<\/li>\n<li data-section-id=\"fu7phc\" data-start=\"3470\" data-end=\"3502\">weiterf\u00fchrende Dokumentation<\/li>\n<\/ul>\n<p data-start=\"3504\" data-end=\"3561\">Damit kannst du sehr gezielt und reproduzierbar arbeiten.<\/p>\n<hr data-start=\"3563\" data-end=\"3566\" \/>\n<h2 data-section-id=\"18tzgym\" data-start=\"3568\" data-end=\"3591\">Tipps aus der Praxis<\/h2>\n<ul data-start=\"3593\" data-end=\"3713\">\n<li data-section-id=\"uf613z\" data-start=\"3593\" data-end=\"3638\">Erst mit kleinen Konfigurationen anfangen<\/li>\n<li data-section-id=\"1nwhuld\" data-start=\"3639\" data-end=\"3672\">Schritt f\u00fcr Schritt erweitern<\/li>\n<li data-section-id=\"1s62ghl\" data-start=\"3673\" data-end=\"3713\">immer testen, bevor du komplex wirst<\/li>\n<\/ul>\n<p data-start=\"3715\" data-end=\"3732\">Und ganz wichtig:<\/p>\n<p data-start=\"3734\" data-end=\"3781\">\ud83d\udc49 Funktionierende Konfigurationen abspeichern!<\/p>\n<hr data-start=\"3783\" data-end=\"3786\" \/>\n<h2 data-section-id=\"x8o1ad\" data-start=\"3788\" data-end=\"3796\">Fazit<\/h2>\n<p data-start=\"3798\" data-end=\"3864\">Custom Images sind der Punkt, an dem One ROM richtig m\u00e4chtig wird:<\/p>\n<ul data-start=\"3866\" data-end=\"3949\">\n<li data-section-id=\"ty63ms\" data-start=\"3866\" data-end=\"3891\">maximale Flexibilit\u00e4t<\/li>\n<li data-section-id=\"1fkxjv2\" data-start=\"3892\" data-end=\"3918\">individuelle Anpassung<\/li>\n<li data-section-id=\"18g2bv3\" data-start=\"3919\" data-end=\"3949\">viele Einsatzm\u00f6glichkeiten<\/li>\n<\/ul>\n<p data-start=\"3951\" data-end=\"4063\">Am Anfang wirkt es etwas komplex \u2013 aber nach den ersten Versuchen wird schnell klar, wie viel damit m\u00f6glich ist.<\/p>\n<hr data-start=\"4065\" data-end=\"4068\" \/>\n<h2 data-section-id=\"p7qrot\" data-start=\"4070\" data-end=\"4081\">Ausblick<\/h2>\n<p data-start=\"4083\" data-end=\"4140\">In einem der n\u00e4chsten Beitr\u00e4ge k\u00f6nnten wir uns anschauen:<\/p>\n<ul data-start=\"4142\" data-end=\"4247\">\n<li data-section-id=\"13comg1\" data-start=\"4142\" data-end=\"4177\">Multi-ROM-Umschaltung im Detail<\/li>\n<li data-section-id=\"1eqnabs\" data-start=\"4178\" data-end=\"4207\">Timing und Kompatibilit\u00e4t<\/li>\n<li data-section-id=\"1ji31ut\" data-start=\"4208\" data-end=\"4247\">Einsatz in konkreten Retro-Systemen<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>One ROM \u2013 Arbeiten mit Custom Images Im letzten Beitrag ging es um das Web-Interface und die grundlegende Bedienung.Diesmal schauen wir uns eine der spannendsten Funktionen von One ROM an: Custom Images. Denn damit wird aus dem kleinen Board erst &hellip; <a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?p=5334\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-5334","post","type-post","status-publish","format-standard","hentry","category-allgemein"],"_links":{"self":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/5334","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5334"}],"version-history":[{"count":1,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/5334\/revisions"}],"predecessor-version":[{"id":5335,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/5334\/revisions\/5335"}],"wp:attachment":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5334"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5334"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5334"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}