Commit Graph

19 Commits

Author SHA1 Message Date
Philippe Symons
0b5bd11680 More speed optimization
Although the fact that I'm now using -O2 for zx0_decompressor will probably make the binary size larger
2025-04-27 01:03:25 +02:00
Philippe Symons
532a095d77 Implement zx0 compression
Compress data tables with the ZX0 compression algorithm
2025-04-24 21:14:48 +02:00
Philippe Symons
9268cbd42e Reduce binary size by eliminating libstdc++
This commit removes all references to things in the libstdc++ library to remove a decent chunk of bloat.

This means every std::to_string() call, std::string and std::vector. (as well as iostream related stuff).

I replaced those with my own versions ptgb::to_string() and ptgb::vector. Especially the latter is not exactly the same,
but close enough.

I also replaced operator new and delete with my own implementation to avoid pulling in everything related to exceptions
from libstdc++

Another problem was the fact that libtonc uses siscanf, which pulls in everything related to the scanf family of functions
and locale support. The worst part of that was that it included a 13KB "categories" symbol from libc_a-categories.o,
which was pulled in because of the locale support integrated into newlibc's siscanf() function. To fix that, I created a
custom, extremely restricted implementation of siscanf. libtonc only used this function to parse at most 2 integers from a
string anyway.
2025-04-09 20:04:08 +02:00
The Gears of Progress
1a68b30c8b
Merge pull request #36 from risingPhil/feature/load-without-multiboot
Proof Of Concept: Load PokeTransporterGB WITHOUT multiboot
2025-04-06 17:10:41 -04:00
Philippe Symons
7c1fed707e Don't forget to mkdir loader/data 2025-03-24 15:27:19 +01:00
Philippe Symons
e10058c7d9 Proof of concept: add a loader that embeds the multiboot rom and allows to load it from a flashcart 2025-03-24 13:49:37 +01:00
easyaspi314
e4ef25e20e Compress the graphics (mostly), fix potential vram memcpy issue
This greatly decreases the ROM size, from 245 KB to 198 KB with no visual
changes (that I am aware of)

Changes:
- Enable compression on every graphic but the Pokemon sprites (which are
  too large for the GBA to decompress).
- Change grit from emitting .s files to .c files so GCC can strip unused
  palettes and maps
- Fix the empty tiles
- Trim down the font to skip 00-1F and 80-FF which were all zeroes
  - needs a slight workaround because the Pokemon name display was printing
    an invisible FF byte
- Switch memcpy to tonccpy which is vram safe
- Limit palette sizes.

Signed-off-by: easyaspi314 <6258309+easyaspi314@users.noreply.github.com>
2025-01-17 19:32:48 -05:00
The Gears of Progress
e3c5898683 Fixing contest hall data bug 2024-09-25 14:51:20 -04:00
The Gears of Progress
be25471bbc Optimizing size 2024-09-25 12:47:13 -04:00
The Gears of Progress
1ec09842ad Updating tons of graphics 2024-08-19 14:47:29 -04:00
Remnants of Forgotten Disney
3784db8344 Finishing touches 2023-12-04 15:36:47 -06:00
Remnants of Forgotten Disney
eb87ab3c03 Inital implementation of Save.C 2023-12-03 14:22:04 -06:00
Starport75
5b3e46c5a7 Audio stuff 2023-08-12 20:04:45 -05:00
Starport75
e154f72007 Removed libugba 2023-08-10 17:22:46 -05:00
Starport75
19f346ba42 Back to TONC 2023-06-09 18:31:19 -05:00
Starport75
973b24f538 Changing from TONC to LIBGBA 2023-06-06 21:38:14 -05:00
Starport75
7db3eea80c Beginning Link Cable Work 2023-05-04 19:07:33 -05:00
Starport75
0da61e514e Adding the flash library 2023-04-16 14:32:23 -05:00
Starport75
dbc46b2e3c
Initial commit 2023-04-11 10:35:49 -05:00