Player
Player copied to clipboard
Patch compatibility: Power Mode 2003
This PR adds compatibility for the PowerMode 2003 patch. Other than the missing support for AAC audio files & the mapping of mouse buttons, this patch implementation should be feature-complete. (and less buggy than the original patch)
Depends on PR #3378 because I didn't want to create a new file for this implementation alone.
I did some research on this obscure patch & documented my findings in more detail on Makerpendium: https://www.makerpendium.de/index.php?title=PowerMode_2003
There's an article on Hellsoft about this patch, that also includes a small sample project: https://www.hellsoft.net/H5/reportajes/95-reportajes-especiales/150-power-mode-2003
Implemented features
- Control Register 0
- [x] Opening Load Menu by setting V01:CR0 to 255
- [x] Exiting the game by setting V01:CR0 to 254
- [x] Retrieving value of V01:CR0 to check if Savefiles exist (Result = 1)
- Mouse Cursor Support
- [x] Writing current cursor X/Y to V02:MCOORDX & V03:MCOORDY whenever a value is written to V03:MCOORDY
- Full Keyboard Support using VirtualKey-IDs
- [x] Mode 0 will check entire Keyboard for presses and store pressed key with lowest priority to V04:KEY
- [x] Mode 1 to 255 will check a single Keycode and store its ID to V04:KEY (Otherwise 0)
- Floating point operations using V05:FVALUE1 / V06:FVALUE2 / V07:FCODE
- [x] Mode 1: Calculation of sin / cos
- [x] Mode 2: Calculation of tan
- [x] Mode 3: Calculation of sqrt, with natural & fractional parts of result stored separately
- [x] Mode 4: Calculation of flaot division, with natural & fractional parts of result stored separately
- "Special Mode" (Custom picture rotations)
- [x] Overriding the default rotation effect & rotating Pic-IDs 1-50 by a user-defined amount (Start of variable range stored in V08:SPECIAL - Block of 50 variables containing set rotation degrees from 0 - 256)
- Other / Behavior changes when patch is applied:
- [x] Detection of patch by checking existence of file warp.dll
- [x] Skipping the title screen by automatically setting "new-game" = 1
- [ ] ~Support for AAC files~ (Not implemented - should be part of another PR)
- [x] Replacing the default behavior for picture setting 'bottom transparency' (Standard picture rotation effect will be applied counter-clockwise if this value is abova 49)
- [ ] ~Mapping Mouse buttons LEFT / RIGHT to in-game buttons DECISION / CANCEL~ (Not implemented)
Mapping Mouse buttons LEFT / RIGHT to in-game buttons DECISION / CANCEL (Not implemented)
Related: #634
Button mapping for Mouse L/R is now also implemented.
This fixes a screen for this Spanish zelda fangame: https://www.hellsoft.net/H5/component/remository/Juegos/Rpg-Maker-2003/The-Legend-of-Zelda-Necklace-of-Elements/?Itemid=537