123 Commits

Author SHA1 Message Date
9880e9f3db
Started work on a basic mips simulator. 2024-08-11 16:41:34 +01:00
f5dc249687
Found out where the executable stores the iso lbas.
Executable now includes actual calculated `lba`s.

We bootstrap an iso with fake `lba`s, then create the actual iso with the real `lba`s from the bootstrapped iso.
2024-08-10 20:02:47 +01:00
0ef2e29d03
Replaced find-bytes implementation with "simd"-ish impl. 2024-08-10 02:24:42 +01:00
c16224d7c6
Reworked find-bytes to be able to have multiple haystacks and needles, as well as configuration per-haystack and per-needle. 2024-08-10 01:05:05 +01:00
88f2673c6d
Paths in find-bytes are no longer displayed using their debug representation. 2024-08-08 01:40:30 +01:00
9a03da965b
Replaced find_ram_dump_raw_exe bash script with python. 2024-08-07 20:23:21 +01:00
eb3fc14973
Added input slicing options for find-bytes. 2024-08-07 20:08:21 +01:00
e7677778de
Added fuzzy searching and multithreading to find-bytes. 2024-08-07 20:05:17 +01:00
ba2cf1d8a0
Added helper tool to find bytes in file.
Added helper tool to find all raw exes within a memory dump.
2024-08-06 19:44:47 +01:00
c3a3bae6fc
Removed need to extract object files from rust staticlibs.
Using `--whole-archive` works for all dependencies with just 1 `staticlib`.
`exe` had 2 `staticlib`s, so we make them normal libraries and combine them in one single `staticlib`.
2024-08-05 14:17:17 +01:00
ee06c4b1af
Added helper tool to replace bytes in file.
Added helper tool to replace all addresses with symbols in assembly.
2024-08-04 16:51:58 +01:00
d9d1e9ca4e
Linking is now done against a list of symbols instead of an elf.
This fixes an issue with relocations being truncated despite the symbol address being correct.
2024-08-03 15:23:10 +01:00
bc2aec1d97
elf and lib outputs now generate a map file. 2024-08-02 20:00:12 +01:00
e90924b1f4
Elf building is now done in 2 steps.
The first step defines the layout of all the symbols and is relocatable, while the second step resolves all relocations.
This allows us to have recursive `link_with` in the future.
It also fixes some issues with certain symbols being unresolvable
2024-08-02 19:55:19 +01:00
f94fccb43b
Improved generate_addr_labels utility script. 2024-07-31 00:23:12 +01:00
0ef6457d02
Formatted all files. 2024-07-30 23:59:25 +01:00
9d26b3230e
format now formats rust files. 2024-07-30 23:59:08 +01:00
ac26dee287
Updated to rustc 1.82.0-nightly (2cbbe8b8b 2024-07-28). 2024-07-30 14:16:35 +01:00
4ae0b55355
Updated to rustc 1.81.0-nightly (9c3bc805d 2024-06-27). 2024-07-23 17:50:44 +01:00
a6ddb2854b
zbuild format now sorts imports. 2024-07-23 17:27:59 +01:00
b9c964ce4c
Added python virtual environment. 2024-07-23 17:19:49 +01:00
3ae5a36af4
Removed old objdump_pro dumping script. 2024-07-23 16:21:08 +01:00
c940eb718c
Replaced autopep8 with ruff. 2024-07-23 16:18:45 +01:00
f7e261d92e
Updated to rustc 1.78.0-nightly (d18480b84 2024-03-04). 2024-03-16 09:49:11 +00:00
e27901bc93 Renamed all map files to lowercase. 2023-12-09 22:57:13 +00:00
aa62d67a0f Fixed formatting not using unstaged files. 2023-12-08 22:36:12 +00:00
90b83e334f Added format scripts and rules to zbuild. 2023-12-08 21:26:31 +00:00
f74fcade59 Removed rustc internal feature usage. 2023-12-08 15:09:04 +00:00
4217be4ce6 Replaced mkpack_deps.py with mkpack-deps. 2023-12-08 15:01:15 +00:00
0b3ab8e5d1 Fixed misformatted python script. 2023-12-08 14:56:05 +00:00
4b48a51e26 Decoded some more common codepoints from lang files.
Improved codepoint decoding.
2023-12-04 21:49:03 +00:00
cbbaf7569b Extracted all stage mask files as images.
Renamed `untim`'s `--clut` flag to `--output-clut`.
Changed how `untim` encodes duplicate colors.

