Compare commits
6 Commits
ddc54e2977
...
ed8155139a
Author | SHA1 | Date |
---|---|---|
Rekai Nyangadzayi Musuka | ed8155139a | |
Rekai Nyangadzayi Musuka | 8112b1aab2 | |
Rekai Nyangadzayi Musuka | c0e583d20d | |
Rekai Nyangadzayi Musuka | 3f72367aaf | |
Rekai Nyangadzayi Musuka | c27f487bf0 | |
Rekai Nyangadzayi Musuka | ae3bb94036 |
|
@ -39,7 +39,7 @@ jobs:
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
- name: build
|
- name: build
|
||||||
run: zig build -Drelease-safe
|
run: zig build -Doptimize=ReleaseSafe
|
||||||
- name: upload
|
- name: upload
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
{
|
|
||||||
"recommendations": [
|
|
||||||
"augusterame.zls-vscode",
|
|
||||||
"usernamehw.errorlens",
|
|
||||||
"vadimcn.vscode-lldb",
|
|
||||||
"dan-c-underwood.arm"
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -77,7 +77,7 @@ arm7wrestler GBA Fixed | [destoer](https://github.com/destoer)
|
||||||
|
|
||||||
## Compiling
|
## Compiling
|
||||||
|
|
||||||
Most recently built on Zig [v0.11.0-dev.987+a1d82352d](https://github.com/ziglang/zig/tree/a1d82352d)
|
Most recently built on Zig [v0.11.0-dev.1557+03cdb4fb5](https://github.com/ziglang/zig/tree/03cdb4fb5)
|
||||||
|
|
||||||
### Dependencies
|
### Dependencies
|
||||||
|
|
||||||
|
|
29
build.zig
29
build.zig
|
@ -4,25 +4,23 @@ const Sdk = @import("lib/SDL.zig/Sdk.zig");
|
||||||
|
|
||||||
pub fn build(b: *std.build.Builder) void {
|
pub fn build(b: *std.build.Builder) void {
|
||||||
// Minimum Zig Version
|
// Minimum Zig Version
|
||||||
const min_ver = std.SemanticVersion.parse("0.11.0-dev.987+a1d82352d") catch return; // https://github.com/ziglang/zig/commit/19056cb68
|
const min_ver = std.SemanticVersion.parse("0.11.0-dev.1557+03cdb4fb5") catch return; // https://github.com/ziglang/zig/commit/03cdb4fb5
|
||||||
if (builtin.zig_version.order(min_ver).compare(.lt)) {
|
if (builtin.zig_version.order(min_ver).compare(.lt)) {
|
||||||
std.log.err("{s}", .{b.fmt("Zig v{} does not meet the minimum version requirement. (Zig v{})", .{ builtin.zig_version, min_ver })});
|
std.log.err("{s}", .{b.fmt("Zig v{} does not meet the minimum version requirement. (Zig v{})", .{ builtin.zig_version, min_ver })});
|
||||||
std.os.exit(1);
|
std.os.exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Standard target options allows the person running `zig build` to choose
|
|
||||||
// what target to build for. Here we do not override the defaults, which
|
|
||||||
// means any target is allowed, and the default is native. Other options
|
|
||||||
// for restricting supported target set are available.
|
|
||||||
const target = b.standardTargetOptions(.{});
|
const target = b.standardTargetOptions(.{});
|
||||||
|
const optimize = b.standardOptimizeOption(.{});
|
||||||
|
|
||||||
// Standard release options allow the person running `zig build` to select
|
const exe = b.addExecutable(.{
|
||||||
// between Debug, ReleaseSafe, ReleaseFast, and ReleaseSmall.
|
.name = "zba",
|
||||||
const mode = b.standardReleaseOptions();
|
.root_source_file = .{ .path = "src/main.zig" },
|
||||||
|
.target = target,
|
||||||
|
.optimize = optimize,
|
||||||
|
});
|
||||||
|
|
||||||
const exe = b.addExecutable("zba", "src/main.zig");
|
|
||||||
exe.setMainPkgPath("."); // Necessary so that src/main.zig can embed example.toml
|
exe.setMainPkgPath("."); // Necessary so that src/main.zig can embed example.toml
|
||||||
exe.setTarget(target);
|
|
||||||
|
|
||||||
// Known Folders (%APPDATA%, XDG, etc.)
|
// Known Folders (%APPDATA%, XDG, etc.)
|
||||||
exe.addPackagePath("known_folders", "lib/known-folders/known-folders.zig");
|
exe.addPackagePath("known_folders", "lib/known-folders/known-folders.zig");
|
||||||
|
@ -44,11 +42,10 @@ pub fn build(b: *std.build.Builder) void {
|
||||||
exe.addPackagePath("gl", "lib/gl.zig");
|
exe.addPackagePath("gl", "lib/gl.zig");
|
||||||
|
|
||||||
// Zig SDL Bindings: https://github.com/MasterQ32/SDL.zig
|
// Zig SDL Bindings: https://github.com/MasterQ32/SDL.zig
|
||||||
const sdk = Sdk.init(b);
|
const sdk = Sdk.init(b, null);
|
||||||
sdk.link(exe, .dynamic);
|
sdk.link(exe, .dynamic);
|
||||||
exe.addPackage(sdk.getNativePackage("sdl2"));
|
exe.addPackage(sdk.getNativePackage("sdl2"));
|
||||||
|
|
||||||
exe.setBuildMode(mode);
|
|
||||||
exe.install();
|
exe.install();
|
||||||
|
|
||||||
const run_cmd = exe.run();
|
const run_cmd = exe.run();
|
||||||
|
@ -60,9 +57,11 @@ pub fn build(b: *std.build.Builder) void {
|
||||||
const run_step = b.step("run", "Run the app");
|
const run_step = b.step("run", "Run the app");
|
||||||
run_step.dependOn(&run_cmd.step);
|
run_step.dependOn(&run_cmd.step);
|
||||||
|
|
||||||
const exe_tests = b.addTest("src/main.zig");
|
const exe_tests = b.addTest(.{
|
||||||
exe_tests.setTarget(target);
|
.root_source_file = .{ .path = "src/main.zig" },
|
||||||
exe_tests.setBuildMode(mode);
|
.target = target,
|
||||||
|
.optimize = optimize,
|
||||||
|
});
|
||||||
|
|
||||||
const test_step = b.step("test", "Run unit tests");
|
const test_step = b.step("test", "Run unit tests");
|
||||||
test_step.dependOn(&exe_tests.step);
|
test_step.dependOn(&exe_tests.step);
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 2fbd4b228516bf08348a3173f1446c7e8d75540a
|
Subproject commit 59a458abd9220703ca4d8b7f99080780c61c2f8c
|
|
@ -1 +1 @@
|
||||||
Subproject commit 24845b0103e611c108d6bc334231c464e699742c
|
Subproject commit 6b37490ac7285133bf09441850b8102c9728a776
|
|
@ -1 +1 @@
|
||||||
Subproject commit 88edafd00ec25dcc01deb8fc69e9864a16f8717c
|
Subproject commit 6c9ca9025199b145c42a75d10cadb3f97879ee6d
|
|
@ -11,9 +11,7 @@ pub fn singleDataTransfer(comptime I: bool, comptime P: bool, comptime U: bool,
|
||||||
const rn = opcode >> 16 & 0xF;
|
const rn = opcode >> 16 & 0xF;
|
||||||
const rd = opcode >> 12 & 0xF;
|
const rd = opcode >> 12 & 0xF;
|
||||||
|
|
||||||
// rn is r15 and L is not set, the PC is 12 ahead
|
const base = cpu.r[rn];
|
||||||
const base = cpu.r[rn] + if (!L and rn == 0xF) 4 else @as(u32, 0);
|
|
||||||
|
|
||||||
const offset = if (I) shifter.immediate(false, cpu, opcode) else opcode & 0xFFF;
|
const offset = if (I) shifter.immediate(false, cpu, opcode) else opcode & 0xFFF;
|
||||||
|
|
||||||
const modified_base = if (U) base +% offset else base -% offset;
|
const modified_base = if (U) base +% offset else base -% offset;
|
||||||
|
|
|
@ -843,7 +843,12 @@ pub const Ppu = struct {
|
||||||
const is_top_layer = (top_layer >> layer) & 1 == 1;
|
const is_top_layer = (top_layer >> layer) & 1 == 1;
|
||||||
|
|
||||||
if (is_top_layer) {
|
if (is_top_layer) {
|
||||||
|
const pixel = self.scanline.btm()[i];
|
||||||
|
|
||||||
|
// FIXME: Can't I do this check ealier? Test Amazing Mirror File Select, bld_demo.gba
|
||||||
|
if (!pixel.isSet())
|
||||||
self.scanline.btm()[i] = Scanline.Pixel.from(.Background, bgr555); // this is intentional
|
self.scanline.btm()[i] = Scanline.Pixel.from(.Background, bgr555); // this is intentional
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue