Commit Graph

17 Commits

Author SHA1 Message Date
transistor fet
7dac32d844
Added github actions for PRs (#3)
* Added github actions for PRs

* Added some rustfmt::skip attributes

* Applied formatting

* Added rustfmt component in action

* Configured to use rustfmt version 2 which fixes some comment formatting

* Removed ready_for_review condition for github actions

Since it has the synchronize condition, it will update after each
commit, whether in draft or not, so I think this should be alright
2024-03-17 11:03:52 -07:00
transistor
d0037c8125 Fixed tests and clippy warnings 2024-03-16 13:15:34 -07:00
transistor
8b274f72cc Modified to use emulator-hal traits 2024-03-08 19:41:36 -08:00
transistor
cff6a48cc7 Refactoring m68k to use a temporary cycle struct
I'm trying to extract the memory/bus interface, and pass it in at
the start of each cycle instead of having the BusPort permanently
embedded, which will allow migrating to emulator-hal.

The functional way would be argument drilling; passing an extra argument
to each function in the entire execution core.  The problem is that it's
messy, so a solution that is still functional is to implement all of the
execution logic on a newtype that contains a reference to the mutable
state and the owned cycle data, and at the end of the cycle, decompose
the M68kCycleGuard that holds the reference, and keep the cycle data for
debugging purposes.
2024-03-02 23:48:19 -08:00
transistor
83289d6b8e Modified Z80 to use a custom error type 2024-03-02 10:57:16 -08:00
transistor
9ff431ebc6 Split clocks into femtos crate 2024-02-24 13:02:09 -08:00
transistor
f9d613b3b9 Fixed some Z80 instruction timings 2023-06-10 21:55:25 -07:00
transistor
708e7706f3 Fixed many of the undocumented tests
Now it's up to 99% tests passing, 15362 are still failing, but many
of those are the unimplemented IN/OUT instructions, which the Genesis
doesn't seem to use
2023-05-22 21:12:05 -07:00
transistor
64b18662d5 Added Z80 timings, and enabled check in rad tests 2023-05-15 21:13:52 -07:00
transistor
aaa7952dd0 Split the Z80 instructions into individual functions like the m68k 2023-05-14 15:49:38 -07:00
transistor
f3d1fd0ae2 Added IM, IFF1, and IFF2 checking to Z80 tests, and fixed issues with Z80 impl 2023-05-13 19:41:20 -07:00
transistor
f0cbf5f2ca Fixed some IY instructions, and a few minor fixes 2023-05-13 16:17:14 -07:00
transistor
9694036e33 Fixed Z80 to pass the rad tests 2023-05-09 22:58:56 -07:00
transistor
f8083db181 Added raddad772/jsmoo's Z80 test runner
Special thanks to raddad772 https://github.com/raddad772

Also added some fixes to the Z80 for panicking math operations, but
it still won't complete due to an unimplemented instruction
2023-05-09 21:50:42 -07:00
transistor
86eb73f78a Added clock argument to addressable operations 2023-04-23 18:49:40 -07:00
transistor
7bdd63bc76 Fixed all clippy warnings 2023-03-05 20:19:49 -08:00
transistor
083f3607ba Major reorganization into crates
I wanted to make this a bit more modular, so it's easier in theory to
write external crates that can reuse bits, and selectively compile in
bits, such as adding new systems or new cpu implementations
2022-09-24 23:14:03 -07:00