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

chore: new GB mode in python

parent d57aa9b9
No related branches found
No related tags found
1 merge request!36Support for Python
Pipeline #3606 passed
This commit is part of merge request !36. Comments created here will be created in the context of that merge request.
......@@ -4,7 +4,6 @@ from boytacean import GameBoy, CPU_FREQ
CLOCK_COUNT = 100000000
gb = GameBoy(apu_enabled=False, serial_enabled=False)
gb.load()
gb.load_rom("../../res/roms/demo/pocket.gb")
start = time()
cycles = gb.clocks(CLOCK_COUNT)
......
......@@ -4,7 +4,6 @@ from boytacean import GameBoy
FRAME_COUNT = 12000
gb = GameBoy(apu_enabled=False, serial_enabled=False)
gb.load()
gb.load_rom("../../res/roms/demo/pocket.gb")
start = time()
for _ in range(FRAME_COUNT):
......
use pyo3::{prelude::*, types::PyBytes};
use crate::{
gb::GameBoy as GameBoyBase,
gb::{GameBoy as GameBoyBase, GameBoyMode},
ppu::{DISPLAY_HEIGHT, DISPLAY_WIDTH},
};
......@@ -13,9 +13,9 @@ struct GameBoy {
#[pymethods]
impl GameBoy {
#[new]
fn new() -> Self {
fn new(mode: u8) -> Self {
Self {
system: GameBoyBase::new(None),
system: GameBoyBase::new(Some(GameBoyMode::from_u8(mode))),
}
}
......
from enum import Enum
from PIL.Image import Image, frombytes
from .boytacean import DISPLAY_WIDTH, DISPLAY_HEIGHT, CPU_FREQ, GameBoy as GameBoyRust
class GameBoyMode(Enum):
DMG = 1
CGB = 2
SGB = 3
class GameBoy:
def __init__(
self,
mode=GameBoyMode.DMG,
ppu_enabled=True,
apu_enabled=True,
dma_enabled=True,
timer_enabled=True,
serial_enabled=True,
load=True,
):
super().__init__()
self._system = GameBoyRust()
self._system = GameBoyRust(mode.value)
self._system.set_ppu_enabled(ppu_enabled)
self._system.set_apu_enabled(apu_enabled)
self._system.set_dma_enabled(dma_enabled)
self._system.set_timer_enabled(timer_enabled)
self._system.set_serial_enabled(serial_enabled)
if load:
self.load()
def load(self):
self._system.load()
......
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