diff --git a/src/py.rs b/src/py.rs
index 3a588c09e23a36735a2132be930e09c6915eb41e..f444703edf8aeb66b3538c97ac4572162cda45d0 100644
--- a/src/py.rs
+++ b/src/py.rs
@@ -27,7 +27,11 @@ impl GameBoy {
         self.system.load(true);
     }
 
-    pub fn load_rom(&mut self, path: &str) {
+    pub fn load_rom(&mut self, data: &[u8]) {
+        self.system.load_rom(data, None);
+    }
+
+    pub fn load_rom_file(&mut self, path: &str) {
         self.system.load_rom_file(path, None);
     }
 
diff --git a/src/python/boytacean/__init__.py b/src/python/boytacean/__init__.py
index 533633c58c0608f85a27de998f92ccd936461075..544de8bb888a7e72cc5b7bed43536ca8e96eff1a 100644
--- a/src/python/boytacean/__init__.py
+++ b/src/python/boytacean/__init__.py
@@ -24,7 +24,10 @@ class GameBoy:
         self._system.load()
 
     def load_rom(self, filename: str):
-        self._system.load_rom(filename)
+        self._system.load_rom_file(filename)
+
+    def load_rom_data(self, data: bytes):
+        self._system.load_rom(data)
 
     def clock(self) -> int:
         return self._system.clock()