Fix some cargo-clippy, and broken sub-crates
Former-commit-id: 93db7bc11bff9a48f4d66e0a378cd77ab42ca197 Former-commit-id: a6ce714c2a6a4112ff30d748c0686b1b2da41c6b
This commit is contained in:
parent
255806ff69
commit
12d9edf5c4
3
Cargo.lock
generated
3
Cargo.lock
generated
|
@ -1413,6 +1413,7 @@ dependencies = [
|
||||||
"jni",
|
"jni",
|
||||||
"log 0.4.11",
|
"log 0.4.11",
|
||||||
"rustboyadvance-core",
|
"rustboyadvance-core",
|
||||||
|
"rustboyadvance-utils",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -1425,6 +1426,7 @@ dependencies = [
|
||||||
"libretro-sys",
|
"libretro-sys",
|
||||||
"log 0.4.11",
|
"log 0.4.11",
|
||||||
"rustboyadvance-core",
|
"rustboyadvance-core",
|
||||||
|
"rustboyadvance-utils",
|
||||||
"unsafe_unwrap",
|
"unsafe_unwrap",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -1472,6 +1474,7 @@ dependencies = [
|
||||||
"js-sys",
|
"js-sys",
|
||||||
"log 0.4.11",
|
"log 0.4.11",
|
||||||
"rustboyadvance-core",
|
"rustboyadvance-core",
|
||||||
|
"rustboyadvance-utils",
|
||||||
"wasm-bindgen",
|
"wasm-bindgen",
|
||||||
"wasm-bindgen-console-logger",
|
"wasm-bindgen-console-logger",
|
||||||
"wasm-bindgen-test",
|
"wasm-bindgen-test",
|
||||||
|
|
|
@ -265,7 +265,7 @@ fn arm_decode(i: u32) -> (&'static str, String) {
|
||||||
}
|
}
|
||||||
(0b010, 0b0001) => {
|
(0b010, 0b0001) => {
|
||||||
if 0b010 == i.bit_range(20..23) {
|
if 0b010 == i.bit_range(20..23) {
|
||||||
Some(("BranchExchange", format!("exec_arm_bx")))
|
Some(("BranchExchange", "exec_arm_bx".to_string()))
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
|
|
|
@ -336,9 +336,7 @@ impl<I: MemoryInterface> Arm7tdmiCore<I> {
|
||||||
}
|
}
|
||||||
|
|
||||||
if !LOAD || base_reg != dest_reg {
|
if !LOAD || base_reg != dest_reg {
|
||||||
if !PRE_INDEX {
|
if !PRE_INDEX || WRITEBACK{
|
||||||
self.set_reg(base_reg, effective_addr);
|
|
||||||
} else if WRITEBACK {
|
|
||||||
self.set_reg(base_reg, effective_addr);
|
self.set_reg(base_reg, effective_addr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -496,8 +496,6 @@ mod registers {
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
use std::cell::Cell;
|
|
||||||
use std::rc::Rc;
|
|
||||||
|
|
||||||
fn transmit(rtc: &mut Rtc, gpio_state: &GpioState, bit: u8) {
|
fn transmit(rtc: &mut Rtc, gpio_state: &GpioState, bit: u8) {
|
||||||
rtc.write(&gpio_state, 0b0100_u16 | (u16::from(bit) << 1));
|
rtc.write(&gpio_state, 0b0100_u16 | (u16::from(bit) << 1));
|
||||||
|
@ -617,7 +615,7 @@ mod tests {
|
||||||
let mut bytes = [0];
|
let mut bytes = [0];
|
||||||
receive_bytes(&mut rtc, &gpio_state, &mut bytes);
|
receive_bytes(&mut rtc, &gpio_state, &mut bytes);
|
||||||
|
|
||||||
let mut read_status = registers::StatusRegister(bytes[0]);
|
let read_status = registers::StatusRegister(bytes[0]);
|
||||||
assert_eq!(read_status.mode_24h(), true);
|
assert_eq!(read_status.mode_24h(), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -577,18 +577,18 @@ mod tests {
|
||||||
macro_rules! update {
|
macro_rules! update {
|
||||||
($cycles:expr) => {
|
($cycles:expr) => {
|
||||||
sched.update($cycles);
|
sched.update($cycles);
|
||||||
let (event, cycles_late) = sched.pop_pending_event().unwrap();
|
let (event, event_time) = sched.pop_pending_event().unwrap();
|
||||||
assert_eq!(cycles_late, 0);
|
assert_eq!(event_time, sched.timestamp());
|
||||||
match event {
|
let next_event = match event {
|
||||||
EventType::Gpu(event) => gpu.on_event(
|
EventType::Gpu(event) => gpu.on_event(
|
||||||
event,
|
event,
|
||||||
cycles_late,
|
|
||||||
&mut dma_notifier,
|
&mut dma_notifier,
|
||||||
#[cfg(not(feature = "no_video_interface"))]
|
#[cfg(not(feature = "no_video_interface"))]
|
||||||
&video_clone,
|
&video_clone,
|
||||||
),
|
),
|
||||||
_ => panic!("Found unexpected event in queue!"),
|
_ => panic!("Found unexpected event in queue!"),
|
||||||
}
|
};
|
||||||
|
sched.schedule(next_event);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -109,12 +109,15 @@ pub struct Scheduler {
|
||||||
pub type SharedScheduler = Shared<Scheduler>;
|
pub type SharedScheduler = Shared<Scheduler>;
|
||||||
|
|
||||||
impl Scheduler {
|
impl Scheduler {
|
||||||
pub fn new_shared() -> SharedScheduler {
|
pub fn new() -> Scheduler {
|
||||||
let sched = Scheduler {
|
Scheduler {
|
||||||
timestamp: 0,
|
timestamp: 0,
|
||||||
events: BinaryHeap::with_capacity(NUM_EVENTS),
|
events: BinaryHeap::with_capacity(NUM_EVENTS),
|
||||||
};
|
}
|
||||||
SharedScheduler::new(sched)
|
}
|
||||||
|
|
||||||
|
pub fn new_shared() -> SharedScheduler {
|
||||||
|
Scheduler::new().make_shared()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn make_shared(self) -> SharedScheduler {
|
pub fn make_shared(self) -> SharedScheduler {
|
||||||
|
|
|
@ -11,6 +11,7 @@ crate-type = ["staticlib", "cdylib"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
rustboyadvance-core = {path = "../../core/", features = ["no_video_interface"]}
|
rustboyadvance-core = {path = "../../core/", features = ["no_video_interface"]}
|
||||||
|
rustboyadvance-utils = {path = "../../utils/" }
|
||||||
jni = "0.17.0"
|
jni = "0.17.0"
|
||||||
log = {version = "0.4.8", features = ["release_max_level_info", "max_level_debug"]}
|
log = {version = "0.4.8", features = ["release_max_level_info", "max_level_debug"]}
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ use std::sync::mpsc::{channel, Sender};
|
||||||
use std::thread;
|
use std::thread;
|
||||||
use std::thread::JoinHandle;
|
use std::thread::JoinHandle;
|
||||||
|
|
||||||
use rustboyadvance_core::util::audio::Consumer;
|
use rustboyadvance_utils::audio::Consumer;
|
||||||
|
|
||||||
use jni::JavaVM;
|
use jni::JavaVM;
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
use rustboyadvance_core::prelude::*;
|
use rustboyadvance_core::prelude::*;
|
||||||
use rustboyadvance_core::util::audio::{AudioRingBuffer, Producer};
|
use rustboyadvance_utils::audio::{AudioRingBuffer, Producer};
|
||||||
// use rustboyadvance_core::util::FpsCounter;
|
// use rustboyadvance_core::util::FpsCounter;
|
||||||
|
|
||||||
use std::cell::RefCell;
|
use std::cell::RefCell;
|
||||||
|
|
|
@ -289,7 +289,7 @@ pub mod bindings {
|
||||||
pub unsafe extern "C" fn Java_com_mrmichel_rustboyadvance_EmulatorBindings_log(
|
pub unsafe extern "C" fn Java_com_mrmichel_rustboyadvance_EmulatorBindings_log(
|
||||||
_env: JNIEnv,
|
_env: JNIEnv,
|
||||||
_obj: JClass,
|
_obj: JClass,
|
||||||
ctx: jlong,
|
_ctx: jlong,
|
||||||
) {
|
) {
|
||||||
info!("unimplemented")
|
info!("unimplemented")
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,6 +11,7 @@ crate-type = ["cdylib"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
rustboyadvance-core = { path = "../../core/", features = ["no_video_interface"] }
|
rustboyadvance-core = { path = "../../core/", features = ["no_video_interface"] }
|
||||||
|
rustboyadvance-utils = { path = "../../utils" }
|
||||||
log = "0.4.8"
|
log = "0.4.8"
|
||||||
libc = "0.2"
|
libc = "0.2"
|
||||||
libretro-sys = "0.1.1"
|
libretro-sys = "0.1.1"
|
||||||
|
|
|
@ -13,7 +13,7 @@ use unsafe_unwrap::UnsafeUnwrap;
|
||||||
|
|
||||||
use rustboyadvance_core::keypad::Keys as GbaButton;
|
use rustboyadvance_core::keypad::Keys as GbaButton;
|
||||||
use rustboyadvance_core::prelude::*;
|
use rustboyadvance_core::prelude::*;
|
||||||
use rustboyadvance_core::util::audio::AudioRingBuffer;
|
use rustboyadvance_utils::audio::AudioRingBuffer;
|
||||||
|
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
|
||||||
|
@ -115,7 +115,7 @@ impl libretro_backend::Core for RustBoyAdvanceCore {
|
||||||
|
|
||||||
let hwif = Rc::new(RefCell::new(HwInterface {
|
let hwif = Rc::new(RefCell::new(HwInterface {
|
||||||
key_state: rustboyadvance_core::keypad::KEYINPUT_ALL_RELEASED,
|
key_state: rustboyadvance_core::keypad::KEYINPUT_ALL_RELEASED,
|
||||||
audio_ring_buffer: AudioRingBuffer::new(),
|
audio_ring_buffer: Default::default(),
|
||||||
}));
|
}));
|
||||||
let gba = GameBoyAdvance::new(
|
let gba = GameBoyAdvance::new(
|
||||||
bios.into_boxed_slice(),
|
bios.into_boxed_slice(),
|
||||||
|
|
|
@ -48,6 +48,7 @@ use rustboyadvance_core::prelude::*;
|
||||||
use rustboyadvance_utils::FpsCounter;
|
use rustboyadvance_utils::FpsCounter;
|
||||||
|
|
||||||
const LOG_DIR: &str = ".logs";
|
const LOG_DIR: &str = ".logs";
|
||||||
|
#[cfg(feature = "gdb")]
|
||||||
const DEFAULT_GDB_SERVER_ADDR: &'static str = "localhost:1337";
|
const DEFAULT_GDB_SERVER_ADDR: &'static str = "localhost:1337";
|
||||||
|
|
||||||
const CANVAS_WIDTH: u32 = SCREEN_WIDTH;
|
const CANVAS_WIDTH: u32 = SCREEN_WIDTH;
|
||||||
|
@ -243,6 +244,10 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||||
if with_gdbserver {
|
if with_gdbserver {
|
||||||
spawn_and_run_gdb_server(&mut gba, DEFAULT_GDB_SERVER_ADDR)?;
|
spawn_and_run_gdb_server(&mut gba, DEFAULT_GDB_SERVER_ADDR)?;
|
||||||
}
|
}
|
||||||
|
#[cfg(not(feature = "gdb"))]
|
||||||
|
if with_gdbserver {
|
||||||
|
panic!("Please compile me with 'gdb' feature")
|
||||||
|
}
|
||||||
|
|
||||||
let mut fps_counter = FpsCounter::default();
|
let mut fps_counter = FpsCounter::default();
|
||||||
let frame_time = time::Duration::new(0, 1_000_000_000u32 / 60);
|
let frame_time = time::Duration::new(0, 1_000_000_000u32 / 60);
|
||||||
|
|
|
@ -14,6 +14,7 @@ default = ["console_error_panic_hook"]
|
||||||
js-sys = "0.3.37"
|
js-sys = "0.3.37"
|
||||||
wasm-bindgen = "0.2"
|
wasm-bindgen = "0.2"
|
||||||
rustboyadvance-core = { path = "../../core" }
|
rustboyadvance-core = { path = "../../core" }
|
||||||
|
rustboyadvance-utils = { path = "../../utils" }
|
||||||
|
|
||||||
# The `console_error_panic_hook` crate provides better debugging of panics by
|
# The `console_error_panic_hook` crate provides better debugging of panics by
|
||||||
# logging them with `console.error`. This is great for development, but requires
|
# logging them with `console.error`. This is great for development, but requires
|
||||||
|
|
|
@ -11,7 +11,7 @@ use web_sys::CanvasRenderingContext2d;
|
||||||
|
|
||||||
use rustboyadvance_core::keypad as gba_keypad;
|
use rustboyadvance_core::keypad as gba_keypad;
|
||||||
use rustboyadvance_core::prelude::*;
|
use rustboyadvance_core::prelude::*;
|
||||||
use rustboyadvance_core::util::audio::AudioRingBuffer;
|
use rustboyadvance_utils::audio::AudioRingBuffer;
|
||||||
|
|
||||||
use bit::BitIndex;
|
use bit::BitIndex;
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ impl Interface {
|
||||||
keyinput: gba_keypad::KEYINPUT_ALL_RELEASED,
|
keyinput: gba_keypad::KEYINPUT_ALL_RELEASED,
|
||||||
sample_rate: audio_ctx.sample_rate() as i32,
|
sample_rate: audio_ctx.sample_rate() as i32,
|
||||||
audio_ctx: audio_ctx,
|
audio_ctx: audio_ctx,
|
||||||
audio_ring_buffer: AudioRingBuffer::new(),
|
audio_ring_buffer: Default::default(),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -61,7 +61,7 @@ impl VideoInterface for Interface {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn convert_sample(s: i16) -> f32 {
|
fn convert_sample(s: i16) -> f32 {
|
||||||
((s as f32) / 32767_f32)
|
(s as f32) / 32767_f32
|
||||||
}
|
}
|
||||||
|
|
||||||
impl AudioInterface for Interface {
|
impl AudioInterface for Interface {
|
||||||
|
@ -156,7 +156,7 @@ impl Emulator {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn test_fps(&mut self) {
|
pub fn test_fps(&mut self) {
|
||||||
use rustboyadvance_core::util::FpsCounter;
|
use rustboyadvance_utils::FpsCounter;
|
||||||
|
|
||||||
let mut fps_counter = FpsCounter::default();
|
let mut fps_counter = FpsCounter::default();
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@ pub fn read_bin_file(filename: &Path) -> io::Result<Vec<u8>> {
|
||||||
Ok(buf)
|
Ok(buf)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn write_bin_file(filename: &Path, data: &Vec<u8>) -> io::Result<()> {
|
pub fn write_bin_file(filename: &Path, data: &[u8]) -> io::Result<()> {
|
||||||
let mut f = File::create(filename)?;
|
let mut f = File::create(filename)?;
|
||||||
f.write_all(data)?;
|
f.write_all(data)?;
|
||||||
|
|
||||||
|
@ -94,11 +94,13 @@ pub mod audio {
|
||||||
cons: Consumer<i16>,
|
cons: Consumer<i16>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl AudioRingBuffer {
|
impl Default for AudioRingBuffer {
|
||||||
pub fn new() -> AudioRingBuffer {
|
fn default() -> AudioRingBuffer {
|
||||||
AudioRingBuffer::new_with_capacity(2 * 4096)
|
AudioRingBuffer::new_with_capacity(2 * 4096)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl AudioRingBuffer {
|
||||||
pub fn new_with_capacity(capacity: usize) -> AudioRingBuffer {
|
pub fn new_with_capacity(capacity: usize) -> AudioRingBuffer {
|
||||||
let rb = RingBuffer::new(capacity);
|
let rb = RingBuffer::new(capacity);
|
||||||
let (prod, cons) = rb.split();
|
let (prod, cons) = rb.split();
|
||||||
|
@ -192,10 +194,6 @@ impl<T> Shared<T> {
|
||||||
pub fn new(t: T) -> Shared<T> {
|
pub fn new(t: T) -> Shared<T> {
|
||||||
Shared(Rc::new(UnsafeCell::new(t)))
|
Shared(Rc::new(UnsafeCell::new(t)))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub unsafe fn inner_unsafe(&self) -> &mut T {
|
|
||||||
&mut (*self.0.get())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<T> Shared<T>
|
impl<T> Shared<T>
|
||||||
|
|
Reference in a new issue