Commit Graph

43 Commits

Author SHA1 Message Date
Maxim Poliakovski
29fa6e6174 Move mem_ctrl_instance to ppcexec. 2020-01-31 04:08:22 +01:00
Maxim Poliakovski
2953eaa538 Restructure main.cpp, remove obsolete code. 2020-01-28 02:20:43 +01:00
Maxim Poliakovski
117b3f1aa8 Move CPU initialization to ppcexec.cpp. 2020-01-28 01:24:12 +01:00
Maxim Poliakovski
7ae87e39c1 Refactor usage of the memory access functions.
Memory access function have better names now.
Global variable return_value has been removed.
lhbrx emulation has been fixed.
2020-01-27 01:36:52 +01:00
dingusdev
7c6d875ec8 Refactored floating point emulation
Refactored for better 64-bit value loading and storing. I also added missing opcodes.
2020-01-25 19:30:55 -07:00
Maxim Poliakovski
e1793b6305 Fix compilation warnings from previous commits. 2020-01-22 21:45:46 +01:00
dingusdev
6a083869e1 Started a massive FP fix-up 2020-01-21 19:25:50 -07:00
Maxim Poliakovski
0b0c00b653 Add aligned macros for reading ints from memory. 2020-01-13 03:05:50 +01:00
Maxim Poliakovski
720b35aa26 Move endian swapping code to endianswap.h.
Remove superfluous endian swapping wrappers.
2020-01-12 22:51:37 +01:00
Maxim Poliakovski
2d5e436ad4 Refactor PPC exception handling, part 1. 2020-01-12 02:35:54 +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
bd5ae4a45a More memreadwrite macros usage. 2020-01-06 03:46:23 +01: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
e76ef61f53 ppcexec: pagewise MMU translation for code. 2020-01-04 02:07:36 +01:00
Maxim Poliakovski
74882c8082 ppcemu: remove unused global variables. 2020-01-03 21:18:07 +01:00
Maxim Poliakovski
01dffb84f3 Move all PPC code execution to ppcexec.cpp. 2019-12-28 02:49:58 +01:00
Maxim Poliakovski
db89c23bf0 Move ppcemumain.h to /cpu/ppc/ppcemu.h. 2019-12-27 20:10:36 +01:00
Maxim Poliakovski
87ca977ae7 Rename ppcmemory to ppcmmu. 2019-12-27 20:00:53 +01:00
Maxim Poliakovski
134eda8c12 Clean up some comments and messages. 2019-12-27 00:42:02 +01:00
Maxim Poliakovski
684a8dee8e Move debugger sources into a dedicated subdirectory. 2019-12-14 13:48:54 +01:00
dingusdev
e7564ab0a5
Fixing compilation files and changed the authorship credits 2019-10-15 21:15:12 -07:00
Maxim Poliakovski
43b9f47e6a Remove unfinished OpenPIC stub. 2019-10-14 19:40:35 +02:00
Maxim Poliakovski
c5fa279ad4 Remove device stubs (davbus, serial, SWIM etc). 2019-10-14 19:38:08 +02: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
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
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
dingusdev
cee515d864
Revert "Machine-specific address maps and generic MMIO devices." 2019-08-07 18:33:00 -07:00
Maxim Poliakovski
1c360841f6 Define and connect basic PowerMac 6100 hardware. 2019-08-07 20:26:30 +02:00
Maxim Poliakovski
a3500983ea Correct misspelled function name. 2019-07-25 19:00:41 +02:00
Maxim Poliakovski
c89d3545cd Simplify initialization of ppc_cur_instruction. 2019-07-19 23:34:57 +02:00
Maxim Poliakovski
2417204b5f main: use correct variable for PC updates. 2019-07-19 23:34:57 +02:00
dingusdev
e091fedb38
Near-Midnight Update - July 18, 2019
- Added a check for NuBus Macs, providing a mirror to the ROM
- Very slightly optimized ROM accesses for instructions and reads
- Some slight OpenPIC fixes
- Removed unused variables and slightly improved code readability
- Changed readme + boot-up help to reflect on newly added debugger

More changes will be added soon.
2019-07-18 23:31:16 -07:00
Maxim Poliakovski
4ffaf2cef3 Add simple command-line debugger. 2019-07-17 17:56:08 +02:00
Maxim Poliakovski
051be54633 main: fix access to wrong/uninitialized variables. 2019-07-17 17:56:08 +02:00
dingusdev
87acd53c86
Update for July 11, 2019
- Fixed the floating point operations dispatch table and filled in a lot of missing gaps
- Started overhauling floating point emulation
- Minor fixes for Grackle reading and writing, mostly writing
- Handle integer division by zero cases
2019-07-11 22:27:14 -07:00
dingusdev
2bd717e293
Update for July 7, 2019
The following fixes and changes have been made

- Better Grackle emulation (though far from perfect)
- OpenPIC write/read fixes
- DAVBus Stubs
- Started splitting functionality from the main routine, to slowly make way for a GUI-based version
- Added a new until command argument
- Fixed an entry in the floating point instruction dispatch table
- CMakeLists.txt added
2019-07-06 23:10:32 -07:00
Maxim Poliakovski
9c0c1da53f Replace '&&' with '&' where bitwise AND is expected.
This fixes compilation warnings when using GCC/Clang.
Improve formatting along the way.
2019-07-02 14:18:51 +02:00
dingusdev
22c9ba9fda
Proper ROM String finding
Cleaned up string finding; Compiles now
2019-07-01 21:54:12 -07:00
dingusdev
eaa517b63b
Add files via upload
The first attempt at uploading new files.
2019-07-01 19:15:33 -07:00