joevt
55b79c1518
atirage: Use register bit field names.
2024-03-02 20:44:08 -07:00
joevt
c2ab86d4ba
atirage: Do something for hw cursor invert pixels.
...
Try a 50% alpha blend with black.
2024-03-02 20:43:54 -07:00
joevt
0e5fcde1e9
atirage: Add CUR_HORZ_VERT_OFF name.
2024-03-02 17:27:45 -07:00
joevt
002cce886c
atirage: Indent.
2024-03-02 17:15:39 -07:00
joevt
151ea2ece4
atimach64defs: Add register bit fields.
2024-03-02 17:15:25 -07:00
joevt
568882a2ea
atimach64defs: Sort addresses in descending order.
2024-03-02 17:14:59 -07:00
joevt
f38d6d73f4
atimach64defs: Add more device IDs.
2024-03-02 17:08:31 -07:00
joevt
569893861d
heathrow: Don't set lat_timer.
...
It will be set by firmware.
2024-03-02 16:42:49 -07:00
joevt
e81ac6f61e
Add PERCH slot.
...
So you can connect a USB controller or whatever to it.
2024-03-02 16:02:19 -07:00
joevt
177098c957
debugger: Fix interrupt signal.
...
Typing Control-C in Terminal app causes an interrupt signal that should enter the DPPC debugger but this only worked once since the signal handler never returned. Even if the signal handler reenabled the signal somehow, it calls enter_debugger recursively which is strange since the earlier calls to enter_debugger would never return.
Now the signal handler just sets a flag (power_on) which can be used to exit any loop (emulator loops, stepping loops, disassembly loops, dumping loops).
Main always calls enter_debugger now which calls the ppc_exec loop. The power_on flag will exit the ppc_exec loop to return to the debugger. Recursion of enter_debugger is eliminated except for calls to loguru's ABORT_F.
An enum power_off_reason is used to indicate why the power_on flag is set to false and to determine what happens next.
2024-03-02 12:57:02 -07:00
joevt
1e78512c95
Rename Curio and Mesh.
2024-03-02 11:12:45 -07:00
joevt
1b147151f0
videoctrl: Rename get_palette_color.
...
So it matches set_palette_color.
2024-03-02 08:59:02 -07:00
joevt
ad8a26616f
scsidevice: Add LUN field.
...
This may make it possible for multiple LUNs to be added to the same target ID.
For now just use LUN #0 .
2024-03-02 08:52:09 -07:00
joevt
8f28823217
scsi: Initialize cur_phase.
2024-03-02 08:51:45 -07:00
joevt
b509df78df
Don't allow vert_blank to be 0.
2024-03-02 08:37:44 -07:00
joevt
5876cc7e17
bandit: Fix indent.
2024-03-02 08:09:42 -07:00
joevt
de73a36399
ppcmmu: Move defines to the top.
2024-03-02 07:58:25 -07:00
dingusdev
c9aed600b6
More opcode clean-up
2024-03-02 07:57:15 -07:00
joevt
318e035344
ppcmmu: Shorten tlb_flush_entries.
2024-03-02 07:56:26 -07:00
joevt
cd097232cb
ppcmmu: Shorten tlb_flush_entry.
...
Don't need a weird short loop.
2024-03-02 07:56:17 -07:00
joevt
b7b783b6be
ppcmmu: Shorten ppc_mmu_init.
...
Also, initialize all the fields.
2024-03-02 07:50:02 -07:00
joevt
968f503d80
debugger: Improve my_sprintf for short strings.
...
Don't need to repeat snprintf with memory allocation if the string is short.
2024-03-02 07:24:17 -07:00
joevt
7fc92e236b
Fix extract_bits and insert_bits.
...
(1 << len) is actually 1 when len is (sizeof(T)*8) so we need to special case that. len is usually constant so the compare won't be compiled.
2024-03-02 06:54:58 -07:00
joevt
3062a29b78
Add clear_bit and set_bit.
2024-03-02 06:54:45 -07:00
joevt
3bea3ec3d8
ppcmmu: Fix compiler warnings.
2024-03-01 20:12:42 -07:00
joevt
0f66d454c1
ppcmmu: Cleanup the cleanup.
2024-03-01 20:05:10 -07:00
joevt
6738d7472e
ppcmmu: Add a function to get phys address.
...
Since the function is for the debugger during stepping or disassembly, don't do extra logging.
2024-03-01 19:48:52 -07:00
joevt
500f38a496
ppcmmu: Add phys address to mmu_translate_imem.
...
For debugging.
2024-03-01 19:45:09 -07:00
joevt
3a5a70b56d
ppcmmu: Allow convert virtual to physical address.
...
The TLBEntries allow converting virtual guest address to virtual host address but there's no easy way to get a guest physical address for debugging purposes.
Add a phys_tag field to fix that.
2024-03-01 19:42:25 -07:00
joevt
15e132c824
cmake: Add header files in CMakeLists.txt.
...
So they will appear in Xcode project.
mkdir -p dingusppc/build-xcode
cd dingusppc/build-xcode
cmake -G Xcode ..
xcodebuild -configuration Release
2024-03-01 19:41:43 -07:00
dingusdev
2b3cf58b8a
Continued clean-up
2024-03-01 19:40:46 -07:00
joevt
2998796c2c
pci: Fix log message for PCI rom exceptions.
...
It should log device name, not just "PCIDevice".
2024-03-01 08:02:01 -07:00
joevt
3978d0754d
CD-ROM: Add max blocks check.
...
The code does not support more than 2^32 - 2 blocks because of this expression: static_cast<uint32_t>(this->size_blocks + 1)
2024-03-01 08:01:31 -07:00
joevt
655b9a17e1
psx: Set name of Psx memory controller.
...
For the logs.
2024-03-01 07:59:33 -07:00
joevt
84a694d4c2
nvram: Output nvram file name in error message.
...
So that you don't see identical messages "Could not restore NVRAM content from the given file."
Instead, one will mention nvram.bin and the other will mention pram.bin.
2024-03-01 07:59:19 -07:00
dingusdev
ebac8b92ba
Clean-up for loading instructions
...
Expanding the scope of the clean-up from lscbx to other loading/storing instructions.
2024-03-01 07:57:46 -07:00
joevt
6a4326af39
poweropcodes: lscbx cleanup.
2024-03-01 07:46:04 -07:00
joevt
6a51e8a1c9
debugger: regs command needs to reset setfill.
...
So printenv will fill with spaces after regs.
2024-03-01 07:28:58 -07:00
joevt
006a90f681
debugger: Some commands should not repeat.
...
Entering a blank command causes the last command to repeat. This doesn't make sense for the following commands:
help, quit, regs, context, printenv, setenv, nvedit, amicint, viaint.
2024-03-01 07:26:34 -07:00
joevt
17983e7fad
debugger: Fix setenv command to allow spaces.
...
To allow setting boot-command to "0 bootr -v debug=0x144" for example.
2024-03-01 07:13:41 -07:00
joevt
a15b1805fb
debugger: Fix handling of empty commands.
...
An empty command should not be reported as an unknown command.
An empty command should not repeat an unknown command.
2024-03-01 07:08:12 -07:00
joevt
11e0bd79b0
debugger: Work around Xcode Terminal.app issue.
...
If debugging with Xcode using Terminal.app for the console, Terminal.app may send empty lines to the dingusppc debugger while resizing the Terminal.app window and it will do this forever.
As a workaround, use std::cin.clear() to clear the input buffer before getline and loop until the terminal window size is not changing or the input line is not empty.
2024-03-01 06:56:20 -07:00
Mihai Parparita
bfbf4cb453
Add a basic mouse grab mode
...
Take 2 of 587eb48f61
. We now implement
this at the SDL level, which works cross-platform and allows us to
ensure that the guest never gets the Control-G event.
2024-02-29 22:58:50 -08:00
dingusdev
229509a067
Add help for mregs
2024-02-29 21:48:04 -07:00
joevt
ff5c43e6cb
debugger: Add mregs command.
...
To dump more registers.
2024-02-29 21:46:44 -07:00
joevt
7cd3aae753
debugger: Fix repeated until.
...
The loop needs to be do while instead of while do.
2024-02-29 18:57:11 -07:00
joevt
fe05b1de12
Fix compiler warnings.
...
Xcode build has compiler warnings involving loss of precision. Remove them by adding type casts. Check results in some cases for overflow.
2024-02-29 18:49:14 -07:00
joevt
1903c8b557
debugger: Fix reg_op for floating point registers.
2024-02-29 18:48:59 -07:00
joevt
456a96042f
debugger: Shorten try catch in reg_op.
...
Because SPGR0 matches SPR but stoul causes an exception.
2024-02-29 07:55:09 -07:00
joevt
888df0ac53
debugger: Add more register names for reg_op.
...
So the debugger can output their values.
2024-02-29 07:46:16 -07:00