aboutsummaryrefslogtreecommitdiff
path: root/src/ARM.cpp
Commit message (Collapse)AuthorAge
* Assorted portability enhancements (#1800)Jesse Talavera-Greenberg2023-08-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Introduce some Platform calls for managing dynamic libraries * Add Platform::WriteFATSectors * Introduce some Platform calls for managing dynamic libraries * Add Platform::WriteFATSectors * Change includes of "../types.h" to "types.h" - Makes it easier to directly include these headers in downstream projects * Change an include of "../Wifi.h" to "Wifi.h" * Allow CommonFuncs.cpp to compile on Android * Tidy up some logging calls - Use Platform::Log in LAN_Socket.cpp - Soften some warnings to Debug logs (since they don't necessarily represent problems) * Add Platform::EnterGBAMode - Gracefully stop the emulator if trying to enter GBA mode * Soften some logs that most players won't care about * Soften some more logs * Introduce Platform wrappers for file operations * Fix pointer spacing * Fix more style nits * Log the errno when ftruncate fails * Fix FileSeek offset argument - With an s32 offset, we couldn't access files larger than 2GB * Revise Platform::StopEmu to address feedback - Remove Platform::EnterGBAMode in favor of adding a reason to Platform::StopEmu - Also rename Platform::StopEmu to Platform::SignalStop - Add an optional argument to NDS::Stop - Use the new argument everywhere that the console stops itself * Rename FileGetString to FileReadLine - It conveys the meaning better * Rename FileSeekOrigin::Set to Start - It conveys the meaning better * Change definition of FileGetString to FileReadLine - Oops, almost forgot it * Rename FlushFile to FileFlush - To remain consistent with the other File functions * Add a FileType usage * Fix line break in FileSeekOrigin * Document Platform::DeInit * Clarify that StopReason::Unknown doesn't always mean an error * Move and document FileType::HostFile * Remove Platform::OpenDataFile - Nothing currently uses it * Refactor Platform::OpenFile and Platform::OpenLocalFile to accept a FileMode enum instead of a string - The enum is converted to fopen flags under the hood - The file type is used to decide whether to add the "b" flag - Some helper functions are exposed for the benefit of consistent behavior among frontends - Equivalent behavior is maintained * Fix a tab that should be spaces * Use Windows' 64-bit implementations of fseek/ftell * Move Platform::IsBinaryFile to Platform.cpp - It could vary by frontend * Remove an unused FileType * Rename an enum constant * Document various Platform items * Use Platform::DynamicLibrary to load libandroid - And clean it up at the end * Fix a typo * Pass the correct filetype to FATStorage - Since it can be used for DSI NAND images or for SD cards * Remove Platform::FileType
* Introduce `Platform::Log` (#1640)Jesse Talavera-Greenberg2023-03-23
| | | | | | | | | | | | | * Add Platform::Log and Platform::LogLevel * Replace most printf calls with Platform::Log calls * Move a brace down * Move some log entries to one Log call - Some implementations of Log may assume a full line * Log the MAC address as LogLevel::Info
* fix #1593RSDuck2023-01-03
|
* update copyright headersArisotura2022-01-09
|
* finally decouple Config from the core. baahhahahahahArisotura2021-11-18
|
* decouple JIT from Config. bahahahahahArisotura2021-11-17
|
* add the PU checks. bahahahahArisotura2021-10-29
|
* blargArisotura2021-10-28
|
* more complete (and accurate) CP15 setup for direct bootArisotura2021-10-28
|
* fix some gaps in CPU modesArisotura2021-10-28
| | | | | | | * non-defined CPU modes are actually possible * bit4 of all PSRs is forced to one (modes 00-0F aren't possible) * modes 14/15/16 and 18/19/1A share a SPSR with modes 17 and 1B respectively (but they don't share the register banks) * modes 10 and 1C/1D/1E don't have a SPSR (MRS returns the CPSR always)
* DLDI/SD folder-sync apparatus (#1251)Arisotura2021-10-28
| | | guess we can finally have DLDI that isn't obtuse
* use std::swap 🔃RSDuck2021-08-21
|
* update copyright year and add missing GPL headersRSDuck2021-03-12
|
* remove some debug crapArisotura2020-12-10
|
* make things function atleast somewhatArisotura2020-10-26
| | | | no pciture is being actually sent yet
* messin' aroundArisotura2020-09-08
|
* check IRQ first then Idle loopRSDuck2020-07-28
| | | | apparently I put it this way for a reason
* subtract cycles after checking IRQ and HaltRSDuck2020-07-27
| | | | also switch back to adding to ARM::Cycles instead of subtracting from them
* fix build with JIT disabledRSDuck2020-07-25
| | | | fixes #675 and #674
* reconcile DSi and JIT, fastmem for x64 and WindowsRSDuck2020-06-30
|
* first steps in bringing over the JIT refactor/fastmemRSDuck2020-06-16
|
* rewrite JIT memory emulationRSDuck2020-06-16
|
* fix build with JIT disabled and set default JIT maxblock size to 32RSDuck2020-06-16
|
* implement block linking + some refactoringRSDuck2020-06-16
| | | | currently only supported for x64
* remove debug leftoversRSDuck2020-06-16
|
* improve nop handling and proper behaviour for LDM^RSDuck2020-06-16
| | | | fixes dslinux
* make savestates 100% compatible againRSDuck2020-06-16
|
* integrate changes from ARM64 backend and moreRSDuck2020-06-16
| | | | | | | | | - better handle LDM/STM in reg alloc - unify Halted and IRQ in anticipation for branch inlining - literal optimisations can be disabled in gui - jit blocks follow simple returns - fix idle loop detection - break jit blocks on IRQ (fixes saving in Pokemon White)
* new block cache and much more...RSDuck2020-06-16
| | | | | | | | | - more reliable code invalidation detection - blocks aren't stopped at any branch, but are being followed if possible to get larger blocks - idle loop recognition - optimised literal loads, load/store cycle counting and loads/stores from constant addresses
* abandon pipelining on jitRSDuck2020-06-16
| | | | | fixes Golden Sun Dawn this makes the cpu state incompatible between interpreter and JIT. That's why switching cpu mode requires a restart(not requiring is stupid anyway) and the pipeline is manually filled when making a save state.
* fix uninitialised memory mappingRSDuck2020-06-16
|
* jit: decrease blockcache AddrMapping size for ARM9RSDuck2020-06-16
|
* jit: add compile optionRSDuck2020-06-16
|
* jit: make everything configurableRSDuck2020-06-16
|
* jit: LDM/STM finally(!) working + MUL, MLA and CLZRSDuck2020-06-16
|
* jit: branch instructionsRSDuck2020-06-16
|
* JIT: most mem instructions workingRSDuck2020-06-16
| | | | + branching
* JIT: implemented most ALU instructionsRSDuck2020-06-16
|
* JIT: baseRSDuck2020-06-16
| | | | all instructions are interpreted
* make it able to switch between DS and DSi modesArisotura2020-06-01
|
* Merge commit '4b57416552ec2fa95216e2b044559f215723bf70' into melonDSiArisotura2020-05-30
|\
| * detect whether we are running the gameArisotura2020-02-24
| |
| * * add support for a bunch of codes (all of them minus the loop shit, really)Arisotura2020-02-14
| | | | | | | | * hook it betterer so it doesn't asplode
| * update copyright yearsArisotura2020-02-14
| |
* | add AES, fix a bunch of bugsArisotura2019-06-19
| | | | | | | | we're getting an error screen! wee
* | y'know, actually running the DMA units might yield better results.Arisotura2019-06-18
| |
* | fix fucking ass-stupid bug with new-WRAM handlingArisotura2019-06-16
| |
* | get it to do more interesting thingsArisotura2019-06-15
| |
* | add I2C shitoArisotura2019-06-15
|/
* pftArisotura2019-06-10
|