The `untim` encoding change was made because we hit the previous (wrong) limit of 256 colors and things started overlapping. Now we support at most 2048 and we error if we would overlap.
2023-12-02 06:45:46 +00:00
5898de6185 Extracted all rlen encoded files from stage mask files. 2023-12-02 05:06:49 +00:00
97762e428a Extracted all entries in pack/dw2003/field/stage/*tmpk/*.bin.
Updated `unpack` to allow empty packs.
2023-12-01 23:41:09 +00:00
cbdb6a5db9 Extracted all entries in dw2003/AAA/DAT/FIELD/STAGE
Updated `unpack` and `mkpack` to allow null entries.
2023-12-01 22:52:50 +00:00
e11da09944 Changed how PackReader stores the boundaries.
The previous way was implemented wrong twice because it was confusing.
This approach needs to store the end of the file, but is much easier to understand.
2023-11-30 10:29:34 +00:00
9b7b12cc86 Fixed PackReader reading the first file wrong. 2023-11-28 18:10:45 +00:00
0e45f034c4 Moved implementation of mkpack to a library. 2023-11-23 13:35:47 +00:00
c6cd61777c
Moved implementation of unpack to a library. 2023-11-23 13:24:05 +00:00
943d865b52 Slightly revamped ddw3-iso9660.
Removed `Reader` from `FilesystemReader` and `FileReader`.
This allows us to re-use these for a future writer.
2023-11-23 13:23:55 +00:00
647e060a86 Improved IoSlice bounds and impls.
Simplified all `&IoSlice<T>` impls.
Added `Write` impl for `&IoSlice<T>`.
2023-11-21 05:04:23 +00:00
25c11866f2 BytesReadExt now allows ?SIzed types. 2023-11-21 05:00:02 +00:00
4333f4856c Reduced debug trace to trace.
It happened very often and realistically unlikely to be useful, but it'll stay in for now.
2023-11-21 04:26:42 +00:00
df522e7c48 Default logging level is now info. 2023-11-21 04:25:18 +00:00
1a0e9202c9 Added ddw3_util::{read_toml, write_toml}.
This removes the duplicated code for reading toml files to a single function.
2023-11-19 00:25:10 +00:00
5db81d5591 mkrlen now receives a config file.
Replaced `mkrlen_from_toml_deps.py` with rust `mkrlen_deps`.

This removed the need for `mkrlen_from_toml`.
2023-11-14 10:48:30 +00:00
99a07d8248 Replaced mk{map,map_tile}_deps.py with rust mk{map,map_tile}-deps. 2023-11-14 10:30:35 +00:00
52a19390d2 Replaced mkpsexe_from_toml_deps with mkpsexe-deps. 2023-11-14 10:22:18 +00:00
15974439fe mkpsexe now receives a config file.
This removed the need for `mkpsexe_from_toml`.
2023-11-14 10:05:25 +00:00
5bc9fadcf8 Merged several rust tools into a single package with multiple binaries.
This helps with sharing the configuration files between the `mk*` and `un*` tools.
The naming of things in `{mk,un}lang_file` is a bit weird because we don't really emit/consume a config, per se. It's just the lang file serialized to toml.
This should be changed in the future to contain a config with a reference to the lang toml file.
2023-11-14 10:01:10 +00:00