Commit graph

31 commits

Author SHA1 Message Date
Michel Heily 4c5d35c5d1 Clippy fixes
Former-commit-id: 6107b2249a5b5e42eb5add5f6a0c37c373d77147
Former-commit-id: 1387473cc566db7eb898222b319cc1bcfde886f5
2022-09-08 23:40:38 +03:00
Michel Heily 12d9edf5c4 Fix some cargo-clippy, and broken sub-crates
Former-commit-id: 93db7bc11bff9a48f4d66e0a378cd77ab42ca197
Former-commit-id: a6ce714c2a6a4112ff30d748c0686b1b2da41c6b
2022-09-05 00:34:00 +03:00
Michel Heily 28fb9ffa70 chore: Refactor into crates
Been wanting to do this for a long time.
This does impose performance issues when building with the vanilla
release profile, as cargo does not perform optimizations across crate
boundary (we care mostly about inlining).
so I added release-lto profile

Also fixed some broken stuff I found across the project, meh


Former-commit-id: 06d03263cc6245313f3ea22c715479ab6da7c4d4
Former-commit-id: f93abd10c67ea8a3b8072b47462be5eca4f3e02b
2022-09-04 23:54:44 +03:00
Michel Heily 76d9102231 arm: remove old code
Former-commit-id: 906a5b902726c000fcdc1a01443c6662da72b2c9
Former-commit-id: ab2dac2ae2c066758645026b6484cd1a9355831a
2021-07-03 22:29:55 +03:00
Michel Heily ff472db249 core: debugger: Use mut references for GameBoyAdvance
Former-commit-id: e1490c0777537e7d8eee4e9d1fbb53f8c957fdc7
Former-commit-id: f6be5b7940c4f3d517fa564830be607321ade534
2021-06-09 01:24:31 +03:00
Michel Heily 2ec52fb722 sdl2: Add silent mode
Former-commit-id: b8e3a8809501f32f819b74a1e4dd094d77a4b367
Former-commit-id: 027be1f05ae9f274e6a3527d209ac5ff696d8c56
2021-06-09 00:54:09 +03:00
Michel Heily 1ca261e5c7 core: Get rid of that BoxedMemory nonsense
Just directly impl Bus trait for Box<[u8]>


Former-commit-id: 7b8a29972520afb7ff197708b9c2146b293a5f29
Former-commit-id: 0c528165ed899fad14b1e25995fdfe8ae004da2a
2020-10-17 16:58:52 -07:00
Michel Heily bce4456f42 [breaking-change] Remove game ROM and bios from savestate file.
This breaks the API of GameBoyAdvanvce::save_state and restore_state methods.
Currently as WIP only SDL2 frontend will adjust.


Former-commit-id: 1df15c8697fef0f6adddb07a6d653947c622ba12
Former-commit-id: 2ea339dc6a0d1e7539d167c4df29694b408303da
2020-10-17 06:36:02 -07:00
Michel Heily 3c6628138c platform: Minor fixes and adjustments from previous commit
Former-commit-id: b8e8f73c8202f93e4bb2a575ee3d1b3083ddabb1
Former-commit-id: 355c634b4da8fbea1d228da8fc95e37012237bbd
2020-09-30 00:47:30 +03:00
Michel Heily ba2eff82ac platform/android: Big re-write of native interface
Mainly convert mainloop and audio thread into native code for
performance increase. (Calling into JNI every frame was costy)

The code was cleaned up quite a bit, but I may have introduced new bugs
in this process :<


Former-commit-id: fdbc21b5ab39f3d2e36647fd1177dc9a84a16980
Former-commit-id: ac765dbee8c994e1b69cc694846511837c2685b9
2020-09-30 00:27:00 +03:00
Michel Heily 879374a9b0 Refactor dir rustboyadvance-core -> core
Former-commit-id: 5af970f6d56d321472f2b91885e41ca113390986
Former-commit-id: 748e222a36362eb5ac8909068c32f2d3f98ca536
2020-05-30 13:43:37 +03:00
Michel Heily c131e73ce1 Support controll remove/add events for SDL2 frontend
Former-commit-id: b0e97f9c9b3f0b32140f1425159088270be6a433
Former-commit-id: b158c5c4ac491561f33f71d2bcd5cf069d55b343
2020-05-23 11:45:25 +03:00
Michel Heily bccb31c142 Remove 'reqwest' dependency from sdl2 frontend
It was useless and lengthened the build time


Former-commit-id: 44b9c836d9b75142ef4bdb3602ede3f87b03f08f
Former-commit-id: 4c737704103654673366a7a83bf9b7614df40416
2020-05-21 23:18:20 +03:00
Michel Heily e1ec96f9e4 Use elf-support feature in sdl2 frontend
Former-commit-id: 70d1718ae5a18b8ffe7d03fd2a251479224a41ac
Former-commit-id: 54ec2c969dca62644b28bd936e2a03b3786efc52
2020-05-21 23:18:20 +03:00
Michel Heily 8e1ba1117c core: More RTC work
Former-commit-id: be2955b08d65c547d206d637ae499dbad892a87a
Former-commit-id: 19f0e4e6f9c598c35fb8172d93a1519f921eb27f
2020-05-21 23:18:20 +03:00
Tibor Nagy 6161892237 sdl2: Only import things under Windows in build.rs
To suppress unused import warnings under Linux.

