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