Ruben Zwietering
379aa8c267
Use line.reserve in sdobj_ReadFile instead of constructor
...
Passing a count parameter to the vector constructor does not reserve
count elements but instead fills the vector with count elements.
This caused the endianness check to fail first because the first 256
characters were null bytes.
2024-08-18 19:44:04 +02:00
ISSOtm
68a6abd00e
Fix ProtoPalette::compare
...
The function only stopped at the end of the *arrays*,
not of *their used portions*!
This could cause false negatives one way or the other.
This appears not to affect the palette packing, since the packing algorithm
deals with them efficiently; but it should speed up processing slightly,
and as the test changes show, it also improves the UX of palette packing
error messages!
2024-08-14 17:36:15 +02:00
Rangi42
c42e856efb
Fix charmap state output for inherited characters
2024-08-09 22:13:43 -04:00
Sylvie
b987e5669f
Comment the parsers better ( #1463 )
2024-08-09 21:36:52 -04:00
Sylvie
2d530dbcd6
Fix constant expression detection functions ( #1462 )
2024-08-09 09:40:53 +02:00
Sylvie
a3f9952b9e
Advise on how to use -x to make -r work ( #1459 )
2024-08-08 19:50:51 +02:00
Sylvie
0cd79c33ef
Fix RGBGFX reversal ( #1425 )
...
* Print all OoB tilemap IDs before aborting
* Rename `nbTileInstances` to `mapSize`
* Check that reversing doesn't overflow the tile array
---------
Co-authored-by: ISSOtm <me@eldred.fr >
2024-08-08 19:40:41 +02:00
ISSOtm
6b09838739
Sort proto-palettes by decreasing size when refitting overloaded palettes
...
Since that refitting process is a First-Fit, it benefits from that sorting step.
2024-08-08 12:12:29 +02:00
ISSOtm
0f1137c6ec
Fix ineffective sorting of palettes pre-packing
...
We were sorting the *IDs*, not the proto-palettes...
2024-08-08 11:31:46 +02:00
Sylvie
e93190d491
Implement BITWIDTH and TZCOUNT functions ( #1450 )
2024-08-07 10:39:30 -04:00
Sylvie
7435630d6a
Error messages note when a symbol has been purged ( #1453 )
2024-08-06 15:35:06 -04:00
Sylvie
fc8707886c
Output exported numeric constants to sym file ( #1439 )
2024-08-06 10:58:35 -04:00
Sylvie
bb480b761c
Rephrase numeric-string warning to not be identical to another one ( #1449 )
2024-08-06 13:56:09 +02:00
Sylvie
2706f94788
Multiple fixes and enhancements to RPN behavior: ( #1448 )
...
- FIX: `Label & const` was not actually doing the `& const` masking
(fixes #1446 )
- ADD: `LOW(Label)` can be constant if `Label` is aligned to 8 or more bits
(resolves #1444 )
- ADD: `!expr` can be constant 0 if `expr` has any non-zero bits
(resolves #1447 )
- `LOW()` and `HIGH()` have their own RPN operator values
(resolves #1445 )
The change to RPN values means that the object file version was incremented.
This also refactors unary operators and functions, combining their
evaluation similarly to binary ones.
2024-08-06 13:54:55 +02:00
Sylvie
2f8f99bd94
Implement -Wpurge= ( #1443 )
2024-08-05 12:50:48 -04:00
Sylvie
f304e1dd7f
Implement state file output for RGBASM ( #1435 )
2024-08-05 12:41:40 -04:00
Sylvie
c5e6a815fa
Deprecate treating multi-unit strings as numbers ( #1438 )
2024-08-05 16:05:50 +02:00
Sylvie
d4231f9efa
Remove redundant "unknown option" error messages ( #1441 )
...
`getopt` already prints "unrecognized option"
2024-08-05 16:04:53 +02:00
Sylvie
9a5b3f0902
Implement multi-value charmaps ( #1429 )
2024-08-04 23:32:08 +02:00
Sylvie
8af9e9d465
Add rgbgfx -r 0 to infer a width ( #1437 )
2024-08-04 20:31:05 +02:00
ISSOtm
98bca79df4
Run clang-format
2024-08-02 22:36:33 -04:00
ISSOtm
dae4219acd
With -r, print both palettes if -c and -p mismatch
2024-08-02 22:36:33 -04:00
ISSOtm
3d1f5386c2
Fix parsing of GPL files
...
Can you tell this was *not* tested whatsoever?
2024-08-02 22:36:33 -04:00
ISSOtm
1f8f28cac8
Fix parsing of textual colours
...
`n`'s input value was not honored, and its updating logic incorrect
2024-08-02 22:36:33 -04:00
ISSOtm
8e60d1f0b8
Fix textual palettes not accepting to be filled
...
A weird case of off-by-one error
2024-08-02 22:36:33 -04:00
ISSOtm
d8aceaea4a
Ignore empty lines in HEX files
...
They are free-form enough that empty lines should probably be supported.
2024-08-02 22:36:33 -04:00
ISSOtm
a23b4732e3
Distinguish EOF and empty lines when parsing text pal files
2024-08-02 22:36:33 -04:00
ISSOtm
41046c287f
Use appropriate format specifier for number of palettes
2024-08-02 21:59:51 +02:00
Rangi42
4e0f794c23
More refactoring and renaming
2024-07-26 20:12:51 -04:00
Sylvie
6a65cbc9ed
Some refactoring and reformatting ( #1431 )
2024-07-26 11:51:27 -04:00
Sylvie
92abe24894
Implement EXPORT DEF to define and export symbols ( #1422 )
2024-07-25 17:40:58 -04:00
Sylvie
13a8895fca
Improve the error messages for interpolating undefined or invalid symbols ( #1423 )
2024-07-25 17:36:02 -04:00
Sylvie
e179ba5fd3
Add syntax to push and modify stacks in one line ( #1421 )
2024-07-25 23:14:59 +02:00
Eldred Habert
1d89d75381
Fix use-after-free when keeping pointers to args from at-files ( #1426 )
2024-07-25 23:00:48 +02:00
Sylvie
c0904228f2
Fix bison.sh for patch-less bison versions ( #1416 )
2024-07-03 13:37:04 +02:00
Sylvie
ed5529d639
Fix generating a palette overriding a previous pal spec ( #1415 )
2024-06-25 18:27:01 +02:00
Sylvie
0433714d77
Allow a suffix (e.g. the version) to be added when installing ( #1406 )
2024-06-18 22:06:43 +02:00
Sylvie
ee748cfe26
Miscellaneous refactoring of code and docs ( #1411 )
2024-06-18 20:47:31 +02:00
Sylvie
623c3f662c
Allow NUL characters in strings ( #1405 )
2024-06-18 14:26:18 -04:00
Sylvie
9cc595b2cc
Specify a custom logo file to use instead of the Nintendo logo ( #1400 )
...
Fixes #1398
2024-06-18 20:02:50 +02:00
Sylvie
82f60e26c4
Fix reading ACO palette files ( #1404 )
2024-06-13 12:21:19 -04:00
Sylvie
dfec7111e2
X && 0 and X & 0 are constant 0; X || 1 is constant 1 (#1399 )
...
Fixes #977
2024-06-13 11:09:39 -04:00
Sylvie
c5c6cc9794
Refactor macros for fixing/trashing header values ( #1401 )
2024-06-13 10:59:48 -04:00
Rangi42
39e9315e8a
Use a smaller size for the lexer buffer
...
Large sizes are more efficient when it's actually buffered,
but most of the time `mmap` is used instead, and the extra size
just slows down allocation of lexer states.
2024-05-17 20:59:42 -04:00
Sylvie
352551d4f8
Allow padding to coexist with overlay file ( #1395 )
2024-05-17 11:14:44 +02:00
Sylvie
e2633d5b66
Use the standard stream buffer size for the lexer buffer ( #1396 )
2024-05-17 11:02:36 +02:00
Sylvie
3e9d2cab12
Make some error messages more consistent ( #1393 )
...
* Update some error messages
* Make non-A destination operand syntactically invalid
2024-04-20 23:13:01 +02:00
Chris Pickel
7aecc00919
Fix rectangular rgbgfx --reverse --columns ( #1392 )
...
When width != height, the math was off, causing some tiles to be
repeated or skipped.
2024-04-20 18:20:16 +02:00
Sylvie
a234da42a6
Replace assert with assume for release build optimization ( #1390 )
2024-04-02 11:09:31 -04:00
Sylvie
1d39e5ed56
Use std::variant for RPN expression value ( #1389 )
2024-04-01 16:47:15 +02:00