Player icon indicating copy to clipboard operation
Player copied to clipboard

Patch compatibility: Power Mode 2003

Open florianessl opened this issue 8 months ago • 1 comments

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)

florianessl avatar Mar 26 '25 16:03 florianessl

Mapping Mouse buttons LEFT / RIGHT to in-game buttons DECISION / CANCEL (Not implemented)

Related: #634

fdelapena avatar May 30 '25 13:05 fdelapena

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

florianessl avatar Aug 01 '25 13:08 florianessl