joevt
e51bc0cea5
scsihd: Reorder switch statement.
...
Order by case value to match scsicdrom.
2024-03-16 17:44:09 -07:00
joevt
4fe8cf76bb
control: Fix framebuffer start for OF and macOS.
2024-03-15 10:27:48 -07:00
joevt
d4ee43179c
control: 15bpp mode is big endian.
2024-03-15 10:27:33 -07:00
joevt
5afe1f1a25
control: MISC_ENABLES is a 12 bit register.
2024-03-15 10:27:24 -07:00
joevt
7eb9a66837
atimach64gx: Calculate vert_blank.
...
So it's not always zero.
2024-03-15 10:16:44 -07:00
joevt
aa33a1644c
control: Support unaligned read and size != 4.
2024-03-15 09:29:36 -07:00
joevt
c42e1f28d6
atimach64gx: Fix fb_pitch calculation.
...
Also, move the calculation to crtc_update where we calculate everything else (including bits per pixel which is needed for the fb_pitch calculation.
2024-03-15 09:20:06 -07:00
joevt
fe21108f08
atimach64gx: Implement hardware cursor.
2024-03-15 08:50:34 -07:00
joevt
81f3b95914
atimach64gx: Add write CRTC_INT_CNTL.
...
Required for interrupt handling.
2024-03-15 07:57:47 -07:00
joevt
2daad2d223
atimach64gx: Add write ATI_CRTC_VLINE_CRNT_VLINE.
...
Maybe for interrupts.
2024-03-15 07:03:57 -07:00
joevt
09becbfb04
atimach64gx: Add write ATI_CRTC_H_TOTAL_DISP.
...
For debugging.
2024-03-15 07:03:46 -07:00
joevt
1f9f2d2cf1
sixty6: Add support for sixty6 video output.
2024-03-14 20:06:55 -07:00
joevt
45a9d45e3f
Add SCSI devices.
...
scsibus has a new method attach_scsi_devices which is used by all machines to populate a SCSI bus with one or more hard drives or CD-ROM drives.
HDDs are specified by the hdd_img property.
CDs are specified by the cdr_img property.
Multiple images are delimited by a colon :
attach_scsi_devices is called by the scsi controller after the scsi controller has attached itself to the scsi bus.
The bus suffix is applied to the property name.
Curio has no suffix so it will use hdd_img and cdr_img properties.
Mesh is expected to have a suffix of 2 so it will use hdd_img2 and cdr_img2 properties.
HDDs will skip SCSI ID 3 unless 7 HDDs are added, in which case, the seventh HDD will use ID 3.
CDs will start at SCSI ID 3, go to 7, then down to 0.
SCSI IDs are skipped if a device is already using that SCSI ID.
ScsiCdrom and ScsiHD no longer use REGISTER_DEVICE or DeviceDescription or PropMap which is normal for devices that can have multiple instances.
2024-03-14 19:12:11 -07:00
joevt
4c9b125cc8
amic: Add modem port transmit DMA.
2024-03-14 08:05:42 -07:00
joevt
e1e00c951b
sc53c94: Split real_dma_xfer.
...
Create real_dma_xfer_out and real_dma_xfer_in methods.
2024-03-14 08:01:07 -07:00
joevt
c14974d167
sc53c94: Init class fields.
2024-03-13 21:37:08 -07:00
joevt
f07de5401d
sc53c94: Add registers and comments.
2024-03-13 21:25:28 -07:00
dingusdev
faf066f2b9
Fixed building
2024-03-13 21:17:04 -07:00
joevt
06640844e9
scsihd: Allow read and write > 4 GB.
2024-03-13 21:09:55 -07:00
joevt
bfc703a556
scsihd: Add sector_size.
...
Replace HDD_SECTOR_SIZE with class field sector_size.
2024-03-13 21:06:18 -07:00
joevt
ec01993d84
scsihd: Make seek and rewind illegal.
2024-03-13 18:42:25 -07:00
joevt
5a54b6a761
scsicdrom: Rename read_capacity_10.
...
Like scsihd.
2024-03-13 07:50:32 -07:00
joevt
a605c435b6
scsicdrom: Move test_unit_ready.
...
Make it a separate method like scsihd.
2024-03-13 07:50:20 -07:00
joevt
05da1708eb
scsihd: Remove unused cur_buf_cnt.
2024-03-13 07:46:12 -07:00
joevt
3f826b8971
scsi: Add illegal_command method.
...
- scsicdrom now logs unsupported commands instead of abort.
2024-03-13 07:45:50 -07:00
joevt
de8388f9a7
scsihd: Rename img_buffer to data_buf.
...
To match scsicdrom.
2024-03-13 07:44:52 -07:00
joevt
569f782a60
scsihd: Rename hdd_img to disk_img.
2024-03-13 07:44:43 -07:00
dingusdev
96b9b6a375
Fixed building
2024-03-12 21:30:38 -07:00
dingusdev
410502fa7e
Merge branch 'master' of https://github.com/dingusdev/dingusppc
2024-03-12 21:15:49 -07:00
Maxim Poliakovski
a8cd73cc69
hammerhead: remove MACH_TYPE_CATALYST definition.
...
Catalyst uses another memory controller (Platinum)
that significantly differs from Hammerhead.
Low-level board constants don't match too.
2024-03-12 17:41:12 +01:00
Maxim Poliakovski
54ce23d0a8
platinum: cleanup non-DWORD register reads.
2024-03-12 17:29:19 +01:00
Maxim Poliakovski
2d68b72dbd
platinum: use meaningful name for 'register _4B'.
2024-03-12 17:05:47 +01:00
joevt
091cf4337c
scsidevice: Remember SELECT_WITH_ATN message.
...
It might be an IDENTIFY message which contains a LUN number.
2024-03-12 08:01:52 -07:00
joevt
ff9b8a59e2
scsibus: Change control lines for MESSAGE_IN.
2024-03-12 07:49:43 -07:00
joevt
6e4544450e
platinum: Add register _4B.
2024-03-12 07:07:43 -07:00
joevt
d4922beefe
platinum: Don't ignore read/write of size != 4.
...
For reading, we'll return values such that dumping bytes or words or longs in Open Firmware will produce the same info in all cases.
2024-03-12 07:07:36 -07:00
joevt
6f37ff9ea3
platinum: Convert register offset to index.
...
Same as control.
2024-03-12 07:06:05 -07:00
joevt
1dfa671405
hammerhead: Add Motherboard ID Burst ROM flag.
2024-03-12 07:05:09 -07:00
joevt
eb1d5d0a6d
atimach64gx: Make sure refresh rate is reasonable.
2024-03-11 20:27:00 -07:00
joevt
a190d5cbd9
atimach64gx: Handle all pixel formats.
2024-03-11 20:26:07 -07:00
joevt
ab647ec0eb
atimach64gx: Move pixel clock calculation.
2024-03-11 20:25:32 -07:00
joevt
1fb9e37ec5
scsidevice: Add check_lun.
...
This will create a CHECK_CONDITON if the LUN doesn't match.
2024-03-11 20:24:24 -07:00
joevt
bcd057d45b
atimach64gx: Don't recalculate if nothing changed.
2024-03-11 19:25:42 -07:00
joevt
0a63e2946d
atimach64gx: Init some fields.
2024-03-11 19:25:18 -07:00
dingusdev
b63e42ecf2
Temporarily removing SOFT RESET ATA command
...
Not implemented properly. Will re-implement soon.
2024-03-11 19:05:13 -07:00
joevt
ee2ec7fe54
atimach64gx: Update VGA unsupported mode message.
2024-03-11 08:00:48 -07:00
joevt
1f63342c96
atimach64gx: Handle disabled display.
2024-03-11 08:00:38 -07:00
joevt
6e094a8edb
atirage: Remove crtc_enable.
2024-03-11 07:55:15 -07:00
joevt
2ece059c5e
atapi: Add ATAPI_SOFT_RESET command.
...
I don't know if this is correct.
2024-03-11 07:19:11 -07:00
joevt
a0ce1efabe
display_sdl: Add Mouse Grabbed to window title.
...
Necessary when the window is created after a restart while mouse is grabbed.
2024-03-11 07:10:26 -07:00
leap123
c1b557fbb9
Fix build on Fedora
2024-03-11 13:01:43 +07:00
joevt
babefd09f3
atimach64gx: Rename enable_crtc_internal.
2024-03-10 17:02:38 -07:00
joevt
578e5dc063
atimach64gx: Remove disable_crtc_internal.
2024-03-10 17:02:29 -07:00
joevt
2a290ff9c1
atimach64gx: Remove crtc_enable.
2024-03-10 17:02:18 -07:00
joevt
bfd60155b6
atimach64gx: Fix DAC_CNTL for non-byte access.
...
If offset is 2, a size of 2 will also overwrite byte 3.
2024-03-10 17:00:47 -07:00
joevt
df09a1e3bf
atimach64gx: Register cleanup.
...
- Use register number instead of offset.
- Have one exit path from the read_reg and write_reg methods.
2024-03-10 16:59:11 -07:00
joevt
3cced5e29b
atimach64gx: Use register field names.
2024-03-10 16:58:36 -07:00
joevt
bd5ecf8cbb
atimach64gx: Init CRTC_DISPLAY_DIS.
2024-03-10 16:54:48 -07:00
joevt
3e6f7ef541
atimach64gx: Init FIFO_CNT.
2024-03-10 16:54:31 -07:00
joevt
ac5b434641
atimach64gx: Add verbose_pixel_format.
...
It is used to log the pixel format/depth.
2024-03-09 17:57:27 -07:00
joevt
00f917f52e
atimach64gx: Add io_access_allowed.
...
This method is used by both pci_io_read and pci_io_write to determine if ISA type I/O access is allowed.
The SPARSE_IO_BASE I/O address is defined. This I/O range is not defined by an I/O BAR.
2024-03-09 17:54:05 -07:00
joevt
a11770961e
Add pci_find_device for pci type 0 requests.
2024-03-09 17:49:51 -07:00
joevt
2d8f2422b3
dbmda: Fix dma output res_count update.
...
Use this->res_count to track amount of data transferred.
2024-03-09 06:47:48 -07:00
joevt
0166059d1b
dbdma: Add set_stat method.
...
A hardware device may have status flags connected to 8 status bits of the DBDMA engine.
2024-03-09 06:45:06 -07:00
joevt
50fcb45b88
awacs: Add dma input stub.
2024-03-09 06:20:24 -07:00
joevt
29d13aef09
dma: Add is_active method for input channels.
...
Since DBDMA contains an input and output channel, rename the existing is_active method to is_out_active.
2024-03-09 06:20:13 -07:00
joevt
31036b8dee
grandcentral: Add sound in DMA.
2024-03-09 06:03:33 -07:00
joevt
6f231f3367
grandcentral: IOBus changes.
...
- Add IOBusDevice (nvram_addr_hi_dev) for NVRAM addr hi.
- Add IOBusDevice (nvram_dev) for NVRAM data.
- Make all IOBusDevices use the same code.
- Log error if 4 least significant bits of offset are not zero.
- Correctly byte swap the value before passing it to the IOBusDevice.
- When reading, duplicate the bytes in a word or dword like a real Power Mac does.
2024-03-09 06:02:23 -07:00
joevt
97f08f21b7
appleramdac: Add get_clut_entry_cb.
2024-03-08 21:02:41 -07:00
joevt
9a26016ed4
memctrlbase: Clear RAM to zero.
2024-03-08 20:58:41 -07:00
joevt
f541613c6b
mpc106: Fix RAM allocation.
...
Fix bank_end calculation (left shift 28 instead of 30).
Handle unorderred and discontinous ranges.
2024-03-08 20:58:04 -07:00
joevt
6931b2944b
mpc106: Allow multiple of the same PCI device.
...
Grackle allows attaching different PCI devices. This change allows attach multiple of the same PCI device. To make the name unique in the machine map, the name of the PCI slot is appended to the device name.
2024-03-08 20:57:47 -07:00
joevt
0af9d0c972
chario: Cleanup.
2024-03-08 19:27:42 -07:00
joevt
5d9194d03d
atimach64gx: Add config read/write stub.
2024-03-08 08:00:21 -07:00
Mihai Parparita
57e6e90002
Add support for the CUDA_RESTART_SYSTEM command
...
There are cases where when it's necessary (e.g. given uninitialized NVRAM,
the Beige G3 with the 10.2 install CD inserted will update the boot
device and restart to boot from it).
Restart support was done by wrapping the ppc_exec function in a loop and
checking for a restart power off reason. We also need to disconnect all
event listeners, since they will be recreated when the machine is
re-initialized.
2024-03-07 23:32:23 -08:00
Mihai Parparita
7226fe5303
Ensure that video controller refresh task timer is stopped when the object is destroyed.
2024-03-07 23:31:56 -08:00
Mihai Parparita
10af336cd1
Ensure that VIA timers are stopped when the object is destroyed.
2024-03-07 23:31:56 -08:00
Mihai Parparita
f218a38294
Ensure that AMIC pseudo-VBL timer is stopped when the object is destroyed.
2024-03-07 23:31:44 -08:00
dingusdev
2f326a8199
Compile fix for CharIO in VS2022
...
For some reason, it wouldn't define the symbol when trying to compile with Clang.
2024-03-07 20:57:40 -07:00
joevt
04526012f9
grandcentral: Add Ethernet ROM.
2024-03-07 07:59:13 -07:00
joevt
b5bb214920
ohare: Interrupt fixes.
...
Based on work done for grandcentral.
2024-03-07 07:58:54 -07:00
joevt
1e587b0848
chario: Move static variable to class.
2024-03-07 07:48:11 -07:00
joevt
97727e0d1e
escc: Return NULL if nothing to read.
2024-03-07 07:47:41 -07:00
joevt
723eab59d6
escc: Include port name in log messages.
2024-03-07 07:40:30 -07:00
joevt
1421ccc81e
escc: Add dma stub.
2024-03-07 07:30:06 -07:00
joevt
7b4d513e22
videoctrl: Add change resolution support.
...
PDM defaults to 640x480.
If you set --mon_id to MacRGB12in then it would draw 512x384 inside a 640x480 window.
If you set --mon_id to Multiscan20in then it would try to draw 832x624 inside a 640x480 window and crash.
If you set the Monitors control panel to switch multiscan display from 640x480 to 832x624 and restart then it would crash.
Now it will correctly change the window size every time the mode changes.
2024-03-06 21:44:10 -07:00
joevt
5b51cd06c0
atimach64gx: Add register names.
...
For logging.
2024-03-06 21:20:23 -07:00
joevt
052a47734f
macio: Add DMA interrupts.
2024-03-06 21:19:04 -07:00
joevt
54767bf97d
More interrupts.
...
- Add all the interrupts including DMA.
- Modify the Interrupt to IRQ_ID translation so the interrupts belonging to the first set of 32 interrupts don't need to be shifted.
2024-03-06 19:17:16 -07:00
joevt
e5bace03f7
Abort if register_dma_int.
...
Make register_dma_int cause Abort for heathrow and ohare like it does for amic.
2024-03-06 19:17:03 -07:00
joevt
691fcfb657
atimach64gx: PCI BAR changes.
...
Support changing BAR address.
2024-03-06 18:58:15 -07:00
joevt
49f7da4402
atimach64gx: Remove second column.
...
It incorrectly implies a relationship between items on the same row.
2024-03-06 18:57:52 -07:00
joevt
6c0ca42fff
atimach64defs: Add more registers and bit fields.
2024-03-06 18:57:30 -07:00
joevt
5a049642ea
atirage: Add VBL callback.
2024-03-06 07:50:03 -07:00
joevt
b168459007
atirage: Calculate vert_blank.
2024-03-06 07:42:51 -07:00
joevt
d5c7b5f537
atirage: Add write CRTC_INT_CNTL.
2024-03-06 07:41:12 -07:00
joevt
506ed000a0
atirage: Add write CONFIG_STAT0.
2024-03-06 07:04:59 -07:00
joevt
b92e9216f4
atirage: Add write CRTC_VLINE_CRNT_VLINE.
...
For VLINE interrupt (but Mac OS X doesn't use enable VLINE interrupt).
2024-03-06 07:04:40 -07:00
joevt
6ff5079df8
atirage: Init CRTC_DISPLAY_DIS.
2024-03-06 07:04:25 -07:00
joevt
d686fc04f4
atirage: Fix crtc_update.
...
Add pixel format and pixel clock to the list of fields that will initiate a recalculation.
If frame rate is less than 24 or greater than 120 then assume 60Hz.
2024-03-05 08:02:50 -07:00