Skip to content
Snippets Groups Projects
Verified Commit 1e30737e authored by João Magalhães's avatar João Magalhães :rocket:
Browse files

chore: better frame count

parent 94dd3713
No related branches found
No related tags found
1 merge request!36Support for Python
Pipeline #3601 passed
from time import time
from boytacean import GameBoy
gb = GameBoy()
FRAME_COUNT = 12000
gb = GameBoy(apu_enabled=False)
gb.load()
gb.load_rom("../../res/roms/demo/pocket.gb")
start = time()
for _ in range(6000):
for _ in range(FRAME_COUNT):
gb.next_frame()
print(f"Time taken: {(time() - start)}")
total = time() - start
print(f"Time taken: {total} seconds")
print(f"Speedup: {FRAME_COUNT / total / 60}x")
gb.save_image("pocket.png")
from time import time
from pyboy import PyBoy
with PyBoy("../../res/roms/demo/pocket.gb", disable_renderer=False) as pyboy:
FRAME_COUNT = 12000
with PyBoy("../../res/roms/demo/pocket.gb", disable_renderer=True) as pyboy:
pyboy.set_emulation_speed(0)
print(pyboy.cartridge_title())
start = time()
for _ in range(6000):
for _ in range(FRAME_COUNT):
pyboy.tick()
print(f"Time taken: {(time() - start)}")
total = time() - start
print(f"Time taken: {total} seconds")
print(f"Speedup: {FRAME_COUNT / total / 60}x")
pyboy.screen_image().save("pocket_pyboy.png")
......@@ -51,6 +51,14 @@ impl GameBoy {
let pybytes = PyBytes::new(py, self.system.frame_buffer());
pybytes.into()
}
pub fn apu_enabled(&self) -> bool {
self.system.apu_enabled()
}
pub fn set_apu_enabled(&mut self, value: bool) {
self.system.set_apu_enabled(value);
}
}
#[pymodule]
......
......@@ -4,9 +4,10 @@ from .boytacean import DISPLAY_WIDTH, DISPLAY_HEIGHT, GameBoy as GameBoyRust
class GameBoy:
def __init__(self):
def __init__(self, apu_enabled=True):
super().__init__()
self._system = GameBoyRust()
self._system.set_apu_enabled(apu_enabled)
def load(self):
self._system.load()
......@@ -35,3 +36,10 @@ class GameBoy:
"RGB", (DISPLAY_WIDTH, DISPLAY_HEIGHT), frame_buffer, "raw"
)
image.save(filename, format=format)
@property
def apu_enabled(self) -> bool:
return self._system.apu_enabled()
def set_apu_enabled(self, value: bool):
self._system.set_apu_enabled(value)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment