Commit Graph

67 Commits

Author SHA1 Message Date
GearsProgress
551e048572 Updating text make process 2026-03-13 16:29:21 -04:00
Philippe Symons
b84939b49a Add debug menu UI when you press L+R in the main menu.
It's only the UI yet. It only shows a couple of dummy options right now.
2026-03-09 19:56:32 +01:00
GearsProgress
12f710dafc Reapply "Release candidate"
This reverts commit 67aa927108.
2026-03-09 12:09:57 -04:00
GearsProgress
95c6af63e4 Changing the folders back 2026-03-07 10:12:59 -05:00
GearsProgress
7776d884b0 Changing cloud to remote 2026-03-06 09:55:46 -05:00
GearsProgress
a8edfc3094 Updating local/remote setup 2026-03-06 09:55:11 -05:00
GearsProgress
d17371ed1c Updating pt-br implementation 2026-03-05 18:11:16 -05:00
GearsProgress
3128f8bcd7 Updating make process to include Korean, Traditional and Simplified Chinese, and Brazilian Portuguese 2026-03-05 16:42:31 -05:00
GearsProgress
454700064c Updating makefile to not recompile unnecessary files 2026-03-03 12:43:10 -05:00
GearsProgress
e0f9685a1b Updating Makefile to specify which xlsx to use 2026-03-03 12:25:39 -05:00
GearsProgress
a4c4826322 Modifying build process to have language specific graphics 2026-03-01 22:08:09 -05:00
The Gears of Progress
67aa927108
Revert "Release candidate" 2026-02-24 00:04:47 -05:00
The Gears of Progress
0f003f0120
Merge branch 'text-debug-screen' into release-candidate 2026-02-24 00:02:10 -05:00
Philippe Symons
cf2e09d102 Fix the text-debug-screen branch 2026-02-23 20:52:14 +01:00
Philippe Symons
a7d8beb973 MaxMod sound engine lib integration
This commit integrates the MaxMod sound engine into PTGB.

Some test code already existed, but now it's done for real.

I added a thin API wrapper in sound.c/sound.h to abstract the sound engine.

One of AquaticAlloy's test songs was added to the main menu as a proof of concept.
We may want to disable it before the actual merge though.
2026-02-23 13:08:35 +01:00
The Gears of Progress
335e1dfe7f Updating Makefile and Dockerfile 2026-02-17 17:40:35 -05:00
The Gears of Progress
b806100da1 Fixing Spanish makefile names 2026-02-17 16:42:48 -05:00
The Gears of Progress
e03a020c45 Updating makefile clean function 2026-02-11 10:19:12 -05:00
The Gears of Progress
37aa2a8674 Adding a release file xlsx to the text builder 2026-02-09 23:35:51 -05:00
The Gears of Progress
fd90bbc5e5 Optimizing makefile 2026-02-08 18:03:51 -05:00
The Gears of Progress
7625d796ab Organizing makefile 2026-02-08 12:11:33 -05:00
The Gears of Progress
e70caddaf4 Adding center text option 2026-02-06 17:00:30 -05:00
The Gears of Progress
0f725431ce
Update Makefile Target 2026-02-06 08:50:44 -05:00
The Gears of Progress
e1c3d1a4c2 Updating make files to use debug mode 2026-02-05 23:37:20 -05:00
The Gears of Progress
5e7e9b4df7 Updating makefile 2026-02-05 11:15:09 -05:00
The Gears of Progress
d042e18768
Update Makefile 2026-01-28 18:00:37 -05:00
The Gears of Progress
26b89d17fc Updating font generation 2026-01-27 09:29:28 -05:00
The Gears of Progress
2309f7c493 Adding text debug menu 2026-01-11 17:33:02 -05:00
The Gears of Progress
ded25f416e Modifying Makefile 2026-01-08 17:17:29 -05:00
RisingPhil
558eb92790 Copy loader.gba to the root folder and rename to Poke_Transporter_GB_standalone.gba at build time
This avoids forgetting about it when doing a release.

I also modified the documentation to reflect this new name.

BONUS change: I also documented the cartridge swap reset problem in the README.md
2026-01-06 11:45:34 +01:00
The Gears of Progress
9fd3ff8e0b Setting as release version 2026-01-03 17:45:30 -05:00
The Gears of Progress
3b3a675f80 Merge remote-tracking branch 'origin/invalid-pkmn-fix' into release-candidate 2026-01-03 17:20:36 -05:00
RisingPhil
8fda76db5c Do the same fix for payload-generator on MinGW64 as we did for PCCS 2025-12-16 10:16:36 +01:00
Philippe Symons
9997f3b61d Use libPCCS as a proper static lib
Split up data-generator into payload-generator (PTGB) and table-generator (PCCS)

The reason for this is because we don't want the dependencies to the payload stuff in PCCS.
And the tables are embedded inside libPCCS now.

Because we want to use libPCCS as a proper static lib, we now use its new Makefile to build it
before we build Poke_Transporter_GB.
2025-12-13 21:01:34 +01:00
The Gears of Progress
a5ff585596
Merge pull request #76 from GearsProgress/latest-release
Refactoring to latest "latest release" branch
2025-12-06 15:50:56 -05:00
The Gears of Progress
9ca5c650d0 Working on debugging 2025-12-03 22:08:35 -05:00
Philippe Symons
a7b2703bf8 Replace the PCCS code with a git submodule
This eliminates duplicate code. - Only maintain the code in one place!

To make sure the submodule is getting cloned too after cloning Poke_Transporter_GB, execute:
git submodule update --init --recursive

To update the submodule to a newer commit/different branch:

cd PCCS
git pull
git checkout <commit_or_branchname>
cd ..
git add PCCS
git commit
git push

The way it works is that a specific commit is tied to your Poke_Transporter_GB repository's PCCS folder.
2025-11-27 23:14:29 +01:00
Philippe Symons
0f8236575a Fix a couple of compile errors on latest-release branch
- Fix make clean by adding -f flag when removing output.json

- Fix broken compress_lz10.sh script: it had a check to avoid compressing when the
  input bin file hasn't changed. But the -nt operator also returns false if the output
  file doesn't exist.

- Fix compilation error on conflicting u32 typedef: libtonc defines one and so does data-generator.
  We shouldn't redefine it if the one from libtonc exists. The one in data-generator exists for compiling
  the tool for pc.

- Fix Dockerfile. For some reason the Dockerfile was now failing because Ubuntu manages the python pip
  packages. I fixed it with the --break-system-packages shortcut. It should be fine.
2025-11-27 20:27:35 +01:00
The Gears of Progress
b6be0aedeb Enabling release build 2025-10-12 17:46:59 -04:00
The Gears of Progress
ba1a075701 Adding PCCS 2025-10-12 15:08:33 -04:00
The Gears of Progress
4a612713ee Modifying build process to ignore unmodified files 2025-08-06 23:08:14 -04:00
The Gears of Progress
ba9e30e8d0 Fixing a few bugs before merge 2025-07-28 16:18:51 -04:00
Philippe Symons
47cd143de6 Replace ZX0 by the builtin LZ10 compression.
LZ10 decompression is builtin to the GBA's bios, so we don't need ZX0. It's also significantly faster
(618 usec instead of 2311 usec in my personal benchmark code for decompression of the same data)

And it seems like by doing so, we saved 1 KB as well!

So, seems like replacing ZX0 is the right move.

The reason I didn't initially is because I misunderstood the documentation. I assumed LZ77UnCompWram could only uncompress into EWRAM, not IWRAM.
But it turns out it can do both.

And using standardized tools is usually better than using a custom implementation.

The only downside of this right now, is that we can no longer stream text tables through a smaller buffer than the entire decompressed size.

Anyway, things seem to work fine, so bye bye ZX0. It's been fun.
2025-07-18 16:19:34 +02:00
Philippe Symons
5e7118c0c7 Compress the gb_rom_values and gba_rom_values tables with ZX0. 2025-06-27 16:04:04 +02:00
The Gears of Progress
9e488ae2af Fixing Windows Environment 2025-06-24 16:35:32 -04:00
Philippe Symons
26fd1e2dd3 Add compression for the text data, output stack usage .su files and rework script_array
Add a binary table format and convert the text entries into this format in text_helper/main.py. It then gets compressed with zx0.

The new text_data_table and streamed_data_table classes exist to read the various entries from this binary table. streamed_data_table specifically
exists to use a decompression buffer that is smaller than the actual binary table. But it requires a decompression buffer that is
still larger than ZX0_DEFAULT_WINDOW_SIZE (default: 2048 bytes) and will only be able to decompress in
chunks of (<decompression_buffer_size> - <ZX0_DEFAULT_WINDOW_SIZE>) bytes

Try to keep the binary text tables sufficiently small though, because since zx0 doesn't actually support random access,
getting to the last entry is significantly more expensive than reading the first one. And unless you use streamed_data_table,
it also requires <uncompressed_size> bytes of stack space, therefore IWRAM to decompress them.

I also had to rework script_array because it can no longer reference the strings directly. Instead we now reference the DIA_* "enum" values.
We also no longer store an array of script_obj instances, because these were getting stored in IWRAM since they're non-const global variables
originally. Instead we now have const arrays of script_obj_params structs, which should end up in .rodata -> therefore EWRAM.

Right now, script_obj only supports the PTGB text table (originally the dialogue array). But if the need arises to support other tables as well,
I'd consider adding a separate enum to script_obj_params to indicate the specific table.

The compilation process will also output .su files in the build folder from now on. These files indicate the stack frame size for every function in
every compilation unit, so be sure to check them from time to time. Note that they will only show the stack consumption for that specific function.
So to get the worst case stack consumption, you need to manually add all the functions in a certain stack flow.
2025-05-21 12:21:06 +02:00
Philippe Symons
4c93ff869c Optimize the MOVESETS table for compression + eliminate 4 KB "handles" buffer from
libsysbase_libsysbase_a-handle_manager.o

So, I optimized the MOVESETS table to only store the "overriding" bits in the movesets of the evolutions
in relation to their base forms. That only improved compression slightly (about 300 bytes)

I also eliminated 4 KB of IWRAM usage by libsysbase_libsysbase_a-handle_manager.o because of the "handles"
buffer. We're not using it and we REALLY need our IWRAM. (and it also reduces the rom size with 4KB too!)
2025-04-29 22:22:38 +02:00
Philippe Symons
652f781454 More optimization: move code to IWRAM.
We can now decompress a 512 byte charset in 1 ms. (well, 1.370 ms to be exact)
2025-04-28 12:34:19 +02:00
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