From c0d9bac039752ecaecea4a0c5c51a9024d6ac5d7 Mon Sep 17 00:00:00 2001 From: Steven Hugg Date: Fri, 30 Nov 2018 06:43:46 -0500 Subject: [PATCH] added emscripten build files; coleco presets --- emsrc/mame/mame.build | 1 + emsrc/sdcc/Makefile.emcc | 25 ++++++++++++---- emsrc/wla-dx/Makefile.emcc | 59 ++++++++++++++++++++++++++++++++++++++ presets/coleco/climber.c | 5 +++- presets/coleco/common.c | 8 ++++-- presets/coleco/common.h | 1 + presets/coleco/shoot.c | 17 ++++++----- 7 files changed, 101 insertions(+), 15 deletions(-) create mode 100644 emsrc/mame/mame.build create mode 100644 emsrc/wla-dx/Makefile.emcc diff --git a/emsrc/mame/mame.build b/emsrc/mame/mame.build new file mode 100644 index 00000000..1a81f6cd --- /dev/null +++ b/emsrc/mame/mame.build @@ -0,0 +1 @@ +emmake make SUBTARGET=a800 SOURCES=src/mame/drivers/atari400.cpp NOWERROR=1 -j 4 diff --git a/emsrc/sdcc/Makefile.emcc b/emsrc/sdcc/Makefile.emcc index 1a3477c0..d1dc007d 100644 --- a/emsrc/sdcc/Makefile.emcc +++ b/emsrc/sdcc/Makefile.emcc @@ -1,11 +1,26 @@ -all: js/sdcc.js js/sdasz80.js js/sdldz80.js +# Emscripten target (see https://github.com/apiaryio/emscripten-docker) -js/%.js: js/%.bc - docker run --rm -v $(shell pwd):/src -e USERID=1000 -t apiaryio/emcc emcc -O2 --memory-init-file 0 \ - -s ASM_JS=1 \ +all: js/appmake.js js/copt.js js/dzx7.js js/sccz80.js js/ticks.js js/ucpp.js js/z80asm.js js/z80nm.js js/z88dk-dis.js js/z88dk-lstmanip.js js/zcc.js js/zcpp.js js/zobjcopy.js js/zpragma.js js/zx7.js wasm/appmake.js wasm/copt.js wasm/dzx7.js wasm/sccz80.js wasm/ticks.js wasm/ucpp.js wasm/z80asm.js wasm/z80nm.js wasm/z88dk-dis.js wasm/z88dk-lstmanip.js wasm/zcc.js wasm/zcpp.js wasm/zobjcopy.js wasm/zpragma.js wasm/zx7.js + + +js/%.js: bin/%.bc + emcc -O2 --memory-init-file 0 \ + -s WASM=0 \ -s MODULARIZE=1 \ -s EXPORT_NAME=\"'$*'\" \ -s 'EXTRA_EXPORTED_RUNTIME_METHODS=["FS"]' \ -s FORCE_FILESYSTEM=1 \ - $< -o $@ $(ARGS_$*) \ + $< -o $@ $(ARGS_$*) + +wasm/%.js: bin/%.bc + emcc -O2 --memory-init-file 0 \ + -s WASM=1 \ + -s MODULARIZE=1 \ + -s EXPORT_NAME=\"'$*'\" \ + -s 'EXTRA_EXPORTED_RUNTIME_METHODS=["FS"]' \ + -s FORCE_FILESYSTEM=1 \ + $< -o $@ $(ARGS_$*) + +bin/%.bc: bin/% + cp bin/$* bin/$*.bc diff --git a/emsrc/wla-dx/Makefile.emcc b/emsrc/wla-dx/Makefile.emcc new file mode 100644 index 00000000..0ae13281 --- /dev/null +++ b/emsrc/wla-dx/Makefile.emcc @@ -0,0 +1,59 @@ + +# make clean +# rm CMakeCache.txt +# cmake -G "Unix Makefiles" . +# make +# zip -9r optables binaries/gen_* +# make clean +# rm CMakeCache.txt +# emmake cmake -G "Unix Makefiles" . +# unzip -o optables && touch binaries/gen_* +# emmake make +# (repeat until it works) + + +all:\ +js/wla-6502.js\ +js/wla-6510.js\ +js/wla-65816.js\ +js/wla-65c02.js\ +js/wlab.js\ +js/wla-gb.js\ +js/wla-huc6280.js\ +js/wlalink.js\ +js/wla-spc700.js\ +js/wla-z80.js\ +wasm/wla-6502.js\ +wasm/wla-6510.js\ +wasm/wla-65816.js\ +wasm/wla-65c02.js\ +wasm/wlab.js\ +wasm/wla-gb.js\ +wasm/wla-huc6280.js\ +wasm/wlalink.js\ +wasm/wla-spc700.js\ +wasm/wla-z80.js\ + + +js/%.js: bin/%.bc + emcc -O2 --memory-init-file 0 \ + -s WASM=0 \ + -s MODULARIZE=1 \ + -s EXPORT_NAME=\"'$(subst -,_,$*)'\" \ + -s 'EXTRA_EXPORTED_RUNTIME_METHODS=["FS"]' \ + -s FORCE_FILESYSTEM=1 \ + $< -o $@ $(ARGS_$*) + +wasm/%.js: bin/%.bc + emcc -O2 --memory-init-file 0 \ + -s WASM=1 \ + -s MODULARIZE=1 \ + -s EXPORT_NAME=\"'$(subst -,_,$*)'\" \ + -s 'EXTRA_EXPORTED_RUNTIME_METHODS=["FS"]' \ + -s FORCE_FILESYSTEM=1 \ + $< -o $@ $(ARGS_$*) + +bin/%.bc: binaries/% + mkdir -p bin js wasm + cp $< $@ + diff --git a/presets/coleco/climber.c b/presets/coleco/climber.c index 9b7d52cf..277a7663 100644 --- a/presets/coleco/climber.c +++ b/presets/coleco/climber.c @@ -1,4 +1,4 @@ - + #include #include #include @@ -6,7 +6,10 @@ #include "common.h" //#link "common.c" + +#ifdef CV_SMS //#link "fonts.s" +#endif #define XOFS 12 // sprite horiz. offset diff --git a/presets/coleco/common.c b/presets/coleco/common.c index ec19816d..2d34871f 100644 --- a/presets/coleco/common.c +++ b/presets/coleco/common.c @@ -33,12 +33,16 @@ void clrscr() { cvu_vmemset(IMAGE, 0, COLS*ROWS); } +word getimageaddr(byte x, byte y) { + return IMAGE + y*COLS + x; +} + byte getchar(byte x, byte y) { - return cvu_vinb(IMAGE + y*COLS + x); + return cvu_vinb(getimageaddr(x,y)); } void putchar(byte x, byte y, byte attr) { - cvu_voutb(attr, IMAGE + y*COLS + x); + cvu_voutb(attr, getimageaddr(x,y)); } void putstring(byte x, byte y, const char* string) { diff --git a/presets/coleco/common.h b/presets/coleco/common.h index bbdb2125..1f244640 100644 --- a/presets/coleco/common.h +++ b/presets/coleco/common.h @@ -52,6 +52,7 @@ extern char cursor_y; extern void clrscr(); +extern word getimageaddr(byte x, byte y); extern byte getchar(byte x, byte y); extern void putchar(byte x, byte y, byte attr); extern void putstring(byte x, byte y, const char* string); diff --git a/presets/coleco/shoot.c b/presets/coleco/shoot.c index d1fac1a7..62237793 100644 --- a/presets/coleco/shoot.c +++ b/presets/coleco/shoot.c @@ -1,4 +1,4 @@ - + #include #include #include @@ -169,8 +169,9 @@ void copy_sprites() { ofs = SPRITES + NSPRITES*4; for (i=0; i