diff --git a/examples/python/bench.py b/examples/python/bench.py
index e722f6264a275281428b180e6881bc99f671b24c..c40e596babcce8d68d2dcea3c29e332535fe7a81 100644
--- a/examples/python/bench.py
+++ b/examples/python/bench.py
@@ -1,13 +1,16 @@
 from time import time
 from boytacean import GameBoy, CPU_FREQ
+from os.path import dirname, realpath, join
+
+CURRENT_DIR = dirname(realpath(__file__))
+ROM_PATH = join(CURRENT_DIR, "../../res/roms/demo/pocket.gb")
 
 CLOCK_COUNT = 100000000
 
 gb = GameBoy(apu_enabled=False, serial_enabled=False)
-gb.load_rom("../../res/roms/demo/pocket.gb")
+gb.load_rom(ROM_PATH)
 start = time()
 cycles = gb.clocks(CLOCK_COUNT)
 total = time() - start
 print(f"Time taken: {total:.2f} seconds")
 print(f"Speedup: {cycles / (CPU_FREQ * total):.2f}x")
-gb.save_image("pocket.png")
diff --git a/examples/python/pocket.py b/examples/python/pocket.py
index e9e96d3362a7fbe23ddfa8576226e6aa5427ed80..8d8cf6bc937e4d01b2c8ccf3107fa18a2d16a8ad 100644
--- a/examples/python/pocket.py
+++ b/examples/python/pocket.py
@@ -1,10 +1,14 @@
 from time import time
 from boytacean import GameBoy, VISUAL_FREQ
+from os.path import dirname, realpath, join
+
+CURRENT_DIR = dirname(realpath(__file__))
+ROM_PATH = join(CURRENT_DIR, "../../res/roms/demo/pocket.gb")
 
 FRAME_COUNT = 12000
 
 gb = GameBoy(apu_enabled=False, serial_enabled=False)
-gb.load_rom("../../res/roms/demo/pocket.gb")
+gb.load_rom(ROM_PATH)
 start = time()
 for _ in range(FRAME_COUNT):
     gb.next_frame()
diff --git a/examples/python/pocket_pyboy.py b/examples/python/pocket_pyboy.py
index 8ee4d8d40d9451898fa08b533feb980b63bfd994..aad4a24da9177635869705c4970a3cf1b7eb37b0 100644
--- a/examples/python/pocket_pyboy.py
+++ b/examples/python/pocket_pyboy.py
@@ -1,9 +1,14 @@
 from time import time
-from pyboy import PyBoy, VISUAL_FREQ
+from pyboy import PyBoy
+from os.path import dirname, realpath, join
+
+CURRENT_DIR = dirname(realpath(__file__))
+ROM_PATH = join(CURRENT_DIR, "../../res/roms/demo/pocket.gb")
 
 FRAME_COUNT = 12000
+VISUAL_FREQ = 59.7275
 
-with PyBoy("../../res/roms/demo/pocket.gb", disable_renderer=True) as pyboy:
+with PyBoy(ROM_PATH, disable_renderer=True) as pyboy:
     pyboy.set_emulation_speed(0)
     print(pyboy.cartridge_title())
     start = time()
@@ -12,4 +17,6 @@ with PyBoy("../../res/roms/demo/pocket.gb", disable_renderer=True) as pyboy:
     total = time() - start
     print(f"Time taken: {total:.2f} seconds")
     print(f"Speedup: {FRAME_COUNT / total / VISUAL_FREQ:.2f}x")
-    pyboy.screen_image().save("pocket_pyboy.png")
+    image = pyboy.screen_image()
+    if image:
+        image.save("pocket_pyboy.png")
diff --git a/src/python/boytacean/gb.py b/src/python/boytacean/gb.py
index fd43147ac21a688698b67d8cbaf3a2c5f737d10a..9329e40175dc6d505b1ec363e76e360ca5f07516 100644
--- a/src/python/boytacean/gb.py
+++ b/src/python/boytacean/gb.py
@@ -97,7 +97,7 @@ This is a [Game Boy](https://en.wikipedia.org/wiki/Game_Boy) emulator built usin
 
     def save_image(self, filename: str, format: str = "png"):
         image = self.image()
-        image.save(f"{filename}.{format.lower()}", format=format)
+        image.save(filename, format=format)
 
     def video(
         self,