Add memory to state
This commit is contained in:
parent
690df0321f
commit
3b9085545b
6 changed files with 19 additions and 11 deletions
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue