45 Commits

Author SHA1 Message Date
Alexander Cieslewicz
e8e8711290 Allocate guest memory using platform specific calls
Creating Mem using the host allocator allows use to explicitly drop the
previous allocation and freely allocate a new instance without running
into crashes on Android. As such this commit removes the previous
refurbishing mechanism, in favor of the simpler drop -> reallocate.

Change-Id: Ic9fd3b790640bb0525c2ae425c26cc9fb922a843
2026-01-16 23:57:20 +00:00
hikari_no_yume
cb95353480 Prepare for 0.2.3 release
Change-Id: Ie5a21c4f1968884ee8737a3cce7124ac78e0bc93
2026-01-02 21:26:25 +01:00
RMZeroFour
b71b6d78b3 Update plist to v1.8.0 and quick-xml to v0.38.4
In Metal Gear Solid Touch (v1.0.0), the plist crate caused a crash when
English was used, due to an InvalidTrailerObjectOffsetSize error when
reading the en.lproj/Localizable.strings file. It was worked around
by setting Japanese as the default language, since
ja.lproj/Localizable.strings loaded successfully.

The latest version of plist fixes this issue, and thus the workaround
is no longer required.

quick-xml, being both a direct dependency as well as transitive
dependency through plist, was also updated to avoid requiring two
versions of the same crate.

The commit updates the versions in Cargo.toml, removes the Japanese
language default setting, and replaces calls to the unescape method
in quick-xml with its replacement method decode.

Fixes GitHub issue #430.

Change-Id: I9b3dae3e994acc1df8016af69a4d2c250cf3f6ef
2025-11-28 12:46:53 +05:30
hikari_no_yume
2ab49390c4 Change touchHLE/rust-sdl2 repo tag
touchHLE commit 2c9a260981 changed the
Cargo.toml and Cargo.lock to point to the tag touchHLE-1 on the new
GitHub repo touchHLE/rust-sdl2, replacing the tag touchHLE-2 on
the old GitHub repo hikari-no-yume/rust-sdl2. These two repos were
unrelated, and the tag numbering for rust-sdl2 revisions used by
touchHLE was effectively restarted (there was a different touchHLE-1
tag on the old repo).

To keep things orderly, the new repo has been deleted, the old repo has
been moved to its place, and the new touchHLE-1 has been re-tagged as
touchHLE-3. This will mean that attempting to check out and build the
last two commits on trunk (which used touchHLE-1 on the new repo) will
probably fail, but every previous commit (which pointed at the old repo)
should work, which is more important.

Change-Id: I3fec10421a95b1ff612d17e056c6fe2de7fdfa6a
2025-04-05 16:37:24 +02:00
abnormalmaps
2c9a260981 Change SDL2 dependency to touchHLE/rust-sdl2
Change-Id: Ic647ba34ce36e8ec0d3c36c6204c98b7b51e9dd3
2025-04-02 20:42:13 -04:00
abnormalmaps
361142766c Add support for Microsoft IMA4 and ALAC codecs
Change-Id: Ie9ea2a82b9d85ec8e31c01be6b9280f112822729
2025-03-31 20:21:19 -04:00
ciciplusplus
b21ab0827c NSShiftJISStringEncoding support via encoding_rs crate
Change-Id: I5cd2b69532e2b21917312b6686ef1cde62e720b1
2025-01-09 00:27:20 +01:00
hikari_no_yume
9700a4fcbf Move versioning code into its own crate and add utility to print version
This will be useful for improving the packaging of releases, and might
somehow improve incremental build performance (I hope).

Change-Id: Ib36abfe46e7b58ac1f81d035c69c837443f3767c
2024-12-24 19:42:30 +01:00
ciciplusplus
23e9aa5ff7 Support NSWindowsCP1252StringEncoding using yore crate
Change-Id: Ie21948fe69cd50ed7aee47ba9ff1cb54b36b49aa
2024-11-19 18:47:24 +01:00
LennyKappa
8bdb241ef0 Move MP3 handling to Symphonia
This removes dr_mp3 (and the associated dr_libs) from vendor/.

Change-Id: Ia29d3d07f586644f6c182de6ec8fddc10c085b3c
2024-10-10 05:44:12 +02:00
ciciplusplus
24f6ef57d6 Implement CC_MD5() using md5 crate
Change-Id: I012a09ae8a21ba42f1442e84066db2de346a7d52
2024-09-22 19:29:02 +02:00
ciciplusplus
70b2d44554 Implement NSXMLParser
Change-Id: Iadf63d7ed6610210d231471c568d9dd33b7cda68
2024-09-22 14:21:12 +02:00
hikari_no_yume
d302ae3a46 Stop using deprecated Cargo manifest property
Change-Id: Ife0b843c9e71884d1084cbc74bd4450a75994751
2024-08-24 23:29:20 +02:00
hikari_no_yume
c77faabce2 Prepare for 0.2.2 release
Change-Id: Ic361af26766df5ea9b9b2fe0ac9f6851b94814d1
2024-04-01 22:12:11 +02:00
hikari_no_yume
e8359f61e0 Clarify and de-emphasise my role in the project, update copyrights
Change-Id: I996f8e8384939a048cdd84bc385559eaa6832b37
2024-03-05 10:39:16 +01:00
hikari_no_yume
5ba796ba9d Support AAC audio in MP4 container (hackily: immediately decoded to PCM)
Change-Id: Iec117124123e20c35dea1671b2c3ba98213de379
2024-02-22 20:52:06 +01:00
hikari_no_yume
d5607e7bde Prepare for 0.2.1 release
Change-Id: I688e0c3c996ded0b0d22b5d7f3d23c751d67234b
2023-10-31 20:59:01 +01:00
hikari_no_yume
e9b7d6ef2c Prepare for 0.2.0 release 2023-08-31 22:52:02 +02:00
hikari_no_yume
a8bef5f0d7 Use the std method in cc-rs, now that it is available 2023-08-21 17:23:00 +02:00
LennyKappa
1881e89974 Fix duplicated SDL2 option 2023-07-25 21:58:25 +02:00
hikari_no_yume
72ec9e56fc Move raw OpenGL bindings into gles module 2023-07-15 14:56:18 +02:00
hikari_no_yume
c8c0e2f178 Implement PVRTC decompression 2023-05-10 15:35:28 +02:00
hikari_no_yume
b7792fa773 Implement Android support
This is a squashed merge of the Android branch, the final commit of
which was 3c517a36b1, tagged as
android-before-merge.

