Commit Graph

1262 Commits

Author SHA1 Message Date
Maxim Poliakovski
d413e4a278 control: incorporate recent HW knowledge. 2024-01-19 09:48:54 +01:00
joevt
5c460c9f3b videoctrl: Add VBL callback.
Allows overriding the method used to post interrupts.
2024-01-13 00:41:08 +01:00
joevt
cf9237f7d6 control: Fixes.
- Fix video vram endianness. It should behave like RAM.
- Add read for registers ENABLE, INT_STATUS, INT_ENABLE.
- Add write for registers CNTTST, INT_ENABLE.
- Add support for 16bpp and 32bpp.
- Add vbl interrupt.
2024-01-13 00:41:08 +01:00
dingusdev
a0b1d6394a Another revert
This affects Virtus VR - With the lmw checks, the opening sign doesn't display and the intro crashes sooner
2024-01-07 17:45:05 -07:00
dingusdev
c6af1e31fe Partial revert of previous commit 2024-01-07 17:21:11 -07:00
dingusdev
a5ce6a806f CPU clean-up 2024-01-07 17:04:51 -07:00
dingusdev
a59475af1c Further lha(*) fixes 2024-01-05 19:10:05 -07:00
dingusdev
1cc1ac2e68 Fixing lha(*) opcodes 2024-01-05 17:19:03 -07:00
dingusdev
924b80574a Further fix from last commit 2024-01-05 15:53:56 -07:00
dingusdev
f3a759c80d CPU code clean-up 2024-01-05 15:11:37 -07:00
dingusdev
79ee8543f5
Merge pull request #77 from mihaip/upstream-machineid
machinepdm: fix machine ID
2024-01-03 07:44:38 -07:00
Maxim Poliakovski
9b30dfb474 ppcfpopcodes: refactor fctiw/fctiwz emulation. 2024-01-03 01:27:21 +01:00
joevt
0100e67ebf ppcfpopcodes: Fix fctiw/fctiwz. 2024-01-03 01:07:53 +01:00
joevt
bd419912b5 ppcfpopcodes: Fix stfs*.
It should try to convert its operand to a single precision
floating point number at least.
2024-01-02 21:53:03 +01:00
Maxim Poliakovski
cb85d358d1 Remove unused globals. 2024-01-02 17:51:12 +01:00
Maxim Poliakovski
5b114c2412 ppcopcodes: refactor mtcrf emulation. 2024-01-02 17:44:35 +01:00
Maxim Poliakovski
c25b027de4 ppcfpopcodes: fix mtfsf emulation. 2024-01-02 17:21:08 +01:00
Maxim Poliakovski
8595dd7d99 ppcfpopcodes: fix mtfsfi emulation. 2024-01-02 17:21:08 +01:00
joevt
61a90e2cfb ppcfpopcodes: Fix mcrfs. 2024-01-02 15:52:30 +01:00
Maxim Poliakovski
593508df22 Refactor subfze. 2024-01-02 13:44:56 +01:00
joevt
1f3505f371 ppcopcodes: Fix subfze. 2024-01-02 13:44:13 +01:00
Maxim Poliakovski
679e80a7c3 atahd: basic commands for disk I/O. 2023-12-30 16:23:00 +01:00
Maxim Poliakovski
ebdefb5acd atabasedevice: transfer data in chunks. 2023-12-30 16:23:00 +01:00
Mihai Parparita
e36e1cf282 machinepdm: fix machine ID
Handle 4 byte reads from the machine ID MMIO region. Also change the 6100
machine ID to match the one used by MAME.
2023-12-29 23:31:16 +00:00
Maxim Poliakovski
fef5bde0c7 Refactor recent subfme fix. 2023-12-24 02:56:47 +01:00
joevt
dc00879419 ppcopcodes: Fix subfme. 2023-12-24 02:36:34 +01:00
joevt
bae488fd97 ppcfpopcodes: Fix lfs* opcodes. 2023-12-22 13:11:13 +01:00
joevt
0a8c1df968 ppcopcodes: Fix sraw. 2023-12-19 16:30:02 +01:00
joevt
4c49558120 ppcopcodes: Fix subfe. 2023-12-19 14:57:41 +01:00
Maxim Poliakovski
750f91e339 ppcemu.h: add enum for XER bits. 2023-12-19 14:57:41 +01:00
Maxim Poliakovski
d24b5d21b8 CRx_bit enum stores masks for now. 2023-12-19 14:27:57 +01:00
Maxim Poliakovski
9dbfde1a4c Cleanup previous commit. 2023-12-19 13:15:10 +01:00
joevt
7f229b0fe8 ppcfpopcodes: Fix fcmpo/fcmpu.
It was always changing CR1 (starting at CR bit 4) instead of the CR selected by crfD.
Also, it was clearing all but the FL,FG,FE,FU bits of FPRF of FPSCR.
2023-12-19 13:15:10 +01:00
Maxim Poliakovski
920c2024be Revert "Add a basic mouse grab mode when running on macOS"
This reverts commit 587eb48f61.
2023-12-19 13:15:10 +01:00
dingusdev
2a0f391113 Compilation fix for machineproperties.cpp 2023-12-17 20:04:10 -07:00
dingusdev
c3b770ef17
Merge pull request #74 from mihaip/upstream-mouse-grab
Add a basic mouse grab mode when running on macOS
2023-12-15 18:03:45 -07:00
dingusdev
a14fbe865f
Merge pull request #75 from mihaip/upstream-extended-adb
Add basic support for the extended ADB mouse protocol.
2023-12-15 18:02:56 -07:00
Mihai Parparita
ae0bb838bf Add basic support for the extended ADB mouse protocol.
We now respond to the switch to device handler ID 4 and the register 1
read (as described by https://developer.apple.com/library/archive/technotes/hw/hw_01.html#Extended).

We don't yet use the extra precision bits in the register 0.
2023-12-15 16:04:27 -08:00
Mihai Parparita
587eb48f61 Add a basic mouse grab mode when running on macOS
Adds a "Grab Mouse" command to the "Window" menu which toggles
SDL_SetRelativeMouseMode. That "traps" the mouse to the current window
(and hides it) which makes it less annoying to deal with the separate
acceleration curves of the host and guest OS.

This needs to be done via AppKit code since SDL does not have a
cross-platform way to add menu commands.

I also looked into the extended ADB mouse protocol but it does not
appear to do that we want. If we use it to report a device class of
classAbsolute (0) the acceleration curve changes to a flat response
(we end up using 'accl' 0 from 9dd3c4bef8/base/SuperMarioProj.1994-02-09/Resources/MiscROMRsrcs.r (L64-L76))
but the coordinates are still interpreted as being deltas. If I use a
device type 4 (Absolute pointing devices) then the mouse position is
never queried. Per https://68kmla.org/bb/index.php?threads/anyone-have-an-adb-graphics-tablet-or-joystick.39128/
all tablet devices end up using custom drivers.
2023-12-15 15:38:32 -08:00
dingusdev
0e0de638d4 Update loguru from the master branch 2023-12-11 07:45:51 -07:00
Maxim Poliakovski
fd92d86954 mesh: add MESH TNT variant. 2023-12-11 08:05:39 +01:00
dingusdev
c41f5355fd
Merge pull request #73 from mihaip/upstream-scsi-name
Fix uninitialized value read in the ScsiHardDisk constructor
2023-12-10 10:58:25 -07:00
Mihai Parparita
ea9de4feaf Fix uninitialized value read in the ScsiHardDisk constructor
The call to the ScsiDevice superclass was using the name field (which
was not initialized yet) instead of the name constructor argument
2023-12-10 08:58:12 -08:00
Maxim Poliakovski
114737db41 scsicdrom: use CdromDrive as base class. 2023-12-10 00:19:44 +01:00
Maxim Poliakovski
bf278af950 scsidevice: add get_more_data() method.
It is required for supporting large data transfers split
into multiple chunks.
2023-12-10 00:19:44 +01:00
Maxim Poliakovski
e1b231882e cdromdrive: declare some methods virtual. 2023-12-10 00:19:44 +01:00
Maxim Poliakovski
fa04cde25d machinetnt: more control of machine configuration. 2023-12-10 00:19:44 +01:00
Maxim Poliakovski
705dd390e9 grandcentral: respect size when reading from IOBus devices. 2023-12-10 00:19:44 +01:00
Maxim Poliakovski
078aa79270 grandcentral: remove board register 1 stub. 2023-12-10 00:19:44 +01:00
Maxim Poliakovski
a1ad0a3e07 machineid: implement BoardRegister class. 2023-12-10 00:19:44 +01:00