Former-commit-id: 8730aa1d753861e5179f85ee9c95c66ad0dd62bd
Former-commit-id: 505dc43254fa109cd96feee8de5f6d8e2d30abf3
2020-05-15 16:25:27 +03:00
Tibor Nagy 7646c2d6de sdl2: Clear Sdl2Video canvas before drawing onto it
Resizing the window could leave artifacts from the previous frame on
the canvas that is not overwritten by the self.canvas.copy(...) call.


Former-commit-id: c5479c3e9346a25f2d5e7a7f7b8198a71d16e16a
Former-commit-id: a2cc07de426ed1eca5437e30f4a15278065d856c
2020-05-13 22:17:44 +03:00
Tibor Nagy b980c7aa7d sdl2: Add window icon
Former-commit-id: 920d73c22836099234db2c1fe096f2d4268174e0
Former-commit-id: e2d6902830e3887255e0d816c056f199f1dc453b
2020-05-13 22:17:44 +03:00
Tibor Nagy bdf99282da sdl2: Window needs to be redrawn when restoring it from the taskbar
Fixes regression introduced by d0c525d80c3a09680cb9dfa056030db3ac6b7ce3 [formerly fc575f9f12e3782aa08f13aebdadbac50e98b2c5] [formerly fe172bedc6bf70b1022f419986585981bc9f3642]


Former-commit-id: 0f4c3ef3c12f794429ca9f498ca7314835375cc4
Former-commit-id: 9a8e5eb676e3e307af8cd5982d4d50204418c34d
2020-05-13 22:17:44 +03:00
Michel Heily 13c3e74973 sdl2: Allow toggling frame limiter with right stick
Former-commit-id: 1207b84dbd6162986e5ce790e13e1e2c0b125ebf
Former-commit-id: c7fe6ef3e5ec66fc63e5193e294bfb9d7f469afe
2020-05-12 08:09:33 +03:00
Tibor Nagy 0ae9ef14c3 Fix busy waiting in wait_for_rom() by using a blocking event iterator
Also move the redraw code into a closure to be able to call it from
two places. By the result of this waiting for ROMs no longer consumes
100% of a CPU core.


Former-commit-id: bc86ade197221eb8d357af91a3b59f4eb165adc5
Former-commit-id: 521f361872964d77b88097d7baa6a4b6b713224e
2020-05-12 08:07:13 +03:00
Michel Heily 10bed1087a Add analogue stick support for controllers in SDL2
Former-commit-id: b3ccff53ded59930a0fe997f1bbbf83fd5e356d8
Former-commit-id: c3c286d1fccf6d9fc5478cd9f6b13d6a7d670b4b
2020-05-11 20:26:26 +03:00
Tibor Nagy 59111ee062 Implement controller support for the SDL2 frontend
Former-commit-id: 60c49c399631cda7ff069e47718544ffdc93f9b8
Former-commit-id: abe52243473054ba8042a5874cefcdcfa504974a
2020-05-11 20:26:11 +03:00
Tibor Nagy b2928de614 Use positional keyboard mapping instead of symbolic in the SDL2 frontend
Former-commit-id: 778b79f4afd5d290399e518f9b1a45470c5ad3a9
Former-commit-id: 58b2e0dd75acbe01fe0f4e73c0fa73af8caa88c2
2020-05-04 21:23:33 +03:00
Michel Heily 27a7cb14cf Prettify sdl2 main loop
Former-commit-id: dc925873f8a27bc8f50392659fad3cb07adde82e
Former-commit-id: 50ca19536687bd058c906168b28a86a95c6a42d5
2020-05-01 18:36:41 +03:00
Michel Heily ef3f39defc Refactor rustboyadvance-core crate directory structure
Former-commit-id: 1aad71d283f7ec5a0f0328f9b683f51e459ae56f
Former-commit-id: 42bb30d300c17bace976d106f6da1aca8c0d7643
2020-05-01 18:13:11 +03:00
Michel Heily a56f515563 sdl2 UI improvements, Auto download Normmatt BIOS
Former-commit-id: 9a8bb7f68ba7638e758b01cef17654b6057b1db3
Former-commit-id: 83dc923063d75a167662474446f9fa7eb0ee836b
2020-05-01 17:56:26 +03:00
Michel Heily fc988ba5b5 Add SDL2 binaries and use them when building locally
Former-commit-id: f51fad54302b9a0af416cfccdb318fede4384b6a
Former-commit-id: e8362f4552c6eab911751b7900bca0910eff1dd4
2020-04-30 19:52:34 +03:00
Michel Heily 884f39ca8f Refactor workspace structure
Former-commit-id: d6ab90563fa209b431661086f9ec2672bda02a96
2020-04-11 16:06:34 +03:00
Michel Heily 8b6d356924 Add new project icon
Derived from rusts' lovely public domain mascot, Ferris the crab!

The design is based from https://rustacean.net/assets/rustacean-flat-happy.svg


Former-commit-id: cac7eb31b5913a9a536c55f474018db0c2d7e2a8
2020-04-10 16:45:55 +03:00
Michel Heily b21cd1e3d9 Refactor project workspace and fix build
Former-commit-id: 8e264cdbc9e5290654c29e6893a121bce73c29c9
2020-04-10 00:53:41 +03:00