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
Maxim Poliakovski
14156dd32b
Introduce subdevices interface.
2020-03-14 15:39:34 +01:00
Maxim Poliakovski
d53400ebae
Introduce base class HWComponent.
2020-03-14 14:26:30 +01:00
Maxim Poliakovski
822f6cafd2
Create machine factory.
...
It manages various hardware configurations referred to as machines.
2020-03-13 23:09:36 +01:00