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
|
Techinal reference: http://devernay.free.fr/hacks/chip8/C8TECH10.HTM
|
||||||
ROM archive: https://johnearnest.github.io/chip8Archive/
|
ROM archive: https://johnearnest.github.io/chip8Archive/
|
||||||
Awesome chip8: https://chip-8.github.io/
|
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(.{});
|
const optimize = b.standardOptimizeOption(.{});
|
||||||
var raylib = rl.getModule(b, "raylib-zig");
|
var raylib = rl.getModule(b, "raylib-zig");
|
||||||
var raylib_math = rl.math.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
|
//web exports are completely separate
|
||||||
if (target.getOsTag() == .emscripten) {
|
// if (target.getOsTag() == .emscripten) {
|
||||||
const exe_lib = rl.compileForEmscripten(b, "chip8-zig", "src/main.zig", target, optimize);
|
// const exe_lib = rl.compileForEmscripten(b, "chip8-zig", "src/main.zig", target, optimize);
|
||||||
exe_lib.addModule("raylib", raylib);
|
// exe_lib.addModule("raylib", raylib);
|
||||||
exe_lib.addModule("raylib-math", raylib_math);
|
// 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.
|
// const raylib_artifact = rl.getArtifact(b, target, optimize);
|
||||||
exe_lib.linkLibrary(raylib_artifact);
|
// // Note that raylib itself is not actually added to the exe_lib output file, so it also needs to be linked with emscripten.
|
||||||
const link_step = try rl.linkWithEmscripten(b, &[_]*std.Build.Step.Compile{ exe_lib, raylib_artifact });
|
// exe_lib.linkLibrary(raylib_artifact);
|
||||||
b.getInstallStep().dependOn(&link_step.step);
|
//
|
||||||
const run_step = try rl.emscriptenRunStep(b);
|
// const link_step = try rl.linkWithEmscripten(b, &[_]*std.Build.Step.Compile{ exe_lib, raylib_artifact });
|
||||||
run_step.step.dependOn(&link_step.step);
|
// b.getInstallStep().dependOn(&link_step.step);
|
||||||
const run_option = b.step("run", "Run chip8-zig");
|
//
|
||||||
run_option.dependOn(&run_step.step);
|
// const run_step = try rl.emscriptenRunStep(b);
|
||||||
return;
|
// 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 });
|
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 {
|
pub fn main() anyerror!void {
|
||||||
var buffer: [8192]u8 = undefined;
|
var program_memory = try std.heap.page_allocator.alloc(u8, megabytes(1));
|
||||||
var fba = std.heap.FixedBufferAllocator.init(&buffer);
|
var fba = std.heap.FixedBufferAllocator.init(program_memory);
|
||||||
const allocator = fba.allocator();
|
const allocator = fba.allocator();
|
||||||
|
|
||||||
var chip = try ChipContext.init(&allocator);
|
var chip = try ChipContext.init(&allocator);
|
||||||
@ -48,13 +52,14 @@ pub fn main() anyerror!void {
|
|||||||
rl.setTargetFPS(60);
|
rl.setTargetFPS(60);
|
||||||
|
|
||||||
const sample_rate = 44100;
|
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{
|
var chip_wave = rl.Wave{
|
||||||
.frameCount = sample_rate,
|
.frameCount = sample_rate,
|
||||||
.sampleRate = sample_rate,
|
.sampleRate = sample_rate,
|
||||||
.sampleSize = 16,
|
.sampleSize = 16,
|
||||||
.channels = 1,
|
.channels = 1,
|
||||||
.data = @ptrCast(&data),
|
.data = @ptrCast(data.ptr),
|
||||||
};
|
};
|
||||||
gen_sin_wave(&chip_wave, 440);
|
gen_sin_wave(&chip_wave, 440);
|
||||||
var chip_sound = rl.loadSoundFromWave(chip_wave);
|
var chip_sound = rl.loadSoundFromWave(chip_wave);
|
||||||
|
Loading…
Reference in New Issue
Block a user