Michel Heily
884f39ca8f
Refactor workspace structure
...
Former-commit-id: d6ab90563fa209b431661086f9ec2672bda02a96
2020-04-11 16:06:34 +03:00
Michel Heily
b21cd1e3d9
Refactor project workspace and fix build
...
Former-commit-id: 8e264cdbc9e5290654c29e6893a121bce73c29c9
2020-04-10 00:53:41 +03:00
Michel Heily
ff95b67ae1
Update gdbstub crate to version 0.1.2 and run cargo-update
...
Former-commit-id: 2db24a3f835b817519cc544d722c58437e98011f
2020-04-07 23:57:29 +03:00
Michel Heily
fb93ebb4ed
feat/arm7tdmi_dispatch_table: Done!
...
Moved away from using lazy_static for this one since every access to a
lazy_static reference adds a runtime check, Currently using a build.rs script to generate a const table instead.
Worked out the ARM decoding issues, seems to run fine now.
Though the dynamic decoding for ARM is broken now since I had to change things in Data Processing and MSR instructions
TODO use `const fn` when it becomes stable
Former-commit-id: ba09748ff74a403c7016adcbe0ca553b591f6855
2020-04-07 02:31:13 +03:00
Michel Heily
a523a37d32
[WIP] Start working on arm7tdmi dispatch table.
...
Lookup tables are generally faster than matching in most architectures.
There is some trouble in decoding some arm data processing instructions
so this is non-default feature for now
* Crashes on armwrestler but many games seem to work
Former-commit-id: 3c06ea344ae0097947d8cd5bd05b1f882c7f743a
2020-04-07 02:30:22 +03:00
Michel Heily
d938767430
feat/jni: Add rustboyadvance-jni crate to export some simple JNI bindings
...
Former-commit-id: d4e7a622a97215a8c1b7b50bb7f08d18cb9c5716
2020-02-23 00:30:38 +02:00
Michel Heily
778274b5ae
refactor: split "plat" binaries into separate crates
...
Former-commit-id: 73554b0128e036279f7ac895acb57d8f89cb1c96
2020-02-23 00:30:38 +02:00
Michel Heily
c50ab1ecd8
feat: Add basic gdbserver feature
...
Initially I began implementing the gdb protocol on my own, but I then found a
nice work-in-progress crate on https://github.com/daniel5151/gdbstub
that suited my needs.
Former-commit-id: f77557cbbd8652c2ed05ac439efc1956d8e99729
2020-02-21 22:12:58 +02:00
Michel Heily
84004ddb5c
windows: Add file icon to build targets
...
Former-commit-id: 2dae2e7818d86ddf9470afafd0404f0e7e021718
2020-02-12 22:18:58 +02:00
dependabot-preview[bot]
3a488e4487
build(deps): bump ansi_term from 0.11.0 to 0.12.1
...
Bumps [ansi_term](https://github.com/ogham/rust-ansi-term ) from 0.11.0 to 0.12.1.
- [Release notes](https://github.com/ogham/rust-ansi-term/releases )
- [Commits](https://github.com/ogham/rust-ansi-term/compare/v0.11.0...v0.12.1 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
Former-commit-id: 702534f36b62f34f48c13c64e0db1d195206c215
2020-02-07 17:10:21 +02:00
dependabot-preview[bot]
66d7f0f7f2
build(deps): bump zip from 0.5.3 to 0.5.4
...
Bumps [zip](https://github.com/mvdnes/zip-rs ) from 0.5.3 to 0.5.4.
- [Release notes](https://github.com/mvdnes/zip-rs/releases )
- [Commits](https://github.com/mvdnes/zip-rs/commits )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
Former-commit-id: 2c546f001f0e53ab6936f382ba9a9a40698337dd
2020-02-07 17:10:14 +02:00
dependabot-preview[bot]
6c879136f1
build(deps): bump colored from 1.8.0 to 1.9.2
...
Bumps [colored](https://github.com/mackwic/colored ) from 1.8.0 to 1.9.2.
- [Release notes](https://github.com/mackwic/colored/releases )
- [Changelog](https://github.com/mackwic/colored/blob/master/CHANGELOG.md )
- [Commits](https://github.com/mackwic/colored/compare/v1.8.0...v1.9.2 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
Former-commit-id: 1b24d07dd253bedd15df2eba727118cbb01ef44b
2020-02-07 17:05:13 +02:00
dependabot-preview[bot]
194b9a0b2a
build(deps): bump time from 0.1.42 to 0.2.6
...
Bumps [time](https://github.com/time-rs/time ) from 0.1.42 to 0.2.6.
- [Release notes](https://github.com/time-rs/time/releases )
- [Commits](https://github.com/time-rs/time/commits/v0.2.6 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
Former-commit-id: 9a9533684df743a5441be6ed0d0cd40633189c6b
2020-02-07 17:02:24 +02:00
dependabot-preview[bot]
9d383fa2c5
build(deps): bump num from 0.2.0 to 0.2.1
...
Bumps [num](https://github.com/rust-num/num ) from 0.2.0 to 0.2.1.
- [Release notes](https://github.com/rust-num/num/releases )
- [Changelog](https://github.com/rust-num/num/blob/master/RELEASES.md )
- [Commits](https://github.com/rust-num/num/compare/num-0.2.0...num-0.2.1 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
Former-commit-id: ba192b84e744980c2edb3969f94b25fc0974a1bb
2020-02-07 17:01:55 +02:00
dependabot-preview[bot]
26f016182b
build(deps): bump bitflags from 1.1.0 to 1.2.1
...
Bumps [bitflags](https://github.com/bitflags/bitflags ) from 1.1.0 to 1.2.1.
- [Release notes](https://github.com/bitflags/bitflags/releases )
- [Changelog](https://github.com/bitflags/bitflags/blob/master/CHANGELOG.md )
- [Commits](https://github.com/bitflags/bitflags/compare/1.1.0...1.2.1 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
Former-commit-id: 741a46a69dddb03d423776d760c933dab4076426
2020-02-07 17:01:35 +02:00
dependabot-preview[bot]
2a9f2270da
build(deps): bump rustyline from 5.0.6 to 6.0.0
...
Bumps [rustyline](https://github.com/kkawakam/rustyline ) from 5.0.6 to 6.0.0.
- [Release notes](https://github.com/kkawakam/rustyline/releases )
- [Commits](https://github.com/kkawakam/rustyline/compare/v5.0.6...v6.0.0 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
Former-commit-id: 138a28066ed7d421ac4d6cf54b5710f45bc02c4b
2020-02-07 16:59:55 +02:00
dependabot-preview[bot]
70eaedcc77
build(deps): bump sdl2 from 0.32.2 to 0.33.0
...
Bumps [sdl2](https://github.com/Rust-SDL2/rust-sdl2 ) from 0.32.2 to 0.33.0.
- [Release notes](https://github.com/Rust-SDL2/rust-sdl2/releases )
- [Changelog](https://github.com/Rust-SDL2/rust-sdl2/blob/master/changelog.md )
- [Commits](https://github.com/Rust-SDL2/rust-sdl2/commits )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
Former-commit-id: 3a2416ac596acb7f59ac94ff375fd02c9c60b1b4
2020-02-07 16:57:39 +02:00
Michel Heily
17560eeb0c
fix: Completly refactor GPU scanline composition code.
...
This change fixes #9 and emulates:
- Correct layer ordering
- Correct emulation of blending sfx
- Correct emulation of the object window (BIOS boot animation is now fixed)
Former-commit-id: caf46fe4b62cc54e6f2c02a8001da552f8e6b54a
2020-02-07 16:11:16 +02:00
Michel Heily
8f4e42d6d4
feat(logger): Add a logger to the project
...
Former-commit-id: aa0579884951857a136904b3147eaa553117e68e
2020-01-31 16:15:29 +02:00
Michel Heily
c20ac9cdf8
core: cartridge: Try to detect and print the backup type
...
In preparation for backup impl
Former-commit-id: 75efbbaea82ba30899787b46b8eaca834622493c
2020-01-17 16:11:43 +02:00
Michel Heily
dc1cd84225
feat/savestates: Implement savestates for plat/sdl2
...
Former-commit-id: e61193e0c9a937dd3b4b7e7e748d9a9b1e170e44
2020-01-16 20:18:32 +02:00
Michel Heily
d887602266
feat/savestates: Add serde and bincode traits to the project
...
Former-commit-id: b4699586bba03b8fcfc718ea08363a7067d31e20
2020-01-16 19:49:13 +02:00
Michel Heily
12ebcf44a2
refactor: Make debugger into a cargo feature
...
Former-commit-id: 50f28963d5f7c7b04a0ecd4be82ddd61bd59a39b
2020-01-13 01:11:58 +02:00
Michel Heily
49a3bc6fd0
feat: Add temporary project icon
...
Former-commit-id: 05da47f328f076045f4b27f521c72e03648ede77
2020-01-12 01:30:35 +02:00
Michel Heily
b00fbfb38c
gpu: refactor: Big refactor preparations
...
1) Decouple SysBus from Gpu
2) Split Gpu rendering function into separate modules
3) Cleanup
Former-commit-id: 0435ad1c9c1de72ed50769fabfea7c5f33b670e0
2019-12-29 23:44:34 +02:00
Michel Heily
d8545dd8cd
sdl2: Use callbacks with ring buffer instead of audio queue.
...
Better latencies, and also fast-forward (aka Turbo mode) sounds normal
this way.
Former-commit-id: d1075087e847c765a871157a7973c897575ef4d7
2019-12-28 17:03:59 +02:00
Michel Heily
a01e3ed9cd
Make sdl2 run as default for "cargo run"
...
Former-commit-id: 11c411582fa10e8391d1a9ce528e876b3da7cb22
2019-12-27 13:12:03 +02:00
Michel Heily
c9e80f4f60
Remove dead code
...
Former-commit-id: 5d5768ca6b73060197d9bacda61cba4c03804ad0
2019-12-27 12:41:36 +02:00
Michel Heily
c2ac3c5a10
Improve DMA code
...
Former-commit-id: 8fdb6195ceb323aebd8a26da98fe286d89ef8363
2019-12-27 12:37:32 +02:00
Michel Heily
38e504515b
rba-sdl2: Trying spin_sleep crate
...
Former-commit-id: 1c6a36a1a61be3949080a8c86915235aaf25d0e5
2019-12-20 19:02:33 +02:00
Michel Heily
3c7a734270
Add minifb based binary, currently it has better performance than the SDL2.
...
SDL2 rendering is really bottlenecking currently..
Former-commit-id: 8e04b799f248209a138990b2389e740b0d1d9f0f
2019-12-20 16:31:26 +02:00
Michel Heily
04d2edfc01
Refactor "backend" concept
...
See plat/sdl2
Former-commit-id: 5f7c9625467003d5b73307959095eb5365db523e
2019-12-20 15:11:26 +02:00
Yonatan Goldschmidt
60c77869df
Add cpal
extern crate
...
I really hope all these additions to Cargo.lock are actually its deps...
Former-commit-id: 7c85f330ea3c27f8ebae7020dc4a46d7d557affd
2019-12-20 15:11:26 +02:00
Michel Heily
c117cbe924
Make the debugger work again, but currently breakpoints are not supported.
...
Added memory write command and the ability to pause the debugger with Ctrl-C
Former-commit-id: 83d141fa191dadefb84f7c9de163631a69af8324
2019-11-12 18:22:00 +02:00
Michel Heily
3a1d5c10ce
Fix many bugs, refactor many things..
...
Passing: Armwrestler, cpu_test by Dead_Body
Former-commit-id: 80d815d110c5341515dd01c476a0d7e25ecb66a8
2019-11-09 01:06:24 +02:00
Michel Heily
7cc1a50d12
Support zip files and add --no-framerate-limit
...
Former-commit-id: 62a7122fb0b3e832eeb3cbf347a0966e4cd32d50
2019-09-11 21:26:40 +03:00
Michel Heily
639993edd7
Add blending and mosaic SFX, and cleanup code.
...
Former-commit-id: b9f0ccaf1820da61f49ebeb2af5beff5cccd722f
2019-08-13 22:15:36 +03:00
Michel Heily
c7dd713605
The big ioregs refactoring.
...
This commit refactors the ioregs:
* Use bitfield crate to implement the GPU ioregs.
* IoRegs are stored in their own variables bindings (i.e, Gpu related ioregs are now fields of the Gpu struct)
- This optimize performance quiet alot from my testings - since every scanline was accessing deseralizing ioregs from sysbus. (Getting constant 59fps now)
* For now, comment out DMA model
Also, cleaned the code up to eliminate rustc warnings.
Former-commit-id: 9077695c446ebd1a71783acfdd9819245aa02d7a
2019-08-03 00:24:15 +03:00
Michel Heily
7e9c0e31da
Add minifb backend - Armwrestler now plays !
...
Former-commit-id: d72ea9139e04624322cf3bc4a8ab330f6bb133a4
2019-07-20 23:02:18 +03:00
Michel Heily
1084be52b8
WIP mode0 rendering
...
Former-commit-id: 6bce375f9373bbddf4522da5ecc2ea3584373847
2019-07-15 19:23:16 +03:00
Michel Heily
efb5d361d6
Add PaletteView command for the debugger.
...
Former-commit-id: c4e0250eea700cfbcbb9f904cde7b6bc055d3e05
2019-07-06 16:04:43 +03:00
Michel Heily
cbddeffd91
arm: Implement MSR_REG and fix some prefetching errors
...
Former-commit-id: 177b8966159ed86472b0d4d031363df72d46807a
2019-07-02 16:53:29 +03:00
Michel Heily
967ccca8dd
Mega commit - model CPU pipelining.
...
I except many bugs to arise..
Former-commit-id: bcc6ea57af803f783b0dd548b50956b3ccda2b1a
2019-06-29 22:23:12 +03:00
Michel Heily
a70b92d5a4
Rename project
2019-06-27 13:15:46 +03:00
Michel Heily
e5d93f689f
Work..
...
Refactor disassembler to a struct.
Implement more commands;
2019-06-27 13:15:34 +03:00
Michel Heily
fc28d89097
Implement a few debugger commands
2019-06-27 13:15:34 +03:00
Michel Heily
107e34aca1
Start debugger repl
2019-06-27 13:15:34 +03:00
Michel Heily
9330c53957
Start modeling CPU
...
Wrote a shallow skeleton of a CPU Core.
Finally made the disassembler a clap subcommand.
2019-06-27 13:15:19 +03:00
Michel Heily
addea1efa0
Merge both packages
2019-06-24 22:02:00 +03:00
Michel Heily
094cbb5f29
Refactor disassembler binary into arm7tdmi package
2019-06-24 21:45:25 +03:00