Maxim Poliakovski
609fb43726
Rewrite DisplayID to work with AMIC & ATI Rage.
2021-11-30 01:26:32 +01:00
Maxim Poliakovski
99f5aba12e
atirage: replace raw pointers with unique_ptr.
2021-11-17 23:30:43 +01:00
Maxim Poliakovski
cbf4e266e1
atirage: better name for HW registers.
2021-11-11 14:57:31 +01:00
dingusdev
84ded9fc7a
Added further CUDA commands
2021-11-10 07:56:50 -07:00
Maxim Poliakovski
a01cd9c993
Make display ID method selectable in video controller.
2021-11-09 14:15:21 +01:00
Maxim Poliakovski
fc44cdcc83
Heathrow: logging monitor sense status.
2021-11-09 13:41:48 +01:00
Maxim Poliakovski
958d3ee96a
Factor out common video controller code.
2021-11-09 13:40:13 +01:00
Maxim Poliakovski
392fa87ba4
Add NCR 53C90 stub.
2021-10-26 19:00:04 +02:00
Maxim Poliakovski
87b8e1759a
Connect ESCC to AMIC and Heathrow.
2021-10-25 22:19:45 +02:00
Maxim Poliakovski
cb946e41b5
Initial ESCC emulation.
2021-10-25 22:19:45 +02:00
Maxim Poliakovski
3f20d0a700
heathrow: use unique_ptr with internal objects.
2021-10-25 22:19:45 +02:00
Maxim Poliakovski
6a756df5e3
Add MACE Ethernet emulation stub.
2021-10-24 21:02:30 +02: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
7daf4aa317
viacuda: improve READ_MCU_MEM & WRITE_MCU_MEM emulation.
...
68k boot code in ROM uses those commands for applying patches
to Cuda and getting Cuda firmware version. This commit
implements as much as needed for boot code to work.
2021-10-18 23:52:12 +02:00
Maxim Poliakovski
f194887d34
viacuda: properly initialize VIA registers.
2021-10-18 16:38:12 +02:00
Maxim Poliakovski
46549d68a2
viacuda: remove superfluous newlines and casts from messages.
2021-10-18 16:38:12 +02:00
Maxim Poliakovski
c7544d9c2f
amic: reorganize registers in blocks.
2021-10-16 15:07:53 +02:00
Maxim Poliakovski
2f725fe3e4
viacuda: fix PRAM reading and writing.
2021-10-14 00:01:30 +02:00
Maxim Poliakovski
7c47b9c1e7
amic: implement AMIC2 identification.
2021-10-13 09:06:16 +02:00
Maxim Poliakovski
9caef55c19
amic: implement diagnostics register.
2021-10-10 22:01:02 +02:00
Maxim Poliakovski
89e79d05cb
Load bootrom code to primary ROM region.
2021-10-10 22:01:02 +02:00
Maxim Poliakovski
c313a9c8bb
Use std::bind() based callbacks.
2021-10-05 00:29:27 +02:00
Maxim Poliakovski
03e58dac35
Overhaul AWACs and implement PDM sound HW.
2021-10-05 00:29:27 +02:00
Maxim Poliakovski
3ca7a78a37
AWAC-PDM control and status registers.
2021-10-01 01:02:43 +02:00
Maxim Poliakovski
0f55877137
Add basic PDM I/O emulation.
2021-09-30 23:01:56 +02:00
Maxim Poliakovski
b4d399ffa2
Improve three logging messages.
2021-09-30 23:01:56 +02:00
Maxim Poliakovski
8c9f23daf4
Fix memory controller interface for PDM.
2021-09-30 22:55:10 +02:00
Maxim Poliakovski
e9fcc51b93
Debugger fixes for PDM.
2021-09-26 14:21:31 +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
1c77057860
Fixed building through CMake
2021-09-12 08:08:22 -07:00
dingusdev
738e2d3bd1
Fixed compiling for Visual Studio 2019
2021-09-11 22:55:24 -07:00
Maxim Poliakovski
ea5b0d9f52
atirage: framebuffer rendering and various improvements.
2021-09-11 21:02:46 +02:00
Maxim Poliakovski
16d9e6c681
Basic MESH emulation skeleton with events logging.
2021-08-23 00:20:28 +02:00
Maxim Poliakovski
05330bc942
memctrlbase: allocate address map entries with new().
2021-05-16 00:50:44 +02:00
Maxim Poliakovski
baa7f8b211
atirage: use standard names for common pixel formats.
2021-02-08 22:25:36 +01:00
Maxim Poliakovski
2f4a3b955e
atirage: calculation of display parameters.
2021-02-08 02:20:55 +01:00
Maxim Poliakovski
a4eb658309
atirage: increase PLL registers count to 64.
2021-02-05 02:01:31 +01:00
Maxim Poliakovski
508ef2eaa9
atirage: increase registers array and add boundary checks.
2021-02-05 01:23:04 +01:00
Maxim Poliakovski
a5ef814ec4
atirage: add reading and writing of PLL registers.
2021-02-05 01:23:04 +01:00
Maxim Poliakovski
ace19c0bdf
atirage: clean up register names.
2021-02-05 01:11:23 +01:00
Maxim Poliakovski
3a9ed2671c
atirage: remove obsolete memaccess code.
2021-02-04 19:05:39 +01:00
Maxim Poliakovski
3c787a87cd
atirage: add ASIC ID for Rage Pro.
2021-02-04 19:01:55 +01:00
Maxim Poliakovski
a0b43754a7
atirage: fix and clean up PCI interface.
2021-02-04 01:03:23 +01:00
Maxim Poliakovski
1adbf90e21
MPC106: use memaccess thoroughly.
2021-02-03 23:39:19 +01:00
Maxim Poliakovski
478ca1065f
MPC106: fix RAM size calculation.
2021-02-03 23:29:48 +01:00
Maxim Poliakovski
7628ec92c0
Rename memreadwrite.h to memaccess.h
2021-02-03 12:19:18 +01:00
dingusdev
2bac606365
Added to Heathrow
...
Plus some debugging stuff to help figure out what register 0x34 is responsible for.
2021-01-08 15:29:43 -07:00
dingusdev
9210244c0c
Further ATI Rage registers
2021-01-08 14:32:06 -07:00
dingusdev
14d3874382
More ATI Rage register names added
2021-01-08 13:12:06 -07:00
Maxim Poliakovski
18a19cd52f
Add an implementation for the Highspeed Memory Controller.
2020-12-19 09:56:39 +01:00
Maxim Poliakovski
282940e580
memctrlbase: fix range bug in add_mem_mirror.
2020-12-19 08:24:04 +01:00
Maxim Poliakovski
81b3c3c4a0
Default initialization of Heathrow registers.
2020-11-26 03:03:52 +01:00
Maxim Poliakovski
3b29ff9514
atirage: fix monitor identification.
2020-10-14 16:55:38 +02:00
dingusdev
14ef7564cd
CLI fixes - RAM and GFXMEM work better
2020-08-25 20:07:02 -07:00
Maxim Poliakovski
8094fb30f6
atirage: add access to internal DAC palette.
2020-06-11 01:30:10 +02:00
Maxim Poliakovski
f753bb1911
atirage: replace magic numbers with named constants.
2020-06-11 00:49:00 +02:00
Maxim Poliakovski
5d57086795
Add one more missing include.
2020-06-03 20:28:57 +02:00
Maxim Poliakovski
3be46aa44d
Add missing includes.
2020-06-03 20:21:52 +02: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
07340d82dd
atirage: add video RAM.
2020-05-28 23:47:20 +02:00
Maxim Poliakovski
55a14ca28f
atirage: fix big memory aperture registration.
2020-05-28 22:36:55 +02:00
Maxim Poliakovski
bcc0e38e9f
More sound fixes and cleanups.
2020-05-18 20:45:37 +02:00
Maxim Poliakovski
ae78a1f04f
Fix AWACs sound playback with WASAPI.
2020-05-18 03:02:30 +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
Waqar Ahmed
286897398c
Fix build on linux
2020-05-12 21:20:57 +05:00
Maxim Poliakovski
d4c39f13af
Changes related to Windows build.
2020-05-09 14:29:37 +02:00
Maxim Poliakovski
f7d67a91e0
New AWAC and sound server implementation.
2020-05-08 23:12:04 +02:00
Maxim Poliakovski
a5c63c1b09
viacuda: fix autopoll control commands.
2020-04-27 02:50:53 +02:00
dingusdev
d24a71528b
Slightly readjusted key mappings
2020-04-25 11:02:47 -07:00
Maxim Poliakovski
3b98dee232
adb.cpp: fix indentation.
2020-04-25 03:01:16 +02:00
dingusdev
f2ab933884
Slightly clean-up and expansion for future uses
2020-04-23 18:22:47 -07:00
dingusdev
c0d0187190
ADB Refactoring, Pt. 2
2020-04-23 18:08:27 -07:00
dingusdev
d0f03f722e
ADB Refactoring Pt. 1
2020-04-22 14:14:49 -07:00
dingusdev
a5b740eafc
Slightly reworked ADB work so far
2020-04-21 19:45:59 -07:00
dingusdev
70f5b45e71
Started work on ADB input
2020-04-21 15:23:55 -07:00
dingusdev
add11ecc62
Adding further Heathrow registers
2020-04-19 11:28:51 -07:00
dingusdev
8fb2e851d7
Started work for ADB polling
2020-04-17 17:23:50 -07:00
Maxim Poliakovski
3461f2e353
displayid.cpp: fix indentation.
2020-04-14 13:03:43 +02:00
Maxim Poliakovski
54a86972cd
Basic support for display identification.
2020-04-14 01:04:37 +02:00
dingusdev
925bcdfe9f
Getting most I/O Space registers in.
2020-04-01 22:31:29 -07:00
Maxim Poliakovski
9f95fde279
ATI Rage: partial register access implemented.
2020-04-01 03:24:39 +02:00
Maxim Poliakovski
b6fcd289a3
ATI Rage: basic register access via PCI I/O space.
2020-03-31 21:19:10 +02:00
Maxim Poliakovski
a243c79d0f
Add support for PCI I/O space.
2020-03-31 21:12:06 +02:00
Maxim Poliakovski
a8c6298545
devices: skeleton for ATI Rage emulation.
2020-03-31 18:48:04 +02:00
Maxim Poliakovski
695044cf0e
Support more than one I/O region per device.
2020-03-31 18:48:04 +02:00
dingusdev
1744f13fb4
Fixed build issues
2020-03-27 12:52:48 -07:00
dingusdev
f50f719b02
Started connecting ATI Rage
2020-03-27 12:43:29 -07:00
dingusdev
17200d5f35
Started work on ATI Rage
2020-03-27 10:54:25 -07:00
Maxim Poliakovski
35d6a2e011
Reduce logging when playing back audio.
2020-03-26 03:02:33 +01:00
Maxim Poliakovski
0d2301c006
Implement DMA pull method for sound output.
2020-03-26 02:07:43 +01:00
dingusdev
60ffa5bfac
Initial attempt at fixing SDL2 building for Windows
2020-03-22 20:15:12 -07:00
Maxim Poliakovski
945e63bdb2
Implement DMA push method for sound.
2020-03-19 15:09:24 +01:00
Maxim Poliakovski
8e34c1657c
Mock up DBDMA channel execution for sound.
2020-03-19 02:00:18 +01:00
Maxim Poliakovski
787ebfaff1
Implement DBDMA channel registers.
2020-03-18 17:34:03 +01:00
Maxim Poliakovski
751efb4cd6
Initial AWACS sound device emulation.
2020-03-15 20:08:53 +01:00
Maxim Poliakovski
0044610038
Add SPD SDRAM emulation.
2020-03-15 14:44:33 +01:00
Maxim Poliakovski
9c8548c238
Finish I2C bus emulation.
...
This commit also cleans up and improve I2C commands
in Cuda. Also removes some related hacks.
2020-03-15 13:28:42 +01:00
Maxim Poliakovski
753e445b4b
Initial I2C bus implementation.
2020-03-14 21:38:18 +01:00
Maxim Poliakovski
75f0e09f5a
viacuda: cleanup print messages.
2020-03-14 19:30:05 +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
94cf232b5e
viacuda: add receiving of ADB packets.
2020-03-05 01:12:41 +01:00
Maxim Poliakovski
71d6966a03
viacuda: remove cuda prefix from method names.
2020-03-05 01:12:41 +01:00
dingusdev
354409812e
Updating files with proper licensing header
2020-02-28 09:04:28 -07:00
dingusdev
51739520b5
Small formatting + logging fixes
2020-02-27 18:41:02 -07:00
dingusdev
eef82649f7
Modest logging system revamp
...
Logging messages now go to dingusppc.log (if in realtime) or the console (if in debug)
2020-02-26 19:51:07 -07:00
dingusdev
e3a1c3501a
Another small fix
2020-02-24 19:56:02 -07:00
dingusdev
8bf902d945
Small fix
2020-02-24 19:55:33 -07:00
dingusdev
6c1dc8aaf0
Further logging work
2020-02-24 19:50:52 -07:00
dingusdev
baef838f7c
Further integration with loguru
2020-02-24 07:54:29 -07:00
dingusdev
d91950e582
Further logging code.
2020-02-23 22:36:31 -07:00
dingusdev
e9a616ffeb
Started working on incorporating loguru
2020-02-23 20:59:10 -07:00
Maxim Poliakovski
4e4d0370be
Modularize build system.
...
This way object files can be shared accross multiple executables.
2020-02-03 14:36:37 +01:00
Maxim Poliakovski
a3601f224c
Fix NVRAM->Heathrow connection.
2020-01-24 16:20:20 +01:00
Maxim Poliakovski
1a44d8e16c
ViaCuda: allocate PRAM object dinamically.
2020-01-15 18:23:15 +01:00
dingusdev
3650b655d7
Proper NVRAM deletion
...
And slowly preparing for a response method from the Cuda to the host
2020-01-13 20:43:09 -07:00
dingusdev
5b8a787e9a
Simplified PRAM emulation
2020-01-13 19:48:29 -07:00
dingusdev
1cff216e82
Quick Cuda PRAM implementation
2020-01-12 20:31:10 -07:00
Maxim Poliakovski
0b0c00b653
Add aligned macros for reading ints from memory.
2020-01-13 03:05:50 +01:00
Maxim Poliakovski
add0d5877c
Add missing includes to fix GCC compilation.
2020-01-08 00:24:31 +01:00
Maxim Poliakovski
6dbd9f1c99
Remove superfluous asserts.
...
Operator new will throw std::bad_alloc
when running out of memory.
2020-01-07 12:46:32 +01:00
Maxim Poliakovski
c2bbdc4144
Finish NVRAM implementation.
2020-01-07 12:08:38 +01:00
dingusdev
f51e479e5c
Quick fix for NVRAM
2020-01-05 10:44:50 -07:00
dingusdev
b92fe60fad
Header updates + NVRAM Fix
2020-01-05 10:38:32 -07:00
dingusdev
b5074e4ce1
Started work on NVRAM
...
Tried to also fix some issued with MSVC
2020-01-05 09:52:46 -07:00
Maxim Poliakovski
241031dfe7
Move big-endian memory access to memreadwrite.h.
2020-01-03 16:08:00 +01:00
Maxim Poliakovski
14e203f528
Add missing includes.
2019-12-29 13:53:26 +01:00
Maxim Poliakovski
134eda8c12
Clean up some comments and messages.
2019-12-27 00:42:02 +01:00
dingusdev
0411a3a10f
Fixed address issues
2019-10-15 21:48:31 -07:00
dingusdev
97e87dea9e
Prevents the non-trivial array initialization error
...
A touch haphazard, but this allows most compilers to interpret this array.
2019-10-15 21:19:00 -07:00
Maxim Poliakovski
ddb303c5c0
Add Machine ID register for the Gossamer architecture.
2019-10-14 17:43:39 +02:00
Maxim Poliakovski
198b918a3c
MPC106: allocate RAM after software setup.
...
Software will setup MPC106 internal registers and
finally set MCCR1[MEMGO] flag. This is the right time
for initializing physical RAM.
2019-10-07 03:21:13 +02:00
Maxim Poliakovski
01c38b7348
VIA-CUDA: hackish support for SPD.
2019-10-07 03:18:37 +02:00
Maxim Poliakovski
cf3f8b6db1
VIA-CUDA: support for I2C related pseudo commands.
2019-09-21 14:57:44 +02:00
Maxim Poliakovski
12eada5bb1
Add VIA-CUDA description.
2019-08-28 02:43:33 +02:00
Maxim Poliakovski
5fc7ca761e
Initial implementation for VIA-CUDA device.
2019-08-27 16:20:06 +02:00
Maxim Poliakovski
3131325bff
Initial implementation for Heathrow/Mac-io.
2019-08-23 23:36:21 +02:00
Maxim Poliakovski
af5a096532
MPC106: add support for PCI devices.
2019-08-23 23:36:21 +02:00
Maxim Poliakovski
78e8b06cf1
Add interfaces for PCI host and PCI device.
2019-08-23 23:36:21 +02:00
Maxim Poliakovski
2f06623c62
Rewrite MPC106 emualation from scratch.
...
From now on, ppcmemory delegates physical address translation
to MPC106 on PowerMac Beige G3.
2019-08-21 23:55:21 +02:00
Maxim Poliakovski
ac1f770f92
Create base class for memory controller devices.
...
Create 'devices' directory for virtual device
sources and move MPC106 source to it.
2019-08-21 23:43:59 +02:00