Commit Graph

10 Commits

Author SHA1 Message Date
Ryan Schmidt
087989661c MiniVMac.cc: Fix alias creation code
* Convert all field values from host order to big-endian so they aren't
  byte-swapped when created on little-endian systems.
* Pack the struct so the compiler doesn't insert padding on 64-bit
  systems.
* Fix the volume and file creation timestamps by converting them from
  UNIX to Macintosh time base, using a function copied from hfsutils.
* Pad volume and file names with null bytes instead of random memory.
* Add the "end of variable-length data" marker so the OS doesn't crash
  when trying to resolve the alias.
* Set the alias flag so the OS treats the file as an alias.
2022-09-22 00:38:06 -05:00
Ryan Schmidt
17cbe507a2 MiniVMac.cc: Copy some extensions if present
See: https://github.com/autc04/Retro68/issues/171
2022-09-20 04:54:15 -05:00
Ryan Schmidt
4a7b698ab4 LaunchAPPL: Fix two macOS Mini vMac launching bugs
On all macOS versions, Mini vMac would launch behind other applications
because it was being launched by running the executable within the
application bundle directly. The solution is to let the OS launch the
app normally by using the open utility. This eliminates the 30 lines of
code that laboriously determined the executable name.

On macOS 10.12 and later, Mini vMac could not find the ROM or disk
files. These files were being placed in the same directory as the Mini
vMac application, but a new macOS security measure called Gatekeeper
Path Randomization or App Translocation prevents that from working
anymore. See https://www.gryphel.com/c/minivmac/osx_note.html. The
solution is to place the ROM and disk files within the mnvm_dat
directory in the Contents directory in the application bundle.

The code that copies Mini vMac into the temporary directory had to be
moved earlier so that when the ROM file is symlinked and the disk image
is created the mnvm_dat directory into which they go will be there.

Since more than one method needed to know whether Mini vMac was an app
bundle, a Boolean instance var was added on macOS to indicate that.
2022-08-03 14:07:41 -05:00
Wolfgang Thaller
8d277dfbfa make LaunchAPPL work when only the needed autoquit/autquit7 image is specified 2019-02-11 21:20:21 +01:00
Szymon Łopaciuk
89d4565f0d Autodetect System version for correct AutoQuit
Reads the System resource to find out the System Software
version for running correct AutoQuit.

Includes other minor changes.

Signed-off-by: Szymon Łopaciuk <szymon@lopaciuk.eu>
2019-02-10 01:56:37 +00:00
Szymon Łopaciuk
a3919a0bb4 Add support for using AutQuit7
This allows the user to choose whether to use AutoQuit or AutQuit7
(which supports System 7). When the path to AutQuit7 is specified,
it will be configured according to the instructions at
https://www.gryphel.com/c/minivmac/extras/autquit7/ by putting an
alias to AutQuit7 in the "Startup Items" folder. That will cause
the application named "app" in the folder of AutQuit7 (top level,
no change) to start on boot, and will shut down the OS when quit.

Signed-off-by: Szymon Łopaciuk <szymon@lopaciuk.eu>
2019-02-07 23:00:25 +00:00
Szymon Łopaciuk
fe00dde02b Fix error on ROM symlink creation if name non-standard
This fixes a bug that appeares when using LaunchAPPL
with Mini vMac and a ROM which name is not "vMac.ROM".

Signed-off-by: Szymon Łopaciuk <szymon@lopaciuk.eu>
2019-02-06 00:04:57 +00:00
Wolfgang Thaller
999897be07 Disk copy 4.2 image support for LaunchAPPL -e minivmac (fixes #76) 2019-01-19 11:47:10 +01:00
Wolfgang Thaller
380fef0114 cleanup CMAKE_CXX_FLAGS and fix various warnings 2019-01-04 03:35:32 +01:00
Wolfgang Thaller
bdf4685d82 start a LaunchAPPL server 2018-04-27 09:05:26 +02:00