ditch WASM support for now
This commit is contained in:
parent
cf8fec2353
commit
ac6c1e2064
@ -3,3 +3,5 @@
|
||||
Techinal reference: http://devernay.free.fr/hacks/chip8/C8TECH10.HTM
|
||||
ROM archive: https://johnearnest.github.io/chip8Archive/
|
||||
Awesome chip8: https://chip-8.github.io/
|
||||
|
||||
// TODO: WASM support
|
||||
|
38
build.zig
38
build.zig
@ -6,22 +6,30 @@ pub fn build(b: *std.Build) !void {
|
||||
const optimize = b.standardOptimizeOption(.{});
|
||||
var raylib = rl.getModule(b, "raylib-zig");
|
||||
var raylib_math = rl.math.getModule(b, "raylib-zig");
|
||||
|
||||
// TODO: Figure out how to build project for WASM. Tried to do it but standard memory allocators
|
||||
// didn't work.
|
||||
|
||||
//web exports are completely separate
|
||||
if (target.getOsTag() == .emscripten) {
|
||||
const exe_lib = rl.compileForEmscripten(b, "chip8-zig", "src/main.zig", target, optimize);
|
||||
exe_lib.addModule("raylib", raylib);
|
||||
exe_lib.addModule("raylib-math", raylib_math);
|
||||
const raylib_artifact = rl.getArtifact(b, target, optimize);
|
||||
// Note that raylib itself is not actually added to the exe_lib output file, so it also needs to be linked with emscripten.
|
||||
exe_lib.linkLibrary(raylib_artifact);
|
||||
const link_step = try rl.linkWithEmscripten(b, &[_]*std.Build.Step.Compile{ exe_lib, raylib_artifact });
|
||||
b.getInstallStep().dependOn(&link_step.step);
|
||||
const run_step = try rl.emscriptenRunStep(b);
|
||||
run_step.step.dependOn(&link_step.step);
|
||||
const run_option = b.step("run", "Run chip8-zig");
|
||||
run_option.dependOn(&run_step.step);
|
||||
return;
|
||||
}
|
||||
// if (target.getOsTag() == .emscripten) {
|
||||
// const exe_lib = rl.compileForEmscripten(b, "chip8-zig", "src/main.zig", target, optimize);
|
||||
// exe_lib.addModule("raylib", raylib);
|
||||
// exe_lib.addModule("raylib-math", raylib_math);
|
||||
//
|
||||
// const raylib_artifact = rl.getArtifact(b, target, optimize);
|
||||
// // Note that raylib itself is not actually added to the exe_lib output file, so it also needs to be linked with emscripten.
|
||||
// exe_lib.linkLibrary(raylib_artifact);
|
||||
//
|
||||
// const link_step = try rl.linkWithEmscripten(b, &[_]*std.Build.Step.Compile{ exe_lib, raylib_artifact });
|
||||
// b.getInstallStep().dependOn(&link_step.step);
|
||||
//
|
||||
// const run_step = try rl.emscriptenRunStep(b);
|
||||
// run_step.step.dependOn(&link_step.step);
|
||||
//
|
||||
// const run_option = b.step("run", "Run chip8-zig");
|
||||
// run_option.dependOn(&run_step.step);
|
||||
// return;
|
||||
// }
|
||||
|
||||
const exe = b.addExecutable(.{ .name = "chip8-zig", .root_source_file = .{ .path = "src/main.zig" }, .optimize = optimize, .target = target });
|
||||
|
||||
|
13
src/main.zig
13
src/main.zig
@ -19,9 +19,13 @@ pub fn gen_sin_wave(wave: *rl.Wave, frequency: f32) void {
|
||||
}
|
||||
}
|
||||
|
||||
fn megabytes(amount: usize) usize {
|
||||
return amount * 1024 * 1024;
|
||||
}
|
||||
|
||||
pub fn main() anyerror!void {
|
||||
var buffer: [8192]u8 = undefined;
|
||||
var fba = std.heap.FixedBufferAllocator.init(&buffer);
|
||||
var program_memory = try std.heap.page_allocator.alloc(u8, megabytes(1));
|
||||
var fba = std.heap.FixedBufferAllocator.init(program_memory);
|
||||
const allocator = fba.allocator();
|
||||
|
||||
var chip = try ChipContext.init(&allocator);
|
||||
@ -48,13 +52,14 @@ pub fn main() anyerror!void {
|
||||
rl.setTargetFPS(60);
|
||||
|
||||
const sample_rate = 44100;
|
||||
var data = [1]i16{0} ** sample_rate;
|
||||
var data = try allocator.alloc(i16, sample_rate);
|
||||
defer allocator.free(data);
|
||||
var chip_wave = rl.Wave{
|
||||
.frameCount = sample_rate,
|
||||
.sampleRate = sample_rate,
|
||||
.sampleSize = 16,
|
||||
.channels = 1,
|
||||
.data = @ptrCast(&data),
|
||||
.data = @ptrCast(data.ptr),
|
||||
};
|
||||
gen_sin_wave(&chip_wave, 440);
|
||||
var chip_sound = rl.loadSoundFromWave(chip_wave);
|
||||
|
Loading…
Reference in New Issue
Block a user