79 Commits
Author SHA1 Message Date
Rob Loach d14d5ff9c1 Add Cheats 2024-01-22 12:33:41 -05:00
Nathan Whitehead 10412d1d54 Merge pull request #9 from RobLoach/input_descriptors
Add Input Descriptors
2024-01-22 09:48:13 -07:00
Rob Loach 3da1ba8550 Add Input Descriptors 2024-01-22 11:35:45 -05:00
Rob Loach f534d51317 Update to QuickJS 2024-01-13 2024-01-22 11:09:35 -05:00
Nathan Whitehead 883b9675e5 Switch SELECT+LEFT/RIGHT to be level section keys.
Add js code to move level up and down in a sensible way.
Update readme a bit.
2022-10-01 09:23:37 -06:00
Nathan Whitehead b9da3373a3 Add initial support for save states.
Remove demo.pz game.
Split out gameloop functionality into separate files.
Add serialize/deserialize functions into main.js.
Add serialize/deserialize functionality into gameloop class.
Allow sfxr to warn but not stop on bad seed numbers.
Handle negative hex values (fixes corrupted saves in large games).
Make serialization auto retry with truncation if size is too big.
Use original text title screens.
2022-09-30 11:01:42 -06:00
Nathan Whitehead 96bfc5f860 Remove reliance of QuickJS on fenv.h.
This puts calls to fenv functions behind an if/def which is not set.
I believe this makes QuickJS not fully standards compliant with
regards to numerical rounding, especially when converting floating
point numbers to strings. I don't think PuzzleScript relies on
any precise rounding when converting numbers to strings so this
should be safe for PuzzleScript.
2022-09-29 10:08:33 -06:00
Nathan Whitehead da2996e74a Fix small things to help cross-platform compatibility.
Downgrade to C++11 in makefile.
Fixup make_unique.
Use old style chrono duration.
Switch to mutex from atomic to avoid linking to libatomic on some platforms.

