Use combinator parsers. It's pretty easy with the library from bovex, yay
Started on this but I realized I need to do it a different way
Am I writing an assembler? Maybe? This lexes mario.asm, at least
Make it possible to crop and resize in one go, plus crop with padding even when the image is too small
Make a little quick tool so I don't have to keep opening Photoshop to do this (just a stub; doesn't do anything yet)
Use a direct calculation of ZNFlags instead of a table. No speed penalty; smaller code.
Remove nothing_safetynet, which I'm pretty confident is not needed now. Expand benchmark to some more cases. This might make emulator creation a little faster, but otherwise is just cleanup.
Sync STARTROPICS; miscellaneous small fixes all over
Function to explicitly exhaust a query. Add tests; suppress warnings
Add memory histogram output. Misc cleanup
Remove executable bit, again
Better asynchronous recording in play. Hacky warp for testing long-shots. Specify single level on command-line for TryToReject; output screenshots in alwaysdead to try to diagnose why it can't solve some.
Add post-hoc sprite renderer, also fixing a dumb bug
Add FillRect to ImageRGBA. Add support for 32BPP surfaces without alpha in sdlutil, so that I can blit to screen. Switch to compositing with ImageRGBA in dtas/play.
Fix bug where too many inputs were executed in the first few emulators
Implement broken cutscene detector. Looks like it has a good rejectino rate. Found some funny ones
Delete old manual solver, which never worked. Refactor alwaysdead so that its husk can be used for new 'loop' strategy (just a stub for now).
Add display of some memory to ghost mode
Fix some code broken by header cleanup. Delete NSF detritus
Since installing eglot I cannot help but fix the warnings
Clean up various code. Improve benchmark
Add simple Gaussian estimator
Clean up file code a bit. Fixed some file descriptor leaks. Reduce dependency on broken endianness macro. Add a test case (no particular reason for this one; just want more coverage).
Further cleanup; get bezier.cc compiling with clang (it used nonstandard constexpr ldexp)
Clean up some of this code while I was looking through it
Add checkpointing and crappy ghosts
Clean this up a bit
Redo Movie representation in play. Now rewind/ffwd are fast. Also add level select screen at start, which is much better than doing it in Photoshop
DNC: Going to try doing Movie cached saves a different way
Add screenshot output to solver. Neat
Add image/ansi intersection library
Performance and UI improvements in always-dead solver. Save progress for this and similar passes in database.
Fix bug in new StatusBar line-by-line access (mutex). Add more config options in ANSI::ProgressBar.
Fix bug with status bar when you do indexed output without 'regular' output first.
Add line-by-line access to StatusBar, for example if there is one bar per thread.
Delete some crap in here that's obviously unnecessary. Fix definition (!) in header (!) of PATH_SEPARATOR.
Retire deprecated stl_decl, which I'm not using but is included in basically everything. Add some documentation for PRINTF_ATTRIBUTE.
Oops, some pending eglot-rename buffers were not saved.
Add always-dead strategy. This does work sometimes but it's pretty memory hungry.
Fixed some bugs and annoyances, and successfully solved a level manually.
Some stuff for using ImageRGBA with SDL
Fix thread bugs. I apologize to SDL except for the part where it makes it harder for me to debug
Fix bug in emulator-pool. Detect levels that don't even load and mark them.
Trying to get UI to work, but SDL is giving me grief and I can't compile with asan
Get this compiling again with msys2. Thinking about using this instead of SDL...
Add routine to blit ImageRGBA to an SDL surface.
Got this compiling; not too bad
DNC: Clone chess viewer to make mario viewer
Solve a level manually from an fm2 file. I wasn't able to get this to work yet.
First version of maze solver, which does not work well
DNC: Move upstairs after football. Started on maze strategy.
Add FM7 encoding without newlines, which is better in the database
Fix more bugs in auto-histo
Flesh out the interface a little
Add mapping
Fix some bugs with auto-histo. Add counts. But it still could be improved.
Add minus-validate and fix bugs.
Save some of this emulator pool stuff before rewriting it
Remove docid.h and a bunch of basictypes.h. This is old stuff from Google's 'base' library that is dead, but ends up being included in almost any project using cc-lib. Add test for top_n to make sure it still compiles, since that is also an old GTL thing.
Migrate StatusBar to cc-lib. Some other tweaking in brutesq/leaderboard
Import status bar from SOS.
Add mode to solver where we try solutions from other levels, which is way faster and often works.
first version of solver, which doesn't make much progress
Rename Sound and State, which are declared at top-level (and even exported in the emulator.h header), and can easily cause conflicts with other code. Should maybe do Input, Palette, Filter, etc. too, or 'just' move this stuff into a namespace.
Spend my precious morning cleaning up code (headers, dependencies on cc-lib, modernization, etc.)
Add simple database test
Start on a simple dynamic wrapper
Test that actually works now
Get this compiling, at least
OK, it compiles, with some scary bits
almost a tractable number of errors now
Below 1000 lines of error messages :)
Only 3,542 lines of errors remain
Try getting sqlite (amalgamated) to compile as c++. Perhaps ill-advised
Sync everything before road trip
Sync dotemacs from mac before wiping
Finish off first draft of 'Mathematical Operators' codepage
Fix display of large squares
This is almost done but I realized that it should be y that goes negative, not x. Check in before redoing that
Add many more math symbols
Start brutesq during football
Of course we can rule out many squares on the basis of the base value already having too high error
Remove executable bit
Check in some of this old junk
Some more math symbols in 1x
Make it possible to use ANSI color codes in progress bar 'operation'. Round progress bar filled width. Add days in ANSI::Time for durations more than 24h. Decompose using UTF-8. Add some tests
Add math codepage and some glyphs. Fix erroneously mapped logical-not glyph in bit7-classic.
Checkpoint fixedersys glyphs before adding math page
Add little tool to generate pages for font-image.cc
Change ANSI::Composite to use rasterized color arrays. Provide routine to make them. Also implement Decompose finally.
Add exhaustive check for sqrt error of 32-bit integers. Using sqrtf does work up to just shy of 2^32.
Fix some small bugs in brute gpu
Also run negative x within bounds. Some re-running of old results
Start on a recursive pixels representation
Trying a vector version...
GPU version is a lot faster, unsurprisingly
Start on GPU version
Save progress in brute.cc. Show best error for each count of non-squares in leaderboard
Finished 1x version of cyrillic supplement. Did some more anti-aliasing of 2x version. Improved some glyphs
Add Cyrillic supplement to Cyrillic codepage. Draw many of the 1x characters and anti-alias some for 2x. Improved a few assorted glyphs as well.