joevt
1e78512c95
Rename Curio and Mesh.
2024-03-02 11:12:45 -07:00
joevt
1b147151f0
videoctrl: Rename get_palette_color.
...
So it matches set_palette_color.
2024-03-02 08:59:02 -07:00
joevt
ad8a26616f
scsidevice: Add LUN field.
...
This may make it possible for multiple LUNs to be added to the same target ID.
For now just use LUN #0 .
2024-03-02 08:52:09 -07:00
joevt
8f28823217
scsi: Initialize cur_phase.
2024-03-02 08:51:45 -07:00
joevt
b509df78df
Don't allow vert_blank to be 0.
2024-03-02 08:37:44 -07:00
joevt
5876cc7e17
bandit: Fix indent.
2024-03-02 08:09:42 -07:00
joevt
15e132c824
cmake: Add header files in CMakeLists.txt.
...
So they will appear in Xcode project.
mkdir -p dingusppc/build-xcode
cd dingusppc/build-xcode
cmake -G Xcode ..
xcodebuild -configuration Release
2024-03-01 19:41:43 -07:00
joevt
2998796c2c
pci: Fix log message for PCI rom exceptions.
...
It should log device name, not just "PCIDevice".
2024-03-01 08:02:01 -07:00
joevt
3978d0754d
CD-ROM: Add max blocks check.
...
The code does not support more than 2^32 - 2 blocks because of this expression: static_cast<uint32_t>(this->size_blocks + 1)
2024-03-01 08:01:31 -07:00
joevt
655b9a17e1
psx: Set name of Psx memory controller.
...
For the logs.
2024-03-01 07:59:33 -07:00
joevt
84a694d4c2
nvram: Output nvram file name in error message.
...
So that you don't see identical messages "Could not restore NVRAM content from the given file."
Instead, one will mention nvram.bin and the other will mention pram.bin.
2024-03-01 07:59:19 -07:00
joevt
fe05b1de12
Fix compiler warnings.
...
Xcode build has compiler warnings involving loss of precision. Remove them by adding type casts. Check results in some cases for overflow.
2024-02-29 18:49:14 -07:00
joevt
18afe91a82
atirage: Use convert frame big-endian methods.
2024-02-26 14:46:31 +01:00
Maxim Poliakovski
b8d0ed39d9
atirage: fix FB pitch calculation.
2024-02-26 14:21:53 +01:00
dingusdev
2e3e65f3e7
Moving vid_enable_seq
...
Visual C complains about this being in the wrong place
2024-02-21 07:07:18 -07:00
dingusdev
fb9b6886fa
Add stdio for Windows serial
2024-02-20 18:05:11 -07:00
joevt
8baf722343
Spelling.
2024-02-20 01:53:32 +01:00
joevt
57d919e424
appleramdac: HW cursor fixes.
...
- Add mask so that hardware cursor cannot be drawn beyond the right edge of the frame buffer.
- Add invert pixels. Invert pixels are used in the I-beam cursor and the Watch cursor.
2024-02-20 01:00:50 +01:00
joevt
b0dc893a05
dma: Add name to dma classes.
...
For logging purposes, each DMA channel should have a name.
2024-02-19 15:30:20 +01:00
Maxim Poliakovski
f5bb484226
sc53c94: fix interrupt reporting.
2024-02-19 15:30:20 +01:00
Maxim Poliakovski
bc2714ab2a
platinum: handle non-DWORD register accesses.
2024-02-15 15:35:17 +01:00
joevt
8a800062dd
grandcentral: Add DMA channel enum.
2024-02-12 14:06:19 +01:00
Maxim Poliakovski
28e7a806b4
grandcentral: use MeshStub on machines without MESH.
2024-02-12 02:38:38 +01:00
Maxim Poliakovski
a0e56aa4cf
grandcentral: connect external SCSI HW.
2024-02-12 02:17:09 +01:00
Maxim Poliakovski
b3e3b73159
grandcentral: connect MESH HW.
2024-02-12 02:17:09 +01:00
Maxim Poliakovski
046452fc56
mesh: various improvements.
2024-02-12 02:17:09 +01:00
Maxim Poliakovski
e77b8785ff
grandcentral: wire SWIM3 DMA interrupt.
2024-02-12 02:01:01 +01:00
Maxim Poliakovski
061fc5a24d
hwinterrupt: remove deprecated SCSI0 & SCSI1.
2024-02-12 01:46:21 +01:00
Maxim Poliakovski
cb8c2cb450
Wire CONTROL interrupt.
2024-02-12 01:46:21 +01:00
Maxim Poliakovski
98d661eda1
Wire PLATINUM interrupt.
2024-02-12 01:46:21 +01:00
Maxim Poliakovski
8ddbc9c427
Wire SCSI_MESH interrupt.
2024-02-12 01:46:21 +01:00
Maxim Poliakovski
5902cd5c28
Wire SCSI_CURIO interrupt.
2024-02-12 01:46:21 +01:00
Maxim Poliakovski
ce2f6ddadd
grandcentral: cleanup interrupt acknowledgement.
2024-02-12 01:46:21 +01:00
Maxim Poliakovski
cdc5589bcf
hwinterrupt: new interrupt definitions (joevt's work).
2024-02-12 01:42:59 +01:00
Maxim Poliakovski
8d30fea63b
platinum: implement video emulation.
2024-02-11 22:59:43 +01:00
Maxim Poliakovski
7d06c5b37a
control: use RaDACal emulation from appleramdac.
2024-02-11 22:59:43 +01:00
Maxim Poliakovski
dd95468d74
New source for TNT RAMDAC emulation (DACula & RaDACal).
2024-02-11 22:59:43 +01:00
Maxim Poliakovski
478bd31dc7
dbdma.h: add missing include.
2024-02-11 22:59:43 +01:00
Maxim Poliakovski
44b1d34cc7
control: support interlaced modes.
2024-02-11 22:22:27 +01:00
Maxim Poliakovski
5f06be6226
control: implement HW cursor rendering.
2024-01-19 23:48:22 +01:00
Maxim Poliakovski
a68afbf79a
videoctrl: add one more cursor rendering callback.
2024-01-19 23:48:22 +01:00
Maxim Poliakovski
7432369162
display_sdl.cpp: improve formatting and add license header.
2024-01-19 09:48:54 +01:00
Maxim Poliakovski
43dc9ed88a
control: remove unused defines and variables.
2024-01-19 09:48:54 +01:00
Maxim Poliakovski
d413e4a278
control: incorporate recent HW knowledge.
2024-01-19 09:48:54 +01:00
joevt
5c460c9f3b
videoctrl: Add VBL callback.
...
Allows overriding the method used to post interrupts.
2024-01-13 00:41:08 +01:00
joevt
cf9237f7d6
control: Fixes.
...
- Fix video vram endianness. It should behave like RAM.
- Add read for registers ENABLE, INT_STATUS, INT_ENABLE.
- Add write for registers CNTTST, INT_ENABLE.
- Add support for 16bpp and 32bpp.
- Add vbl interrupt.
2024-01-13 00:41:08 +01:00
dingusdev
79ee8543f5
Merge pull request #77 from mihaip/upstream-machineid
...
machinepdm: fix machine ID
2024-01-03 07:44:38 -07:00
Maxim Poliakovski
679e80a7c3
atahd: basic commands for disk I/O.
2023-12-30 16:23:00 +01:00
Maxim Poliakovski
ebdefb5acd
atabasedevice: transfer data in chunks.
2023-12-30 16:23:00 +01:00
Mihai Parparita
e36e1cf282
machinepdm: fix machine ID
...
Handle 4 byte reads from the machine ID MMIO region. Also change the 6100
machine ID to match the one used by MAME.
2023-12-29 23:31:16 +00:00
Mihai Parparita
ae0bb838bf
Add basic support for the extended ADB mouse protocol.
...
We now respond to the switch to device handler ID 4 and the register 1
read (as described by https://developer.apple.com/library/archive/technotes/hw/hw_01.html#Extended ).
We don't yet use the extra precision bits in the register 0.
2023-12-15 16:04:27 -08:00
Maxim Poliakovski
fd92d86954
mesh: add MESH TNT variant.
2023-12-11 08:05:39 +01:00
Mihai Parparita
ea9de4feaf
Fix uninitialized value read in the ScsiHardDisk constructor
...
The call to the ScsiDevice superclass was using the name field (which
was not initialized yet) instead of the name constructor argument
2023-12-10 08:58:12 -08:00
Maxim Poliakovski
114737db41
scsicdrom: use CdromDrive as base class.
2023-12-10 00:19:44 +01:00
Maxim Poliakovski
bf278af950
scsidevice: add get_more_data() method.
...
It is required for supporting large data transfers split
into multiple chunks.
2023-12-10 00:19:44 +01:00
Maxim Poliakovski
e1b231882e
cdromdrive: declare some methods virtual.
2023-12-10 00:19:44 +01:00
Maxim Poliakovski
705dd390e9
grandcentral: respect size when reading from IOBus devices.
2023-12-10 00:19:44 +01:00
Maxim Poliakovski
078aa79270
grandcentral: remove board register 1 stub.
2023-12-10 00:19:44 +01:00
Maxim Poliakovski
a1ad0a3e07
machineid: implement BoardRegister class.
2023-12-10 00:19:44 +01:00
Maxim Poliakovski
858f699750
hammerhead: add configuration accessors.
2023-12-10 00:19:44 +01:00
Mihai Parparita
30ded5e803
Add support for more ATI Rage video modes
...
Cherrypicks a small piece of joevt/dingusppc@117ca1e449
so that booting from the 10.2 CD gets past it trying to change the video
mode to 15bpp.
Co-authored-by: joevt <joevt@shaw.ca>
2023-12-07 00:16:48 -08:00
Maxim Poliakovski
65a343ce5c
Clean up names for SCSI devices.
2023-12-04 22:41:01 +01:00
Maxim Poliakovski
8841c3e7f9
scsihd: more commands.
2023-12-04 21:41:55 +01:00
Maxim Poliakovski
1e4579a076
Improve SCSI state machine.
2023-12-04 21:41:55 +01:00
Maxim Poliakovski
be2721cd67
scsihd: cleanup, fixes and more commands.
2023-12-04 21:41:55 +01:00
Maxim Poliakovski
58281520d3
Implement writes to SCSI Pseudo-DMA register.
2023-12-04 21:41:55 +01:00
Maxim Poliakovski
58dacfa263
amic: improve VIA2_IFR and VIA2_IER emulation.
2023-12-04 21:41:55 +01:00
Maxim Poliakovski
ae903082d8
amic: implement SCSI DRQ callback.
2023-12-04 21:41:55 +01:00
Mihai Parparita
1a859669eb
Remove obsolete ADB_Bus class
...
Superseded by e9d91175c4
and subsequent
changes.
2023-12-03 23:15:25 -08:00
joevt
0096d063dd
pdmonboard: Add 2, 4, 15, 24 bpp support.
2023-12-03 20:38:01 +01:00
joevt
7c3bb41728
videoctrl: Add more convert frame methods.
...
Also rename 1bpp and 8bpp methods to 1bpp_indexed and 8bpp_indexed.
2023-12-03 20:38:01 +01:00
dingusdev
7eb2fd23c3
Fixing typos
2023-12-01 14:04:26 -07:00
Maxim Poliakovski
46961711e4
amic: stub for Ch-B serial xmit DMA.
2023-12-01 22:01:48 +01:00
dingusdev
07030378c8
Non-US keyboard support started
...
This is quite unfinished, but should get some of the major targets started.
2023-12-01 10:23:41 -07:00
Maxim Poliakovski
94872b3ebb
Store SCSI bus object pointer during registration.
2023-11-24 19:48:07 +01:00
Maxim Poliakovski
9ae863d7c4
sc53c94: add is_dma_cmd member variable.
2023-11-24 19:48:07 +01:00
Maxim Poliakovski
457accf329
scsi: define READ_BUFFER and WRITE_BUFFER commands.
2023-11-24 19:48:07 +01:00
Mihai Parparita
d08b486db0
Fix keyboard events occasionally being dropped
...
AdbKeyboard would copy the event into its own fields and set the
changed field, so that we could return the event when register was 0.
However, if a subsequent event was received before ADB polling, the
previous event would be overwritten and lost.
Fix this by maintaining a queue of events, so that we can return
everything since the last poll.
2023-11-24 10:08:16 -08:00
Maxim Poliakovski
d37d83c5b6
Merge pull request #64 from mihaip/upstream-a-key
...
Fix "a" key always being as as a keyup
2023-11-24 11:35:18 +01:00
Mihai Parparita
d45bba924d
Fix "a" key always being as as a keyup
...
We were using an empty value on the second byte of the ADB keyboard
register 0, but that maps to the "a" key. This manifested itself
as the Key Caps DA never showing the "a" key as being down.
Switch to a non-existent key for the second byte.
2023-11-23 22:39:06 -08:00
Maxim Poliakovski
446b1b8d99
atahd: various improvements implementing basic commands.
2023-11-22 17:35:14 +01:00
Maxim Poliakovski
27ff05607c
atadefs: bit definitions for the device/head register.
2023-11-22 17:35:14 +01:00
Maxim Poliakovski
f2558cd379
atabasedevice: data transfers to host.
2023-11-22 17:35:14 +01:00
Maxim Poliakovski
4f76a4ead2
Move signal_data_ready() to atabasedevice.
2023-11-22 17:35:14 +01:00
Maxim Poliakovski
be633d3872
soundserver_cubeb: remove soundio code.
2023-11-15 19:01:54 +01:00
Maxim Poliakovski
453930ff75
awacs: pausing sound output DMA channel.
2023-11-15 19:01:54 +01:00
Maxim Poliakovski
b7341d0ab8
amic: implement sound out DMA IRQ.
2023-11-15 19:01:54 +01:00
Maxim Poliakovski
c3f2c9e84c
awac-pdm: improve read_stat().
2023-11-15 19:01:54 +01:00
Mihai Parparita
d4c9db7fcf
Move disk image reading to be behind an ImgFile class
...
Allows different implementations for different platforms (the JS
build relies on browser APIs to stream disk images over the network).
Setting aside the JS build, this also reduces some code duplication.
2023-11-09 21:49:28 -08:00
Maxim Poliakovski
04956c19d5
Fix tiny tipo in adbdevice.h
2023-11-09 11:51:33 +01:00
Mihai Parparita
73272b28dd
Implement the ADB keyboard
...
Besides generating KeyboardEvents in the SDL event handler and
returning the key state in the register 0 reads of the AdbKeyboard
device, we also needed to generalize the ADB bus polling a bit. We now
check all devices that have the service request bit set, instead of
hardcoding the mouse.
The SDL key event -> ADB raw key code mapping is based on BasiliskII/
SheepShaver's, but cleaned up a bit.
2023-10-11 23:43:20 -07:00
Mihai Parparita
e011d86742
amic: don't reset cur_buf_pos if we've drained the DMA buffer
...
Otherwise if pull_data is called again, it will think that it still
has data available in the buffer (rem_len will be non-zero) and
random data at the buffer location will be returned.
This manifested itself as noise being played back in the JS
implementation of the SoundServer. The cubeb implementation was not
affected because it stops polling once it's told it has no more
data in the buffer. Both approaches are valid (the JS version pads
data with silence), and the DMA buffer should support both.
2023-11-06 22:33:00 -08:00
Mihai Parparita
35c86ad6bf
Clean up #includes
...
Result of running IWYU (https://include-what-you-use.org/ ) and
applying most of the suggestions about unncessary includes and
forward declarations.
Was motivated by observing that <thread> was being included in
ppcopcodes.cpp even though it was unused (found while researching
the use of threads), but seems generally good to help with build
times and correctness.
2023-11-03 00:33:47 -07:00
Mihai Parparita
1f7edfdb3b
Make Emscripten build not depend on SDL2 or cubeb
...
While Emscripten has an SDL compabtility layer, it assumes that the
code is executing in the main browser process (and thus has access to
them DOM). The Infinite Mac project runs emulators in a worker thread
(for better performance) and has a custom API for the display, sound,
input, etc. Similarly, it does not need the cross-platform sound support
from cubeb, there there is a sound API as well.
This commit makes SDL (*_sdl.cpp) and cubeb-based (*_cubeb.cpp) code be
skipped when targeting Emscripten, and instead *_js.cpp files are used
instead (this is the cross-platform convention used by Chromium[^1], and
could be extended for other targets).
For hostevents.cpp and soundserver.cpp the entire file was replaced,
whereas for videoctrl.cpp there was enough shared logic that it was
kept, and the platform-specific bits were moved behind a Display class
that can have per-platform implementations. For cases where we need
additional private fields in the platform-specific classes, we use
a PIMPL pattern.
The *_js.cpp files with implementations are not included in this
commit, since they are closely tied to the Infinite Mac project, and
will live in its fork of DingusPPC.
[^1]: https://www.chromium.org/developers/design-documents/conventions-and-patterns-for-multi-platform-development/
2023-10-25 22:25:53 -07:00
Mihai Parparita
ea0eae467d
Add assertion for valid SCSI IDs when updating control lines
...
Would have flagged the out-of-bounds write fixed by
dingusdev/dingusppc@36cb84eaaa sooner.
2023-10-19 07:49:23 -07:00
Maxim Poliakovski
cfb1999caf
soundserver: fix double freeing.
2023-10-18 16:18:54 +02:00
Maxim Poliakovski
36cb84eaaa
mesh: fix write-out-of-bounds to BusStatus1.
2023-10-18 11:21:38 +02:00
Maxim Poliakovski
aa5ef742f6
atirage: return meaningful value for GUI_STAT:GUI_FIFO.
2023-10-10 02:31:09 +02:00
Maxim Poliakovski
47d2e235a3
atirage: prevent big-endian accesses outside VRAM.
...
The simplest solution is to cut the aperture size by the amount
of video RAM installed. This way, accesses to the big-endian
aperture located above the installed VRAM will be catched and
reported by the MMU.
2023-10-03 14:18:12 +02:00
Maxim Poliakovski
576912dd55
displayid: prevent reading past EDID data.
2023-10-03 00:42:03 +02:00
Maxim Poliakovski
63b10175bf
mesh: stubs for BusFree and EnaReselect commands.
2023-10-02 15:01:27 +02:00
Maxim Poliakovski
a5fb124e69
pdmonboard: switch to mmu_map_dma_mem.
2023-10-02 15:00:12 +02:00
Maxim Poliakovski
72d45fb0de
amic: switch DMA code to mmu_map_dma_mem.
2023-10-02 14:48:25 +02:00
Maxim Poliakovski
f754f63f8f
dbdma: fix LOAD_QUAD and STORE_QUAD to work with MMIO.
2023-10-02 14:46:52 +02:00
Maxim Poliakovski
b408a02ef9
dbdma: implement LOAD_QUAD, STORE_QUAD and NOP.
2023-09-30 17:09:45 +02:00
Maxim Poliakovski
99f596ea19
cdromdrive: clean-up and extend READ_TOC command.
2023-09-25 23:17:57 +02:00
joevt
637844269f
atapicdrom: Implement sector areas for Read CD.
...
The disk cache is unchanged. data_ptr continues to be only used for the user data sector area for each block. The other sector areas (synch, header, etc.) are filled in while reading.
has_data and get_data exist as a way to bypass data_ptr for parts of the transfer outside the user data sector area of each block. The default behaviour is defined in atabasedevice and is overridden by atapicdrom for the Read CD command. atapicdrom has a flag doing_sector_areas to control the behavior of the get_data method. When the flag is true, the sector_areas, current_block, and current_block_byte are used for selecting the correct data from one of the sector areas. The Read CD command initializes those variables. xfer_cnt remains the total number of bytes to be transferred and is now not necessarily the same as the number of disk image blocks read into the disk cache.
lba_to_msf is used to fill in the header. The values was not verified using a real CD.
Mac OS X just cares about the Mode in the header. For now, only the synch and header and user data areas are filled in. The other areas read as all zeros.
2023-09-25 12:22:17 +02:00
joevt
ec5bf8e985
atapicdrom: Implement READ(6) and READ(10).
2023-09-25 12:22:17 +02:00
joevt
4bbc5ab0af
CD-ROM: Fix interpretation of session number.
...
In Read TOC format 2, Mac OS X passes zero for Session Number. I believe Read TOC is supposed to return the first session starting from that number so it should return info for Session 1 as it would if Mac OS X passed 1 for the Session Number.
2023-09-25 12:22:17 +02:00
Maxim Poliakovski
6cfde29f00
heathrow: implement native interrupt mode.
2023-09-25 12:22:17 +02:00
Maxim Poliakovski
c115a887d8
heathrow: fix processing of emulated interrupts.
2023-09-25 02:14:29 +02:00
Maxim Poliakovski
4cdb81e822
mesh: fix Arbitrate command for OS X.
2023-09-24 22:36:44 +02:00
Maxim Poliakovski
f4f7edcc28
heathrow: add Ethernet DBDMA channels.
2023-09-22 00:11:19 +02:00
Maxim Poliakovski
5f48a3ab5b
bigmac: support more registers.
2023-09-22 00:09:17 +02:00
Maxim Poliakovski
9db3076a48
dbdma: support INT_SELECT & WAIT_SELECT registers.
2023-09-20 00:45:39 +02:00
Maxim Poliakovski
6eb6a5892d
bigmac: fix/improve PHY interface.
2023-09-20 00:44:08 +02:00
Maxim Poliakovski
0ebcd15a3d
heathrow: connect DMA channel for MESH.
2023-09-19 14:19:15 +02:00
Maxim Poliakovski
04acf120d6
dbdma: support optinal CommandPtrHi register.
...
It's written with zero in OS X. This dummy implementation
is meant to reduce log warnings.
2023-09-19 14:16:13 +02:00
Maxim Poliakovski
a69763c6de
dbdma: noop incomplete LOAD_QUAD & STORE_QUAD.
2023-09-18 20:20:25 +02:00
dingusdev
5e32b599d6
Merge branch 'master' of https://github.com/dingusdev/dingusppc
2023-09-04 07:22:27 -07:00
Maxim Poliakovski
c690049246
Merge pull request #47 from joevt/ofnvram-branch
...
ofnvram changes
2023-08-22 08:24:57 +02:00
dingusdev
a7ef177164
Preliminary DBDMA expansion
2023-08-13 16:38:15 -07:00
Maxim Poliakovski
ee9c692115
mesh: implement more register reads.
2023-08-09 01:40:09 +02:00
Maxim Poliakovski
cd9ccb66ed
adbkeyboard: fix compiler warning.
2023-08-07 12:51:09 +02:00
joevt
439509b408
Fix New World NVRAM limits calculations.
...
It was possible to corrupt New World nvram using dingusppc setenv command.
- setenv must call get_config_vars to set data_length so that it can calculate free space.
- data_length represents the number of bytes taken by nvram variables including the terminating null for the value (name, '=', value, '\0'). Previously, it did not include the terminating null.
- The list of variables and values ends at a '\0' or at pos == 4096 bytes. Previously, data_length wouldn't get set if pos >= 4096.
- Allow setenv to create new nvram variables.
- Since data_length now represents the total number of used bytes, free_space now represents the actual free space, so use > free_space (instead of >= free_space) to determine insufficient space.
- While parsing nvram variable name, do not read beyond 4096 bytes.
- Use a different error message for each problem that can occur while parsing nvram variable name.
2023-08-04 20:11:59 -07:00
joevt
07f57a1e9b
Remove extra semi-colons.
2023-08-04 20:11:59 -07:00
joevt
0c9ddaccf7
Fix dppc debugger printenv of multiline variables.
...
If a nvram variable has CRLF or CR, replace them with LF so each line appears on a new line in the console output.
Also, add indent to each line so that each line appears only in the value column and not in the name column.
2023-08-04 20:11:59 -07:00
dingusdev
b23bb04dac
Start fix for SCSI Hard Drive
2023-08-02 07:53:19 -07:00
dingusdev
a7601c36bd
Started work on keyboard input
2023-08-01 22:43:11 -07:00
Maxim Poliakovski
1a883ba73e
viacuda: implement basic autopolling.
2023-08-02 00:07:17 +02:00
Maxim Poliakovski
2e50b364c4
adbmouse: emulate single button mouse.
2023-08-01 23:58:29 +02:00
Maxim Poliakovski
5b90a3e21d
AMIC: rework and improve interrupts.
2023-08-01 17:42:52 +02:00
Maxim Poliakovski
ca83f7e8ef
pdmonboard: switch to new video controller API.
2023-08-01 17:41:02 +02:00
Maxim Poliakovski
337a9d6dd0
videoctrl: generate VBL interrupts.
2023-08-01 17:37:50 +02:00
Maxim Poliakovski
233ab778b6
adbmouse: support for movement data in R0.
2023-08-01 17:18:46 +02:00
Maxim Poliakovski
4872af1053
control: use new refresh task control.
2023-07-31 03:53:13 +02:00
Maxim Poliakovski
0ca1ebf724
atimach64gx: use new refresh task control.
2023-07-31 03:52:17 +02:00
Maxim Poliakovski
632479b1ba
atirage: use new refresh task control.
2023-07-31 03:46:16 +02:00
Maxim Poliakovski
9b81891467
pdmonboard: use new refresh task control.
2023-07-31 03:36:17 +02:00
Maxim Poliakovski
7b2e1d90e6
Move refresh task control to VideoCtrlBase.
2023-07-31 03:34:02 +02:00
Maxim Poliakovski
6fa6b4d4dc
Rework the EventManager to use CoreSignal.
2023-07-27 02:40:32 +02:00
Maxim Poliakovski
c254749493
viacuda: connect to new AdbBus device.
2023-07-26 04:50:05 +02:00
Maxim Poliakovski
fd9f8c90a5
Basic ADB mouse device emulation.
...
For now, it solely handles the basic ADB commands.
2023-07-26 04:40:20 +02:00
Maxim Poliakovski
0a0761c7e0
AdbDevice - the base class for ADB devices.
2023-07-26 04:35:07 +02:00
Maxim Poliakovski
e9d91175c4
Add AdbBus class and device.
2023-07-26 04:29:08 +02:00
Maxim Poliakovski
0c0166b565
viacuda: fix packet response protocol.
...
Cuda needs to negate TREQ before sending the last byte of a
fixed-length response to avoid transfering an extraneous byte.
2023-07-26 04:22:08 +02:00
Maxim Poliakovski
7bb7ff9f0f
heathrow: human-readable DBDMA channel names.
2023-07-24 15:20:52 +02:00
Maxim Poliakovski
a9f73e7384
hwcomponent: fix size of the component type enum.
2023-07-23 16:32:00 +02:00
Maxim Poliakovski
14c7d18bdb
Revert "Prevents crashing for Big Mac"
...
This reverts commit 5787d49e9b
.
2023-07-23 16:28:31 +02:00
dingusdev
5787d49e9b
Prevents crashing for Big Mac
...
For some reason, on Windows, whether it be VS2022 or Clang, it will crash when trying to write to a Big Mac register if you don't specify the exact name of the component within Heathrow.
This commit fixes that.
2023-07-22 15:15:33 -07:00
Maxim Poliakovski
f7a1412ec7
atapibasedevice: fix task file initialization on reset.
2023-07-09 02:10:48 +02:00
Maxim Poliakovski
a424d48447
bigmac: implement software reset registers.
2023-07-08 23:30:44 +02:00
Maxim Poliakovski
482fe3eb80
bigmac: MAC serial EEPROM emulation.
2023-07-08 21:32:26 +02:00
Maxim Poliakovski
4de2afc0c5
bigmac: fix Gossamer PHY stuff.
2023-07-08 14:35:23 +02:00
Maxim Poliakovski
742003b6f3
Basic BigMac Ethernet controller emulation.
...
Emulates MII and some PHY configuration registers.
2023-07-08 01:27:01 +02:00
Maxim Poliakovski
10b8366219
hwcomponent: add Ethernet MAC type.
2023-07-08 01:23:18 +02:00
Maxim Poliakovski
0687b0c60e
New ATAPI CD-ROM implementation.
2023-06-18 23:36:46 +02:00
Maxim Poliakovski
fc26be3e24
atapibasedevice: implement PIO transfers.
...
Also move ATAPI CD-ROM related stuff to separate
source and implement various helpers.
2023-06-18 23:33:57 +02:00
Maxim Poliakovski
f733859e28
heathrow: support for IDE interrupts.
2023-06-18 23:31:28 +02:00
Maxim Poliakovski
a4cac2df81
atabasedevice: interrupt support.
2023-06-18 23:30:06 +02:00
Maxim Poliakovski
4886b4d52a
Add base class for CD-ROM drives.
2023-06-18 23:28:41 +02:00
Maxim Poliakovski
3c5a0ad8c1
Add BlockStorageDevice class.
2023-06-18 23:27:10 +02:00
Maxim Poliakovski
ac267b3daa
idechannel: support devices registration and interrupts.
2023-06-18 23:24:19 +02:00
Maxim Poliakovski
cb347434d3
hwinterrupt: add IDE interrupts.
2023-06-18 23:22:51 +02:00
Maxim Poliakovski
d113c4cf7a
ATAPI Features bit definitions.
2023-06-18 23:06:04 +02:00
Maxim Poliakovski
7a8b534c07
More SCSI commands and error codes.
2023-06-18 23:04:02 +02:00
Maxim Poliakovski
ee7b2838bc
One more attempt to fix GCC build.
2023-05-30 19:55:46 +02:00
Maxim Poliakovski
6f247f64cd
ScsiBus: add missing include.
2023-05-30 19:51:07 +02:00
Maxim Poliakovski
0b2fd60308
Fix Gazelle crash by adding PCI slot properties.
2023-05-30 19:48:40 +02:00
Maxim Poliakovski
f809124a2e
Improve SCSI bus registration.
2023-05-30 19:46:27 +02:00
Maxim Poliakovski
586828b375
Base class for ATAPI devices.
2023-05-15 17:57:20 +02:00
Maxim Poliakovski
e36150a5ca
Add ATAPI commands, clean up formatting.
2023-05-15 17:57:20 +02:00
Maxim Poliakovski
0f8e68d4bf
Rework ATA reset logic.
2023-05-15 17:57:20 +02:00
Maxim Poliakovski
daca3a27d6
soundserver: silence some logging messages.
2023-04-23 21:40:21 +02:00
Maxim Poliakovski
26374366c7
awacs: minor improvements (proper initialization).
2023-04-23 21:32:41 +02:00
Maxim Poliakovski
22798fe14e
Fix compilation of the audio codec classes.
2023-04-23 21:04:24 +02:00
Maxim Poliakovski
44478b6937
heathrow: implement floppy DMA interrupts.
2023-04-22 22:53:20 +02:00
Maxim Poliakovski
57ea3c2e66
dbdma: implement interrupt processing.
2023-04-22 22:52:03 +02:00
Maxim Poliakovski
03595c3940
Merge remote-tracking branch 'origin/machine-yosemite'
2023-04-21 12:49:58 +02:00
Maxim Poliakovski
ed48766e5f
atahd: cosmetic improvements.
2023-04-17 09:56:03 +02:00
Maxim Poliakovski
4093c6e83c
amic: fix SCSI DMA to match newer MMU API.
2023-04-17 01:32:29 +02:00
Maxim Poliakovski
cf0d361918
Merge 'hard-disks' branch.
2023-04-17 01:20:38 +02:00
Maxim Poliakovski
09da0c6109
nvram: use smart pointers, fix initialization.
2023-04-17 00:03:36 +02:00
Maxim Poliakovski
2f562e7761
Convert ATI register offsets to DWORD format.
2023-04-11 01:25:00 +02:00
Maxim Poliakovski
b07b700b36
Refactor ATI Mach64 GX emulation.
2023-04-10 22:19:55 +02:00
Maxim Poliakovski
616d0728fd
videoctrl: support guest rendered HW cursors.
2023-04-07 23:16:18 +02:00
Maxim Poliakovski
74a49d1568
atirage: major refactoring.
2023-04-07 23:16:18 +02:00
Maxim Poliakovski
3e545bdef9
Handling host events in video controllers.
2023-04-02 03:01:13 +02:00
Maxim Poliakovski
49f47c5f3f
bandit: attach devices from the CLI.
2023-04-02 03:01:13 +02:00
Maxim Poliakovski
888d919ae7
videoctrl: refactor palette access.
2023-04-02 03:01:13 +02:00
Maxim Poliakovski
c188d0251a
ofnvram: support CHRP style OF config partition.
2023-02-25 18:14:42 +01:00
Maxim Poliakovski
d76433f112
heathrow: properly relocate memory space.
2023-02-25 18:14:42 +01:00
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
3234f21cab
Overhaul audio codec classes.
2023-02-25 18:14:42 +01:00
Maxim Poliakovski
2fb23e210e
Grackle: implement some register reads to avoid warnings.
2023-02-15 02:36:40 +01:00
Maxim Poliakovski
71b2e6c1fa
dbdma: implement optional command branching.
...
This feature is used by New World BootROMs for producing
error beeps with different duration and count.
2023-02-15 02:36:40 +01:00
Maxim Poliakovski
ad2fc290ec
Initial DEC 21154 P2P bridge 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
Maxim Poliakovski
094b3b5312
Fix Cuda response protocol.
2023-02-08 21:26:11 +01:00