Update info file to include pzp extension.
2022-09-29 09:56:17 -06:00
Nathan Whitehead cb9a13b19f Remove all traces of npm, babel, es5.
Simplify gn build system to use source files directly
without going through gen directory. This made the
xxd generated names more fragile, had to tweak the DOCKER_BUILDKIT
script to workaround that.
2022-09-27 21:10:07 -06:00
Nathan Whitehead 0a4a36dad5 Turn back on warnings and errors outside of QuickJS. 2022-09-27 17:51:14 -06:00
Nathan Whitehead ed6081bb0f Fix QuickJS memory leak related to global object.
Remove debug log output.
2022-09-27 17:30:09 -06:00
Nathan Whitehead cf40b5ae2f Remove legacy Duktape files, update license text. 2022-09-27 17:21:23 -06:00
Nathan Whitehead 72d23f029c Switch to QuickJS. 2022-09-27 16:50:28 -06:00
Nathan Whitehead 6c71b35be6 Remove extra debugging code. 2022-09-25 21:52:55 -06:00
Nathan Whitehead 328965f7fe Regenerate bundle file with PuzzleScriptPlus changes. 2022-09-25 21:51:24 -06:00
Nathan Whitehead 0a3a0b087f Split out partial sprite rendering, add bindings into JavaScript.
Update PuzzleScriptPlus graphics source to allow custom font to work.
Only clear all sprite context when in PuzzleScript mode.
Use PuzzleScriptPlus mode on pzp files.
Make custom font off by default.
2022-09-25 21:50:21 -06:00
Nathan Whitehead fa2338d190 Initial try with PuzzleScriptPlus.
Status: files running, incorrect logic, incorrect graphics.
Not sure what's going on at the moment.
2022-09-25 19:57:36 -06:00
Nathan Whitehead 050cdc781d Commit bundled file for simple Makefile builds.
Update makefile to include C sources.
Update common makefile to use c++17 (didn't see a way to do this in Makefile).
2022-09-25 12:51:02 -06:00
Nathan Whitehead 6c83886129 Switch cheat to be A + START.
Add script to generate pz files from Phil Schatz's repo.
2022-09-22 19:22:53 -06:00
Nathan Whitehead f55ad80352 Remove stb files (not needed).
Update npm babel to babel-cli.
Rework dockerfile to work without node_modules already installed.
2022-09-22 18:54:46 -06:00
Nathan Whitehead ac956bc9e6 Make restarting choose right font choice. 2022-09-22 12:17:23 -06:00
Nathan Whitehead b841bc87c4 Tidy up build default options.
Remove hardcoded dependency on path structure for demo.pz, copy to bundle file properly.
Allow restarting games.
Add info file for retroarch to allow choosing pz content.
2022-09-22 12:13:15 -06:00
Nathan Whitehead fc5ef53bda Add core option to turn on/off custom antialiased font. 2022-09-22 10:57:40 -06:00
Nathan Whitehead 73d3d9b632 Tidy up and remove unused files.
Remove sysfont code.
Update LICENSE file to mention all used licenses.
2022-09-21 16:46:16 -06:00
Nathan Whitehead 81b1ea24a2 Tidy up readme
Add cheat code of SELECT+START to skip level.
Fix bugs discovered with Singleton Traffic game (level 3 graphics glitch).
Dynamically resize sprites if pixels drawn with fillRect beyond border.
Update sprite clearing to always clear all of updated width and height.
2022-09-21 14:53:30 -06:00
Nathan Whitehead 06cf09db55 Add full duktape project 2022-09-20 10:52:21 -06:00
Nathan Whitehead 6124faa872 Fixup optimization levels, add better main loop timing 2022-09-20 10:16:39 -06:00
Nathan Whitehead f5e88fd824 Use custom font 2022-09-19 13:53:09 -06:00
Nathan Whitehead 7adb13131d Generated font and babel in gn script 2022-09-19 13:37:23 -06:00
Nathan Whitehead ca68002266 Clip sprite positions during blit.
Turn on c++ debug mode to catch vector illegal accesses.
2022-09-19 09:05:25 -06:00
Nathan Whitehead fb785119ed Fixup title spacing a bit and make instructions consistent. 2022-09-18 23:39:43 -06:00
Nathan Whitehead cab2d4f3da Make sounds work 2022-09-18 23:20:09 -06:00
Nathan Whitehead 0dd1baa455 Clean up sfxr interface a bit. 2022-09-18 22:44:16 -06:00
Nathan Whitehead 2bfa0e76de Integrate SFXR code from old pzgood project 2022-09-18 22:30:16 -06:00
Nathan Whitehead 53c2a6f84e Handle sound hooks (with prints and not sound yet) 2022-09-18 22:13:37 -06:00
Nathan Whitehead 715b4c48f4 Better handling of default game, explicit file now. 2022-09-18 22:06:49 -06:00
Nathan Whitehead 69ffec478a Add js set method for setting js state.
Move main.js call to ROM load phase.
2022-09-18 21:55:13 -06:00
Nathan Whitehead 1dc0be440b Tidy up main js 2022-09-18 21:26:51 -06:00
Nathan Whitehead f79ad14646 Test flicker again, still need double buffer to avoid whole screen flicker 2022-09-18 21:20:22 -06:00
Nathan Whitehead b9f36c50d5 Remove instances, just keep sprites and render main canvas sprite in redraw directly. 2022-09-18 21:17:12 -06:00
Nathan Whitehead 43929e68df Fixup message at start, add screen fill to bg color (seems useless?) 2022-09-18 20:36:38 -06:00
Nathan Whitehead fbe4136a96 Fix flicker on arm with double buffer and flip method. 2022-09-18 19:38:04 -06:00
Nathan Whitehead a096cfc1d2 Swap around some default keys. 2022-09-18 17:01:41 -06:00
Nathan Whitehead 68341ee85c Woot get transparency working 2022-09-18 16:53:00 -06:00
Nathan Whitehead c75d6e26cd Close to working 2022-09-18 16:30:31 -06:00
Nathan Whitehead 3b747e7a4b Add events and queue to run handler in right JS thread 2022-09-18 15:58:23 -06:00
Nathan Whitehead f9e9cf49e4 Added setup and postsetup that seem to be stopping all eval errors to start screen 2022-09-18 14:22:02 -06:00
Nathan Whitehead c97ff96dae Adding puzzlescript es5, working on filenames for evals. 2022-09-18 11:59:12 -06:00
Nathan Whitehead 788a6efbc9 Start interpreting puzzlescript source 2022-09-18 11:17:34 -06:00
Nathan Whitehead 9f897eaa16 Adding dom setup stuff 2022-09-18 10:45:54 -06:00