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
Checking pipeline status
This commit is part of merge request !36. Comments created here will be created in the context of that merge request.
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.
Finish editing this message first!
Please register or to comment