Sylvie
8a49a0b714
Report "<stdin>" or "<stdout>" when using "-" as a filename placeholder ( #1297 )
...
Also fix a memory leak with `targetFileNames`
2024-02-18 17:07:25 +01:00
Sylvie
c07f3da9a1
Provide guidance to remove the deprecated rgbasm flags ( #1296 )
...
* Explain to remove the deprecated rgbasm flags
* Rephrase deprecation warnings
2024-02-18 16:16:15 +01:00
Sylvie
d71a161bc9
Phrase error messages as "Failed to", not "Could not" or "Couldn't" ( #1298 )
2024-02-18 14:52:31 +01:00
Sylvie
ef0d973187
Truncate long format spec strings before using them ( #1299 )
...
Fixes #1293
2024-02-18 14:27:03 +01:00
Sylvie
66fd5a7062
Fix some usually disabled compiler warnings ( #1286 )
...
* Fixes from temporarily re-enabling more compiler warnings
* More edits suggested by cppcheck
* Fix hanging on append_yylval_string
* Fix FOR loop increment
2024-01-18 20:47:20 +01:00
Rangi
d179f3ed28
Increment object file revision number to 10 ( #1287 )
2024-01-09 18:55:05 +01:00
Rangi
b0f2f0ffd6
Allow fewer tRNS entries than PLTE colors ( #1284 )
2023-12-31 12:47:53 +01:00
Rangi
1f3985a164
Fix build compatibility for macOS 10.14 and below ( #1280 )
...
macOS 10.15 introduced full `std::filesystem::path` support.
Before that our use of it would cause the build to fail.
This was not caught because "-mmacosx-version-min=10.9" was only
being passed to clang++ for release builds.
This passes that flag in a new static CI test build, and introduces
a hack developed by @LIJI32 to silence the availability errors,
since we use features already available in macOS 10.9.
This means we are testing both "vanilla" building,
and building static binaries using the same configuration
as during release, which should help avoiding last-minute
surprises.
2023-12-29 22:47:11 +01:00
Rangi
d5cddb202c
Update the man pages' dates and history ( #1279 )
2023-12-23 00:15:35 +01:00
Rangi
fdd45ab1dc
Improve linker script align ( #1271 )
...
An offset is now supported, and invalid values are no longer silently
truncated, aligning behaviour with other instances of the directive.
2023-12-18 07:16:48 +01:00
Rangi
39018174c5
Scramble banks from the end of the ROM ( #1273 )
...
This is more likely to test edge cases, such as having content in banks with their highest bit set.
2023-12-17 20:14:03 -05:00
Rangi and ISSOtm
5a3a215b0e
Don't delete script.cpp after building ( #1272 )
...
Ensure consistency in linker script parser interface
Make the declaration and definition visible when compiling
so that the compiler can warn about inconsistencies.
Co-authored-by: ISSOtm <[email protected] >
2023-12-17 11:42:07 -05:00
Rangi
495d701022
Use RANGE macro to abbreviate begin/end pairs ( #1269 )
2023-12-11 14:10:20 -05:00
Rangi
b886b7e611
Add LADX disassembly to test suite ( #1265 )
2023-12-11 18:21:38 +01:00
Rangi and Eldred Habert
34b2543c8b
Implement -X/--max-errors for RGBASM ( #1262 )
...
Co-authored-by: Eldred Habert <[email protected] >
2023-12-07 11:42:47 +01:00
Rangi
1fa289f2ee
Add SameBoy's BootROMs to the test suite ( #1264 )
2023-12-06 22:37:59 +01:00
Rangi
22ff7ff101
Add PinoBatch's game Libbet to the test suite ( #1260 )
2023-12-06 10:30:11 +01:00
Rangi and Eldred Habert
1402615bc0
Refactor how Makefile invokes Bison for reusability ( #1259 )
...
Co-authored-by: Eldred Habert <[email protected] >
2023-12-01 13:29:05 -05:00
Rangi
6132b77c1e
Add more tests for RGBASM code coverage ( #1257 )
...
* Add more tests for RGBASM code coverage
* Use C++ unnamed parameters, not `(void)` casting
* Fix crash in `sect_AlignPC` from #1253
2023-12-01 10:21:43 -05:00
Rangi
cee3d1c859
Add more test coverage for RGBASM ( #1256 )
...
This also fixes two bugs: `-1 >>> 32` was -1 not 0, and `macro_FreeArgs` should have been called but wasn't.
2023-11-29 15:16:05 -05:00
Rangi
2ebd7f2ea3
Allow negative alignment offsets ( #1255 )
2023-11-25 09:40:20 +01:00
Rangi
756f2866bb
Refactor alignment spec parsing ( #1253 )
2023-11-25 00:06:05 +01:00
Rangi and ISSOtm
92836408cc
Remove empty .out and .err test files ( #1249 )
...
Co-authored-by: ISSOtm <[email protected] >
2023-11-24 17:52:55 -05:00
Rangi
39e85c6dec
Document pre-ASMotor history and add links ( #1252 )
2023-11-24 18:54:33 +01:00
Rangi and Eldred Habert
a218622d73
Remove checkpatch, since it's tuned for C not C++ ( #1250 )
...
Co-authored-by: Eldred Habert <[email protected] >
2023-11-22 19:26:08 +01:00
Rangi
46e29de66f
Implement ds align[alignment, offset] ( #1181 )
2023-11-21 23:57:47 +01:00
Rangi
6f0ffcf3e1
Remove deprecated RGBGFX options ( #1246 )
2023-11-21 23:30:34 +01:00
Rangi
c7b39f094c
Update the reverse color curve ( #1241 )
...
Based on SameBoy's "accurate modern" colour mapping.
Special thanks to @Rangi42 for her patience throughout development, @LIJI32 for researching the colour curve and helping with the creation of the reverse mapping (colour spaces are *fun*!), and @coffeevalenbat for testing :)
2023-11-21 19:41:18 +01:00
Rangi
f5ae6a80f0
Rename the RGBGFX --output-* options to --auto-* ( #1245 )
...
Fixes #1243
2023-11-21 17:52:16 +01:00
Rangi
083a82f6d1
Implement rgbgfx -O ( #1240 )
2023-11-21 10:19:44 -05:00
Rangi
3c0879a3c6
Fix spurious truncation warning ( #1238 )
2023-11-20 22:51:51 +01:00
Rangi
232416b30d
Fix the hack for File::c_str to work ( #1242 )
2023-11-14 13:38:18 +01:00
Rangi
cf62ff772f
Switch to using std::filesystem ( #1235 )
...
Allows better platform-agnostic path manipulation.
Also, using `std::optional` rather than empty strings allows
correctly handling empty arguments (treating them as such,
instead of acting as they were never passed).
2023-11-13 18:10:09 +01:00
Rangi
e824e34526
Use an iterator template for enum sequence loops ( #1228 )
2023-11-12 09:19:19 +01:00
Rangi
31529524c8
Use some more C++20 features ( #1231 )
2023-11-11 20:47:53 -05:00
Rangi
dde9f2bb79
Rename some RPN constants for consistency ( #1230 )
2023-11-08 21:30:27 +01:00
Rangi
5711c088e5
Add exact dates for history ( #1233 )
...
Citations (I think these would be excessive in the readme itself, but maybe the dates could have links?):
- Carsten Sørensen's ASMotor: <http://otakunozoku.com/RGBDSdocs/geninfo.htm >
- Justin Lloyd's RGBDS: <http://otakunozoku.com/rednex-gameboy-development-system/ >
- Vegard Nossum's rgbds-linux: <https://github.com/vegard/rgbds-linux/commit/e895832b2b89cf341ef84ee43e70aaa41f002fed >
- Anthony J. Bentley's fork: <https://github.com/bentley/rgbds_/commits/?after=60451fd41fc6dd0446798c8598f5effaacc2d065+69 > (prior to <https://gbdev.gg8.se/forums/viewtopic.php?id=81 >)
- Rednex move: <https://github.com/gbdev/rgbds/commit/0588e42520c7882c27cd67fd3ac518f99fc93adf >
- MIT relicensing: <https://github.com/gbdev/rgbds/commit/1a5c423984ca6cce1cb0b6b2100836bf4aa56e84 >
- Gbdev move: <https://github.com/gbdev/rgbds/commit/6eb284f99e7adb18dcad5e14bd619c08dfc864e6 >
The "neutral name" is clarified as Rednex, since we still use that name elsewhere in the readme, the sidebar, etc.
2023-11-08 21:25:27 +01:00
Rangi
765ae3f484
Build a code coverage report with gcov and lcov ( #1221 )
2023-11-08 00:03:26 +01:00
Rangi
f3dbf17b78
AUTHORS and more copyright comments are redundant with CONTRIBUTORS.rst ( #1227 )
2023-11-07 17:57:59 -05:00
Rangi
8eeb40cca8
Implement #"raw strings" ( #1122 )
...
Fixes #1121
2023-11-07 23:48:23 +01:00
Rangi
9fc088dcb0
Fix the FOR loop count formula ( #1222 )
2023-11-07 23:43:46 +01:00
Rangi
5379e51094
Make requested revisions to recent PRs ( #1195 )
2023-11-07 23:11:08 +01:00
Rangi
05a0905582
Fix the rgbgfx color curve ( #1200 )
2023-11-07 22:24:37 +01:00
Rangi
1e70e703a7
Build everything as C++ ( #1176 )
2023-11-07 21:45:56 +01:00
Rangi
78d83be2b2
Have the eqn preprocessor run on rgbasm(5) and rgbgfx(1) ( #1225 )
2023-11-07 18:08:13 +01:00
Rangi
a28f32a8a0
Download libpng source from GitHub, not SourceForge ( #1223 )
2023-11-07 08:29:01 +01:00
Rangi
6ac1dd8966
Fix RGBGFX -r with -d 1 ( #1224 )
2023-11-07 08:25:30 +01:00
Rangi
28358b55fe
Separate multiple instructions per line with :: ( #1210 )
2023-11-05 19:13:33 +01:00
Rangi
0afb6cd53c
Reminder to update the Dockerfile version for a release ( #1219 )
2023-11-05 18:54:15 +01:00
Rangi
143e76b7e3
Output the map file summary at the top of the file ( #1203 )
2023-11-05 15:43:58 +01:00
Rangi
f8af569680
Shorten license comments and consolidate an AUTHORS file ( #1217 )
2023-11-05 09:54:32 +01:00
Rangi
259ec58140
Implement ENDSECTION ( #1211 )
2023-11-04 23:41:17 +01:00
Rangi
99727cbe99
#!/bin/bash -> #!/usr/bin/env bash (#1216 )
2023-11-04 23:37:34 +01:00
Rangi
46e67ee078
Remove deprecated RGBASM features ( #1215 )
...
- Escaped commas "\," inside strings
- `name: MACRO` syntax
- `__FILE__` and `__LINE__`
- `-H/--nop-after-halt` and `-l/--auto-ldh` on by default
2023-11-04 23:22:46 +01:00
Rangi
28d92b7be3
Update ucity for testing ( #1212 )
2023-11-04 10:23:27 +01:00
Rangi
c869edd1d2
Implement SIZEOF and STARTOF for section types ( #1205 )
2023-11-03 08:50:04 +01:00
Rangi
8f3369fe29
Implement DS for linker scripts ( #1206 )
2023-11-03 08:47:22 +01:00
Rangi
477e9812d4
Actually use PNGCFLAGS to build rgbgfx ( #1209 )
2023-11-03 08:37:18 +01:00
Rangi
9e4b9e75e3
Sort symbols by address, then parentage, then index ( #1186 )
2023-11-02 23:58:25 +01:00
Rangi
55f946198b
Update the ucity repo being tested ( #1207 )
2023-11-02 23:57:13 +01:00
Rangi
181512ad9d
Implement INCHARMAP function ( #1184 )
2023-11-02 20:14:54 +01:00
Rangi
5a25c547ab
Allow rgbgfx to generate a palette from a spec, without an image ( #1192 )
2023-11-02 20:12:48 +01:00
Rangi
0d72ba886b
Consistent behavior with missing or incorrect parameters ( #1179 )
2023-11-02 17:40:40 +01:00
Rangi
e7d0428a2e
Explicitly specify which files build with PNGCFLAGS ( #1201 )
2023-11-02 17:36:46 +01:00
Rangi
bb7c34db65
Deprecate DEF-less definitions ( #1193 )
2023-11-02 10:18:59 +01:00
Rangi
02f06407b1
Correct documentation for rgbgfx -r ( #1197 )
2023-11-02 07:59:46 +01:00
Rangi
73e9aac135
Update the pret repos being tested ( #1198 )
2023-11-01 23:07:41 +01:00
Rangi
32bc68d06d
Don't export anonymous labels ( #1185 )
2023-11-01 00:06:28 +01:00
Rangi
79948be3a0
Improve incorrect object file revision error ( #1189 )
...
Fixes #1118
2023-10-31 15:04:27 -04:00
Rangi
ae38ebaf6f
Clarify documentation of RGBGFX deduplication ( #1191 )
...
Fixes #1169
2023-10-31 14:28:14 -04:00
Rangi
80bdc889f8
Revise documentation for rgbasm -p ( #1190 )
...
Fixes #1125
2023-10-31 14:27:59 -04:00
Rangi
84f3cb4075
ENDL restores the label scope from before LOAD ( #1180 )
2023-10-26 22:58:36 +02:00
Rangi
22def89760
Save and restore opt r on the stack. ( #1178 )
...
Fixes #1174
2023-10-26 22:54:42 +02:00
Rangi
a15f1a52c7
contributing: update repository links (rednex -> gbdev org) ( #1177 )
2023-10-26 00:44:01 +02:00
Rangi
3c049983f1
Fixed-point functions can take specific precision ( #1086 )
2022-10-02 16:56:08 +02:00
Rangi
8553b61a94
Fixed-point values can use all 32-Q magnitude bits ( #1085 )
2022-10-02 11:08:38 +02:00
Rangi
106ad30e5a
Allow fixed-point constants to have unsigned range ( #1084 )
...
For example with Q.4, $F0 is 15.0, which no longer warns
2022-10-01 23:32:34 +02:00
Rangi
969412af24
Parse HEX palettes ( #1081 )
...
Addresses one item of #1065
2022-10-01 12:45:00 -04:00
Rangi
ddb1d0b6aa
Parse GPL palettes, and fix PSP palette parsing ( #1080 )
...
Addresses one item of #1065
2022-10-01 10:46:13 +02:00
Rangi and Eldred Habert
08545643cf
Only define @ and _NARG when they have values ( #1073 )
...
Fixes #1069
Co-authored-by: Eldred Habert <[email protected] >
2022-10-01 01:04:03 +02:00
Rangi
a47da5f71f
Deprecate __FILE__ and __LINE__ ( #1072 )
...
Unlike C, these constants are not convenient for logging in macros,
since they always report the same data (their location in the macro).
Fixes #1068
2022-09-30 19:48:30 +02:00
Rangi
68ad926279
Patch projects so CI will build ( #1071 )
...
Fixes #1070
2022-09-30 12:19:11 +02:00
Rangi and Eldred Habert
dec4133e84
SECTION(symbol) returns the name of a symbol's section (#1066 )
...
Fixes #963
Co-authored-by: Eldred Habert <[email protected] >
2022-09-30 01:59:33 +02:00
Rangi
c35cb6ac32
Warning levels -Wunmapped-char=0/1/2 ( #1061 )
...
Fixes #1058
2022-09-29 18:14:04 -04:00
Rangi
023884d2b0
Redefine the trig functions to divide circles into 1.0 turns ( #1060 )
...
This makes their behavior consistent across Q settings
Fixes #1059
2022-09-29 10:57:29 +02:00
Rangi
b1a241233e
Preserve Unix line endings for .bash and .flags files ( #1054 )
...
Fixes #955
2022-09-25 11:18:44 +02:00
Rangi
f88968ec20
Fix rgbasm -b and rgbasm -g ( #1052 )
...
Fixes #1051
2022-09-25 10:22:55 +02:00
Rangi
5ad8a8c958
Warn when a duplicate CLI argument overrides a previous one ( #1053 )
...
Fixes #1050
2022-09-25 10:04:30 +02:00
Rangi and Eldred Habert
2827374505
Use STD*_FILENO constants ( #1055 )
...
These are defined in platform.h, but not consistently used
Co-authored-by: Eldred Habert <[email protected] >
2022-09-25 10:02:53 +02:00
Rangi and ISSOtm
b8385a50e3
Support -P/--preinclude to pre-INCLUDE a file ( #1043 )
...
Fixes #1041
Co-authored-by: ISSOtm <[email protected] >
2022-09-24 12:37:16 -04:00
Rangi and ISSOtm
98a6dffbca
Implement opt Q for fixed-point precision, and q literals (e.g. 12.34q8) ( #958 )
...
Fixes #957
Co-authored-by: ISSOtm <[email protected] >
2022-09-05 00:47:32 +02:00
Rangi
c01317e08d
Only increment the unique \@ ID when it is first used per context ( #1030 )
...
This avoids changes to generated `\@` labels just by adding or
removing macros or loops which do not actually use `\@`.
Fixes #1019
2022-08-31 17:45:21 -04:00
Rangi
4363ffcad4
Clarify the JR documentation based on its usage ( #1032 )
...
Fixes #1020
2022-08-28 15:42:04 -04:00
Rangi
14e6a79adc
Deprecate the old macro syntax ( #1025 )
...
Fixes #1011
2022-08-28 15:22:21 -04:00
Rangi
7a2ee26792
rgbasm -r sets the maximum recursion depth (#1026 )
...
Previously it set the minimum failure depth (off by one)
Fixes #978
2022-08-28 15:21:29 -04:00
Rangi and Eldred Habert
1a1f1365e6
Clarify the FOR loop documentation ( #1031 )
...
Clarify the FOR loop documentation
Fixes #1003
Co-authored-by: Eldred Habert <[email protected] >
2022-08-28 15:16:49 -04:00
Rangi
f97139461c
Clarify the linkerscript example ( #1028 )
...
* Clarify the linkerscript example
* Explain that backslash escape sequences are supported
Fixes #1006
2022-08-28 15:13:43 -04:00
Rangi
8207dc57b7
Add a -Wunmapped-char warning for characters not in the charmap ( #1023 )
...
Fixes #1022
2022-08-28 15:12:43 -04:00
Rangi
b9fd85470e
Reword docs now that SET is deprecated ( #946 )
...
- '=' constants are "variables" (not "mutable constants")
- EQU constants are "numeric constants" (not "immutable constants")
- EQUS constants are "string constants" (not "string equates")
- DS declarations are "static allocations" (not "variables")
2021-11-22 17:08:29 -05:00
Rangi
ec6d63bce3
Allow underscores in gfx literals ( #951 )
...
Fixes #950
2021-11-21 16:18:23 -05:00