<feed xmlns='http://www.w3.org/2005/Atom'>
<title>melonDS/src/ARMJIT_x64, branch master</title>
<subtitle>modified version of melonDS used for school/vsr</subtitle>
<id>https://git.pipeframe.xyz/fork/melonDS/atom?h=master</id>
<link rel='self' href='https://git.pipeframe.xyz/fork/melonDS/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.pipeframe.xyz/fork/melonDS/'/>
<updated>2023-12-12T10:07:22+00:00</updated>
<entry>
<title>Sprinkle `const` around where appropriate (#1909)</title>
<updated>2023-12-12T10:07:22+00:00</updated>
<author>
<name>Jesse Talavera</name>
<email>jesse@jesse.tg</email>
</author>
<published>2023-12-12T10:07:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.pipeframe.xyz/fork/melonDS/commit/?id=9bfc9c08ffe88de4b54734d6fd03182c0a51e181'/>
<id>urn:sha1:9bfc9c08ffe88de4b54734d6fd03182c0a51e181</id>
<content type='text'>
* Sprinkle `const` around where appropriate

- This will make it easier to use `NDS` objects in `const` contexts (e.g. `const` parameters or methods)

* Remove the `const` qualifier on `DSi_DSP::DSPRead16`

- MMIO reads can be non-pure, so this may not be `const` in the future</content>
</entry>
<entry>
<title>Exclude JIT-related declarations more aggressively</title>
<updated>2023-12-08T16:19:00+00:00</updated>
<author>
<name>Jesse Talavera-Greenberg</name>
<email>jesse@jesse.tg</email>
</author>
<published>2023-12-06T14:19:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.pipeframe.xyz/fork/melonDS/commit/?id=53e5aa62983dd2db68ac78c2a1272aba456362e6'/>
<id>urn:sha1:53e5aa62983dd2db68ac78c2a1272aba456362e6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove the last `ConfigEntry` state (#1902)</title>
<updated>2023-12-05T15:47:16+00:00</updated>
<author>
<name>Jesse Talavera</name>
<email>jesse@jesse.tg</email>
</author>
<published>2023-12-05T15:47:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.pipeframe.xyz/fork/melonDS/commit/?id=090627b3c19488e36677113e2f1ac16bdb4e2d05'/>
<id>urn:sha1:090627b3c19488e36677113e2f1ac16bdb4e2d05</id>
<content type='text'>
* Get rid of `ConfigEntry::ExternalBIOSEnable`

- Now the BIOS files themselves are checked
- The frontend's `Config::ExternalBIOSEnable` is not affected

* Add `JITArgs`

* Pass the JIT status to the `ARM` constructors

* Encapsulate `NDS::EnableJIT`

* Pass `JITArgs` to `ARMJIT`'s constructor

* Remove the `JIT_*` `ConfigEntry`s in favor of members

- Allow all the JIT args to be set with `NDS::SetJITArgs`
- Encapsulate the JIT-related parameters in `ARMJIT` so they can reset the block cache if changed
- Update the active (or newly-created) console in the frontend with adjusted JIT args

* Make audio bit depth and interpolation configurable in `NDSArgs`

- Define enums for both
- Give those settings default values in `NDSArgs`
- Remove `ConfigEntry::AudioBitDepth`
- Initialize these settings in the relevant SPU constructors

* Move the last DSi-specific logic in `Reset` to its own subclass

* Remove `ConfigEntry::DSi_FullBIOSBoot`

- Add members to `DSi` instead for getting and setting this
- Update the frontend to accommodate these changes

* Oops, missed a spot

* Remove `ConfigEntry::Firm_MAC` and `Platform::GetConfigArray`

- Also move the MAC parsing code to `ROMManager`

* Remove the last `ConfigEntry` state

- Make GDB support configurable via members

* Add some `#ifdef`s that I'd almost forgotten</content>
</entry>
<entry>
<title>Refactor `NDS` and `DSi` to be objects (#1893)</title>
<updated>2023-11-28T22:16:41+00:00</updated>
<author>
<name>Jesse Talavera-Greenberg</name>
<email>jesse@jesse.tg</email>
</author>
<published>2023-11-28T22:16:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.pipeframe.xyz/fork/melonDS/commit/?id=e973236203292637eb7bd009a4cfbd6fd785181f'/>
<id>urn:sha1:e973236203292637eb7bd009a4cfbd6fd785181f</id>
<content type='text'>
* First crack at refactoring NDS and DSi into objects

- Remove all global/`static` variables in `NDS` and related classes
- Rely more on virtual dispatch when we need to pick methods at runtime
- Pass `NDS&amp;` or `DSi&amp;` to its constituent components where necessary
- Introduce some headers or move some definitions to break `#include` cycles

* Refactor the frontend to accommodate the core's changes

* Move up `SchedList`'s declaration

- Move it to before the components are initialized so the `map`s inside are initialized
- Fields in C++ are initialized in the order they're declared

* Fix a crash when allocating memory

* Fix JIT-free builds

* Fix GDB-free builds

* Fix Linux builds

- Explicitly qualify some member types in NDS, since they share the same name as their classes

* Remove an unnecessary template argument

- This was causing the build to fail on macOS

* Fix ARM and Android builds

* Rename `Constants.h` to `MemConstants.h`

* Add `NDS::IsRunning()`

* Use an `#include` guard instead of `#pragma once`</content>
</entry>
<entry>
<title>Move all core types into namespaces (#1886)</title>
<updated>2023-11-25T17:32:09+00:00</updated>
<author>
<name>Jesse Talavera-Greenberg</name>
<email>jesse@jesse.tg</email>
</author>
<published>2023-11-25T17:32:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.pipeframe.xyz/fork/melonDS/commit/?id=346dd4006ea1283136095d5c43f602324a095092'/>
<id>urn:sha1:346dd4006ea1283136095d5c43f602324a095092</id>
<content type='text'>
* Reorganize namespaces

- Most types are now moved into the `melonDS` namespace
- Only good chance to do this for a while, since a big refactor is next

* Fix the build</content>
</entry>
<entry>
<title>Refactor the JIT to be object-oriented (#1879)</title>
<updated>2023-11-18T15:40:54+00:00</updated>
<author>
<name>Jesse Talavera-Greenberg</name>
<email>jesse@jesse.tg</email>
</author>
<published>2023-11-18T15:40:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.pipeframe.xyz/fork/melonDS/commit/?id=544fefa27f698f3a0d799a782dc03d3eb47561db'/>
<id>urn:sha1:544fefa27f698f3a0d799a782dc03d3eb47561db</id>
<content type='text'>
* Move TinyVector to a new file

- So it's less sensitive to #include ordering

* Forgot to include assert.h

* Refactor ARMJIT_Memory into an object

* Oops, forgot a declaration

* Refactor ARMJIT to be contained in an object

* Remove an unused function declaration

* Add a missing #include

* Remove a now-unused global

* Use ARMJIT_Memory's own memory access functions

* Fix some omissions in the ARM JIT

* Move libandroid to be a member of ARMJIT_Memory instead of a global

* Default-initialize most fields in ARMJIT_Compiler.h

* Define NOOP_IF_NO_JIT

* Finish refactoring the JIT to be object-oriented</content>
</entry>
<entry>
<title>update copyright years</title>
<updated>2023-11-03T23:21:46+00:00</updated>
<author>
<name>Arisotura</name>
<email>thetotalworm@gmail.com</email>
</author>
<published>2023-11-03T23:21:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.pipeframe.xyz/fork/melonDS/commit/?id=ac38faef1409553c016a2a8c9a8cf74f2e5e0249'/>
<id>urn:sha1:ac38faef1409553c016a2a8c9a8cf74f2e5e0249</id>
<content type='text'>
</content>
</entry>
<entry>
<title>GDB stub (#1583)</title>
<updated>2023-10-22T13:35:31+00:00</updated>
<author>
<name>PoroCYon</name>
<email>3253268+PoroCYon@users.noreply.github.com</email>
</author>
<published>2023-10-22T13:35:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.pipeframe.xyz/fork/melonDS/commit/?id=3ab752b8ca7878246c3d7f8a338a8bc3b0de26dd'/>
<id>urn:sha1:3ab752b8ca7878246c3d7f8a338a8bc3b0de26dd</id>
<content type='text'>
* gdbstub beginnings

* gdbstub: finish gdb impl things, next up is integration with melonDS

* holy fuck the gdbstub works

* gdb breakpoints work, but there's a mysterious crash on continue

* fix memory corruption that sometimes happened, and make resetting the console thru gdb work

* remove some gdb debug printing

* fix things in gdbstub

* separate option for enabling gdbstub

* add mode-dependent CPU registers

* C++ize the GDBstub code

* add gdbstub config in emu settings dialog

* make sure gdb is disabled when jit is enabled

* Remove unnecessary compiler flags, mark ARMJIT assembly code as no-execute-stack

This hardens the binary a little bit against common exploitation methods

* add option to wait for debugger attach on startup

* only insert GNU stack notes on linux

* disable gdbstub enable checkbox when jit is enabled

* fix non-linux incompatibilities

* enable gdbstub by default

* fix issues with gdbstub settings disable stuff

* format stuff

* update gdb test code

* Fix segfault when calling StubCallbacks-&gt;GetCPU()

C++ overrides are hard. Please I'm just a lowly C programmer.

* fix packet size not being sent correctly

Thanks to @GlowingUmbreon on Github for troubleshooting this

* fix select(2) calls (i should read docs more properly)

* fix GDB command sequencing/parsing issue (hopefully)

* [GDB] implement no-ack mode

* fix sending ack on handshake

* get lldb to work</content>
</entry>
<entry>
<title>Introduce `Platform::Log` (#1640)</title>
<updated>2023-03-23T17:04:38+00:00</updated>
<author>
<name>Jesse Talavera-Greenberg</name>
<email>jesse@jesse.tg</email>
</author>
<published>2023-03-23T17:04:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.pipeframe.xyz/fork/melonDS/commit/?id=79dfb8dc8f356834f0b6cf7baf73f77552b08923'/>
<id>urn:sha1:79dfb8dc8f356834f0b6cf7baf73f77552b08923</id>
<content type='text'>
* 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</content>
</entry>
<entry>
<title>fix copyright headers</title>
<updated>2022-03-07T20:08:54+00:00</updated>
<author>
<name>Arisotura</name>
<email>thetotalworm@gmail.com</email>
</author>
<published>2022-03-06T20:21:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.pipeframe.xyz/fork/melonDS/commit/?id=9394dde67a03b86243fb718c33ed2fa338211036'/>
<id>urn:sha1:9394dde67a03b86243fb718c33ed2fa338211036</id>
<content type='text'>
</content>
</entry>
</feed>
