Commit Graph

134 Commits

Author SHA1 Message Date
998ef01b54 Moved game:.exe::Data from an enum to a struct with the kind of data.
Renamed `int` usage to `u32` throughout.
Added `Dh` and `Db` directives.
Unfortunately, function end printing just broke. This feature was minor and will be currently removed as other parts are revamped.
2020-10-30 06:28:58 +00:00
35d0909152 Changed function signature from C style to Rust style.
`AllData::get()` can not retrieve data before it.
2020-10-29 11:44:44 +00:00
5e4c920f8f Added a way of forcing certain parts to be read as dw. 2020-10-29 01:30:42 +00:00
00a85397a7 Data no longer stores it's end position.
Removed `Directive::DwRepeat`.
Fixed `WithInstructionsIter` stoping on `jr $ra` instead of at the end of the function.
2020-10-29 00:38:31 +00:00
15bee575f8 Fixed function ends being at the wrong place. 2020-10-28 22:37:12 +00:00
7d380510da Added dcb::game::exe::{Data, AllData} contrapart to Func/Funcs. 2020-10-28 22:27:02 +00:00
c7ab0e5e94 Directive now only decodes dw after the code end.
Load/Store instructions now display what function/string/data they're loading inline.
2020-10-28 19:55:36 +00:00
d73a9ff415 Added local labels to functions.
Jump instructions are now labeled with their label / function.
2020-10-28 19:18:22 +00:00
580c9b6ea4 Moved Funcs into it's own module.
Moved all known functions into `Func`.
2020-10-28 17:45:32 +00:00
343c9eca1c Fixed Beq and Bne instructions' immediate being decoded wrong. 2020-10-28 17:35:29 +00:00
da782b5a52 Readded the missing local indexes, strings and data from last commit. 2020-10-28 17:31:40 +00:00
17b3aa0e4f Added dcb::util::merge_iter.
Improved `dcb::game::exe::Func` yet again.
2020-10-28 17:27:25 +00:00
829b8852fe Greatly improved func module in dcb::game::exe. 2020-10-27 22:43:53 +00:00
246cde5fd8 Fixed using the wrong calculating for PseudoInstruction::{Addiu, /* All load / store instructions */}. 2020-10-27 22:36:38 +00:00
8ee151dbe1 Fixed some wrong instructios in relation to their immediate's sign. 2020-10-27 22:18:44 +00:00
bd99546ae6 Fixed formatter not triggering on last commit. 2020-10-26 19:59:08 +00:00
2df43765fb Added missing aliases for PseudoInstruction::MovReg.
Changed `PseudoInstruction::{Li16, LiNeg16}` to `PseudoInstruction::{LiU16, LiI16}`.
Added missing `PseudoInstruction::AddiuAssign`.
2020-10-26 19:54:30 +00:00
8a090411b1 Now using glob imports in impl FromRawIter for PseudoInstruction. 2020-10-26 01:26:01 +00:00
f4c74402f2 Fixed extra whitespace in simple.rs 2020-10-26 01:23:48 +00:00
eb51f448ce SimpleInstruction is now defined using bitmatch instead of a macro. 2020-10-26 01:14:16 +00:00
2d931f10cb Moved Pos to game::exe::pos.
Adding missing instructions `break` + `syscall`.
Added `Func` for the game executable.
`Pos` now implements `serde::{Serialize, Deserialize}`.
2020-10-25 22:46:04 +00:00
233eec4fa1 Added heuristics-based decompiler to dcb-tools. 2020-10-25 19:12:54 +00:00
7d1ebd5fa3 Added instruction decoding to the executable. 2020-10-25 19:11:41 +00:00
46e794c1c5 Fixed wrong formatting of references for SignedHex. 2020-10-24 20:18:38 +01:00
6c29f8e9ca Added simple format wrapper for displaying a signed hexadecimal number in dcb::util::signed_hex.
Now depending on `int-conv`.
2020-10-24 19:33:48 +01:00
06c88e506d Added new deserializer for the game executable. 2020-10-23 03:00:37 +01:00
147a44e4cd Fixed missing doc links. 2020-10-22 01:02:01 +01:00
128945e52f Removed unnecessary rustfmt.toml from dcb-tools. 2020-10-21 01:31:34 +01:00
402a653442 Now not ignoring certain utilities in resources/. 2020-10-21 01:29:50 +01:00
8e48e530ab Removed TODO based on currently nightly supporting the feature. 2020-10-21 01:23:02 +01:00
de5c550e7a Fully integrated dcb-tools into the repo. 2020-10-21 01:17:41 +01:00
27a0008740 Merge branch 'dcb-tools' 2020-10-21 00:54:53 +01:00
5a8f2cc1f5 Moved project into sub-folder 'dcb-tools' in preparation for merge with main repo 2020-10-21 00:54:06 +01:00
00a527744c Now informing the compiler of certain invariants in AsciiStrArr::len.
Removed certain impossible debug asserts.
2020-10-21 00:35:33 +01:00
9324f88a96 Fixed guarantees in <[u8; N+1] as NullAsciiString<N>>::write_string. 2020-10-21 00:17:11 +01:00
3b4d814e5c Removed contracts dependency.
Added error alias `dcb::ascii_str_arr::FromUtf8Error`.
Improved several functions within `dcb::ascii_str_arr`.
Revised errors in `dcb::ascii_str_arr`.
2020-10-08 11:21:11 +01:00
4a3bd9a5cc Addressed new clippy lints.
Made `dcb::game::deck::CardId` a transparent struct over an alias.
Improved implementations of `Bytes for dcb::game::deck::Deck`.
`Read`/`Write` implementations of `dcb::GameFile` now make stronger guarantees in their implementation, using `unsafe` where appropriate.
2020-10-08 10:35:57 +01:00
8296adffe7 Added derive macro ProxySentinal for deriving Bytes.
Removed `dcb::util::generate_enum_property_option`.
2020-10-06 11:21:59 +01:00
4c9fa02bf2 Now using ref-cast for casting between repr(transparent) references instead of a From hack. 2020-10-06 08:24:50 +01:00
47303aa8e9 Revised generate_enum_property_option to be closer to an eventual derive. 2020-09-20 02:48:32 +01:00
2a39f8b438 Moved Bytes interface to dcb-bytes crate.
Instead of implementing `Bytes for Option<T>`, a proxy is now used, as `dcb-bytes` is in a separate crate.
2020-09-20 02:34:39 +01:00
152c8250ff Made dcb a workspace and moved the current implementation to the main crate dcb. 2020-09-20 00:45:38 +01:00
a4eba109bf Moved Digimon's errors to their own module. 2020-09-20 00:34:08 +01:00
aa7edaf92b Fixed bounds on Bytes's associated types. 2020-09-19 23:38:08 +01:00
1b276918d3 Fixed issue with formatter. 2020-09-18 17:30:31 +01:00
e18612b8c7 Added forgotten invariant on AsciiStrArr. 2020-09-18 17:25:15 +01:00
333fab38b4 Extended interface of AsciiStrArr.
`AsciiStrArr` now stores it's chracters as `MaybeUninit`.
Added unit tests to `AsciiStrArr`.
Fixed documentaton with `address::real::ToDataError`.
2020-09-18 17:24:08 +01:00
fac333c0ed Improved AsciiStrArr. 2020-09-18 04:42:26 +01:00
d66b855ab3 Improved slicing and indexing into AsciiStrArr.
Added `TryFrom<&str> for AsciiStrArr<N>`.
2020-09-18 03:56:14 +01:00
cdaf7047f4 Added AsciiStrArr and modified all modules to use it. 2020-09-18 01:45:58 +01:00