dingusdev
7919cd0590
Merge pull request #21 from dingusdev/floating-point
...
Floating point fixes. Rehauled floating-point emulation code. Fixed a test suite for floating points.
2021-10-19 07:18:21 -07:00
dingusdev
fb277945c2
Floating point test fixes
2021-10-19 07:16:15 -07: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
331b93d4d6
Fix compilation with Clang 11.
2021-10-17 23:41:53 +02:00
dingusdev
3c7fc58ac0
Small test case fixes for floating points
2021-10-16 22:33:56 -07:00
Maxim Poliakovski
c7544d9c2f
amic: reorganize registers in blocks.
2021-10-16 15:07:53 +02:00
dingusdev
00dd99d851
Temporarily removing comparisons
...
These seem to cause the test program to crash. Will reinstate once the cause of the crash is resolved.
2021-10-15 20:02:00 -07:00
dingusdev
7d7a4b453f
Partial test file reading fix
2021-10-15 06:28:11 -07:00
dingusdev
7ce94a6ab5
Further fixing the test code
2021-10-14 21:05:58 -07:00
dingusdev
061b061813
Floating point overhaul, part 4
...
Reworked the INF/NAN checks again - This time, only checking them when the result is calculated
2021-10-14 20:31:10 -07:00
dingusdev
9251745d6f
Fixed floating-point test generation
2021-10-14 07:19:04 -07:00
Maxim Poliakovski
2f725fe3e4
viacuda: fix PRAM reading and writing.
2021-10-14 00:01:30 +02:00
Maxim Poliakovski
e53296f7a9
Implement all required context-synchronizing events.
2021-10-13 20:58:09 +02:00
Maxim Poliakovski
7c47b9c1e7
amic: implement AMIC2 identification.
2021-10-13 09:06:16 +02:00
Maxim Poliakovski
e66979d30f
debugger: improve disassembling of 68k F-Traps.
2021-10-13 09:04:52 +02:00
Maxim Poliakovski
9caef55c19
amic: implement diagnostics register.
2021-10-10 22:01:02 +02:00
Maxim Poliakovski
2a9d364b1b
ppcmmu: implement separate TLB pointers for read/write.
2021-10-10 22:01:02 +02:00
Maxim Poliakovski
3eb2d3cba7
ppcmmu: verbose MMU state with mmu_print_regs().
2021-10-10 22:01:02 +02:00
Maxim Poliakovski
bde5b71167
ppcmmu: re-arrange code to avoid formward declarations.
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
bb0ca2ac40
ppcmmu: fix TLB flushing.
2021-10-10 22:01:02 +02:00
dingusdev
5672a154cb
Floating-point refactor, part 3
...
Condensed code to shorten enum names and remove casting.
Condensed mffs and partially fixed NAN checks for FADD(S).
2021-10-10 07:48:49 -07:00
dingusdev
2d65ed47fc
Floating point overhaul, part 2
...
Further formatting fixes. Removed obsoleted separation definitions. Fixed rounding to nearest.
2021-10-09 19:42:25 -07:00
dingusdev
e344b089b3
Floating point overhaul, part 1
...
Cleaned up formatting and reworked the INF/NAN checks
2021-10-09 15:08:53 -07:00
dingusdev
d5960ca70b
Fixed warnings for frsqrte and fsqrts
2021-10-06 18:59:31 -07:00
dingusdev
2106c4ca47
Fixed floating-point opcode table issues
...
fmuls, fmsubs, fmadds, fnmsubs, and fnmadds are all properly mapped now.
2021-10-06 18:36:23 -07:00
dingusdev
ad6a2a9f17
Merge pull request #20 from dingusdev/floating-point
...
Merging floating point branch
2021-10-06 18:32:23 -07:00
dingusdev
1922a20cdd
Partial revert for exception handling
...
This will be for a future update regarding 601 instructions
2021-10-05 17:42:55 -07:00
dingusdev
f605c484dd
ecowx and eciwx added
2021-10-05 17:40:09 -07:00
Maxim Poliakovski
69c357b70f
ppcopcodes: fix compilation error with Clang 11.
2021-10-05 00:40:12 +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
dingusdev
983e278498
Refactoring 601 opcode emulation - part 1
...
All opcodes should be emulated now. There was also a significant amount of clean-up, particularly with lscbx and the bit rotation/shifting instructions.
2021-10-01 22:37:28 -07: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
22827642e4
ppcmmu: implement 601-style BAT.
2021-09-27 12:37:35 +02:00
Maxim Poliakovski
e9fcc51b93
Debugger fixes for PDM.
2021-09-26 14:21:31 +02:00
Maxim Poliakovski
f104a634ea
ppcmmu: some more cleanup.
2021-09-26 14:20:46 +02:00
Maxim Poliakovski
81ea96a058
ppcmmu.cpp: fix includes.
2021-09-25 23:38:27 +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
4b16cb826e
Merge branch 'soft-tlb'.
2021-09-25 19:58:09 +02:00
Maxim Poliakovski
40d0aa70da
zdocs: improve MMU emulation documentation.
2021-09-25 19:13:50 +02:00
Maxim Poliakovski
212cd58f40
ppcmmu: refactor and clean up.
2021-09-25 19:13:40 +02:00
Maxim Poliakovski
5b54cd69ef
ppcmmu: better fatal error handling with ABORT_F.
2021-09-25 19:13:40 +02:00
Maxim Poliakovski
501f24f0d3
ppcmmu: implement SoftTLB for instructions.
2021-09-25 19:13:40 +02:00