Commit Graph

215 Commits

Author SHA1 Message Date
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