@ciciplusplus took the initiative to start porting touchHLE to Android
and got the first version working. @hikari-no-yume's contributions came
later and are mostly fixes and cleanups of various kinds.

There are still various unfinished things in this port, but it's now
in a clean enough state that it no longer needs its own branch.

(Merged pull request by @ciciplusplus, resolves #88.)

Co-authored-by: ciciplusplus <ciciplusplus@gmail.com>
2023-05-06 23:25:49 +02:00
hikari_no_yume
413138d534 Split touchHLE crate into lib and bin targets
This is in preparation for Android support. Android apps can't be
native code executables, but they can load a native code library, so we
need a library target on Android. Alas, we we can't make the crate type
(executable or library) conditional on the platform, so we have to have
it elsewhere too. Doing this split early makes for a clearer history.

Until now, there was only an executable target, so rustdoc included
private items by default. Now that there's a library target, that
default doesn't apply, which means we would get almost no documentation!
The .cargo/config.toml file is added to override this, though this
now means we get private items in _other_ crates documented too, and
we have to suppress warnings about links to private items that didn't
happen before.

src/main.rs is renamed to src/lib.rs because almost all the code is now
in the library. src/bin.rs is the new module for the executable. It
could have been named src/main.rs, but then git wouldn't realise
src/lib.rs is the successor of the old src/main.rs, which would be
annoying for blames and merges.
2023-05-05 15:41:29 +02:00
hikari_no_yume
15a960102f Use accelerometer if device has it and no controller is connected 2023-04-07 22:52:10 +02:00
GeffDev
73faa98e17 Implement dynamic linking & Fix Linux building
Fixes #3.

(Merged pull request by @GeffDev, resolves #90.)
2023-03-26 15:09:07 +02:00
hikari_no_yume
7a912e96d1 Update bundled SDL2 version (via temporary fork of rust-sdl2) 2023-03-16 20:48:07 +01:00
hikari_no_yume
e9774cf806 Prepare for 0.1.2 release 2023-03-07 19:51:36 +01:00
hikari_no_yume
067fad3a37 Implement MP3 file support (hackily: immediately decoded to PCM) 2023-03-07 18:02:27 +01:00
hikari_no_yume
c8d3575286 Announce CBNK3D support and do various prep for 0.1.1 release 2023-02-18 12:08:23 +01:00
Nikita Strygin
32d12cc697 Allow opening an IPA bundle file directly 2023-02-05 21:09:49 +01:00
hikari_no_yume
7f2b01a760 Link to website 2023-02-02 19:52:58 +01:00
hikari_no_yume
46dfc09f27 License all source files under MPL 2 2023-02-02 16:42:54 +01:00
hikari_no_yume
b1f5ef8088 Include license information in binaries 2023-02-02 16:12:10 +01:00
hikari_no_yume
e8b12202e7 Implement font loading and size calculation (word wrapping TODO) 2023-01-26 23:10:19 +01:00
hikari_no_yume
0c38a80fb6 Implement simple reading of PCM and IMA4 CAF files with Audio Toolbox 2023-01-12 21:28:46 +01:00
hikari_no_yume
eacd0d7253 Implement simple reading of 16-bit PCM WAVE files with Audio Toolbox 2023-01-11 21:12:47 +01:00
hikari_no_yume
ac917079e4 Begin implementing OpenAL (currently just context setup etc) 2023-01-06 17:57:46 +01:00
hikari_no_yume
6d799ee35f Implement key parts of EAGLContext and GLES 1.1 FBO extension 2023-01-01 21:27:05 +01:00
hikari_no_yume
e0b37bd1b2 Separate C and C++ dependencies out into their own packages/crates
This avoids rebuilding them more often than necessary, and improves
build-time parallelism.
2022-12-04 16:41:48 +01:00
hikari_no_yume
6103ed9b11 Add dynarmic as a dependency for CPU emulation (not really used yet) 2022-12-04 14:47:29 +01:00
hikari_no_yume
0d506b726b Do basic parsing of Mach-O executable (using mach_object crate) 2022-12-02 19:24:29 +01:00
hikari_no_yume
85cd1c9120 Display icon and launch image (decode with stb_image) 2022-12-01 23:03:11 +01:00
hikari_no_yume
fc98bc5aed Use SDL2 to create a window 2022-12-01 18:58:46 +01:00
hikari_no_yume
4e4f05f418 Initial commit: read Info.plist and extract app name 2022-12-01 16:59:33 +01:00