Commit Graph

2059 Commits

Author SHA1 Message Date
joevt
1bf4073fa7 macio: Range check scc compatible register index.
Also, non-compatible registers don't begin until 0x60 for SCC compatible addressing.
2024-12-04 21:03:09 -07:00
joevt
ab59a34604 bandit: Modify address ranges.
- Increase I/O space from 22 bits (4 MB) to 23 bits (8 MB).
- Add Special Cycles and Interrupt Acknowledge Cycles at 14 MB offset.
- Pass Through range at 16 MB offset is 16 MB size. VGA and 24 bit physical addresses can go here.
- Bandit is 32 MB except for pci1 which has GrandCentral at Bandit's 16 MB offset.
2024-12-04 20:47:22 -07:00
dingusdev
31323e7bf1 Fix compiling errors for MON_ID_SENSE (platinum) 2024-12-04 07:48:38 -07:00
joevt
05658ad5c5 platinum: Fix MON_ID_SENSE read/write. 2024-12-04 07:38:53 -07:00
joevt
a593a4a73e platinum: Implement VRAM_REFRESH read. 2024-12-04 07:36:59 -07:00
joevt
99972307dc platinum: Implement FB_TEST read/write. 2024-12-04 07:36:48 -07:00
joevt
d7fb49166f platinum: Add comments and enums for registers. 2024-12-04 07:16:47 -07:00
joevt
0bca7bc743 platinum: Make some FB_CONFIG_1 bits read only. 2024-12-04 07:16:45 -07:00
dingusdev
10a3fa5984 Tweak logging for main branch 2024-12-04 07:11:43 -07:00
joevt
d98929f24c platinum: Registers affect display immediately. 2024-12-04 07:11:07 -07:00
joevt
2ab6a94795 Ignore zero sized DIMM. 2024-12-04 07:10:40 -07:00
joevt
818f982c75 swim3: Create separate reset method.
And set defaults for some class fields.
2024-12-03 18:20:13 -07:00
joevt
e72b571069 swim3: Add enums and use them. 2024-12-03 18:19:23 -07:00
dingusdev
2a92ce78f5 Removed unneeded test code
Was trying to see what was causing Mac OS X's menu bar to sag 96 pixels
2024-12-03 07:46:13 -07:00
joevt
b512702fbb ppcopcodes: Fix indent in ppc_mtsr. 2024-12-03 06:52:20 -07:00
joevt
47fca9f4ff ppcexec: Fix absolute address comment. 2024-12-03 06:52:09 -07:00
joevt
ee8c912397 poweropcodes: Fix clcs for MPC601.
These output values will pass the current set of risu tests which tests all 32 input values multiple times.
2024-12-03 06:51:56 -07:00
joevt
3fd422008e ppcfpopcodes: Use enums instead of literals. 2024-12-03 06:51:15 -07:00
joevt
bce4c98475 ppcfpopcodes: Fix fdiv for MPC601. 2024-12-03 06:50:57 -07:00
joevt
b45b0a8df4 ppcopcodes: Fix divw for MPC601. 2024-12-03 06:50:17 -07:00
joevt
b8af8d387c ppcopcodes: Fix divu for MPC601. 2024-12-03 06:50:08 -07:00
joevt
84075c5988 ppcopcodes: Fix lswx for MPC601. 2024-12-03 06:49:53 -07:00
dingusdev
35919802f3 Tweak fsel
Inspired by a similar fix toxieainc committed for Supermodel
2024-12-03 06:49:08 -07:00
Maxim Poliakovski
6b3a399015
Merge pull request #129 from mihaip/upstream-sdl-revert
Revert unintentional change to imgfile_sdl.cpp
2024-12-03 13:59:26 +01:00
joevt
80b763ecc3 ppcexec: Fix OP59d.
Some of these accept a 4th register "C" so they exist in the opcode table 32 times.
Some of these don't accept a 4th register "C" so they exist in the opcode table once.
2024-12-03 12:12:56 +01:00
Maxim Poliakovski
85d5b10f61 sc53c94: switch to the new DMA API. 2024-12-03 11:37:18 +01:00
Maxim Poliakovski
5057792d4d dbdma: implement xfer_to_device method. 2024-12-03 11:37:18 +01:00
Mihai Parparita
a1d945a61f Revert unintentional change to imgfile_sdl.cpp
Did not mean to include this in #127
2024-12-02 22:50:03 -08:00
dingusdev
46425faaa9
Merge pull request #128 from mihaip/upstream-using-namespace
Remove `using namespace std` from remaining header files
2024-12-01 07:01:05 -07:00
Mihai Parparita
4479387580 Remove using namespace std from remaining header files
It's somewhat of an anti-pattern, and can lead to conflicts with
other symbols (e.g. the Windows build failure in https://github.com/dingusdev/dingusppc/actions/runs/11762906342/job/32766290288,
I removed `using namespace std` from timermanager.h to fix that one).
2024-11-30 20:01:09 -08:00
dingusdev
f355fb0dfe
Merge pull request #127 from mihaip/upstream-opcode-dispatcher
ppc: Use a unified opcode lookup table
2024-11-30 12:51:08 -07:00
Mihai Parparita
b759f25d87 ppc: Use a unified opcode lookup table
Instead of a primary opcode lookup table with 64 entries and a few
smaller tables with 4-2048 entries, use a single 64 * 2048 (128K)
entry table to dispatch opcodes.

