Rangi42
d8aff148bb
Factor out RRANGE macro like RANGE
2025-09-19 16:53:44 -04:00
Rangi
223b3d1921
More accurate 8-bit <=> 5-bit RGB color conversion ( #1827 )
2025-09-08 15:13:25 -04:00
Rangi42
1fc9ba86c4
Some RGBLINK refactoring
...
- Consistently refer to `Section` fragments/unions as "pieces" (renaming `.nextu`)
- Remove `Symbol`'s `.label()` accessors (use `std::get<Label>`)
- Move some `Label`-related logic into `Symbol` methods
2025-09-05 16:34:51 -04:00
Rangi42
1dfc1d3231
Factor out isBinDigit and parseHexDigit utility functions
2025-09-04 13:23:10 -04:00
Rangi42
4f702a4be8
Try to optimize RPN expressions with .emplace_back instead of .push_back
2025-09-03 23:00:06 -04:00
Rangi42
c5c2800f17
Move RPN buffer encoding logic into rpn.cpp
2025-09-03 22:36:00 -04:00
Rangi42
c798500563
Don't call rpn.clear() when we can safely assume it's already empty()
2025-09-03 21:02:57 -04:00
Rangi
590d113e94
Use a vector of RPN values ( #1820 )
...
This is instead of byte-encoding them in a different way than the actual object output's RPN buffer
2025-09-03 14:42:37 -04:00
Rangi42
8df88f92ba
Release v1.0.0-rc1
2025-09-01 18:09:42 -04:00
Rangi
534a4efee4
Add 0/1/2 warning levels to rgblink -Wtruncation ( #1816 )
2025-09-01 15:35:53 -04:00
Rangi42
0ccdbf509a
Simplify format specs to not use a per-character state machine
2025-08-30 12:23:01 -04:00
Rangi
02b880e1b0
Separate RGBFIX header fixing from CLI option parsing ( #1808 )
2025-08-28 12:28:08 -04:00
Rangi42
c6997fe73c
Factor out InsertionOrderedMap to group an indexed list with a string-keyed map
2025-08-26 16:04:45 -04:00
Rangi42
8564df51e5
-Wexport-undefined warning for exporting undefined symbols
2025-08-24 17:36:47 -04:00
Rangi
3d155d5695
Some refactoring and cleanup ( #1806 )
...
* Use clang-tidy `misc-include-cleaner` for IWYU `#include` cleanup
* Use `std::optional<size_t>` instead of `ssize_t`
* Rename some functions in linkdefs.hpp
* Fix header order
2025-08-20 16:09:04 -04:00
Rangi42
386fb5f398
Add more character utility functions
2025-08-19 19:17:40 -04:00
Rangi
b7e0783ae7
Implement ? suffix to "quiet" a context and exclude it from backtraces ( #1800 )
2025-08-18 21:34:58 -04:00
Rangi
db6793f444
Don't count single quote ' as garbage ( #1801 )
...
Also copy the "blank space" (space or tab) vs "whitespace" (space,
tab, or newline) convention from `<ctype.h>`
2025-08-14 10:10:59 -04:00
Rangi42
ea1358bbe6
Predef std::pair to two-element std::tuple
2025-08-13 20:48:54 -04:00
Rangi
9c3ce69180
Factor out shared backtrace code ( #1793 )
2025-08-12 17:56:54 -04:00
Rangi
50d0b101c3
Format linker script error backtraces the same way as others ( #1792 )
2025-08-12 16:58:17 -04:00
Rangi42
1bf1219e07
Factor out shared --color-parsing code
2025-08-12 15:53:57 -04:00
Rangi
5f8b7474b4
Add -B/--backtrace option to RGBASM and RGBLINK ( #1787 )
2025-08-11 14:30:14 -04:00
Rangi42
2130a5ba1f
Error messages refer to "undefined" symbols and sections
2025-08-08 19:47:42 -04:00
Rangi42
bf66e346f0
Add -Wobsolete to RGBFIX and RGBGFX, and deprecate rgbfix -O
2025-08-05 17:18:54 -04:00
Rangi
39f0f9edc0
Remove previously deprecated features ( #1777 )
...
- Treating multi-unit strings as numbers
- `rgbasm -Wnumeric-string`
- `ldio [c], a` and `ldio a, [c]` (use `ldh`)
- `ld [c], a` and `ld a, [c]` (use `ldh`)
- `ldh [$xx], a` and `ldh a, [$xx]` (use `$FFxx`)
2025-08-05 16:24:10 -04:00
Rangi42
a3983b7b0f
Support rgbgfx -c dmg to imply -c dmg=e4
...
Fixes #1776
2025-08-05 14:18:25 -04:00
Rangi42
504a45a4ed
Reuse isWhitespace and isNewline, also refactoring readAtFile
2025-08-05 13:46:53 -04:00
Rangi42
7020cf7188
Make struct Uppercase have constexpr methods
2025-08-05 12:11:23 -04:00
Rangi42
2cae47a5a2
Color verbose output as magenta
...
Output RGBASM's lexed tokens at level 5 (TRACE)
2025-08-05 00:00:57 -04:00
Rangi
23ce888d65
Use colored/styled text output for diagnostics and usage info ( #1775 )
2025-08-04 17:02:24 -04:00
Rangi42
fc9b614225
Allow the index of CHARVAL to be optional
...
Fixes #1773
2025-08-03 08:44:06 -04:00
Rangi42
7be7483571
Move more RGBASM parser action code out of the Bison file
2025-08-02 21:38:13 -04:00
Rangi42
2eeb333be0
Factor out more shared math operations between RGBASM and RGBLINK
2025-08-02 19:55:44 -04:00
Rangi
752b273aec
Extend RGBASM and RGBLINK verbosity flags to have multiple levels like RGBGFX ( #1772 )
2025-08-02 17:10:10 -04:00
Rangi42
d1829ed923
Release v0.9.4
2025-07-31 07:41:49 -04:00
Rangi42
6d53bc4121
Simplify toggling of enabling/disabling expansions
2025-07-31 07:19:04 -04:00
Rangi42
5d6e571338
Mention palette filenames in rgbgfx -c error messages
2025-07-29 06:44:33 -04:00
Rangi42
308d488833
Use UpperMap for rgblink -S scramble spec matching
...
This also makes invalid RGBLINK CLI options into fatal errors
like the other programs
2025-07-29 03:41:31 -04:00
Rangi42
2341d1ee50
Replace platform-specific mmap with reading the entire .asm file
2025-07-28 20:50:48 -04:00
Rangi42
f7eb986313
Encapsulate access to sectionList and currentSection
2025-07-28 11:47:37 -04:00
Rangi42
75aed1afd5
Factor out an UpperMap for case-insensitive matching
2025-07-28 00:00:24 -04:00
Rangi42
8b1a5244f7
Avoid hard-coding a redundant "FATAL:" in RGBFIX
2025-07-27 19:35:08 -04:00
Rangi42
b2747dfbd8
Factor out common usage-help code
2025-07-27 19:20:04 -04:00
Rangi42
16e16cdf51
Split up the linkerscript lexer and layout actions
2025-07-27 13:38:20 -04:00
Rangi42
a353637a90
Split RGBLINK linkerscript parser functions into their own file
2025-07-27 11:31:25 -04:00
Rangi42
f3cbfcecf4
Split RGBASM parser action functions into their own file
2025-07-26 16:20:25 -04:00
Rangi42
aa46c79db6
Use unordered_map lookups instead of manual switches for MbcType data
2025-07-26 13:30:56 -04:00
Rangi42
92acb6e547
Implement a single nbErrors counter inside generic diagnostic code
2025-07-26 12:54:50 -04:00
Rangi42
ac632d9223
RGBFIX returns 1 if there was a -Werror before processing any files
2025-07-26 12:29:57 -04:00