Rangi42
b99ce3845e
Fix RGBFIX writing bytes when one syscall is not sufficient
2024-12-30 11:25:20 +01:00
Rangi42
151f83db6d
Using C++20 [[unlikely]] here would be excessive micro-optimization
2024-12-23 14:14:10 -05:00
Rangi42
22838ce2d8
Remove redundant 0xC7 masking for RST values (the parser handles it)
2024-12-23 10:10:01 -05:00
Rangi42
b058bb6e15
Sorting RGB palettes by luminance is not a "legacy" feature
2024-12-23 10:01:30 -05:00
Rangi42
36b04b5dea
Rename parser value const to iconst to distinguish it from C++ keyword
2024-12-23 09:21:30 -05:00
Sylvie
c1c5b10082
Deprecate LDH with $00-$FF ( #1575 )
2024-12-10 21:27:37 -05:00
Sylvie
f44de0c7ae
Deprecate LD with [C] ( #1574 )
2024-12-10 21:13:09 -05:00
Rangi42
b18cfe6bdb
Consistently use UINT32_MAX, not -1, for uint32_t values
2024-12-10 19:47:23 -05:00
Sylvie
b877c81c32
Use C++-style casts ( #1576 )
2024-12-09 21:56:54 -05:00
Sylvie
573e044b30
Deprecate LDIO ( #1567 )
...
* Deprecate `LDIO`
* `ld [$ff00+n8], a` is not treated as `ldh [n8], a`
2024-12-05 12:49:13 -05:00
Sylvie
0b147c9386
Fix ** right-associativity, and clarify docs ( #1566 )
2024-12-03 20:40:50 -05:00
Eldred Habert
d5f39c8dce
Remove the use of floating-point for palette packing ( #1565 )
...
This is primarily a correctness change, *not* a performance one.
The expected performance impact is minimal anyway.
The goal is to eliminate the use of platform-inconsistent floating-point operations
for this load-bearing task.
2024-11-29 13:44:19 -05:00
Rangi42
a27f704c25
Implement -Wunmatched-directive
2024-11-28 20:30:38 +01:00
Rangi42
9216485bca
Add TRACE-level verbose logging for efficiency calculations
2024-11-27 21:06:18 +01:00
Rangi42
c33acb905b
Avoid precision loss from floating-point division in calculating efficiency
...
This was breaking test results on 32-bit MinGW
2024-11-27 21:06:18 +01:00
Sylvie
e0ee9dc3ad
Add reverse_1bit RGBGFX test ( #1555 )
...
Fixes a bug to always use 2bpp `_data` in `TileData`
2024-11-24 19:30:49 -05:00
Sylvie
a7fdb2c3d3
Add more RGBGFX test coverage ( #1553 )
2024-10-27 11:32:21 -04:00
Sylvie
5efd303b7f
Allow LOAD FRAGMENT ( #1552 )
...
This was implemented in #736 but removed after discussion in #869 .
Fixes #1537
2024-10-24 19:45:44 -04:00
Rangi42
0d3980d039
Refactor how map file sections are printed
...
This makes size-0 sections print as "($0000 bytes)" instead of
"(0 bytes)", which is more consistent.
2024-10-23 17:10:39 +02:00
Rangi42
ab6244d81c
Escape characters in section names in map files
2024-10-23 17:10:39 +02:00
Sylvie
7fcf4ba60f
Correctly recover from syntax errors at the first token of a line ( #1549 )
2024-10-22 21:01:44 +02:00
Sylvie
90286ccbbc
Fix detection of tiles with too many colors ( #1546 )
2024-10-20 13:51:39 -04:00
Sylvie
3b3263273c
Make ENDL optional like ENDSECTION ( #1538 )
...
Add warning for `LOAD` without `ENDL`
2024-10-15 21:13:50 -04:00
Sylvie
bc5a71ff88
Update some RGBLINK error messages ( #1544 )
2024-10-16 01:42:49 +02:00
JL2210
e623aeb85d
Make tests work with CTest ( #1539 )
...
Adds option to disable non-free tests
2024-10-15 19:26:17 -04:00
Sylvie
a2ff653a83
Fix nested undefined interpolation segfault ( #1542 )
2024-10-16 00:09:47 +02:00
Sylvie
a13723c523
Implement 0x/0o/0b number prefixes ( #1533 )
2024-10-08 15:56:00 -04:00
Sylvie
cf85146353
Refactoring and enhancements to RGBASM warnings ( #1526 )
...
* Allow a `no-` prefix to negate "meta" warnings
(`-Wno-all`, `-Wno-extra`, `-Wno-everything`)
* Allow `-Wno-error=...` to override `-Werror`
(including for "meta" warnings)
2024-10-04 21:52:40 +02:00
Rangi42
a9e49a09fd
Allow tab character after backslash line continuation
2024-10-01 22:41:55 -04:00
ISSOtm
86bf289452
Process the last line of textual palette specs even without a trailing newline
...
Fixes #1519
2024-09-30 22:26:00 +02:00
Sylvie
d5159f66be
-Wall enables -Wcharmap-redef, and document -Wnested-comment (#1528 )
2024-09-30 14:34:58 -04:00
Sylvie
4cd0dd5314
Use setmode instead of fdopen ( #1520 )
2024-09-29 14:06:59 -04:00
Sylvie
9783671399
Simplify some C++ abstractions ( #1518 )
...
* Remove namespaces
* Prefer `bool operator==`, not `friend auto operator==`
* Prefer not to use `using`
* Use a `constexpr` function instead of a template for `flipTable`
2024-09-26 00:07:27 -04:00
Rangi42
8037b9e10a
Run clang-format
2024-09-25 13:15:58 -04:00
Rangi42
7c74653aa1
Fix swapped warning comments
2024-09-25 11:25:03 -04:00
Sylvie
22767e36e2
Refer to "end of line", not "newline" ( #1517 )
2024-09-23 02:15:02 +02:00
Sylvie
6b89938da7
Avoid treating labels and macros differently in column 1 ( #1515 )
...
Fixes #1512
2024-09-23 01:26:25 +02:00
Sylvie
9ef2e43bf7
Track local label scope, string equated as .. ( #1504 )
2024-09-18 09:52:30 -04:00
Sylvie
197f6cb0ba
No need for .c_str() with keywordDict lookups ( #1505 )
2024-09-18 12:23:05 +02:00
Rangi42
9b3d19c3f2
Prefer snprintf to sprintf
...
This also simplifies advancing `ptr`
2024-09-15 00:01:09 -04:00
Rangi42
02439b18c0
\# will always be defined inside macros
...
This lets the case structure here match the other branches
2024-09-15 00:00:00 -04:00
Sylvie
122ef95d9c
Implement . string constant for the current label scope ( #1499 )
2024-09-13 21:20:01 +02:00
Sylvie
bfb96b038d
Make error messages for "undefined" built-ins more accurate ( #1501 )
2024-09-11 17:54:23 +02:00
Rangi42
1adf68d018
Refer to "label scope", not "symbol scope"
2024-09-10 21:38:50 +02:00
Rangi42
750e69c5a6
More asserts like the one in addLabel
2024-09-10 21:38:50 +02:00
Rangi42
6e83a14143
Consistently handle auto-scoping of local symbols
2024-09-10 21:38:50 +02:00
Rangi42
cff05435ad
Remove redundant and sometimes inaccurate comments
2024-09-10 21:38:50 +02:00
Rangi42
3b59e8963e
Rename variables to avoid C++ reserved "_[A-Z]" prefix
2024-09-10 21:38:50 +02:00
Rangi42
56af572bfd
Refactor symbol value getters for less redundancy
2024-09-10 21:38:50 +02:00
Rangi42
6bc2446966
Rephrase error messages for consistency
2024-09-10 21:38:50 +02:00