affd7034e6
Added pseudo::Decodable trait for decoding pseudo instructions.
2021-01-10 15:01:16 +00:00
543283f04f
Added dcb_util::DisplayWrapper and now using it in dcb-exe.
2021-01-10 14:03:03 +00:00
c04eb2245a
Changed all Encodable::encode impl declarations to be consistent.
2021-01-09 15:57:11 +00:00
00bcbd1422
Revised inst::basic's documentation and added an extra indirection with basic::Raw.
2021-01-09 15:43:33 +00:00
88db3def6f
Removed the dcb-exe::exe::raw module (from last commit).
...
Moved `InstFmt` to it's own module.
2021-01-09 15:07:28 +00:00
c0b1ee4fc5
Revised documentation in dcb-exe::exe::inst.
2021-01-09 15:01:01 +00:00
764628e691
Revised dcb_exe::exe::pos's impls.
...
Ran `cargo fmt` on the whole project.
2021-01-09 14:37:15 +00:00
21a0d7a4cb
Revised documentation for dcb-exe::exe.
2021-01-09 14:19:44 +00:00
9dd35a19a7
Fixed test in dcb/src/lib.rs
2021-01-09 13:50:12 +00:00
2f4aea7eec
Revised documentation and lints for dcb-exe/lib.rs.
...
Fixed formatting in `mult::Inst`'s `InstFmt::fmt` impl.
2021-01-09 13:45:02 +00:00
c0b2fd8c62
Added FuncTable and Func back to dcb-exe.
...
Added an iterator over function, data and misc (`ExeItem`) for the executable.
2021-01-09 12:34:43 +00:00
854d90858e
Fixed basic::Inst not decoding everything correctly.
2021-01-08 17:43:06 +00:00
5ad6f6cb5e
Added basic::shift instruction.
2021-01-08 16:15:28 +00:00
058da819ee
Implemented InstFmt for pseudo::Inst and Directive.
...
Renamed `PseudoInst` to `Inst`.
2021-01-08 15:53:35 +00:00
0483c63bfd
Added new InstFmt trait for formatting instructions.
2021-01-08 15:26:43 +00:00
979deae4c3
Moved ParseIter to it's own file.
2021-01-08 14:37:28 +00:00
7c196ec4a9
Added dcb_exe::exe::inst::basic::{Decodable, Encodable}.
2021-01-08 14:33:49 +00:00
48e29ec83c
Revamped most things.
...
Honstly not sure what's happened, but `dcb-exe` is mostly being redone from scratch.
2021-01-08 13:39:50 +00:00
c9644ae2fb
Removed type alises for strings of AsciiStrArr.
2020-11-13 21:09:49 +00:00
be5ea141b3
Fixed issue with card effect SetAttack using x instead of y for the attack type.
2020-11-13 16:02:33 +00:00
c78822db7e
Improved dcb-exe slightly, now gets compiled.
2020-11-11 20:07:12 +00:00
38ea8db1db
Split dcb into dcb-io, dcb-exe, dcb-util and dcb.
...
Also worked on `dcb-exe` slightly, but still not fully supported.
2020-11-11 17:56:37 +00:00
bda1755eed
Added dcb::game::card::table::Header and dcb::game::card::Header for the table header and card header in the table, respectively.
...
Modified `dcb::game::card::Table` to use these new headers.
2020-11-05 18:40:33 +00:00
94bb2d780d
Renamed some instructions' register names for consistency.
...
Made `BasicInst::Lui` it's own type.
Started working on `PseudoInst`.
Removed `dcb::game::exe` and `decompiler` binary temporarily.
Fixed the game file not being read / written correctly.
2020-11-05 15:59:59 +00:00
b974e89d74
Fixed wrong formatting for some instructions.
2020-11-03 12:14:12 +00:00
0e58b3df15
Renamed SimpleInstruction to BasicInstruction.
...
Added `BasicInst` type to replace `BasicInstruction` eventually.
Replaced `Formatter<'_>` with just `Formatter` where possible.
Added a `Display` impl for `Header`.
`dw` instructions now have their argument replaced instead of just having a comment.
2020-11-03 12:05:54 +00:00
e62561f228
Discovered some extra functions and data relating to start and main_loop.
2020-11-01 17:14:43 +00:00
03d0b3425f
Function comments & labels are now sorted ascending.
2020-11-01 05:54:02 +00:00
06f67c4cf0
Data and DataTable now acknowledge stacked / 'specialized' data locations.
...
Improved replacement of addresses with their labels somewhat.
Grealy extended the known data locations with hardware locations.
2020-11-01 05:51:55 +00:00
6f70c110c4
Data, DataTable, Func and FuncTable now just use String instead of providing a S: AsRef<str> generic.
...
Fixed `Pos` not decoding normal integers correctly.
Unwrapper all string-encoded hex values to simply hex values.
`Func` and `Data` now have some fields defaulted.
2020-11-01 04:28:38 +00:00
21c2019713
Modified DataTable and FuncTable to dynamically load the known functions instead of describing them in code.
...
Removed unecessary dependencies for `dcb` and `dcb-tools`.
`dcb::game::exe::Pos` is now deserialized properly as a hex-string.
2020-11-01 04:01:11 +00:00
dc3b66167e
Revamped game::exe::{Func, FuncTable}.
...
Added experimentally getting function arguments heuristically.
2020-10-30 09:15:46 +00:00
0e5ea3967f
Revamped game::exe::{Data, DataTable}.
...
Renamed `MergeSortedIter` to `DiscardingSortedMergeIter`.
2020-10-30 07:09:31 +00:00
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