mwk,
@mwk@donotsta.re avatar

so I just realized I did a sizable project and never posted about it publically

last year I spent a few months on and off reverse engineering Pinball Fantasies (a 1992 video game; originally for Amiga, though I was reversing the more polished DOS port) with the intent of doing a game engine recreation, and then rewrote the logic as a Rust program

you can grab the result here: https://github.com/wanda-phi/pfr/ ; if you're interested in the internals of a 1992 DOS game written by demoscene people, I wrote down some (rather incomplete) notes here: https://github.com/wanda-phi/pfr/blob/main/TECH.md

I'd also like to thank @domi for porting this thing to browser environment with WASM, and hosting the result: https://pfr.sakamoto.pl/

enjoy!

AGMS00,
@AGMS00@ruby.social avatar

@mwk Thanks for putting your notes online. There are lots of tricks here useful for my recreational programming project, Nth Pong Wars. Also a lot of overlap with miniputt golf games!

AGMS00,
@AGMS00@ruby.social avatar

Since I’m targeting the 1982 , fixed point math is essential. I was going to use 16 bits with a 6 bit fraction, but on the Z80 that involves 6 slow shift instructions to get the integer portion. At least 68000 and 8086 have shift-n-times instructions (though no barrel shifter). So putting the fraction point at a byte boundary is desirable.

Wonder why they needed 10 fractional bits. Also 3 physics frames per video frame suggests a max ball speed. I was going to try dynamic physics.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • DreamBathrooms
  • ngwrru68w68
  • modclub
  • magazineikmin
  • thenastyranch
  • rosin
  • khanakhh
  • InstantRegret
  • Youngstown
  • slotface
  • Durango
  • kavyap
  • mdbf
  • GTA5RPClips
  • JUstTest
  • ethstaker
  • normalnudes
  • tester
  • osvaldo12
  • everett
  • cubers
  • tacticalgear
  • anitta
  • Leos
  • provamag3
  • cisconetworking
  • megavids
  • lostlight
  • All magazines