Add memory to state

This commit is contained in:
Fabien Freling 2019-07-14 19:11:40 +02:00
parent 690df0321f
commit 3b9085545b
6 changed files with 19 additions and 11 deletions

View file

@ -2,4 +2,4 @@ let () =
Callback.register "oboy_name" Version.name;
Callback.register "oboy_version" Version.version;
Callback.register "oboy_load" State.load_cartridge;
Callback.register "oboy_bg_map" Memory.background_map;
Callback.register "oboy_bg_map" (Memory.background_map !State.state.memory);

View file

@ -109,12 +109,13 @@ let update_timers mem cycles =
end
end
let background_map () =
let background_map mem n =
let bg_map = Array2.create Bigarray.int8_unsigned Bigarray.c_layout 8 8 in
Array2.fill bg_map 0;
for j = 0 to (Array2.dim2 bg_map) - 1 do
for i = 0 to (Array2.dim1 bg_map) - 1 do
bg_map.{i, j} <- (i + j * Array2.dim1 bg_map) mod 4
(* bg_map.{i, j} <- (i + j * Array2.dim1 bg_map) mod 4 *)
bg_map.{i, j} <- n
done
done;
bg_map

View file

@ -1,16 +1,22 @@
(* State of the world, contains all the required information at any point *)
type t = {
mutable cartridge : Cartridge.t option;
mutable memory : Memory.t option
}
(* Global reference *)
let state = ref {
cartridge = None
cartridge = None;
memory = None
}
let load_cartridge file =
let cartridge = Cartridge.read_cartridge file in
!state.cartridge <- cartridge;
match cartridge with
| Some c -> Cartridge.print_info c; true
| Some c -> begin
let memory = Memory.init c in
!state.cartridge <- cartridge;
!state.memory <- Some memory;
Cartridge.print_info c
end; true
| None -> false