Helps with performance, since we avoid the function call overhead for
some frequently-used instructions (e.g. branch, integer, floating point).
Saves ~2 seconds from the time to Welcome to Macintosh (same measurement
methodology as #125)

Secondarily also makes opcode registration/decoding a bit more uniform,
and scannable, since it's now all in initialize_ppc_opcode_table.
2024-11-30 20:37:26 +01:00
Maxim Poliakovski
f1e56cd353 Make the debugger a global object. 2024-11-30 12:12:32 +01:00
Maxim Poliakovski
04899d6528 dbdma: prevent STOP from updating xferStatus. 2024-11-30 12:12:32 +01:00
Maxim Poliakovski
bd7c424989 dmacore: add xfer_to method. 2024-11-30 11:55:16 +01:00
Maxim Poliakovski
aa17bf06de ppcmmu: implement mem_write_dbg method. 2024-11-30 11:55:16 +01:00
Maxim Poliakovski
6d2872a07f superdrive: add missing break. 2024-11-30 11:55:16 +01:00
Maxim Poliakovski
c12561074c
Merge pull request #126 from mihaip/upstream-named-constant
debugger: Use a named constant when we don't have a current instruction
2024-11-29 18:47:25 +01:00
Mihai Parparita
bf92b04d6c debugger: Use a named constant when we don't have a current instruction 2024-11-29 18:33:22 +01:00
Maxim Poliakovski
7e93d2d169 scsihd: add missing phase switch to write(). 2024-11-29 17:47:29 +01:00
Rairii
2bb35dc613 pcihost: Add machine check exception.
A machine check exception happens when attempting to read from an unmapped I/O address.
2024-11-29 07:41:57 -07:00
dingusdev
26aa452c57 Fix benchmark compiling, again 2024-11-29 07:41:45 -07:00
joevt
7a55a81186 pcihost: Fix pci_unregister_device.
Remove the device from the hosts dev_map.
Remove the device from the Machine object.
2024-11-29 07:31:23 -07:00
joevt
c9359592d7 pcihost: Modify name of attached PCI devices.
In case multiple PCI devices of the same type are added, make sure each has a different name for logging.
2024-11-29 07:31:16 -07:00
dingusdev
bf55aa50ce
Merge pull request #125 from mihaip/upstream-curr-instruction
ppc: Remove ppc_cur_instruction global variable
2024-11-28 15:59:32 -07:00
Mihai Parparita
564c43c907 Remove ppc_cur_instruction global variable
Replace it wth an explicit opcode parameter that is passed around. That
is both slightly easier to reason about (to trace where it comes from)
and slightly faster, since it can be read from a register.

On my machine takes booting to "Welcome to Macintosh" being output in
a verbose boot of Mac OS X 10.2.8 from 31.8s to 30.6s (average of 5
runs, measured using deterministic mode and looking at when execution
reaches PC 0x90004a88).
2024-11-28 23:41:38 +01:00
Mihai Parparita
31bc6f79e5 Fix instructions for building with tests 2024-11-28 23:25:57 +01:00
Mihai Parparita
e4c84c5f80 Reduce frequency of deterministic mode instruction logging
Do as the comment says and log every (logical) second only.
2024-11-28 22:12:43 +01:00
Mihai Parparita
2d90aff408 ppc: Remove unncesessary function declarations
ppc_opcode16 and other functions are only needed in the implementation in
ppcexec.cpp, they don't need to be in the header.

fp_return_double and fp_return_uint64 have no uses (as of 2141a72b87)
can can thus be removed altogether.

Similarly ppc_fpu_off has no uses (as of bb3f4e596e)
and can be removed.
2024-11-28 22:12:16 +01:00
joevt
820da037da ppcmacros: Add missing space. 2024-11-28 07:25:23 -07:00