Commit Graph
39 Commits
Author SHA1 Message Date
dingusdev c281b27220 Attempted templating for interpreter 2024-03-24 12:21:19 -07:00
dingusdev 4ef3c792de Refactoring interpreter, pt. 1
Reduce the number of global variables used by interpreter
2024-03-22 08:01:29 -07:00
joevt 6a4326af39 poweropcodes: lscbx cleanup. 2024-03-01 07:46:04 -07:00
Maxim Poliakovski 0c3f399de3 poweropcodes: fix compiler warning. 2024-02-24 22:51:05 +01:00
Maxim Poliakovski 45ccabb11d poweropcodes: improve lscbx emulation. 2024-02-24 22:46:54 +01:00
dingusdev d71a213c4b Continued clean-up, part 3 2024-02-22 19:46:34 -07:00
dingusdev 1d938c93b6 Mask fixes for sr(*) 2024-02-20 18:15:08 -07:00
joevt 35bc1bcb44 poweropcodes: Fix sriq. 2024-02-20 18:07:38 -07:00
joevt 1438ebc12a poweropcodes: Fix compiler warnings. 2024-02-20 18:07:26 -07:00
dingusdev b160e38f8f Continued code clean-up 2024-02-16 06:55:13 -07:00
Maxim Poliakovski 819d475181 poweropcodes: fix div emulation.
Clean up power_doz and power_maskir as well.
2023-12-01 20:41:22 +01:00
Mihai Parparita 1b4de3b64e Fix emulation of doz, dozi, and nabs POWER instructions
doz and dozi were storing the result into the wrong register.

nabs was not taking into account two's complement storage of numbers
and was just setting the signed bit.

These two instructions are used in the implementation of text
measurement in native QuickDraw on 7.1.2/the PDM ROM, and the incorrect
values were resulting in nothing being rendered. With the fix text
appears when booting from the 7.1.2 CD.
2023-12-01 01:34:12 -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
Maxim Poliakovski cf0d361918 Merge 'hard-disks' branch. 2023-04-17 01:20:38 +02:00
joevt 64fec88436 Fix compiler warnings: cast loses precision.
Use explicit cast when converting large integer types to smaller integer types when it is known that the most significant bytes are not required.
For pcidevice, check the ROM file size before casting to int. We'll allow expansion ROM sizes up to 4MB but usually they are 64K, sometimes 128K, rarely 256K.
for machinefactory, change the type to size_t so that it can correctly get the size of files that are larger than 4GB; it already checks the file size is 4MB before we need to cast to uint32_t.
For floppyimg, check the image size before casting to int. For raw images, only allow files up to 2MB. For DiskCopy42 images, it already checks the file size, so do the cast after that.
2023-01-11 01:17:12 -08:00
dingusdev a58ce8aeb3 Slight tweak to lscbx 2022-11-15 08:01:57 -07:00
dingusdev 8f99510af0 Fixed lscbx 2022-11-15 07:40:37 -07:00
dingusdev 647ae456e5 Slight typo squash for lscbx 2022-11-12 20:18:33 -07:00
dingusdev 1b7ff084ab Cleaned lscbx 2022-11-12 20:17:04 -07:00
Maxim Poliakovski c0cd6eb38f Add missing licence headers, update license date. 2021-10-23 21:00:31 +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 84e111290f Fix includes for loguru and SDL. 2021-09-16 00:46:38 +02:00
Maxim Poliakovski 089645e830 Implement SoftTLB for writes. 2021-08-22 17:34:23 +02:00
dingusdev 1fe9ffe3e5 Further refactoring to clean up the interpreter 2020-10-17 21:46:38 -07:00
dingusdev dc58386237 Started re-refactoring opcode retrieval 2020-10-17 14:30:37 -07:00
dingusdev 14ef7564cd CLI fixes - RAM and GFXMEM work better 2020-08-25 20:07:02 -07:00
Waqar Ahmed 0ab9380be3 clang-format everything 2020-05-12 23:55:45 +05:00
dingusdev 60ffa5bfac Initial attempt at fixing SDL2 building for Windows 2020-03-22 20:15:12 -07:00
dingusdev e31f7873f5 Fixed redunant variable names for PPC emulation. 2020-03-04 21:29:04 -07:00
dingusdev 354409812e Updating files with proper licensing header 2020-02-28 09:04:28 -07:00
dingusdev 6c1dc8aaf0 Further logging work 2020-02-24 19:50:52 -07:00
Maxim Poliakovski fe57beb983 Revert "Disassembler added"
This reverts commit 37078ddfe1.
2020-02-04 14:20:10 +01:00
dingusdev 37078ddfe1 Disassembler added
Created by maximumspatium, with some additions by me.
2020-02-03 08:03:24 -07:00
dingusdev aa20d64b48 SPRs now use symbolic names 2020-01-27 20:39:23 -07: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 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 ad5f3a9435 Move PPC emulation code into /cpu/ppc subdirectory. 2019-12-23 10:38:16 +01:00