Rangi
5f8b7474b4
Add -B/--backtrace option to RGBASM and RGBLINK ( #1787 )
2025-08-11 14:30:14 -04:00
Rangi
92a9c73ee7
Deprecate __DATE__ and __TIME__ ( #1786 )
2025-08-11 09:48:18 -04:00
Rangi
978e832914
Allow :: to join instructions *and* data declarations ( #1785 )
2025-08-11 08:04:42 -04:00
Rangi42
2130a5ba1f
Error messages refer to "undefined" symbols and sections
2025-08-08 19:47:42 -04:00
Rangi42
9fc83efe06
Make rgbasm -Wlarge-constant enabled by default
2025-08-08 19:00:13 -04:00
Rangi
e41ce49698
Only print one warning for too-large integer constants, not one per digit ( #1781 )
...
This also makes all too-large integer constants evaluate to 0.
2025-08-08 18:58:38 -04:00
Rangi42
3f6db080b4
Ensure that alignment is at most 16 and we do not cause UB
2025-08-06 15:31:30 -04:00
Rangi42
f9a55bd5cd
Allow OPT to accept optional dashes before flags
2025-08-06 10:19:01 -04:00
Rangi
a4a830776b
Deprecate treating strings as numbers ( #1780 )
2025-08-06 10:13:22 -04:00
Rangi42
bf66e346f0
Add -Wobsolete to RGBFIX and RGBGFX, and deprecate rgbfix -O
2025-08-05 17:18:54 -04:00
Rangi42
3a0a4b7f90
Deprecate 1-indexed string functions
2025-08-05 16:58:06 -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
98c5c7f776
Support rgbgfx -c auto for automatic palette generation
2025-08-05 13:05:21 -04:00
Rangi42
7020cf7188
Make struct Uppercase have constexpr methods
2025-08-05 12:11:23 -04:00
Rangi42
70d129fcd7
Color "warning:" yellow in warnx
2025-08-05 11:26:21 -04:00
Rangi42
2d5f4d8910
More consistent missing-input error messages
2025-08-05 11:22:58 -04:00
Rangi42
f1fd3abcff
Don't bother searching the keywordDict for local labels
2025-08-05 10:49:09 -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
Rangi42
ac75a085fa
Refactor lexer_CaptureRept and lexer_CaptureMacro
2025-08-04 23:26:29 -04:00
Rangi42
0c1b422c36
Refactor some redundant lexer code
2025-08-04 22:43:34 -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
543b7fa6c2
Use std::nothrow for the only new expression
...
Ideally we'd use `std::make_shared`, but it has insufficient compiler
support for array types
2025-08-02 22:52:20 -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
b51056f743
Fix "while expanding symbol" error message
...
Fixes #1771
2025-08-01 16:25:44 -04:00
Rangi42
ee1aed51d8
Use std::numbers::pi instead of nonstandard M_PI
2025-08-01 13:07:02 -04:00
Rangi42
db2cda790c
Factor out a single consumeChar function
...
This and `peek` are the only functions that should call the low-level
`peekChar` and `peekCharAhead` methods.
2025-08-01 12:12:22 -04:00
Rangi42
86b43ea14f
Fix interpolation after empty string literal
2025-07-31 15:17:11 -04:00
Rangi42
6d53bc4121
Simplify toggling of enabling/disabling expansions
2025-07-31 07:19:04 -04:00
Rangi42
499edaecd0
Exclude verboseOutputAssignments from LCOV coverage testing
2025-07-29 14:53:30 -04:00
Rangi
225490163e
Fix RGBGFX "decanting" on "components" (color sets sharing colors) ( #1768 )
2025-07-29 14:52:20 -04:00
Rangi42
d388a60daa
Reduce deep nesting in gfx/pal_packing.cpp
2025-07-29 14:02:51 -04:00
Rangi42
6d05de9d4d
Remove a little no-longer-necessary header boilerplate
2025-07-29 11:22:31 -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
d21e6669ce
Unrefactor peek() to use tail recursion instead of a loop
...
Profiling RGBDS on building pret/pokecrystal reveals commit
cfe1f60e47 as a clear outlier
among the past few hundred commits for reducing performance
(an 8% increase on my machine from ~5 to ~5.4 seconds).
2025-07-29 00:24:51 -04:00
Rangi42
2341d1ee50
Replace platform-specific mmap with reading the entire .asm file
2025-07-28 20:50:48 -04:00
Rangi42
53949761a7
Factor out our manual std::filesystem::path.replace_extension replacement into its own function
2025-07-28 13:11:47 -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
d16751f56a
Avoid hard-coding a redundant "FATAL:" in RGBLINK
2025-07-27 20:07:53 -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