Commit Graph

153 Commits

Author SHA1 Message Date
Maxim Poliakovski 422639411d Initial Burgundy sound codec emulation. 2023-02-25 18:14:42 +01:00
Maxim Poliakovski 5d7450df90 heathrow: locate sound HW by type.
That allows using sound codecs other than Screamer with Heathrow.
2023-02-25 18:14:42 +01:00
Maxim Poliakovski fdf0ebbf6c machineyosemite: implement RAM modules. 2023-02-15 02:36:40 +01:00
Maxim Poliakovski 196154bb7b machineyosemite: use Heathrow as I/O controller for now. 2023-02-15 02:36:40 +01:00
Maxim Poliakovski 92c558f44b Initial Yosemite emulation. 2023-02-15 02:36:40 +01:00
Maxim Poliakovski 299f0d3a9f Accept 1MB New World Boot ROMs. 2023-02-15 02:36:40 +01:00
joevt b472123746 Standardize PCIDevice slot_id for PCIHost.
PCIHost
- PCIHosts (bandit and grackle) now use device number and function number for identifying attached PCIDevices. A macro DEV_FUN is added to calculate this new slot_id. Bandit no longer uses IDSEL. Grackle no longer uses only device number.

machinecatalyst, machinegossamer, machinetnt
- Use DEV_FUN to attach PCI devices by device number and function number.
2023-02-05 06:57:04 -08:00
Maxim Poliakovski bcd443779a machinegossamer: add internal SCSI bus. 2023-01-25 20:56:51 +01:00
Maxim Poliakovski 136aeca8f2 Fix Gossamer system register. 2023-01-11 23:49:20 +01:00
Maxim Poliakovski 8d01440558 Improve previous (cosmetics & code duplication). 2023-01-11 23:36:16 +01:00
joevt 64fec88436 Fix compiler warnings: cast loses precision.
Use explicit cast when converting large integer types to smaller integer types when it is known that the most significant bytes are not required.
For pcidevice, check the ROM file size before casting to int. We'll allow expansion ROM sizes up to 4MB but usually they are 64K, sometimes 128K, rarely 256K.
for machinefactory, change the type to size_t so that it can correctly get the size of files that are larger than 4GB; it already checks the file size is 4MB before we need to cast to uint32_t.
For floppyimg, check the image size before casting to int. For raw images, only allow files up to 2MB. For DiskCopy42 images, it already checks the file size, so do the cast after that.
2023-01-11 01:17:12 -08:00
joevt b61a7c4aea Log something from machine initialization.
The machine type and its corresponding source file name should appear once in the log output.
2023-01-11 01:17:12 -08:00
joevt 2f08a0b327 Fix Gossamer machineID allocation size.
When the allocation is logged, it will look appear like this:
Added mmio region 0xFF000004..0xFF000FFF (Machine-id)
instead of like this:
Added mmio region 0xFF000004..0xFF001003 (Machine-id)
2023-01-11 00:05:23 -08:00
Maxim Poliakovski 101a8d33b0 Manage Windows build dependencies with vcpkg. 2023-01-08 22:27:13 +01:00
Maxim Poliakovski 9ea4a465f4 machinegazelle: tiny comment improvement. 2022-12-23 23:45:26 +01:00
Maxim Poliakovski 41a34ffab6 Basic Gazelle (PM 6500) emulation. 2022-12-23 17:19:46 +01:00
Maxim Poliakovski a189c94980 scsihd: fix READ_CAPACITY_10 command.
Also bump internal buffer size to 2 MB
to temporarily fix buffer overflows.
2022-12-14 16:14:53 +01:00
dingusdev 58908621e6 IDE refinements 2022-12-05 08:42:51 -07:00
dingusdev 311538b81d Fix IDE functionality 2022-11-26 21:34:54 -07:00
Maxim Poliakovski 447941abe0 machinetnt: fix default RAM allocation. 2022-11-17 18:03:18 +01:00
Maxim Poliakovski 585c5fd4ca Guess low-level floppy disk format based on image size.
Also add fdd_fmt property for manually specifying disk
format.
2022-11-17 18:03:18 +01:00
Maxim Poliakovski 5f0358a347 Implement basic SCSI CD-ROM emulation. 2022-11-14 00:55:05 +01:00
Maxim Poliakovski db17e19699 scsi_hd: cosmetic improvements. 2022-11-10 18:22:44 +01:00
Maxim Poliakovski 8abefb8f8d machinepdm: properly insert SCSI hard disk image.
Skip SCSI hard disk registration if no disk image was given.
2022-11-01 01:17:50 +01:00
Maxim Poliakovski eeb576a927 Improve ScsiDevice class. 2022-10-25 02:53:21 +02:00
Maxim Poliakovski a085d55d13 machinepdm: attach SCSI HD to the main bus, ID 0. 2022-10-22 23:42:37 +02:00
dingusdev ee9573327c Reorganized hard disk code
Not compiling yet.
2022-10-08 16:51:54 -07:00
joevt fca6cb11b6 Add info for possible grackle PCI devices
Devices that are not probed by Open Firmware might still be usable by Mac OS X or Linux if they can enumerate PCI devices without using Open Firmware's device tree.
A patch in nvramrc can make Open Firmware probe all the devices.
The point is that the emulation does not need to be limited to 5 slots.
2022-08-22 17:07:50 -07:00
Maxim Poliakovski 336ea14422 machinefactory: don't crash when property help is missing. 2022-08-19 19:44:10 +02:00
Maxim Poliakovski c5ecdb840d machinegossamer: proper system & clocks configuration. 2022-08-15 14:51:37 +02:00
Maxim Poliakovski 0dbcda5710 machinegossamer: system register definitions. 2022-08-15 14:50:49 +02:00
joevt 93fae1ee68 Merge remote-tracking branch 'upstream/master' 2022-08-14 16:38:51 -07:00
Maxim Poliakovski 3f3af68582 machinegossamer: add Whisper ID PROM. 2022-08-14 23:01:55 +02:00
joevt b76bfedf4b Remove unnecessary linefeeds from log
To remove blank lines in the dingusppc.log file or in the console output when -d is used.
2022-08-14 05:26:56 -07:00
Maxim Poliakovski eecb5a0f42 machinegossamer: add Athens I2C device. 2022-08-11 01:45:32 +02:00
Maxim Poliakovski fd41cafc4b New machine: Power Macintosh 7500. 2022-08-07 15:25:58 +02:00
Maxim Poliakovski 9a6336adb9 Move DRAM capacity constants to memctrlbase.h 2022-08-07 15:25:58 +02:00
Maxim Poliakovski c3939e3b25 Gossamer: factory test control. 2022-07-20 20:08:37 +02:00
Maxim Poliakovski f0553720d6 Catalyst: factory test control. 2022-07-20 01:36:45 +02:00
Maxim Poliakovski 3c062443f6 PDM: factory test control. 2022-07-20 01:36:05 +02:00
Maxim Poliakovski b9fb0b9c5f Switch fdd_wr_prot to BinProperty. 2022-07-19 23:48:17 +02:00
Maxim Poliakovski 65512dc434 New property type: BinProperty. 2022-07-19 23:45:41 +02:00
Maxim Poliakovski c0078ce97d Refactor MachineBase and MachineFactory classes.
Adding new machines is much easier now.
A significant amount of duplicated code has been reduced.
2022-07-18 20:27:34 +02:00
Maxim Poliakovski 5668fc161f macio: fix SWIM3 register space accesses. 2022-06-13 23:15:48 +02:00
Maxim Poliakovski 913944c607 platinum: implement video controller registers. 2022-06-09 23:16:03 +02:00
Maxim Poliakovski 22988f9e28 machinecatalyst: disable ATI Mach64 card hack. 2022-05-20 09:26:04 +02:00
Maxim Poliakovski e0b94e0b47 ESCC: connect NULL and STDIO backends. 2022-05-07 21:47:22 +02:00
Maxim Poliakovski be4f835e6c New machine: Catalyst (PM7200). 2022-05-07 21:47:14 +02:00
Maxim Poliakovski 1d86375061 Implement MPC601 style RTC. 2022-03-28 18:26:47 +02:00
dingusdev 36fa53e8c1 MSVC compilation fixes 2022-03-12 15:43:45 -07:00
dingusdev 8d3427c475 Proper write protection settings 2022-02-27 22:41:59 -07:00
dingusdev 80a4864a92 Floppy disk write protection 2022-02-24 07:33:30 -07:00
Maxim Poliakovski 689fe51d80 Add required includes for gcc. 2022-02-17 00:50:37 +01:00
Maxim Poliakovski 5e2f2b12e4 Properly connect Superdrive to SWIM3 and machines. 2022-02-06 15:23:30 +01:00
Maxim Poliakovski 2edb50a821 machinepdm: add internal SCSI bus. 2022-02-06 01:50:54 +01:00
Maxim Poliakovski c1208b398e Add posti-initialization to HW components. 2022-01-21 12:42:05 +01:00
Maxim Poliakovski fff597075d Monitor type can be now specified from the command line. 2021-12-06 00:40:40 +01:00
Maxim Poliakovski 793335d9b8 Clean up includes. 2021-12-05 20:01:57 +01:00
Maxim Poliakovski f609839894 machineproperties: improve StrProperty class. 2021-12-05 19:16:39 +01:00
Maxim Poliakovski f39188beb1 Initial support for floppy disk images. 2021-12-04 14:22:02 +01:00
Maxim Poliakovski decb8342be Delete unused machinepresets.h header. 2021-12-04 12:05:47 +01:00
Maxim Poliakovski c0cd6eb38f Add missing licence headers, update license date. 2021-10-23 21:00:31 +02:00
Maxim Poliakovski 9329d56d83 Move devices into dedicated subdirectories. 2021-10-23 20:17:47 +02:00
Maxim Poliakovski 89e79d05cb Load bootrom code to primary ROM region. 2021-10-10 22:01:02 +02:00
Maxim Poliakovski 03e58dac35 Overhaul AWACs and implement PDM sound HW. 2021-10-05 00:29:27 +02:00
Maxim Poliakovski 0f55877137 Add basic PDM I/O emulation. 2021-09-30 23:01:56 +02:00
Maxim Poliakovski e052eb4a87 Merge branch 'atirage-hacks'. 2021-09-25 23:16:38 +02:00
Maxim Poliakovski d2cd43fcb1 Merge branch 'machine-pdm'. 2021-09-25 22:30:31 +02:00
Maxim Poliakovski 84e111290f Fix includes for loguru and SDL. 2021-09-16 00:46:38 +02:00
dingusdev e7e28b4497 Compilation fix for Raspberry Pi 2021-02-14 08:41:48 -07:00
Maxim Poliakovski 7628ec92c0 Rename memreadwrite.h to memaccess.h 2021-02-03 12:19:18 +01:00
dingusdev 2539faef7e Small typo fixes 2021-01-23 15:10:08 -07:00
Maxim Poliakovski 68b8da2182 Add PDM machine factory and the minimal HW. 2020-12-19 10:06:05 +01:00
Maxim Poliakovski 2df2d089d7 list properties now prints out valid values. 2020-10-14 16:19:11 +02:00
dingusdev 4c0c32c02c Initial cleanup for the help print-outs 2020-10-13 20:20:44 -07:00
Maxim Poliakovski 90b2eb712a Implement CLI list subcommand. 2020-10-13 04:24:54 +02:00
Maxim Poliakovski 27f5d981da Remove more unused code. 2020-10-13 04:01:37 +02:00
Maxim Poliakovski ce9e8e7244 Fix valid values for gfxmem_size. 2020-10-09 16:33:17 +02:00
Maxim Poliakovski a3b17d46ce Attach value checks to properties. 2020-10-09 15:58:47 +02:00
Maxim Poliakovski 246a7f2082 Remove unused machineconfig source. 2020-10-09 14:28:28 +02:00
Maxim Poliakovski 2eba8acc23 Fix MSVC compilation. 2020-10-09 12:39:31 +02:00
Maxim Poliakovski c81c00f918 Make properties overridable from the command line. 2020-10-09 12:25:12 +02:00
dingusdev 0ca03be001 Fixed booting up to emulator 2020-10-04 09:58:21 -07:00
Maxim Poliakovski 599659495b Initial CLI11 integration. 2020-09-26 02:38:22 +02:00
dingusdev 9efea80e43 Removed janky functions
This still compiles in VS2019
2020-09-08 07:46:54 -07:00
dingusdev 4ccfb5d527 Finished the proof-of-concept machine presets 2020-08-31 22:20:47 -07:00
dingusdev 4f59407cd0 Repair code for powermacg3 presets 2020-08-30 16:14:58 -07:00
dingusdev d21515d964 Fixed RAM check and help prompts 2020-08-29 16:20:22 -07:00
dingusdev b28549825d Started work on machine-specific configs 2020-08-29 11:11:06 -07:00
dingusdev 14ef7564cd CLI fixes - RAM and GFXMEM work better 2020-08-25 20:07:02 -07:00
dingusdev f04ce09a7d Clean-up + further command line options 2020-08-23 09:24:52 -07:00
dingusdev 2869755819 Initial work for configuration 2020-08-22 11:05:08 -07:00
Maxim Poliakovski 39a643aff6 Merge branch 'machines'
Also disable SDL for now because it produces build errors.
2020-06-03 18:21:51 +02:00
Maxim Poliakovski e59939541e WIP: initial Cubeb integration. 2020-05-15 02:44:00 +02:00
Waqar Ahmed 0ab9380be3 clang-format everything 2020-05-12 23:55:45 +05:00
Maxim Poliakovski f7d67a91e0 New AWAC and sound server implementation. 2020-05-08 23:12:04 +02:00
Maxim Poliakovski a8c6298545 devices: skeleton for ATI Rage emulation. 2020-03-31 18:48:04 +02:00
dingusdev 60ffa5bfac Initial attempt at fixing SDL2 building for Windows 2020-03-22 20:15:12 -07:00
dingusdev 86d6ddf001
Fixed a ROM ID 2020-03-15 09:20:16 -07:00
Maxim Poliakovski 0044610038 Add SPD SDRAM emulation. 2020-03-15 14:44:33 +01:00