mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-10 13:33:24 -05:00
A recale rewrites the located tokens and leaves the sentence alone, so a prose run keeps `a.c:228, 1439-1443` while the rendered form drops the space. Comparing the two literally made a run that had just been written look unwritten, pending_recale counted it, and bump_commit refused for ever. mariani was held back by three of them: it recaled twenty-five refs and could never advance its pin, which is the desync the all-or-nothing rule forbids. 67 refs, all anchored.
587 lines
25 KiB
YAML
587 lines
25 KiB
YAML
emulator: Mariani
|
|
type: standalone
|
|
core_classification: community_fork
|
|
source: "https://github.com/sh95014/AppleWin"
|
|
upstream: "https://github.com/AppleWin/AppleWin"
|
|
profiled_date: "2026-08-12"
|
|
source_commit: "51893cab7e8a3d1298734848f4fd616f2e1831fb"
|
|
upstream_commit: "75bd90d16a2e4eb16026bf615685ee2a02dfc0d6"
|
|
core_version: "1.7"
|
|
display_name: "Apple - Apple II (Mariani)"
|
|
cores:
|
|
- mariani
|
|
systems:
|
|
- apple-ii
|
|
mode: standalone
|
|
|
|
notes: |
|
|
Cocoa frontend for AppleWin, macOS only, shipped as Mariani.app and carrying
|
|
AppleWin 1.31.0.5 (resource/version.h). ES-DE launches it with --d1 for the
|
|
floppy in slot 6 drive 1.
|
|
|
|
Resources are files inside the application bundle instead of Win32 resources
|
|
linked into the binary. MarianiFrame::GetResourceData maps each AppleWin
|
|
resource id to a file name, NSBundle resolves it against Contents/Resources,
|
|
and the file is read with open() then kept in a map for later requests
|
|
(source/frontends/mariani/MarianiFrame.cpp:156-232, source/frontends/mariani/AppDelegate.mm:1465-1469). LinuxFrame::GetResource
|
|
throws when the file it gets back does not have the size the call site asked
|
|
for (source/linux/linuxframe.cpp:133-145), so each entry below carries the size the code
|
|
demands. A name that resolves to nothing raises a "Resource not found" alert
|
|
and returns a null pointer.
|
|
|
|
Machine types offered in preferences: Apple II, II Plus, II J-Plus, //e,
|
|
enhanced //e, Pravets 82, Pravets 8M, Pravets 8A, TK3000 //e and Base64A
|
|
(source/frontends/mariani/preferences/PreferencesViewController.mm:191-193, 741-751). MemInitializeROM picks the
|
|
system ROM from that setting (source/Memory.cpp:2052-2069). Default slots are the
|
|
printer card in 1, Super Serial Card in 2, Mockingboard in 4 and Disk II in 6
|
|
(source/CardManager.cpp:325-334); the hard disk and mouse cards are chosen by the
|
|
user.
|
|
|
|
Two names in the resource map have no file in the bundle: the Resources build
|
|
phase lists 49 items and neither appears (Mariani.xcodeproj/project.pbxproj).
|
|
Hddrvr-v2.bin is requested when a save state written with hard disk card
|
|
version 4 is loaded (source/Harddisk.cpp:228, 1439-1443), and
|
|
Freezes_Non-autostart_F8_Rom.rom when the configuration value "The Freeze's
|
|
F8 Rom" is set on an Apple II (source/Memory.cpp:2163-2168, source/Utilities.cpp:188-189,
|
|
source/Common.h:94). Contents/Resources is the only directory searched, so that is
|
|
where the two belong.
|
|
|
|
The debugger comes up with the emulator, not with its window
|
|
(source/linux/context.cpp:116). CmdDebugStartup preloads four symbol tables
|
|
(source/Debugger/Debug.cpp:9488-9516), each read first from
|
|
~/Library/Application Support/<bundle id>/ and then from the bundle
|
|
(source/Debugger/Debugger_Symbols.cpp:774, 814-817, source/frontends/mariani/MarianiFrame.cpp:36-37,
|
|
source/frontends/mariani/AppDelegate.mm:1471-1491).
|
|
|
|
--rom and --f8rom install a 12k/16k and a 2k image from any path over the ROM
|
|
already loaded (source/frontends/common2/argparser.cpp:205-206, source/frontends/common2/programoptions.cpp:82-102,
|
|
source/Memory.cpp:2120-2213). AppleWin's -videorom and its hard disk firmware
|
|
switches are unreachable here: ParseCmdLine has no caller in this tree, and
|
|
UseHdcFirmwareV1/V2 are called only from source/Windows/AppleWin.cpp:783-785, which
|
|
the Xcode project does not compile.
|
|
|
|
files:
|
|
- name: Apple2.rom
|
|
description: "Apple II system ROM, $D000 to $FFFF"
|
|
required: true
|
|
bundled: true
|
|
size: 12288
|
|
md5: 3c406514b9806a7c57ee65fb0b0c39b4
|
|
sha1: 09288be705464b608ff190519ab008d3dfcd1b05
|
|
validation: [size]
|
|
source_ref: "source/Memory.cpp:2054, source/Memory.cpp:2065-2069, source/frontends/mariani/MarianiFrame.cpp:177"
|
|
note: "Loaded when the machine type is Apple II (original)."
|
|
|
|
- name: Apple2_Plus.rom
|
|
description: "Apple II Plus system ROM, $D000 to $FFFF"
|
|
required: true
|
|
bundled: true
|
|
size: 12288
|
|
md5: 572b3005a4fa49bc54917b069b82c1ab
|
|
sha1: 33a24f5489ba9195b44be77d9afb2252594cb5c7
|
|
validation: [size]
|
|
source_ref: "source/Memory.cpp:2055, 2065-2069, 2126-2137, source/frontends/mariani/MarianiFrame.cpp:178"
|
|
note: >
|
|
Also read on an original Apple II with a language card in slot 0, where
|
|
MemInitializeCustomF8ROM copies its last 2 KB over the autostart F8 area.
|
|
|
|
- name: Apple2_JPlus.rom
|
|
description: "Apple II J-Plus system ROM, $D000 to $FFFF"
|
|
required: true
|
|
bundled: true
|
|
size: 12288
|
|
md5: f3e8237eca3809bec2a42b984a1332a8
|
|
sha1: ad200b3263d08e7235d0871c8595963a07adc905
|
|
validation: [size]
|
|
source_ref: "source/Memory.cpp:2056, source/Memory.cpp:2065-2069, source/frontends/mariani/MarianiFrame.cpp:179"
|
|
note: "Loaded when the machine type is Apple II J-Plus."
|
|
|
|
- name: Apple2e.rom
|
|
description: "Apple //e system ROM, 4 KB internal Cx ROM then $D000 to $FFFF"
|
|
required: true
|
|
bundled: true
|
|
size: 16384
|
|
md5: 346bc782c6a08a531c460e33bc03daf4
|
|
sha1: 61fa9254628e5bb7236fb474006116d67684d747
|
|
validation: [size]
|
|
source_ref: "source/Memory.cpp:2057, source/Memory.cpp:2065-2069, source/Memory.cpp:2100-2117, source/frontends/mariani/MarianiFrame.cpp:180"
|
|
note: "Loaded when the machine type is Apple //e (original)."
|
|
|
|
- name: Apple2e_Enhanced.rom
|
|
description: "Enhanced Apple //e system ROM, 4 KB internal Cx ROM then $D000 to $FFFF"
|
|
required: true
|
|
bundled: true
|
|
size: 16384
|
|
md5: 38063e08c778503fc03ecebb979769e9
|
|
sha1: b8ea90abe135a0031065e01697c4a3a20d51198b
|
|
validation: [size]
|
|
source_ref: "source/Memory.cpp:2058, source/Memory.cpp:2065-2069, source/Memory.cpp:2100-2117, source/frontends/mariani/MarianiFrame.cpp:181"
|
|
note: "Default machine type."
|
|
|
|
- name: PRAVETS82.ROM
|
|
description: "Pravets 82 system ROM, $D000 to $FFFF"
|
|
required: true
|
|
bundled: true
|
|
size: 12288
|
|
md5: c619b7edfcf021f3b8fd20d9386676ba
|
|
sha1: 8bd7ced83e209a15e9b19a05a5ef4b8e996dc1a5
|
|
validation: [size]
|
|
source_ref: "source/Memory.cpp:2059, source/Memory.cpp:2065-2069, source/frontends/mariani/MarianiFrame.cpp:182"
|
|
note: "Loaded when the machine type is Pravets 82."
|
|
|
|
- name: PRAVETS8M.ROM
|
|
description: "Pravets 8M system ROM, $D000 to $FFFF"
|
|
required: true
|
|
bundled: true
|
|
size: 12288
|
|
md5: 76c79535f7cf77973e2c711aa977a124
|
|
sha1: f1b4ff018acf95f3355f0d575b66a188d728b687
|
|
validation: [size]
|
|
source_ref: "source/Memory.cpp:2060, source/Memory.cpp:2065-2069, source/frontends/mariani/MarianiFrame.cpp:183"
|
|
note: "Loaded when the machine type is Pravets 8M."
|
|
|
|
- name: PRAVETS8C.ROM
|
|
description: "Pravets 8A system ROM, 4 KB internal Cx ROM then $D000 to $FFFF"
|
|
required: true
|
|
bundled: true
|
|
size: 16384
|
|
md5: 1896d7b98dd940c89f7c8ea899b71006
|
|
sha1: c976fe56e57706c161f513a82ba3e0d8cda83904
|
|
validation: [size]
|
|
source_ref: "source/Memory.cpp:2061, source/Memory.cpp:2065-2069, source/frontends/mariani/MarianiFrame.cpp:184"
|
|
note: "Loaded when the machine type is Pravets 8A."
|
|
|
|
- name: TK3000e.rom
|
|
description: "TK3000 //e system ROM, 4 KB internal Cx ROM then $D000 to $FFFF"
|
|
required: true
|
|
bundled: true
|
|
size: 16384
|
|
md5: 8d84b614b545d4eec8799d3f325332cb
|
|
sha1: f163e5753c18ff0e812a448e8da406f102600edf
|
|
validation: [size]
|
|
source_ref: "source/Memory.cpp:2062, source/Memory.cpp:2065-2069, source/frontends/mariani/MarianiFrame.cpp:185"
|
|
note: "Loaded when the machine type is TK3000 //e."
|
|
|
|
- name: Base64A.rom
|
|
description: "Base64A system ROM, four 12 KB pages"
|
|
required: true
|
|
bundled: true
|
|
size: 49152
|
|
md5: 352fdbcae14c6a8c0398822c7a273309
|
|
sha1: f1c779af480b5bda2bdd03950c1201a5c5143bea
|
|
validation: [size]
|
|
source_ref: "source/Memory.cpp:2063, source/Memory.cpp:2065-2069, source/Memory.cpp:2114-2117, source/frontends/mariani/MarianiFrame.cpp:186"
|
|
note: "Loaded when the machine type is Base64A. Copied into memrom as MaxRomPages pages of 12 KB."
|
|
|
|
- name: Freezes_Non-autostart_F8_Rom.rom
|
|
description: "Non-autostart F8 monitor ROM"
|
|
required: false
|
|
size: 2048
|
|
md5: d0a61e95ed1e1dc37c8e4801326aa79e
|
|
sha1: 3180be6b555ee9ef1f59c4fc3f25c5aab8c39c81
|
|
validation: [size]
|
|
source_ref: "source/Memory.cpp:2163-2168, source/Utilities.cpp:188-189, source/Common.h:94, source/frontends/mariani/MarianiFrame.cpp:187"
|
|
note: >
|
|
MemInitializeCustomF8ROM copies it over $F800 to $FFFF when the
|
|
configuration value "The Freeze's F8 Rom" is set and the machine is an
|
|
Apple II. The application bundle does not ship it, so it has to be placed
|
|
in Contents/Resources, the only directory PathToResourceNamed searches.
|
|
|
|
- name: Apple2_Video.rom
|
|
description: "Apple II and II Plus character generator"
|
|
required: true
|
|
bundled: true
|
|
size: 2048
|
|
md5: 9ac0dc8c4d0002eb45b0b84be0bde5ec
|
|
sha1: f9d312f128c9557d9d6ac03bfad6c3ddf83e5659
|
|
validation: [size]
|
|
source_ref: "source/NTSC_CharSet.cpp:249-256, 296, source/frontends/mariani/MarianiFrame.cpp:189"
|
|
note: "make_csbits reads it on every start, whatever the machine type."
|
|
|
|
- name: Apple2_JPlus_Video.rom
|
|
description: "Apple II J-Plus character generator"
|
|
required: true
|
|
bundled: true
|
|
size: 2048
|
|
md5: 271e2c9bf928b95e7baeff391db45495
|
|
sha1: 0a382be58db5215c4a3de53b19a72fab660d5da2
|
|
validation: [size]
|
|
source_ref: "source/NTSC_CharSet.cpp:258-266, 303, source/frontends/mariani/MarianiFrame.cpp:190"
|
|
note: "Read on every start. Fills the two J-Plus character sets selected by AN2."
|
|
|
|
- name: Apple2e_Enhanced_Video.rom
|
|
description: "Apple //e character generator, US"
|
|
required: true
|
|
bundled: true
|
|
size: 4096
|
|
md5: 9123fff3442c0e688cc6816be88dd4ab
|
|
sha1: b2b5d87f52693817fc747df087a4aa1ddcdb1f10
|
|
validation: [size]
|
|
source_ref: "source/NTSC_CharSet.cpp:278-285, 297, 299-301, source/frontends/mariani/MarianiFrame.cpp:191"
|
|
note: >
|
|
Read on every start. The original //e set is derived from it by putting
|
|
the non-alt characters back over the 32 mousetext slots.
|
|
|
|
- name: Base64A_German_Video.rom
|
|
description: "Base64A character generator"
|
|
required: true
|
|
bundled: true
|
|
size: 4096
|
|
md5: 4b45852b369e2afd864a02d0d91f70dc
|
|
sha1: 87ca8135f7526ddf829f9c2c4f7dbe4d568818fc
|
|
validation: [size]
|
|
source_ref: "source/NTSC_CharSet.cpp:268-276, 304, source/frontends/mariani/MarianiFrame.cpp:192"
|
|
note: "Read on every start. Split in two 2 KB halves for the two character sets."
|
|
|
|
- name: CHARSET82.bmp
|
|
description: "Pravets 82 character generator bitmap"
|
|
required: true
|
|
bundled: true
|
|
size: 8254
|
|
md5: 5b4866713477fdb08bb2a78d2d86ceb0
|
|
sha1: 34718c242ccc539c54b456eca84286421ad24166
|
|
source_ref: "source/NTSC_CharSet.cpp:291, source/frontends/mariani/MarianiFrame.cpp:52-61"
|
|
note: >
|
|
Read through GetBitmap on every start, decoded with ImageIO and packed
|
|
eight pixels to the octet. No size check: the copy stops at the shorter of
|
|
the image and the requested buffer.
|
|
|
|
- name: CHARSET8M.bmp
|
|
description: "Pravets 8M character generator bitmap"
|
|
required: true
|
|
bundled: true
|
|
size: 8254
|
|
md5: f2720f70859026c76e07fc598fbe435f
|
|
sha1: cfbdbc1d76542f2a60dbbbdf9deb218ee197351e
|
|
source_ref: "source/NTSC_CharSet.cpp:292, source/frontends/mariani/MarianiFrame.cpp:52-61"
|
|
note: "Read through GetBitmap on every start."
|
|
|
|
- name: CHARSET8C.bmp
|
|
description: "Pravets 8A character generator bitmap, both character sets"
|
|
required: true
|
|
bundled: true
|
|
size: 16446
|
|
md5: 9248c1f19f3d3277a031f46a19b2e350
|
|
sha1: 0ec9ebe6542ca8f89ed4a7c417716b287a75b48e
|
|
source_ref: "source/NTSC_CharSet.cpp:293-294, source/frontends/mariani/MarianiFrame.cpp:52-61"
|
|
note: "Read twice, at row 0 for the alt character set off and at row 16 for on."
|
|
|
|
- name: DISK2.rom
|
|
description: "Disk II controller firmware, 16 sector"
|
|
required: true
|
|
bundled: true
|
|
size: 256
|
|
md5: 2020aa1413ff77fe29353f3ee72dc295
|
|
sha1: d4181c9f046aafc3fb326b381baac809d9e38d16
|
|
validation: [size]
|
|
source_ref: "source/Disk.cpp:2074-2082, source/Disk.cpp:2104-2108, source/frontends/mariani/MarianiFrame.cpp:166"
|
|
note: >
|
|
Read when the Disk II card initialises, which is slot 6 by default. Both
|
|
firmware images are read up front and the one installed at $C600 follows
|
|
the boot sector format of the inserted image.
|
|
|
|
- name: DISK2-13sector.rom
|
|
description: "Disk II controller firmware, 13 sector"
|
|
required: true
|
|
bundled: true
|
|
size: 256
|
|
md5: 4f80448507cf43ab40c17ac08d89e278
|
|
sha1: afd060e6f35faf3bb0146fa889fc787adf56330a
|
|
validation: [size]
|
|
source_ref: "source/Disk.cpp:2074-2082, source/Disk.cpp:2104-2106, source/frontends/mariani/MarianiFrame.cpp:165"
|
|
note: "Read alongside the 16 sector image when the Disk II card initialises."
|
|
|
|
- name: SSC.rom
|
|
description: "Super Serial Card firmware"
|
|
required: true
|
|
bundled: true
|
|
size: 2048
|
|
md5: 67c0d61ab0911183faf05270f881a97e
|
|
sha1: 6dab633470c6bc4cb3e81d09fda46597caf8ee57
|
|
validation: [size]
|
|
source_ref: "source/SerialComms.cpp:957-970, source/frontends/mariani/MarianiFrame.cpp:167"
|
|
note: >
|
|
Read when the card initialises, slot 2 by default. The 256 bytes at
|
|
offset 0x700 go to the slot ROM and the whole 2 KB stays as expansion ROM.
|
|
|
|
- name: Parallel.rom
|
|
description: "Parallel printer card firmware"
|
|
required: true
|
|
bundled: true
|
|
size: 256
|
|
md5: 5902996f16dc78fc013f6e1db14805b3
|
|
sha1: c75c751589cbcc1ad4ab4f63676af7abadd86f5b
|
|
validation: [size]
|
|
source_ref: "source/ParallelPrinter.cpp:43-52, source/frontends/mariani/MarianiFrame.cpp:171"
|
|
note: "Read when the printer card initialises, slot 1 by default."
|
|
|
|
- name: MouseInterface.rom
|
|
description: "Mouse interface card firmware"
|
|
required: false
|
|
bundled: true
|
|
size: 2048
|
|
md5: 22563ab338024dac7b03510371d49c57
|
|
sha1: 3a9d881a8a8d30f55b9719aceebbcf717f829d6f
|
|
validation: [size]
|
|
source_ref: "source/MouseInterface.cpp:163-176, source/frontends/mariani/MarianiFrame.cpp:173"
|
|
note: "Read only when the user puts the mouse card in a slot. No default slot holds it."
|
|
|
|
- name: HDC-SmartPort.bin
|
|
description: "Hard disk controller firmware, SmartPort"
|
|
required: false
|
|
bundled: true
|
|
size: 256
|
|
md5: 2592efa1d34ade55d490a1b39911c9b2
|
|
sha1: fd557998fd5823ad69a42ad1282e4fe47db02dca
|
|
validation: [size]
|
|
source_ref: "source/Harddisk.cpp:222-241, source/frontends/mariani/MarianiFrame.cpp:170"
|
|
note: >
|
|
Default firmware of the hard disk card, which no slot holds until the user
|
|
adds it. Block mode and drive count are patched into the copy afterwards.
|
|
|
|
- name: Hddrvr.bin
|
|
description: "Hard disk controller firmware, version 1"
|
|
required: false
|
|
bundled: true
|
|
size: 256
|
|
md5: e0a40e9166af27b16f60beb83c9233f0
|
|
sha1: 69667800c54da1d4466e7b2168c0e418a4cf586c
|
|
validation: [size]
|
|
source_ref: "source/Harddisk.cpp:227, source/Harddisk.cpp:237, source/Harddisk.cpp:1439-1441, source/frontends/mariani/MarianiFrame.cpp:168"
|
|
note: "Selected over the SmartPort firmware when a save state carries a hard disk card older than version 4."
|
|
|
|
- name: Hddrvr-v2.bin
|
|
description: "Hard disk controller firmware, version 2"
|
|
required: false
|
|
size: 256
|
|
md5: a49e45e7a6d4de23e0845a59c7e31e0c
|
|
sha1: 06115eebb4d58221b5c062a42bf3e41e137447ed
|
|
validation: [size]
|
|
source_ref: "source/Harddisk.cpp:228, source/Harddisk.cpp:237, source/Harddisk.cpp:1439-1443, source/frontends/mariani/MarianiFrame.cpp:169"
|
|
note: >
|
|
Selected when a save state carries hard disk card version 4. The
|
|
application bundle does not ship it, so it has to be placed in
|
|
Contents/Resources for that state to restore.
|
|
|
|
- name: bootsector.bin
|
|
description: "Boot sector written to a new DOS 3.3 disk image"
|
|
required: false
|
|
bundled: true
|
|
size: 256
|
|
md5: 6ab4d0a20071dad38154a7c0278beee6
|
|
sha1: 3b0d57ff9abb3302cc949f7e0cc71d38ea5a89ce
|
|
validation: [size]
|
|
source_ref: "source/ProDOS_Utils.cpp:832-836, source/frontends/mariani/MarianiFrame.cpp:194"
|
|
note: "Read by the Disk Maker window when it formats an image without copying DOS 3.3."
|
|
|
|
- name: bootsector_prodos243.bin
|
|
description: "Two boot sectors written to a new ProDOS disk image"
|
|
required: false
|
|
bundled: true
|
|
size: 1024
|
|
md5: 2695dc5458076eb747b9f245dd1a7ed9
|
|
sha1: e2f1b6342efff3a39fafd239f200707bc7494592
|
|
validation: [size]
|
|
source_ref: "source/ProDOS_Utils.cpp:792-796, source/frontends/mariani/MarianiFrame.cpp:195"
|
|
note: "Read by the Disk Maker window when it creates a ProDOS image."
|
|
|
|
- name: dos33c.bin
|
|
description: "DOS 3.3 image copied to the first three tracks of a new disk"
|
|
required: false
|
|
bundled: true
|
|
size: 12288
|
|
md5: 46a02fc4775b3d959f3f949a70eaa616
|
|
sha1: 52d1bbeed17f2a2240cb38249dba3663ad0b8a1f
|
|
validation: [size]
|
|
source_ref: "source/ProDOS_Utils.cpp:774-778, source/frontends/mariani/MarianiFrame.cpp:196"
|
|
note: "Read by the Disk Maker window when DOS 3.3 is copied onto the new image."
|
|
|
|
- name: prodos243.bin
|
|
description: "ProDOS 2.4.3 kernel written as PRODOS on a new ProDOS disk"
|
|
required: false
|
|
bundled: true
|
|
size: 17128
|
|
md5: 90644bd658fd0922d28eccb7cfb7cb76
|
|
sha1: 17c354249ddbfaf20b570d3c5e33b693e36646aa
|
|
validation: [size]
|
|
source_ref: "source/ProDOS_Utils.cpp:595-599, source/frontends/mariani/MarianiFrame.cpp:197"
|
|
note: "Read by the Disk Maker window when the ProDOS system file is copied."
|
|
|
|
- name: bitsy.boot.bin
|
|
description: "Bitsy Boot system file for a new ProDOS disk"
|
|
required: false
|
|
bundled: true
|
|
size: 365
|
|
md5: e6e8f7edc3ae48f827a97090cdca741c
|
|
sha1: 474c2b0c666239c76fce07e1c96471650431a2d6
|
|
validation: [size]
|
|
source_ref: "source/ProDOS_Utils.cpp:509-513, source/frontends/mariani/MarianiFrame.cpp:198"
|
|
note: "Read by the Disk Maker window when Bitsy Boot is copied."
|
|
|
|
- name: quit.system.bin
|
|
description: "Bitsy Bye quit system file for a new ProDOS disk"
|
|
required: false
|
|
bundled: true
|
|
size: 56
|
|
md5: 6a32c39d8ac24bd56a03d79299b0a8f1
|
|
sha1: dbda9a9fd882af929b17cd2de1a975e7f1b93361
|
|
validation: [size]
|
|
source_ref: "source/ProDOS_Utils.cpp:552-556, source/frontends/mariani/MarianiFrame.cpp:199"
|
|
note: "Read by the Disk Maker window when Bitsy Bye is copied."
|
|
|
|
- name: basic17.system.bin
|
|
description: "BASIC.SYSTEM 1.7 written to a new ProDOS disk"
|
|
required: false
|
|
bundled: true
|
|
size: 10240
|
|
md5: a8d8c08f5cb4a9480389477c6c2f2834
|
|
sha1: 6ba0571dee8da75f5c1736854e206eb9d2601fac
|
|
validation: [size]
|
|
source_ref: "source/ProDOS_Utils.cpp:467-471, source/frontends/mariani/MarianiFrame.cpp:200"
|
|
note: "Read by the Disk Maker window when BASIC.SYSTEM is copied."
|
|
|
|
- name: APPLE2E.SYM
|
|
description: "Debugger symbol table for the main ROM"
|
|
required: false
|
|
bundled: true
|
|
size: 13444
|
|
md5: 034527d42a96d0f39977cb85c6a8f2d8
|
|
sha1: fcfbbb25e06f58d13e762b02bfd468c834d98fc8
|
|
source_ref: "source/Debugger/Debugger_Symbols.cpp:46, 774, 814-817, source/Debugger/Debug.cpp:9495-9496"
|
|
note: >
|
|
Preloaded into the Main table when the emulator starts. Read from the
|
|
support directory first, then from the bundle. Parsed as lines of address
|
|
and name, with no size or hash check.
|
|
|
|
- name: A2_BASIC.SYM
|
|
description: "Debugger symbol table for Applesoft BASIC"
|
|
required: false
|
|
bundled: true
|
|
size: 15378
|
|
md5: 7253a9ba7d7ca807016f5adc0207dd7b
|
|
sha1: 496a0bd1af463fce81b362da9e4757a993e355d5
|
|
source_ref: "source/Debugger/Debugger_Symbols.cpp:47, 774, 814-817, source/Debugger/Debug.cpp:9498-9499"
|
|
note: "Preloaded into the Basic table when the emulator starts."
|
|
|
|
- name: A2_DOS33.SYM2
|
|
description: "Debugger symbol script for DOS 3.3"
|
|
required: false
|
|
size: 2380
|
|
md5: 88bd69906b4b3109b3f31472fb4b47f4
|
|
sha1: 51cc84e2cbd9bd61d50a0931cdae0a2ef0a57d6c
|
|
source_ref: "source/Debugger/Debugger_Symbols.cpp:53, 774-806, source/Debugger/Debug.cpp:9502-9503"
|
|
note: >
|
|
Preloaded into the DOS33 table when the emulator starts. The .SYM2
|
|
extension routes it through the debugger script reader instead of the
|
|
symbol parser, so it is only read from the support directory. The
|
|
application bundle does not ship it.
|
|
|
|
- name: PrintChar21.ttf
|
|
description: "Print Char 21 font used by the debugger console and inspector"
|
|
required: false
|
|
bundled: true
|
|
size: 501992
|
|
md5: 972ce55fa7b905a494de16a7e8ec1949
|
|
sha1: c66c1955dac84a253a661720a7947150c109f315
|
|
source_ref: "source/frontends/mariani/debugger/ConsoleViewController.mm:74, source/frontends/mariani/debugger/InspectorOutlineViewController.mm:356, source/frontends/mariani/debugger/CharacterMappings.mm:13-142, source/frontends/mariani/Mariani-Info.plist:5-6"
|
|
note: >
|
|
Registered from the resource folder by ATSApplicationFontsPath and asked
|
|
for by family name. CharacterMappings maps Apple II character values to
|
|
its codepoints.
|
|
|
|
analysis:
|
|
bundle_layout:
|
|
resource_folder: "Mariani.app/Contents/Resources"
|
|
lookup: "NSBundle pathForResource, no fallback directory"
|
|
reader: "open() and read(), cached per resource id in MarianiFrame::roms"
|
|
size_check: "LinuxFrame::GetResource throws when the size differs from the one the call site expects"
|
|
missing_file: "modal alert titled Resource not found, then a null pointer"
|
|
source_ref: "source/frontends/mariani/MarianiFrame.cpp:156-232, source/frontends/mariani/AppDelegate.mm:1465-1469, source/linux/linuxframe.cpp:133-145"
|
|
|
|
support_directory:
|
|
path: "~/Library/Application Support/<bundle id>/"
|
|
holds: "debugger symbol tables, debugger scripts, printer output, g_sProgramDir"
|
|
source_ref: "source/frontends/mariani/AppDelegate.mm:1471-1485, source/frontends/mariani/MarianiFrame.cpp:36"
|
|
|
|
unreachable_resources:
|
|
- filename: Mockingboard-D.rom
|
|
reason: "IDR_MOCKINGBOARD_D_FW appears only in the resource header and in the frontend's name table; nothing requests it"
|
|
source_ref: "resource/resource.h:38, source/frontends/mariani/MarianiFrame.cpp:172"
|
|
- filename: TKClock.rom
|
|
reason: "IDR_TKCLOCK_FW appears only in the resource header and in the frontend's name table; nothing requests it"
|
|
source_ref: "resource/resource.h:51, source/frontends/mariani/MarianiFrame.cpp:175"
|
|
- filename: ThunderClockPlus.rom
|
|
reason: >
|
|
Its only consumer, LoadRom_Clock_ThunderClockPlus, has no caller in the
|
|
tree, reads through the Win32 FindResource API and lives in a file the
|
|
Xcode project never compiles
|
|
source_ref: "source/Peripheral_Clock_ThunderClockPlus.cpp:200-215, resource/resource.h:40"
|
|
- filename: Debug_Font.bmp
|
|
reason: >
|
|
IDB_DEBUG_FONT_7_by_8 is fetched with Win32 LoadBitmap against the
|
|
Windows frame, and MarianiFrame::GetBitmap answers only the three
|
|
CHARSET ids. Mariani draws its debugger with AppKit
|
|
source_ref: "source/Debugger/Debugger_Display.cpp:595, source/frontends/mariani/MarianiFrame.cpp:52-65"
|
|
|
|
symbol_tables:
|
|
lookup: "g_sProgramDir then g_sBuiltinSymbolsDir, which is the folder holding the bundled .SYM files"
|
|
source_ref: "source/Debugger/Debugger_Symbols.cpp:45-55, 774, 814-817, source/frontends/mariani/AppDelegate.mm:1487-1491"
|
|
preloaded_at_init:
|
|
- APPLE2E.SYM
|
|
- A2_BASIC.SYM
|
|
- A2_DOS33.SYM2
|
|
- A2_USER1.SYM
|
|
loaded_on_command:
|
|
- A2_ASM.SYM
|
|
- A2_USER2.SYM
|
|
- A2_SRC1.SYM
|
|
- A2_SRC2.SYM
|
|
- A2_PRODOS.SYM
|
|
note: >
|
|
DebugInitialize runs from InitialiseEmulator, so the preload happens even
|
|
when the debugger window is never opened. Only APPLE2E.SYM and A2_BASIC.SYM
|
|
are in the bundle. The user slots and the source and assembler tables have
|
|
no distributed content and are written by whoever needs them; a missing
|
|
table leaves the debugger running without those names.
|
|
|
|
debugger_scripts:
|
|
- filename: DebuggerAutoRun.txt
|
|
source_ref: "source/Debugger/Debug.cpp:365, source/Debugger/Debug.cpp:9436-9469"
|
|
note: >
|
|
Run once at the first DebugInitialize, from the current directory and
|
|
then from the support directory. Holds debugger commands written by the
|
|
user; the copy in the source tree is empty.
|
|
|
|
user_supplied_roms:
|
|
options:
|
|
- option: "--rom"
|
|
accepts: "12 KB image at $D000 or 16 KB image at $C000, any path"
|
|
source_ref: "source/frontends/common2/argparser.cpp:205, source/frontends/common2/programoptions.cpp:82-92, source/Memory.cpp:2173-2213"
|
|
- option: "--f8rom"
|
|
accepts: "2 KB image at $F800, any path"
|
|
source_ref: "source/frontends/common2/argparser.cpp:206, source/frontends/common2/programoptions.cpp:93-102, source/Memory.cpp:2139-2161"
|
|
note: >
|
|
Both are installed over the ROM already loaded from the bundle and neither
|
|
has a fixed name. AppleWin's -videorom has no equivalent: ParseCmdLine is
|
|
never called in this tree.
|
|
|
|
generated_files:
|
|
written_only:
|
|
- AppleWin.log
|
|
- Trace.txt
|
|
- "save states"
|
|
- "screen recordings and screenshots"
|
|
- "printer spool file"
|
|
written_and_read_back:
|
|
- applewin.yaml
|
|
- AppleWinDebugger.cfg
|
|
note: >
|
|
applewin.yaml is the configuration registry, created under the settings
|
|
root and overridable with --conf and --registry. All of these are produced
|
|
by the emulator, none is user-supplied.
|
|
|
|
help_book:
|
|
filename: Mariani.help
|
|
reason: "Help bundle opened by AppKit through CFBundleHelpBookName, not by emulator code"
|
|
source_ref: "source/frontends/mariani/Mariani-Info.plist:42-45, source/frontends/mariani/Base.lproj/MainMenu.xib:264"
|