feat: implement ROM CLI argument

This commit is contained in:
Rekai Nyangadzayi Musuka 2022-10-21 05:11:45 -03:00
parent d660babecd
commit 5cbfae677a
1 changed files with 15 additions and 2 deletions

View File

@ -8,9 +8,22 @@ const Arm7tdmi = @import("cpu.zig").Arm7tdmi;
pub fn main() anyerror!void {
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
const alloc = gpa.allocator();
// defer gpa.deinit();
defer _ = gpa.deinit();
var bus = try Bus.withPak(alloc, "./bin/demo/beeg/beeg.gba");
const args = try std.process.argsAlloc(alloc);
defer std.process.argsFree(alloc, args);
const zba_args: []const []const u8 = args[1..];
if (zba_args.len == 0) {
std.log.err("Expected PATH to Gameboy Advance ROM as a CLI argument", .{});
return;
} else if (zba_args.len > 1) {
std.log.err("Too many CLI arguments were provided", .{});
return;
}
var bus = try Bus.withPak(alloc, zba_args[0]);
var scheduler = Scheduler.new(alloc);
var cpu = Arm7tdmi.new(&scheduler, &bus);