diff --git a/emulators/pom2.yml b/emulators/pom2.yml index 630c4910..fb8428f7 100644 --- a/emulators/pom2.yml +++ b/emulators/pom2.yml @@ -3,9 +3,9 @@ type: standalone core_classification: other source: "https://github.com/habib256/pom2" upstream: "https://github.com/habib256/pom2" -profiled_date: "2026-10-04" -source_commit: "c2ce3f685cf3c7429de7341b2b3df65e9981b907" -core_version: "0.9.4" +profiled_date: "2026-10-23" +source_commit: "b7c14c5b5d8ed78402c0c1efc196bb1bc7f93e37" +core_version: "0.9.8" display_name: "Apple - Apple II (POM2)" cores: - pom2 @@ -16,7 +16,7 @@ mode: standalone notes: | Apple ][, ][+, //e, //c and //c+ emulator by Arnaud Verhille, C++ with an ImGui frontend, plus a browser build and a headless CLI. Nine machine - profiles (src/SystemProfile.cpp:32-302): Apple ][ Original, ][+, //e + profiles (src/SystemProfile.cpp:32-305): Apple ][ Original, ][+, //e Unenhanced, //e Enhanced, //c, //c Plus, and PAL variants of the //e Unenhanced, //e Enhanced (the default) and //c (Le Chat Mauve). @@ -26,11 +26,12 @@ notes: | %LOCALAPPDATA%\POM2) when it really is per-user, the executable directory, its parent, ../share/POM2, the temp fallback data directory otherwise, then the working directory and its two parents. The first hit - wins. Release packages ship the whole roms/ tree, the fonts and the two - photos (packaging/bundle.manifest). + wins. Release packages ship the whole roms/ tree, the fonts, the About + photo, the two keyboard photos and the pic/retro artwork + (packaging/bundle.manifest:39, 50-61). Machine firmware is a probe chain per profile, first name found wins - (SystemProfile.cpp romProbeOrder, src/ProfileSwitch.cpp:113-133): + (SystemProfile.cpp romProbeOrder, src/ProfileSwitch.cpp:136-154): ][ Original apple2o.rom, apple2.rom ][+ apple2p.rom, apple2.rom //e Unenhanced apple2e_unenh.rom, 342-0135-b.64.rom, apple2e.rom @@ -38,18 +39,18 @@ notes: | //c apple2c-32Kv0.rom, apple2c-16K.rom, 3420033a.256 //c Plus apple2cp.rom, apple2c-plus.rom, apple2c-32Kv0.rom With no candidate the machine runs on a $D000-$FFFF stub and the Welcome - panel opens (src/MainWindow.cpp:328-336). A first run with no //e image - falls back to the ][+ chain (src/MainWindow.cpp:233-246). - Memory::loadAppleIIRom (src/Memory.cpp:174-237) maps 12 KB at $D000, + panel opens (src/MainWindow.cpp:334-342). A first run with no //e image + falls back to the ][+ chain (src/MainWindow.cpp:239-252). + Memory::loadAppleIIRom (src/Memory.cpp:175-262) maps 12 KB at $D000, 16 KB at $C000, skips the 4 KB pad of a 20 KB ][+ dump, and slices a 32 KB dump by profile: //e images carry the firmware in the upper half, //c and //c+ images are two firmware banks with bank 0 in the lower half - (src/SystemProfile.cpp:429). + (src/SystemProfile.cpp:432). Character generators follow charRomProbeOrder per profile, or the locale picked in the toolbar (src/CharRomCatalog.cpp:42-91, - src/ProfileSwitch.cpp:135-141). Memory::loadCharRom accepts 2 KB, 4 KB - and 8 KB dumps (src/Memory.cpp:325-358). An 8 KB dump is two 4 KB banks, + src/ProfileSwitch.cpp:156-162). Memory::loadCharRom accepts 2 KB, 4 KB + and 8 KB dumps (src/Memory.cpp:343-376). An 8 KB dump is two 4 KB banks, loaded as one bank or kept dual-bank with annunciator 2 selecting the live set. @@ -57,23 +58,24 @@ notes: | The Disk II carries the 341-0027-A boot PROM and the 16-sector P6 sequencer built in (src/DiskIICard.cpp:136-149). CFFA, Liron, Workstation, the MC68705 mouse card, the 1981 Grappler, the Apple - Parallel Interface and the Videx Videoterm leave the slot empty without - their dump. Grappler+, ThunderClock+ and the Super Serial Card run a - synthetic ROM instead, and TransWarp accelerates without its boot - firmware. The catalogue behind the ROM Status panel (src/RomCatalog.h) + Parallel Interface, the Videx Videoterm and the Apple Memory Expansion + Card leave the slot empty without their dump. Grappler+, ThunderClock+ + and the Super Serial Card run a synthetic ROM instead, and TransWarp + accelerates without its boot firmware. The catalogue behind the ROM Status panel (src/RomCatalog.h) lists every name in probe order with the size the loader enforces, what a missing dump costs (degraded, card unavailable, unused) and, where POM2 vouches for a dump, its CRC32. The panel hashes each present - file (src/RomStatus_ImGui.cpp:169-181, 311). + file (src/RomStatus_ImGui.cpp:185-212, 415) and lists the Virtual ][ + recordings with a decode check (src/RomStatus_ImGui.cpp:323-391). Help > Download missing ROMs (src/RomFetch.cpp:68-301) fetches 45 files, 43 distinct dumps, with curl from raw.githubusercontent.com/Abdess/retrobios, - pinned to HTTPS (src/RomFetch.cpp:732-748). Every entry carries a + pinned to HTTPS (src/RomFetch.cpp:734-750). Every entry carries a SHA-256, fourteen a CRC32 as well, and a download is installed only when its - size, CRC32 and SHA-256 match (src/RomFetch.cpp:629-665). A present file + size, CRC32 and SHA-256 match (src/RomFetch.cpp:631-667). A present file is re-checked with the same gate and, when it is not the catalogued dump, replaced after a copy to roms-replaced/ under the data directory - (src/RomFetch.cpp:579-627, 833-853, 862-880). A 12 KB apple2p.rom is the + (src/RomFetch.cpp:581-629, 840-860, 869-887). A 12 KB apple2p.rom is the one alternate size kept as is. Nine entries are members of MAME romsets, read in-process (src/ZipMember.cpp): apple2e_unenh.rom is 342-0135-b.64 then 342-0134-a.64 from apple2e.zip, mouse_341-0270-c.bin is @@ -81,21 +83,24 @@ notes: | a2ssc.zip, grappler_eps-1.bin is eps-1_c1981.u6 from a2grappler.zip, 341-0057.bin is 341-0057.7b from a2pic.zip, and the four Videoterm files come from a2vidtrm.zip. Downloads land in the per-user data directory's - roms/ (src/RomFetch.cpp:801-821). Unavailable in the browser build - (src/RomFetch.cpp:922-925). + roms/ (src/RomFetch.cpp:808-828). Unavailable in the browser build + (src/RomFetch.cpp:932-937). The floppy mechanical sounds are MAME's samples/floppy set, read from roms/floppy_samples/ as two banks of ten WAV files prefixed 525_ and 35_ - (src/FloppySoundDevice.cpp:81-119, src/MainWindow.cpp:345-358). A + (src/FloppySoundDevice.cpp:82-120, src/MainWindow.cpp:351-364). A missing sample is logged and the drive stays silent. A second bank, the - Virtual ][ recordings, is read from roms/virtual_ii_sons/ when that - directory exists (src/MainWindow.cpp:362-376): eight drive and switch - takes under lecteur/ and interface/ (src/FloppySoundDevice.cpp:195-204) - and one printer loop under imprimante/. The bank is selectable once - Disk Rotation, Move arm, Disk Insertion and Disk Removal have loaded - (src/FloppySoundDevice.cpp:205-225). An .aiff name is retried as .wav - (src/FloppySoundDevice.cpp:166-187). The packaging manifest keeps the - directory out of release packages (packaging/bundle.manifest:75-78). + Virtual ][ recordings, is read from the folder picked with Import + sounds in the audio mixer, stored as mechanical_sound_path + (src/MainWindow_AudioPanels.cpp:349-378), then from roms/virtual_ii_sons/ + (src/MainWindow.cpp:365-385): eight drive and switch takes under + lecteur/ and interface/ (src/VirtualIISoundCatalog.h:15-24) and one + printer loop under imprimante/ (src/VirtualIISoundCatalog.h:26-27). The + bank is selectable once Disk Rotation, Move arm, Disk Insertion and Disk + Removal have loaded (src/FloppySoundDevice.cpp:196-232). An .aiff name is + retried as .wav (src/FloppySoundDevice.cpp:173-194). The packaging + manifest keeps the directory out of release packages + (packaging/bundle.manifest:91-94). The nine takes come from Contents/Resources/ of Virtual ][.app in VirtualII.dmg, the free download on virtualii.com (Virtual ][ 13.3). @@ -108,15 +113,25 @@ notes: | and 16, and SoundRepeater fills an lpcm AudioStreamBasicDescription with one channel, the signed-integer flag for 16 bits and no big-endian flag. POM2 decodes all nine through miniaudio into mono float at the file's own - rate (src/FloppySoundDevice.cpp:133-164, src/PrinterSoundDevice.cpp:272-299). + rate (src/FloppySoundDevice.cpp:134-165, src/PrinterSoundDevice.cpp:79-101). + + The screen sits in a Monitor II bezel, pic/retro/monitor/monitor2.png, + on by default (src/MainWindow_Screen.cpp:371-372), and the Drives window + shows a picture per drive state from pic/retro/drives/ + (src/RetroArtwork.cpp:44-91, src/MainWindow_DriveRack.cpp:109-120). + Without a picture the screen has no bezel and the drive is drawn as a + vector mechanism (src/DriveRack_ImGui.cpp:57-61). The FujiNet card runs + FujiNet-PC Apple v1.5.2, a separate program the release packages carry + under fujinet-pc-APPLE// (src/FujiNetRuntime.cpp:38-62, + packaging/fujinet/stage.py:20-31). Media named by the code are not firmware and are not listed here: the - browser demo boots floppyemu/DIX.po (wasm/shell.html:89) or, when the - shell passes no disk, floppyemu/Total Replay v6.1.hdv - (src/main.cpp:285-289), and the headless CLI mounts - disks_5.4/dos33_master.dsk by default (src/pom2_headless.cpp:262-264). - Disk, tape and hard-disk images are browsed from disks_5.4/, disks_3.5/, - hdv/, floppyemu/, cassettes/ and prodos_folder/ next to the executable. + browser demo boots bundled_disks/DIX-fix.po on the //c PAL preset + (wasm/shell.html:102-105, src/main.cpp:313-319), and the headless CLI + mounts disks_5.4/dos33_master.dsk by default + (src/pom2_headless.cpp:265-267). Disk, tape and hard-disk images are + browsed from disks_5.4/, disks_3.5/, hdv/, floppyemu/, bundled_disks/, + cassettes/ and prodos_folder/ next to the executable. files: - name: "apple2o.rom" @@ -129,7 +144,7 @@ files: sha256: "68d9db6bb4c305d40c3fa89fa0f2d7b7f71516a9431e3138859f23bc5bddb2d1" sha1: "78008be557f643e956a106121bcc182c0fb9ea6d" validation: [size, sha256] - source_ref: "src/SystemProfile.cpp:38, src/Memory.cpp:174-237, src/RomFetch.cpp:72-75" + source_ref: "src/SystemProfile.cpp:38, src/Memory.cpp:175-262, src/RomFetch.cpp:72-75" note: "First candidate of the Apple ][ Original profile. apple2.rom is probed next." - name: "apple2.rom" path: "roms/apple2.rom" @@ -141,7 +156,7 @@ files: sha256: "fc3e9d41e9428534a883df5aa10eb55b73ea53d2fcbb3ee4f39bed1b07a82905" sha1: "33a24f5489ba9195b44be77d9afb2252594cb5c7" validation: [size, sha256] - source_ref: "src/SystemProfile.cpp:38, src/SystemProfile.cpp:54, src/ProfileSwitch.cpp:121-128, src/RomFetch.cpp:76-83" + source_ref: "src/SystemProfile.cpp:38, src/SystemProfile.cpp:54, src/ProfileSwitch.cpp:142-149, src/RomFetch.cpp:76-83" note: "Probed after the profile image for the ][ and ][+ profiles. When it resolves in place of that image the loader logs that the ROM identity may not match the machine." - name: "apple2p.rom" path: "roms/apple2p.rom" @@ -153,8 +168,8 @@ files: sha256: "92c4bef609920842ea472d21b661a0d35dbda6cd90963b8b734a205e22d84108" sha1: "29a53f3bb158b160433369e8e4a1d7cd5bf68ac6" validation: [size, sha256] - source_ref: "src/SystemProfile.cpp:54, src/Memory.cpp:222-232, src/RomFetch.cpp:84-96, src/RomFetch.cpp:862-873" - note: "First candidate of the ][+ profile and of the first-run fallback (src/MainWindow.cpp:242-246). The loader drops the leading 4 KB of the 20 KB dump. The fetch gate names that dump, but a 12 KB six-chip image already on disk is kept as present without a digest check." + source_ref: "src/SystemProfile.cpp:54, src/Memory.cpp:247-257, src/RomFetch.cpp:84-96, src/RomFetch.cpp:869-880" + note: "First candidate of the ][+ profile and of the first-run fallback (src/MainWindow.cpp:248-252). The loader drops the leading 4 KB of the 20 KB dump. The fetch gate names that dump, but a 12 KB six-chip image already on disk is kept as present without a digest check." - name: "apple2e.rom" path: "roms/apple2e.rom" description: "Apple //e Enhanced firmware, 32 KB dump with the 16 KB firmware in the upper half" @@ -165,7 +180,7 @@ files: sha256: "c17bc38c75ba96c33a30c688a1efd60144811073423533fe7f8453cdd9457aab" sha1: "d756eba578a6c5a4807510dfee30ee585c63755e" validation: [size, sha256] - source_ref: "src/SystemProfile.cpp:101, src/SystemProfile.cpp:241-253, src/Memory.cpp:202-214, src/Memory.cpp:233-235, src/MainWindow.cpp:233-236, src/RomFetch.cpp:97-100" + source_ref: "src/SystemProfile.cpp:101, src/SystemProfile.cpp:244-256, src/Memory.cpp:227-239, src/Memory.cpp:258-260, src/MainWindow.cpp:239-242, src/RomFetch.cpp:97-100" note: "Sole candidate of the //e Enhanced profiles, NTSC and PAL, PAL being the default machine. Also the last fallback of the //e Unenhanced chain." - name: "apple2e_unenh.rom" path: "roms/apple2e_unenh.rom" @@ -178,7 +193,7 @@ files: sha256: "1fb812584c6633fa16b77b20915986ed1178d1e6fc07a647f7ee8d4e6ab9d40b" sha1: "61fa9254628e5bb7236fb474006116d67684d747" validation: [size, sha256] - source_ref: "src/SystemProfile.cpp:78-79, src/SystemProfile.cpp:267-279, src/RomFetch.cpp:51-56, src/RomFetch.cpp:101-109" + source_ref: "src/SystemProfile.cpp:78-79, src/SystemProfile.cpp:270-282, src/RomFetch.cpp:51-56, src/RomFetch.cpp:101-109" note: "First candidate of the //e Unenhanced profiles. 342-0135-b.64.rom is probed second, apple2e.rom third. The fetcher assembles it from the two 8 KB chips of the MAME apple2e set, 342-0135-b.64 then 342-0134-a.64." - name: "apple2c-32Kv0.rom" path: "roms/apple2c-32Kv0.rom" @@ -191,7 +206,7 @@ files: sha256: "d65bbf97058b9cdce8eaebf74124048e3b4e42dca1bd42be316747bbc27dc124" sha1: "fb0d644aafaff1352d0816bc8494f6c9913809d5" validation: [size, sha256] - source_ref: "src/SystemProfile.cpp:142-143, src/SystemProfile.cpp:204-205, src/SystemProfile.cpp:429-434, src/Memory.cpp:202-214, src/Memory.cpp:233-235, src/RomFetch.cpp:110-113" + source_ref: "src/SystemProfile.cpp:142-143, src/SystemProfile.cpp:204-205, src/SystemProfile.cpp:432-437, src/Memory.cpp:227-239, src/Memory.cpp:258-260, src/RomFetch.cpp:110-113" note: "First candidate of the //c and //c PAL profiles, third of the //c Plus chain. Bank 0 is mapped at reset, the $C028 ROMBANK switch selects the other. Identical to 3420033a.256 with its first 256 bytes zeroed." - name: "apple2c-16K.rom" path: "roms/apple2c-16K.rom" @@ -204,7 +219,7 @@ files: sha256: "3ca1c8a27bf111aa0f4dc9372c5e6404457adb9a458ce32ae4b03a7e989e0c76" sha1: "1a9b8aca5e32bb702ddb7791daddd60a89655729" validation: [size, sha256] - source_ref: "src/SystemProfile.cpp:142-143, src/Memory.cpp:220-221, src/RomFetch.cpp:114-117" + source_ref: "src/SystemProfile.cpp:142-143, src/Memory.cpp:245-246, src/RomFetch.cpp:114-117" note: "Second candidate of the //c chain, loaded at $C000." - name: "3420033a.256" path: "roms/3420033a.256" @@ -231,7 +246,7 @@ files: sha256: "5a62070f6a0b07784681d4df4bf2ce88b2809bec0cbaa65fcb963e804ed60374" sha1: "1a27ae26966bbafd825d08ad1a24742d3e33557c" validation: [size, sha256] - source_ref: "src/SystemProfile.cpp:204-205, src/SystemProfile.cpp:429-434, src/RomFetch.cpp:122-125" + source_ref: "src/SystemProfile.cpp:204-205, src/SystemProfile.cpp:432-437, src/RomFetch.cpp:122-125" note: "First candidate of the //c Plus profile. apple2c-plus.rom is probed second and apple2c-32Kv0.rom third." - name: "apple2_char.rom" path: "roms/apple2_char.rom" @@ -243,7 +258,7 @@ files: sha256: "08f5d22230481019844492dde0a29a018cb193712a9e4a43770a3870608f28de" sha1: "f9d312f128c9557d9d6ac03bfad6c3ddf83e5659" validation: [size, sha256] - source_ref: "src/SystemProfile.cpp:39, src/SystemProfile.cpp:55, src/CharRomCatalog.cpp:42-43, src/RomFetch.cpp:128-131, src/Memory.cpp:325-358" + source_ref: "src/SystemProfile.cpp:39, src/SystemProfile.cpp:55, src/CharRomCatalog.cpp:42-43, src/RomFetch.cpp:128-131, src/Memory.cpp:343-376" note: "Sole candidate of the ][ and ][+ profiles and the last fallback of every //e-class chain." - name: "apple2e_char.rom" path: "roms/apple2e_char.rom" @@ -256,7 +271,7 @@ files: sha256: "52c3b87900ac939f6525402cab1ccfd8f8259290fc6df54da48fb4c98ae3ed0f" sha1: "b2b5d87f52693817fc747df087a4aa1ddcdb1f10" validation: [size, sha256] - source_ref: "src/SystemProfile.cpp:105, src/SystemProfile.cpp:144, src/SystemProfile.cpp:206, src/CharRomCatalog.cpp:48-49, src/RomFetch.cpp:132-144, src/Memory.cpp:325-358" + source_ref: "src/SystemProfile.cpp:105, src/SystemProfile.cpp:144, src/SystemProfile.cpp:206, src/CharRomCatalog.cpp:48-49, src/RomFetch.cpp:132-144, src/Memory.cpp:343-376" note: "First candidate of the //e Enhanced, //c and //c Plus profiles. The same dump answers to apple2e_char_us.rom in the locale picker, and the fetcher writes both names." - name: "apple2e_char_us_unenh.rom" path: "roms/apple2e_char_us_unenh.rom" @@ -269,7 +284,7 @@ files: sha256: "ed5bdd4afa509134e85f1d020685af7ff50e279226eb869a17825b471cc1634c" sha1: "58ad0008df72896a18601e090ee0d58155ffa5be" validation: [size, sha256] - source_ref: "src/SystemProfile.cpp:83-84, src/CharRomCatalog.cpp:50-51, src/RomFetch.cpp:145-152, src/Memory.cpp:325-358" + source_ref: "src/SystemProfile.cpp:83-84, src/CharRomCatalog.cpp:50-51, src/RomFetch.cpp:145-152, src/Memory.cpp:343-376" note: "The //e Unenhanced profile probes apple2e_char_2k.rom then 341-0265-a.chr.rom then apple2_char.rom. The same dump ships under both names and the fetcher writes both." - name: "apple2e_char_fr.rom" path: "roms/apple2e_char_fr.rom" @@ -282,7 +297,7 @@ files: sha256: "52d8e46b487a617c288caaf12ab7ad6cb81030b6ab92419f9a2e19c43d765566" sha1: "42afb02aab4146f781ac52803a2733adc4da834e" validation: [size, sha256] - source_ref: "src/CharRomCatalog.cpp:52-53, src/CharRomCatalog.cpp:56-57, src/CharRomCatalog.cpp:165-180, src/RomFetch.cpp:155-158, src/Memory.cpp:325-358" + source_ref: "src/CharRomCatalog.cpp:52-53, src/CharRomCatalog.cpp:56-57, src/CharRomCatalog.cpp:165-180, src/RomFetch.cpp:155-158, src/Memory.cpp:343-376" note: "Locale picker entry. The same dump is also listed as the FR Canadian unenhanced set 341-0168-A, a name the fetcher does not serve." - name: "apple2e_char_frca.rom" path: "roms/apple2e_char_frca.rom" @@ -294,7 +309,7 @@ files: sha256: "56479cbec4767651c62a4d0f61e6ed103395216f2b86eddba74d85495dd71cc4" sha1: "4043e0808af8be096660827445e41149d16c5c85" validation: [size, sha256] - source_ref: "src/CharRomCatalog.cpp:54-55, src/CharRomCatalog.cpp:165-180, src/RomFetch.cpp:159-162, src/Memory.cpp:325-358" + source_ref: "src/CharRomCatalog.cpp:54-55, src/CharRomCatalog.cpp:165-180, src/RomFetch.cpp:159-162, src/Memory.cpp:343-376" note: "Locale picker entry, equal to the low bank of 342-0274-a.e9." - name: "apple2e_char_uk.rom" path: "roms/apple2e_char_uk.rom" @@ -306,7 +321,7 @@ files: sha256: "d55bd5391485cd78c68c71408f09bd088e82a73d179a0a25820067a0c1554acd" sha1: "d19c2e2cc12b27d77edc403d5d0701186a4ed988" validation: [size, sha256] - source_ref: "src/CharRomCatalog.cpp:58-59, src/CharRomCatalog.cpp:165-180, src/RomFetch.cpp:163-166, src/Memory.cpp:325-358" + source_ref: "src/CharRomCatalog.cpp:58-59, src/CharRomCatalog.cpp:165-180, src/RomFetch.cpp:163-166, src/Memory.cpp:343-376" note: "Locale picker entry." - name: "apple2e_char_uk_unenh.rom" path: "roms/apple2e_char_uk_unenh.rom" @@ -318,7 +333,7 @@ files: sha256: "f2199fbfb473e98a8c3fb7e7c3312faaf76b4b010b02c655b662e5f87dc997f3" sha1: "6ca9767e0f47f642d1caab6ed41b8f58c58bb9eb" validation: [size, sha256] - source_ref: "src/CharRomCatalog.cpp:60-61, src/CharRomCatalog.cpp:165-180, src/RomFetch.cpp:167-170, src/Memory.cpp:325-358" + source_ref: "src/CharRomCatalog.cpp:60-61, src/CharRomCatalog.cpp:165-180, src/RomFetch.cpp:167-170, src/Memory.cpp:343-376" note: "Locale picker entry." - name: "apple2e_char_de.rom" path: "roms/apple2e_char_de.rom" @@ -330,7 +345,7 @@ files: sha256: "b92576b4fa994384501078ff99963b53cfa98eff4bb641eb61649d484a469315" sha1: "a7fd75ae8611572b0b4d99ad54562014b879dbbf" validation: [size, sha256] - source_ref: "src/CharRomCatalog.cpp:62-63, src/CharRomCatalog.cpp:165-180, src/RomFetch.cpp:171-174, src/Memory.cpp:325-358" + source_ref: "src/CharRomCatalog.cpp:62-63, src/CharRomCatalog.cpp:165-180, src/RomFetch.cpp:171-174, src/Memory.cpp:343-376" note: "Locale picker entry." - name: "apple2e_char_de_improved.rom" path: "roms/apple2e_char_de_improved.rom" @@ -342,7 +357,7 @@ files: sha256: "0e32ab131e3932fc61c0a5f0f5509b4c37ab8db6239027f5955d47feba56d39f" sha1: "12ce44f02bd28c350e2b0723d94ab8d9066f8798" validation: [size, sha256] - source_ref: "src/CharRomCatalog.cpp:64-65, src/CharRomCatalog.cpp:165-180, src/RomFetch.cpp:175-178, src/Memory.cpp:325-358" + source_ref: "src/CharRomCatalog.cpp:64-65, src/CharRomCatalog.cpp:165-180, src/RomFetch.cpp:175-178, src/Memory.cpp:343-376" note: "Locale picker entry." - name: "342-0274-a.e9" path: "roms/342-0274-a.e9" @@ -354,7 +369,7 @@ files: sha256: "d4d29771658372c6ab5d18ff3bdab6b3b2b02b8de30ed6b021efb8a415192432" sha1: "c81c1bbf237e70f8c3e5eef3c8fd5bd9b9f54d1e" validation: [size, sha256] - source_ref: "src/CharRomCatalog.cpp:81-84, src/CharRomCatalog.cpp:158-163, src/RomFetch.cpp:179-184, src/RomStatus_ImGui.cpp:250, src/Memory.cpp:325-358" + source_ref: "src/CharRomCatalog.cpp:81-84, src/CharRomCatalog.cpp:158-163, src/RomFetch.cpp:179-184, src/RomStatus_ImGui.cpp:282, src/Memory.cpp:343-376" note: "Locale picker entries select bank 0 or bank 1. Loaded whole, both banks stay live and annunciator 2 picks the set." - name: "apple2e_char_ft_blockascii.rom" path: "roms/apple2e_char_ft_blockascii.rom" @@ -366,7 +381,7 @@ files: sha256: "c69c8e1eb26923c5df03d3507fdf86c5f768283a924a5fffdd80377cf2339321" sha1: "f79815457437e50404f4f537d8aabe34bff3a220" validation: [size, sha256] - source_ref: "src/CharRomCatalog.cpp:85-86, src/RomFetch.cpp:185-189, src/RomStatus_ImGui.cpp:250, src/Memory.cpp:325-358" + source_ref: "src/CharRomCatalog.cpp:85-86, src/RomFetch.cpp:185-189, src/RomStatus_ImGui.cpp:282, src/Memory.cpp:343-376" note: "Locale picker entry loaded dual-bank: annunciator 2 flips between the text set and the block glyphs." - name: "apple2e_char_us_mt_iigs.rom" path: "roms/apple2e_char_us_mt_iigs.rom" @@ -378,7 +393,7 @@ files: sha1: "66eca035fd18024fceed4c30c32a4185792cb3ea" sha256: "097cd3500afe6c15d710d2e96af539a8e5065853986289294aac08ee7a1f070a" validation: [size] - source_ref: "src/CharRomCatalog.cpp:87-88, src/CharRomCatalog.cpp:165-180, src/RomStatus_ImGui.cpp:250, src/Memory.cpp:325-358" + source_ref: "src/CharRomCatalog.cpp:87-88, src/CharRomCatalog.cpp:165-180, src/RomStatus_ImGui.cpp:282, src/Memory.cpp:343-376" note: "Locale picker entry. Shipped in roms/. The fetcher does not serve it, so only the size is checked." - name: "apple2e_char_reactive.rom" path: "roms/apple2e_char_reactive.rom" @@ -390,7 +405,7 @@ files: sha1: "02075efbfdb99af48360561323404a921b91a676" sha256: "49716e2804b119810c22ab668ae37cebadf0cd53bc8911b5f17c4a62a3acb514" validation: [size] - source_ref: "src/CharRomCatalog.cpp:89-90, src/CharRomCatalog.cpp:165-180, src/RomStatus_ImGui.cpp:250, src/Memory.cpp:325-358" + source_ref: "src/CharRomCatalog.cpp:89-90, src/CharRomCatalog.cpp:165-180, src/RomStatus_ImGui.cpp:282, src/Memory.cpp:343-376" note: "Locale picker entry. Shipped in roms/. The fetcher does not serve it, so only the size is checked." - name: "Videx Lower Case Chip ROM.bin" path: "roms/Videx Lower Case Chip ROM.bin" @@ -402,7 +417,7 @@ files: sha256: "6a516bcd96382597af7a498fb1da7547490c830db0f9d22d541fb065b9cd048b" sha1: "447874fe0850c8add3fd5b13fa98f6648fe6f999" validation: [size, crc32, sha256] - source_ref: "src/CharRomCatalog.cpp:44-45, src/RomCatalog.h:208-214, src/RomFetch.cpp:190-194, src/RomStatus_ImGui.cpp:311" + source_ref: "src/CharRomCatalog.cpp:44-45, src/RomCatalog.h:208-214, src/RomFetch.cpp:190-194, src/RomStatus_ImGui.cpp:415" note: "Locale picker entry for the ][ and ][+ profiles. Without it the picker keeps the stock uppercase set." - name: "disk2.rom" path: "roms/disk2.rom" @@ -414,7 +429,7 @@ files: sha256: "de1e3e035878bab43d0af8fe38f5839c527e9548647036598ee6fe7ec74d2a7d" sha1: "d4181c9f046aafc3fb326b381baac809d9e38d16" validation: [size, sha256] - source_ref: "src/SlotCardFactory.cpp:102-115, src/DiskIICard.cpp:136-141, src/DiskIICard.cpp:151-174, src/RomFetch.cpp:197-200" + source_ref: "src/SlotCardFactory.cpp:106-119, src/DiskIICard.cpp:136-141, src/DiskIICard.cpp:151-174, src/RomFetch.cpp:197-200" note: "The card carries the same PROM built in, and the file replaces it when present." - name: "diskii_p6.rom" path: "roms/diskii_p6.rom" @@ -426,7 +441,7 @@ files: sha256: "e5e30615040567c1e7a2d21599681f8dac820edbdcda177b816a64d74b3a12f2" sha1: "bc39fbd5b9a8d2287ac5d0a42e639fc4d3c2f9d4" validation: [size, sha256] - source_ref: "src/SlotCardFactory.cpp:102-115, src/DiskIICard.cpp:142-149, src/DiskIICard.cpp:176-202, src/DiskIICard.cpp:251-263, src/RomFetch.cpp:201-204" + source_ref: "src/SlotCardFactory.cpp:106-119, src/DiskIICard.cpp:142-149, src/DiskIICard.cpp:176-202, src/DiskIICard.cpp:251-263, src/RomFetch.cpp:201-204" note: "Loading the file switches the bit-level LSS path on for every image. Without it the legacy 32-cycle nibble gate serves non-WOZ images and the built-in PROM serves WOZ images." - name: "disk2_13.rom" path: "roms/disk2_13.rom" @@ -437,7 +452,7 @@ files: sha256: "2d2599521fc5763d4e8c308c2ee7c5c4d5c93785b8fb9a4f7d0381dfd5eb60b6" sha1: "afd060e6f35faf3bb0146fa889fc787adf56330a" validation: [size, sha256] - source_ref: "src/SlotCardFactory.cpp:102-115, src/DiskIICard.cpp:204-221, src/DiskIICard.cpp:264-288, src/RomCatalog.h:90-93, src/RomFetch.cpp:205-208" + source_ref: "src/SlotCardFactory.cpp:106-119, src/DiskIICard.cpp:204-221, src/DiskIICard.cpp:264-288, src/RomCatalog.h:90-93, src/RomFetch.cpp:205-208" note: "A mounted 13-sector disk switches the card to this PROM at $Cn00 and forces the bit-level LSS. Without it the disk mounts but cannot boot." - name: "diskii_p6_13.rom" path: "roms/diskii_p6_13.rom" @@ -448,7 +463,7 @@ files: sha256: "383c55f5333cbfde39dd41528186631e5aca2eddfec30716344f03b6a4d44655" sha1: "e3d6d1c30653572b49ecc2dc54ce073978411a04" validation: [size, sha256] - source_ref: "src/SlotCardFactory.cpp:102-115, src/DiskIICard.cpp:223-240, src/DiskIICard.cpp:273-283, src/RomCatalog.h:94-97, src/RomFetch.cpp:209-212" + source_ref: "src/SlotCardFactory.cpp:106-119, src/DiskIICard.cpp:223-240, src/DiskIICard.cpp:273-283, src/RomCatalog.h:94-97, src/RomFetch.cpp:209-212" note: "Read into the card and not consumed: the 13-sector switch depends on disk2_13.rom alone, and the sequencer keeps running the 16-sector P6 on 13-sector disks." - name: "cffa20eec02.bin" path: "roms/cffa20eec02.bin" @@ -460,7 +475,7 @@ files: sha256: "a08cb25ad80054649ee5fcb620e01ed56f025acb28c753bc28dd187a1d149cab" sha1: "080ff88f19de22328e162954ee2b51ee65f9d5cd" validation: [size, crc32, sha256] - source_ref: "src/SlotCardFactory.cpp:124-148, src/CffaCard.cpp:26-40, src/RomCatalog.h:119-123, src/RomFetch.cpp:223-226" + source_ref: "src/SlotCardFactory.cpp:128-152, src/CffaCard.cpp:26-40, src/RomCatalog.h:119-123, src/RomFetch.cpp:223-226" note: "Preferred when the CPU is a 65C02, the 6502 build is the fallback, and the slot stays empty when neither is found." - name: "cffa20ee02.bin" path: "roms/cffa20ee02.bin" @@ -472,7 +487,7 @@ files: sha256: "3d7f6918f9af3828f5a6299299a817df0d354ee62e547bc0238755de66162a88" sha1: "d600692ed9626668233a22a48236af639410cb7b" validation: [size, crc32, sha256] - source_ref: "src/SlotCardFactory.cpp:124-148, src/CffaCard.cpp:26-40, src/RomCatalog.h:124-129, src/RomFetch.cpp:219-222" + source_ref: "src/SlotCardFactory.cpp:128-152, src/CffaCard.cpp:26-40, src/RomCatalog.h:124-129, src/RomFetch.cpp:219-222" note: "Preferred on an NMOS 6502, fallback for a 65C02." - name: "mouse_341-0270-c.bin" path: "roms/mouse_341-0270-c.bin" @@ -483,7 +498,7 @@ files: sha256: "7f8e50c0e8a409991264201f9300f109b872b68e09c43f3e6c26af35fd8b89af" sha1: "3a9d881a8a8d30f55b9719aceebbcf717f829d6f" validation: [size, sha256] - source_ref: "src/SlotCardFactory.cpp:60-92, src/SlotCardFactory.cpp:337-352, src/MouseCard.cpp:119-153, src/MouseCardAppleWin.cpp:89-102, src/RomFetch.cpp:243-248" + source_ref: "src/SlotCardFactory.cpp:64-96, src/SlotCardFactory.cpp:399-414, src/MouseCard.cpp:119-153, src/MouseCardAppleWin.cpp:90-103, src/RomFetch.cpp:243-248" note: "Needed by both mouse cards: the MC68705 card also needs the MCU ROM, the AppleWin HLE card needs this one only. The fetcher extracts it from the MAME a2mouse set as 341-0270-c.4b." - name: "mouse_341-0269.bin" path: "roms/mouse_341-0269.bin" @@ -494,7 +509,7 @@ files: sha256: "66480812edad5f6bd70349949cf8bd8fbafee2dc8bf396541d4e78bac2629ec0" sha1: "3a2baa6648efe4456d3ec3721216e57c64f7acfc" validation: [size, sha256] - source_ref: "src/SlotCardFactory.cpp:60-92, src/MouseCard.cpp:150-153, src/M68705P3.cpp:85-104, src/RomFetch.cpp:239-242" + source_ref: "src/SlotCardFactory.cpp:64-96, src/MouseCard.cpp:150-153, src/M68705P3.cpp:85-104, src/RomFetch.cpp:239-242" note: "The MC68705 mouse card leaves its slot empty without it." - name: "grappler_plus.bin" path: "roms/grappler_plus.bin" @@ -506,7 +521,7 @@ files: sha256: "9be4dea7722ad8928aee64c2ae708f365a6d66c50a63bff8a3c1a4e7596d44c6" sha1: "829072cc19a58b24d36c2af972abaad6f9ba35d9" validation: [size, sha256] - source_ref: "src/SlotCardFactory.cpp:156-175, src/GrapplerCard.cpp:30-53, src/RomCatalog.h:132-138, src/RomFetch.cpp:235-238" + source_ref: "src/SlotCardFactory.cpp:166-185, src/GrapplerCard.cpp:30-53, src/RomCatalog.h:132-138, src/RomFetch.cpp:235-238" note: "Without it the card runs a stub ROM: PR#n prints, the graphics dump commands are absent." - name: "ae_transwarp_1.4.bin" path: "roms/ae_transwarp_1.4.bin" @@ -531,7 +546,7 @@ files: sha256: "4fa1323ba31f4bd562486838397b7744257c126806766e360876720daca6e2aa" sha1: "6dab633470c6bc4cb3e81d09fda46597caf8ee57" validation: [size, crc32, sha256] - source_ref: "src/SlotCardFactory.cpp:379-397, src/SuperSerialCard.cpp:722-728, src/RomCatalog.h:147-154, src/RomFetch.cpp:281-284" + source_ref: "src/SlotCardFactory.cpp:441-459, src/SuperSerialCard.cpp:765-771, src/RomCatalog.h:147-154, src/RomFetch.cpp:281-284" note: "Three names are probed in order and a file that is not 2048 bytes is refused. Without it the card runs a hand-written slot ROM: PR#n, IN#n and the Pascal 1.1 entries work, the firmware commands and printer mode are absent. Not loaded on the //c and //c Plus. The fetcher extracts it from the MAME a2ssc set as 341-0065-a.bin." - name: "grappler_eps-1.bin" path: "roms/grappler_eps-1.bin" @@ -542,7 +557,7 @@ files: sha256: "4cce25c87ba4dd396919ce82f8567894225519c3d9db76c5667760f77054694f" sha1: "791ebae64a7fad8f42bdfaec36b9e2d34f12ded8" validation: [size, crc32, sha256] - source_ref: "src/SlotCardFactory.cpp:178-216, src/GrapplerClassicCard.cpp:28-34, src/RomCatalog.h:155-158, src/RomFetch.cpp:253-256" + source_ref: "src/SlotCardFactory.cpp:188-226, src/GrapplerClassicCard.cpp:28-34, src/RomCatalog.h:155-158, src/RomFetch.cpp:253-256" note: "The original Grappler leaves its slot empty without it. The fetcher extracts it from the MAME a2grappler set as eps-1_c1981.u6." - name: "341-0057.bin" path: "roms/341-0057.bin" @@ -553,7 +568,7 @@ files: sha256: "634e91bae5938820da79183984c03aa06075cbd5701d480debcc4f6d70620001" sha1: "de8aa285dcac88b1cc80ec9128b092833f5174b6" validation: [size, crc32, sha256] - source_ref: "src/SlotCardFactory.cpp:178-216, src/AppleParallelCard.cpp:28-34, src/RomCatalog.h:159-162, src/RomFetch.cpp:257-260" + source_ref: "src/SlotCardFactory.cpp:188-226, src/AppleParallelCard.cpp:28-34, src/RomCatalog.h:159-162, src/RomFetch.cpp:257-260" note: "The Apple Parallel Interface leaves its slot empty without it. The fetcher extracts it from the MAME a2pic set as 341-0057.7b." - name: "videx_videoterm_v24_60hz.bin" path: "roms/videx_videoterm_v24_60hz.bin" @@ -565,7 +580,7 @@ files: sha256: "420da3867e489824f5fc0377c287c48a125296f19e1306df764e8f63bd23b00a" sha1: "19f69011ed7d2551c39d5c1cac1f5a2defc8f8fb" validation: [size, crc32, sha256] - source_ref: "src/SlotCardFactory.cpp:235-246, src/SlotCardFactory.cpp:254-264, src/VidexVideotermCard.cpp:40-47, src/RomCatalog.h:165-171, src/RomFetch.cpp:263-266" + source_ref: "src/SlotCardFactory.cpp:245-256, src/SlotCardFactory.cpp:264-274, src/VidexVideotermCard.cpp:40-47, src/RomCatalog.h:165-171, src/RomFetch.cpp:263-266" note: "First firmware candidate of the Videoterm card. The 50 Hz dump is probed second. With neither the slot stays empty. The fetcher extracts it from the MAME a2vidtrm set." - name: "videx_videoterm_v24_50hz.bin" path: "roms/videx_videoterm_v24_50hz.bin" @@ -577,7 +592,7 @@ files: sha256: "616f4d9f81a7a4ea0fa918842a05dfb3b503927776d2bfe97e6950b5431b562e" sha1: "bb653836e84850ce3197f461d4e19355f738cfbf" validation: [size, crc32, sha256] - source_ref: "src/SlotCardFactory.cpp:235-246, src/VidexVideotermCard.cpp:40-47, src/RomCatalog.h:172-177, src/RomFetch.cpp:267-271" + source_ref: "src/SlotCardFactory.cpp:245-256, src/VidexVideotermCard.cpp:40-47, src/RomCatalog.h:172-177, src/RomFetch.cpp:267-271" note: "Fallback firmware of the Videoterm card, padded to 2 KB with $FF. The fetcher extracts it from the MAME a2vidtrm set." - name: "videx_videoterm_char_normal.bin" path: "roms/videx_videoterm_char_normal.bin" @@ -588,7 +603,7 @@ files: sha256: "ad873ca47e09def4c942177c84809d853231d4774e8d824e1b834d2033b8199c" sha1: "410b54f33d13c82e3857f1be906d93a8c5b8d321" validation: [size, crc32, sha256] - source_ref: "src/SlotCardFactory.cpp:247-264, src/VidexVideotermCard.cpp:49-65, src/RomCatalog.h:178-182, src/RomFetch.cpp:272-276" + source_ref: "src/SlotCardFactory.cpp:257-274, src/VidexVideotermCard.cpp:49-65, src/RomCatalog.h:178-182, src/RomFetch.cpp:272-276" note: "The Videoterm card leaves its slot empty without it. The fetcher extracts it from the MAME a2vidtrm set as videx videoterm character rom normal.bin." - name: "videx_videoterm_char_inverse.bin" path: "roms/videx_videoterm_char_inverse.bin" @@ -599,7 +614,7 @@ files: sha256: "4d03bd0934ab39cb18f22444e0361f91d1984131759c07010398ad5cf84397c0" sha1: "50c3df528109c65491a001ec74e50351a652c1fd" validation: [size, crc32, sha256] - source_ref: "src/SlotCardFactory.cpp:247-253, src/VidexVideotermCard.cpp:49-65, src/RomCatalog.h:183-188, src/RomFetch.cpp:277-280" + source_ref: "src/SlotCardFactory.cpp:257-263, src/VidexVideotermCard.cpp:49-65, src/RomCatalog.h:183-188, src/RomFetch.cpp:277-280" note: "Alternate set of the Videoterm card. A missing or wrong-size file is ignored and the card derives the set as the bitwise inverse of the normal one. The fetcher extracts it from the MAME a2vidtrm set." - name: "thunderclock_u9_v1.3.bin" path: "roms/thunderclock_u9_v1.3.bin" @@ -611,7 +626,7 @@ files: sha256: "ecca793179427fdd193373080bf23e49a95743bd7b5e0b218c747663938b6c03" sha1: "60f434f5325899d7ea257a6e56e6f53eae65146a" validation: [size, sha256] - source_ref: "src/ClockCard.cpp:469-530, src/RomCatalog.h:216-226, src/RomFetch.cpp:227-230" + source_ref: "src/ClockCard.cpp:582-643, src/RomCatalog.h:216-226, src/RomFetch.cpp:227-230" note: "The card loads a 256-byte slot ROM or the 2 KB chip, which supplies the $C800 expansion ROM as well. The fetch gate names the 2 KB dump and replaces a 256-byte file. The first four even bytes must read $08, $28, $58, $70, the ProDOS clock signature, or the synthetic ROM stays in place." - name: "liron.rom" path: "roms/liron.rom" @@ -622,7 +637,7 @@ files: sha256: "42c1ae66c6bec932669239599eb8989a5364752d56fa5c8997bb23d8dfc0b657" sha1: "fa94ecc2aa23f336f7da9e18bc8f4a6cfbb4ea60" validation: [size, sha256] - source_ref: "src/SlotCardFactory.cpp:299-325, src/LironCard.cpp:61-85, src/SmartPortCard.cpp:80-97, src/RomCatalog.h:100-104, src/RomFetch.cpp:215-218" + source_ref: "src/SlotCardFactory.cpp:352-387, src/LironCard.cpp:62-86, src/SmartPortCard.cpp:99-116, src/RomCatalog.h:100-104, src/RomFetch.cpp:215-218" note: "The Liron card refuses to plug without it. The SmartPort 3.5 card loads it on machines with physical slots and otherwise presents a synthetic identity." - name: "341-0358-A.bin" path: "roms/341-0358-A.bin" @@ -635,8 +650,20 @@ files: sha256: "ce785b913b9fcec6db0fab89b2d94f07fcd07664a822531dcbba3a5ca70ca3bf" sha1: "59c8e8c88bac5c31ada1306b412edfcf5912a720" validation: [size, crc32, sha256] - source_ref: "src/SlotCardFactory.cpp:274-297, src/WorkstationCard.cpp:60-74, src/RomCatalog.h:198-206, src/RomFetch.cpp:291-294" + source_ref: "src/SlotCardFactory.cpp:327-350, src/WorkstationCard.cpp:60-74, src/RomCatalog.h:198-206, src/RomFetch.cpp:291-294" note: "The Workstation card leaves its slot empty without it. The card runs its own 65C02 on the upper 32 KB." + - name: "slinky_341-0344a.bin" + path: "roms/slinky_341-0344a.bin" + description: "Apple Memory Expansion Card firmware 341-0344A, 4 KB, MAME a2memexp" + required: false + bundled: true + size: 4096 + crc32: "1e994e17" + sha256: "2b9beab16f64cda027ef8f2a048e54f3cb8f8016eafdc98d7be500c6a90ccc9c" + sha1: "6e823a1fa40ed37eeddcef23f5df24da2ea1463e" + validation: [size] + source_ref: "src/SlotCardFactory.cpp:299-325, src/SlinkyCard.cpp:38-40, src/SlinkyCard.h:93-97" + note: "The Memory Expansion card leaves its slot empty without it, and a file that is not 4096 bytes is refused. The firmware is the card's ProDOS RAM-disk driver: seven per-slot $Cn00 pages and the $C800 expansion ROM. Not in the fetch catalogue." - name: "341-0438-a.bin" path: "roms/341-0438-a.bin" description: "Apple II 3.5 Disk Controller SuperDrive firmware 341-0438-A, MAME a2superdrive" @@ -647,7 +674,7 @@ files: sha256: "084587835c1d2c92f5708a9745fdd43ba32136fcdb861a12ee7d690de22dc172" sha1: "440c3f84176c7b9f542da0b6ddf4fb13ec326c46" validation: [size, crc32, sha256] - source_ref: "src/RomCatalog.h:105-111, src/RomStatus_ImGui.cpp:169-181, src/RomFetch.cpp:287-290" + source_ref: "src/RomCatalog.h:105-111, src/RomStatus_ImGui.cpp:188-206, src/RomFetch.cpp:287-290" note: "No card reads it. The ROM Status panel and the fetch gate check it." - name: "342-0326-a.f12" path: "roms/342-0326-a.f12" @@ -659,7 +686,7 @@ files: sha256: "4ae7ff693a486b155a70a8833047b3d4363464dace6760ed64bfb68db233ed4b" sha1: "806a602195c18ffec637c03b6bb3405188b0dc1e" validation: [size, crc32, sha256] - source_ref: "src/RomCatalog.h:112-118, src/RomStatus_ImGui.cpp:169-181, src/RomStatus_ImGui.cpp:311, src/RomFetch.cpp:295-298" + source_ref: "src/RomCatalog.h:112-118, src/RomStatus_ImGui.cpp:188-206, src/RomStatus_ImGui.cpp:415, src/RomFetch.cpp:295-298" note: "Host keys are mapped directly, no keyboard decode ROM is emulated. The ROM Status panel and the fetch gate check the file only." - name: "525_seek_2ms.wav" path: "roms/floppy_samples/525_seek_2ms.wav" @@ -669,7 +696,7 @@ files: bundled: true size: 5336 sha1: "2d046a880476218685ed738fe8c8381962afd74a" - source_ref: "src/FloppySoundDevice.cpp:81-119, src/MainWindow.cpp:345-358" + source_ref: "src/FloppySoundDevice.cpp:82-120, src/MainWindow.cpp:351-364" note: "One of ten samples per drive bank. A missing sample is logged and that sound stays silent." - name: "525_seek_6ms.wav" path: "roms/floppy_samples/525_seek_6ms.wav" @@ -679,7 +706,7 @@ files: bundled: true size: 14860 sha1: "6f698055fa6e9da6c5ae3fd6fb05de76b92a45a9" - source_ref: "src/FloppySoundDevice.cpp:81-119, src/MainWindow.cpp:345-358" + source_ref: "src/FloppySoundDevice.cpp:82-120, src/MainWindow.cpp:351-364" - name: "525_seek_12ms.wav" path: "roms/floppy_samples/525_seek_12ms.wav" description: "MAME floppy sample, 5.25 inch drive, 12 ms head seek" @@ -688,7 +715,7 @@ files: bundled: true size: 22764 sha1: "fbbbb5e8724c076d194e66a4443d299d54a8efd6" - source_ref: "src/FloppySoundDevice.cpp:81-119, src/MainWindow.cpp:345-358" + source_ref: "src/FloppySoundDevice.cpp:82-120, src/MainWindow.cpp:351-364" - name: "525_seek_20ms.wav" path: "roms/floppy_samples/525_seek_20ms.wav" description: "MAME floppy sample, 5.25 inch drive, 20 ms head seek" @@ -697,7 +724,7 @@ files: bundled: true size: 30060 sha1: "b6cd14944454c743861196edb4fcab1cc9b586d4" - source_ref: "src/FloppySoundDevice.cpp:81-119, src/MainWindow.cpp:345-358" + source_ref: "src/FloppySoundDevice.cpp:82-120, src/MainWindow.cpp:351-364" - name: "525_spin_empty.wav" path: "roms/floppy_samples/525_spin_empty.wav" description: "MAME floppy sample, 5.25 inch drive, motor running, no disk" @@ -706,7 +733,7 @@ files: bundled: true size: 8864 sha1: "4b13701d9a7f8ab0f0827f17ba80b5c32b4e0fa7" - source_ref: "src/FloppySoundDevice.cpp:81-119, src/MainWindow.cpp:345-358" + source_ref: "src/FloppySoundDevice.cpp:82-120, src/MainWindow.cpp:351-364" - name: "525_spin_loaded.wav" path: "roms/floppy_samples/525_spin_loaded.wav" description: "MAME floppy sample, 5.25 inch drive, motor running, disk loaded" @@ -715,7 +742,7 @@ files: bundled: true size: 17708 sha1: "875f90538a3ff5db863ad4c384e1808841ddea9b" - source_ref: "src/FloppySoundDevice.cpp:81-119, src/MainWindow.cpp:345-358" + source_ref: "src/FloppySoundDevice.cpp:82-120, src/MainWindow.cpp:351-364" - name: "525_spin_start_empty.wav" path: "roms/floppy_samples/525_spin_start_empty.wav" description: "MAME floppy sample, 5.25 inch drive, motor start, no disk" @@ -724,7 +751,7 @@ files: bundled: true size: 11180 sha1: "b87d89c4b46c36dd78dec3dc5170ca61501e7cd9" - source_ref: "src/FloppySoundDevice.cpp:81-119, src/MainWindow.cpp:345-358" + source_ref: "src/FloppySoundDevice.cpp:82-120, src/MainWindow.cpp:351-364" - name: "525_spin_start_loaded.wav" path: "roms/floppy_samples/525_spin_start_loaded.wav" description: "MAME floppy sample, 5.25 inch drive, motor start, disk loaded" @@ -733,7 +760,7 @@ files: bundled: true size: 17708 sha1: "510476098848e2b5cdfe9f1608f8dfa3207fe9b4" - source_ref: "src/FloppySoundDevice.cpp:81-119, src/MainWindow.cpp:345-358" + source_ref: "src/FloppySoundDevice.cpp:82-120, src/MainWindow.cpp:351-364" - name: "525_spin_end.wav" path: "roms/floppy_samples/525_spin_end.wav" description: "MAME floppy sample, 5.25 inch drive, motor stop" @@ -742,7 +769,7 @@ files: bundled: true size: 8864 sha1: "f8d9b94c4d92d35d9ffb1117b693fc74a93f613f" - source_ref: "src/FloppySoundDevice.cpp:81-119, src/MainWindow.cpp:345-358" + source_ref: "src/FloppySoundDevice.cpp:82-120, src/MainWindow.cpp:351-364" - name: "525_step_1_1.wav" path: "roms/floppy_samples/525_step_1_1.wav" description: "MAME floppy sample, 5.25 inch drive, single track step" @@ -751,7 +778,7 @@ files: bundled: true size: 6628 sha1: "669ee98fb9fac4371c72ed0b60be1bc8470bc7f8" - source_ref: "src/FloppySoundDevice.cpp:81-119, src/MainWindow.cpp:345-358" + source_ref: "src/FloppySoundDevice.cpp:82-120, src/MainWindow.cpp:351-364" - name: "35_seek_2ms.wav" path: "roms/floppy_samples/35_seek_2ms.wav" description: "MAME floppy sample, 3.5 inch drive, 2 ms head seek" @@ -760,7 +787,7 @@ files: bundled: true size: 7450 sha1: "55caafbd19486b8d517e4b33a6fa65250df55e25" - source_ref: "src/FloppySoundDevice.cpp:81-119, src/MainWindow.cpp:345-358" + source_ref: "src/FloppySoundDevice.cpp:82-120, src/MainWindow.cpp:351-364" note: "One of ten samples per drive bank. A missing sample is logged and that sound stays silent." - name: "35_seek_6ms.wav" path: "roms/floppy_samples/35_seek_6ms.wav" @@ -770,7 +797,7 @@ files: bundled: true size: 22230 sha1: "87e5dec269e67497681c15849777ebfc301131c1" - source_ref: "src/FloppySoundDevice.cpp:81-119, src/MainWindow.cpp:345-358" + source_ref: "src/FloppySoundDevice.cpp:82-120, src/MainWindow.cpp:351-364" - name: "35_seek_12ms.wav" path: "roms/floppy_samples/35_seek_12ms.wav" description: "MAME floppy sample, 3.5 inch drive, 12 ms head seek" @@ -779,7 +806,7 @@ files: bundled: true size: 26540 sha1: "c6b34fc61496943134ac45cc836a24e743caf794" - source_ref: "src/FloppySoundDevice.cpp:81-119, src/MainWindow.cpp:345-358" + source_ref: "src/FloppySoundDevice.cpp:82-120, src/MainWindow.cpp:351-364" - name: "35_seek_20ms.wav" path: "roms/floppy_samples/35_seek_20ms.wav" description: "MAME floppy sample, 3.5 inch drive, 20 ms head seek" @@ -788,7 +815,7 @@ files: bundled: true size: 44144 sha1: "b2fe4c3a4185146a7d11483d92d4412dd79dbc78" - source_ref: "src/FloppySoundDevice.cpp:81-119, src/MainWindow.cpp:345-358" + source_ref: "src/FloppySoundDevice.cpp:82-120, src/MainWindow.cpp:351-364" - name: "35_spin_empty.wav" path: "roms/floppy_samples/35_spin_empty.wav" description: "MAME floppy sample, 3.5 inch drive, motor running, no disk" @@ -797,7 +824,7 @@ files: bundled: true size: 17708 sha1: "db04fc097bdd0411cff232f57525ded491b48c6c" - source_ref: "src/FloppySoundDevice.cpp:81-119, src/MainWindow.cpp:345-358" + source_ref: "src/FloppySoundDevice.cpp:82-120, src/MainWindow.cpp:351-364" - name: "35_spin_loaded.wav" path: "roms/floppy_samples/35_spin_loaded.wav" description: "MAME floppy sample, 3.5 inch drive, motor running, disk loaded" @@ -806,7 +833,7 @@ files: bundled: true size: 17708 sha1: "96ce04a5b02af0da6d311f06fc4906a3cf71c78f" - source_ref: "src/FloppySoundDevice.cpp:81-119, src/MainWindow.cpp:345-358" + source_ref: "src/FloppySoundDevice.cpp:82-120, src/MainWindow.cpp:351-364" - name: "35_spin_start_empty.wav" path: "roms/floppy_samples/35_spin_start_empty.wav" description: "MAME floppy sample, 3.5 inch drive, motor start, no disk" @@ -815,7 +842,7 @@ files: bundled: true size: 17708 sha1: "af770fd9261a8efee23d66cd39b27be7b2ab7853" - source_ref: "src/FloppySoundDevice.cpp:81-119, src/MainWindow.cpp:345-358" + source_ref: "src/FloppySoundDevice.cpp:82-120, src/MainWindow.cpp:351-364" - name: "35_spin_start_loaded.wav" path: "roms/floppy_samples/35_spin_start_loaded.wav" description: "MAME floppy sample, 3.5 inch drive, motor start, disk loaded" @@ -824,7 +851,7 @@ files: bundled: true size: 35308 sha1: "c82b1714378bf2507ed86dea1e9fe743c380abab" - source_ref: "src/FloppySoundDevice.cpp:81-119, src/MainWindow.cpp:345-358" + source_ref: "src/FloppySoundDevice.cpp:82-120, src/MainWindow.cpp:351-364" - name: "35_spin_end.wav" path: "roms/floppy_samples/35_spin_end.wav" description: "MAME floppy sample, 3.5 inch drive, motor stop" @@ -833,7 +860,7 @@ files: bundled: true size: 17684 sha1: "a8901b692de15eb7a9052f61283f0e7a2b63d67d" - source_ref: "src/FloppySoundDevice.cpp:81-119, src/MainWindow.cpp:345-358" + source_ref: "src/FloppySoundDevice.cpp:82-120, src/MainWindow.cpp:351-364" - name: "35_step_1_1.wav" path: "roms/floppy_samples/35_step_1_1.wav" description: "MAME floppy sample, 3.5 inch drive, single track step" @@ -842,7 +869,7 @@ files: bundled: true size: 6878 sha1: "40d756d0cb5f7998ca26ac1de142a96a83fa2b97" - source_ref: "src/FloppySoundDevice.cpp:81-119, src/MainWindow.cpp:345-358" + source_ref: "src/FloppySoundDevice.cpp:82-120, src/MainWindow.cpp:351-364" - name: "Disk Rotation.wav" path: "roms/virtual_ii_sons/lecteur/Disk Rotation.wav" description: "Virtual ][ recording, drive motor loop" @@ -850,7 +877,7 @@ files: required: false size: 18420 sha1: "553e664b2f41f1cc74e2525c966e9c71f9e3bd2f" - source_ref: "src/FloppySoundDevice.cpp:196, src/FloppySoundDevice.cpp:166-187, src/FloppySoundDevice.cpp:205-225, src/MainWindow.cpp:362-376" + source_ref: "src/VirtualIISoundCatalog.h:16, src/FloppySoundDevice.cpp:173-194, src/FloppySoundDevice.cpp:196-232, src/MainWindow.cpp:365-385" note: "The Virtual ][ bank is offered only when this file and the arm, insertion and removal takes have loaded. Virtual ][ Disk Rotation.raw (sha1 993b054ee6ecf3778186937593d591eba332bdd6) behind a mono 44100 Hz 16-bit PCM RIFF header." - name: "Boot.wav" path: "roms/virtual_ii_sons/lecteur/Boot.wav" @@ -859,7 +886,7 @@ files: required: false size: 6806 sha1: "15c67468555494a9336d8f1981806ecd05a47da4" - source_ref: "src/FloppySoundDevice.cpp:197, src/FloppySoundDevice.cpp:166-187, src/FloppySoundDevice.cpp:205-225, src/MainWindow.cpp:362-376" + source_ref: "src/VirtualIISoundCatalog.h:17, src/FloppySoundDevice.cpp:173-194, src/FloppySoundDevice.cpp:196-232, src/MainWindow.cpp:365-385" note: "Virtual ][ Boot.raw (sha1 06db331ec01064661bf64ed39b58a9b35aaec067) behind a mono 44100 Hz 16-bit PCM RIFF header." - name: "Move arm.aiff" path: "roms/virtual_ii_sons/lecteur/Move arm.aiff" @@ -869,7 +896,7 @@ files: size: 36510 sha1: "3e03cfef6a327adf9e2c09dd329a4c5b8e0aac52" aliases: ["Move arm.wav"] - source_ref: "src/FloppySoundDevice.cpp:198, src/FloppySoundDevice.cpp:166-187, src/FloppySoundDevice.cpp:205-225, src/MainWindow.cpp:362-376" + source_ref: "src/VirtualIISoundCatalog.h:18, src/FloppySoundDevice.cpp:173-194, src/FloppySoundDevice.cpp:196-232, src/MainWindow.cpp:365-385" note: "Needed for the bank. The .wav name is tried when the .aiff does not decode. Virtual ][ Move arm.aiff unchanged." - name: "Disk Insertion.aiff" path: "roms/virtual_ii_sons/lecteur/Disk Insertion.aiff" @@ -879,7 +906,7 @@ files: size: 69146 sha1: "3da6c2e5986c38b6c7200bacc95ef076d0429152" aliases: ["Disk Insertion.wav"] - source_ref: "src/FloppySoundDevice.cpp:199, src/FloppySoundDevice.cpp:166-187, src/FloppySoundDevice.cpp:205-225, src/MainWindow.cpp:362-376" + source_ref: "src/VirtualIISoundCatalog.h:19, src/FloppySoundDevice.cpp:173-194, src/FloppySoundDevice.cpp:196-232, src/MainWindow.cpp:365-385" note: "Needed for the bank. The .wav name is tried when the .aiff does not decode. Virtual ][ Disk Insertion.aiff unchanged." - name: "Disk Removal.aiff" path: "roms/virtual_ii_sons/lecteur/Disk Removal.aiff" @@ -889,7 +916,7 @@ files: size: 243894 sha1: "9c33c1c1d793c8b9d6ff2e7867ae3c51f2556355" aliases: ["Disk Removal.wav"] - source_ref: "src/FloppySoundDevice.cpp:200, src/FloppySoundDevice.cpp:166-187, src/FloppySoundDevice.cpp:205-225, src/MainWindow.cpp:362-376" + source_ref: "src/VirtualIISoundCatalog.h:20, src/FloppySoundDevice.cpp:173-194, src/FloppySoundDevice.cpp:196-232, src/MainWindow.cpp:365-385" note: "Needed for the bank. The .wav name is tried when the .aiff does not decode. Virtual ][ Disk Removal.aiff unchanged." - name: "I-O Error.wav" path: "roms/virtual_ii_sons/lecteur/I-O Error.wav" @@ -898,7 +925,7 @@ files: required: false size: 4014 sha1: "464e3d8f9b50d21cef706503058cef63a5d73995" - source_ref: "src/FloppySoundDevice.cpp:201, src/FloppySoundDevice.cpp:166-187, src/FloppySoundDevice.cpp:205-225, src/MainWindow.cpp:362-376" + source_ref: "src/VirtualIISoundCatalog.h:21, src/FloppySoundDevice.cpp:173-194, src/FloppySoundDevice.cpp:196-232, src/MainWindow.cpp:365-385" note: "Virtual ][ I-O Error.raw (sha1 b123ef605fa977bcda49617cb96c7bc898281dbc) behind a mono 44100 Hz 16-bit PCM RIFF header." - name: "PopOn2.aiff" path: "roms/virtual_ii_sons/interface/PopOn2.aiff" @@ -908,7 +935,7 @@ files: size: 172338 sha1: "7473f2ade668f9155729e6dfc56775f998bb9ac3" aliases: ["PopOn2.wav"] - source_ref: "src/FloppySoundDevice.cpp:202, src/FloppySoundDevice.cpp:166-187, src/FloppySoundDevice.cpp:205-225, src/MainWindow.cpp:362-376" + source_ref: "src/VirtualIISoundCatalog.h:22, src/FloppySoundDevice.cpp:173-194, src/FloppySoundDevice.cpp:196-232, src/MainWindow.cpp:365-385" note: "Virtual ][ PopOn2.aiff unchanged." - name: "PopOff2.aiff" path: "roms/virtual_ii_sons/interface/PopOff2.aiff" @@ -918,7 +945,7 @@ files: size: 144702 sha1: "60b4b8bb589bcc3e4c6876a09d4aa4b391390798" aliases: ["PopOff2.wav"] - source_ref: "src/FloppySoundDevice.cpp:203, src/FloppySoundDevice.cpp:166-187, src/FloppySoundDevice.cpp:205-225, src/MainWindow.cpp:362-376" + source_ref: "src/VirtualIISoundCatalog.h:23, src/FloppySoundDevice.cpp:173-194, src/FloppySoundDevice.cpp:196-232, src/MainWindow.cpp:365-385" note: "Virtual ][ PopOff2.aiff unchanged." - name: "Matrix Printer.wav" path: "roms/virtual_ii_sons/imprimante/Matrix Printer.wav" @@ -927,7 +954,7 @@ files: required: false size: 1316870 sha1: "0b0363772efc684ea0d21cb79e62a0df63f0c094" - source_ref: "src/MainWindow.cpp:372-374, src/PrinterSoundDevice.cpp:272-299" + source_ref: "src/VirtualIISoundCatalog.h:26-27, src/MainWindow.cpp:380-383, src/PrinterSoundDevice.cpp:79-101, src/PrinterSoundDevice.cpp:296-320" note: "Loaded when present, otherwise the printer sound is generated. Virtual ][ Matrix Printer.raw (sha1 6f6d26237389435693469b4dd0e0b69083797bff) behind a mono 44100 Hz 16-bit PCM RIFF header." - name: "DejaVuSans.ttf" path: "fonts/DejaVuSans.ttf" @@ -937,7 +964,7 @@ files: bundled: true size: 759720 sha1: "3061cf7af25793a655a1ff5a509385f3620f3eb3" - source_ref: "src/main.cpp:533-546" + source_ref: "src/main.cpp:560-573" note: "Falls back to the system DejaVu, Arial Unicode or Segoe UI, then to the ImGui bitmap font." - name: "fa-solid-900.ttf" path: "fonts/fa-solid-900.ttf" @@ -947,7 +974,7 @@ files: bundled: true size: 426112 sha1: "0c8c9706abc0116f08b66d11a69da6aa9ef7e6bf" - source_ref: "src/main.cpp:593-611" + source_ref: "src/main.cpp:620-638" note: "Without it every icon renders as an empty box." - name: "Apple_II_plus.jpg" path: "pic/Apple_II_plus.jpg" @@ -957,14 +984,180 @@ files: bundled: true size: 102046 sha1: "69358dd499148deae4112b49cedb7bec220584e2" - source_ref: "src/MainWindow_MiscPanels.cpp:621" + source_ref: "src/MainWindow_MiscPanels.cpp:657" - name: "Keyboard_AppleIIe.jpeg" path: "pic/Keyboard_AppleIIe.jpeg" description: "Apple //e keyboard photograph the clickable keyboard window is built on" category: game_data required: false bundled: true - size: 794259 - sha1: "a178f37661078739637ff7642cd6450c762993aa" - source_ref: "src/MainWindow_MiscPanels.cpp:480" - note: "The window hotspots are fractions of this image. Without it the window has nothing to click." + size: 568596 + sha1: "dc85406f7bb69c4439088e78afab610afb753865" + source_ref: "src/KeyboardSkin.cpp:142-152, src/MainWindow_MiscPanels.cpp:515-526" + note: "Keyboard window picture for every profile outside the //c family. The window hotspots are fractions of this image. Without it the window has nothing to click." + - name: "Keyboard_AppleIIc.png" + path: "pic/Keyboard_AppleIIc.png" + description: "Apple //c keyboard photograph the clickable keyboard window uses on the //c family" + category: game_data + required: false + bundled: true + size: 1743304 + sha1: "f7c8a696d66ce9403b5c2f5f62b797c816961df0" + source_ref: "src/KeyboardSkin.cpp:142-152, src/MainWindow_MiscPanels.cpp:515-526" + note: "Keyboard window picture for the //c, //c PAL and //c Plus profiles. Without it the window has nothing to click." + - name: "monitor2.png" + path: "pic/retro/monitor/monitor2.png" + description: "Apple Monitor II bezel drawn around the screen" + category: game_data + required: false + bundled: true + size: 24460 + sha1: "1b8f16f4e74e6717d0332364c7b80cf20f37580f" + source_ref: "src/RetroArtwork.cpp:44-47, src/MainWindow_Screen.cpp:371-372" + note: "Drawn by default. Without it the screen has no bezel." + - name: "driveopen.png" + path: "pic/retro/drives/driveopen.png" + description: "Disk II drive 1, door open, motor off" + category: game_data + required: false + bundled: true + size: 81661 + sha1: "c768cae9b9f1c8aed4bbea72df40767b00935530" + source_ref: "src/RetroArtwork.cpp:75-91, src/MainWindow_DriveRack.cpp:113-116" + note: "Drives window picture. Without it the drive is drawn as a vector mechanism." + - name: "driveopenrunning.png" + path: "pic/retro/drives/driveopenrunning.png" + description: "Disk II drive 1, door open, motor on" + category: game_data + required: false + bundled: true + size: 83258 + sha1: "7fb68df047b698fb6c4308ca518c7e8af72c86cf" + source_ref: "src/RetroArtwork.cpp:75-91, src/MainWindow_DriveRack.cpp:113-116" + - name: "driveclosed.png" + path: "pic/retro/drives/driveclosed.png" + description: "Disk II drive 1, disk in, motor off" + category: game_data + required: false + bundled: true + size: 97766 + sha1: "a0cafd4de513c9787a15484a2658c10cb529b5af" + source_ref: "src/RetroArtwork.cpp:75-91, src/MainWindow_DriveRack.cpp:113-116" + - name: "driverunning.png" + path: "pic/retro/drives/driverunning.png" + description: "Disk II drive 1, disk in, motor on" + category: game_data + required: false + bundled: true + size: 99189 + sha1: "24fbad2dccd60363e08cfca0a2f94b55c7ef6775" + source_ref: "src/RetroArtwork.cpp:75-91, src/MainWindow_DriveRack.cpp:113-116" + - name: "drive2open.png" + path: "pic/retro/drives/drive2open.png" + description: "Disk II drive 2, door open, motor off" + category: game_data + required: false + bundled: true + size: 82048 + sha1: "d35419fe9ca5cdee1bd6e35ebd5378be15021ee5" + source_ref: "src/RetroArtwork.cpp:75-91, src/MainWindow_DriveRack.cpp:113-116" + - name: "drive2openrunning.png" + path: "pic/retro/drives/drive2openrunning.png" + description: "Disk II drive 2, door open, motor on" + category: game_data + required: false + bundled: true + size: 83639 + sha1: "8b2d611608b67898819cba78c37ea9c81aeb8461" + source_ref: "src/RetroArtwork.cpp:75-91, src/MainWindow_DriveRack.cpp:113-116" + - name: "drive2closed.png" + path: "pic/retro/drives/drive2closed.png" + description: "Disk II drive 2, disk in, motor off" + category: game_data + required: false + bundled: true + size: 98370 + sha1: "200ef91f19ac37d95edf270149f3856e278c76d0" + source_ref: "src/RetroArtwork.cpp:75-91, src/MainWindow_DriveRack.cpp:113-116" + - name: "drive2running.png" + path: "pic/retro/drives/drive2running.png" + description: "Disk II drive 2, disk in, motor on" + category: game_data + required: false + bundled: true + size: 99783 + sha1: "82b7541e0ba7f5c466079e7bfe8121f827c64c02" + source_ref: "src/RetroArtwork.cpp:75-91, src/MainWindow_DriveRack.cpp:113-116" + - name: "diskiicopen.png" + path: "pic/retro/drives/diskiicopen.png" + description: "//c built-in drive, door open, motor off" + category: game_data + required: false + bundled: true + size: 14098 + sha1: "c9a06c6bfb9a5b8d5261ad2a4ba100c2e1eb66ac" + source_ref: "src/RetroArtwork.cpp:56-66, src/MainWindow_DriveRack.cpp:113-116" + note: "Used in place of the Disk II pictures on the //c, //c PAL and //c Plus profiles." + - name: "diskiicopenrunning.png" + path: "pic/retro/drives/diskiicopenrunning.png" + description: "//c built-in drive, door open, motor on" + category: game_data + required: false + bundled: true + size: 14054 + sha1: "e5520d89d11669137c639469ad4818c7b7b8ba12" + source_ref: "src/RetroArtwork.cpp:56-66, src/MainWindow_DriveRack.cpp:113-116" + - name: "diskiicclosed.png" + path: "pic/retro/drives/diskiicclosed.png" + description: "//c built-in drive, disk in, motor off" + category: game_data + required: false + bundled: true + size: 13876 + sha1: "5f958d799ed0037dfa0c05b8594289135080ea2a" + source_ref: "src/RetroArtwork.cpp:56-66, src/MainWindow_DriveRack.cpp:113-116" + - name: "diskiicrunning.png" + path: "pic/retro/drives/diskiicrunning.png" + description: "//c built-in drive, disk in, motor on" + category: game_data + required: false + bundled: true + size: 13830 + sha1: "8af19c7739c5e796f9870dbc1808e81ddf85bbd1" + source_ref: "src/RetroArtwork.cpp:56-66, src/MainWindow_DriveRack.cpp:113-116" + - name: "apple35.png" + path: "pic/retro/drives/apple35.png" + description: "3.5 inch drive, idle" + category: game_data + required: false + bundled: true + size: 8746 + sha1: "17605fc7452fdf062496d062fb0f4cef11ee9969" + source_ref: "src/RetroArtwork.cpp:49-54, src/MainWindow_DriveRack.cpp:117-118" + - name: "apple35running.png" + path: "pic/retro/drives/apple35running.png" + description: "3.5 inch drive, busy" + category: game_data + required: false + bundled: true + size: 8743 + sha1: "5c5df0b5393ef75169651799e912cd66ce938abc" + source_ref: "src/RetroArtwork.cpp:49-54, src/MainWindow_DriveRack.cpp:117-118" + - name: "applehd.png" + path: "pic/retro/drives/applehd.png" + description: "Hard disk, idle" + category: game_data + required: false + bundled: true + size: 7792 + sha1: "f0c81be813937e16adfa5d01914b14017d21b121" + source_ref: "src/RetroArtwork.cpp:68-73, src/MainWindow_DriveRack.cpp:119-120" + - name: "applehdrunning.png" + path: "pic/retro/drives/applehdrunning.png" + description: "Hard disk, busy" + category: game_data + required: false + bundled: true + size: 7690 + sha1: "dfe8bdfccad5aeea4b5077b2e45ee27bcb6278d7" + source_ref: "src/RetroArtwork.cpp:68-73, src/MainWindow_DriveRack.cpp:119-120"