Pinball Fantasies assembly source code
github.com
github.com
This or just a nostalgia factor...
No, i think you're quite right - especially tables that don't have a "real world counterpart" often don't make a lot of sense to me, rules wise and also, have way too much going on, too many gimmicks etc...
Real world emulations on the other hand most of the time have really well thought out gameplay and lots and lots of replay value.
I miss the days being able to go to an arcade or some random pub and play a few balls...
> but the arcade charm of Sensible Soccer makes it a winner for me
+1. It was damn fun, as Kick Off had been a couple years before. I have great memories of tournaments with friends; good old times.
The game was also very smooth on a 386 SX 25 MHz, one of my favorite games from that era. The PC version also had 256 -color support, making it a better looking version than the standard Amiga ECS version.
Interesting tidbit from Wikipedia, Pinball Fantasies was hailed in the magazines also:
"In 1994, PC Gamer US named Pinball Fantasies the 33rd best computer game ever. The editors hailed it as "the best and most realistic pinball action ever seen on a PC screen".[97] That same year, PC Gamer UK named it the 19th best computer game of all time. The editors wrote, "[I]f Pinball's your thing, there's currently nothing on the PC (or any home system, for that matter) better than this".[96] In 1995, PC Gamer US presented Pinball Fantasies with its 1994 "Best Arcade Game" award.[98]"
Also their ball physics feel weird. It has gotten better from FX -> FX2 -> FX3, but still feels off. Their remakes of actual tables seem to have a different physics model and ball interactions feel a lot more plausible
I have a friend who streams Pinball Arcade on Twitch--and he's very good at it but he relies on a lot of nudging which is very difficult to do IRL. It involves physical strength and you have to have clearance around the machine-- but its just a button on the controller.
The real hobgoblin is how consistent the game play is. The table never dents, parts are never misaligned, there's never a playfield protector on that subtly changes how the ball acts in certain places. The timing of the shots are always exxacctllyyy the same.
I still hear the laughing from Haunted Mansion [1] in my head quite often.
DB " HI HACKER! PLEASE DON'T CRACK THIS PROGRAM! IT WAS MADE BY"
DB " THE DEMO GROUP TSP. WE NEED THE MONEY TO BE ABLE TO KEEP ON"
DB " CODING GAMES FOR THE PC! THIS PROGRAM ISN'T HARD TO CRACK, SO"
DB " MAKE A DEMO INSTEAD TO PROVE YOUR SKILLS... IF YOU CRACK IT"
DB " WE WILL HATE YOU 4EVER! HAVE A NICE DAY! :-) "
I remember back in the day I always loved seeing these little messages in hexdumps of programs I was trying to understand. TECHSCROLL DB 21 dup(1),'YEAH YOU ARE PROBABLY WONDERING HOW IT IS POSSIBLE TO MAKE A GAME LIKE THIS ON THE PC'
DB ' FIRST OF ALL THE GAME IS CODED IN 100 PERCENT ASSEMBLER LANGUAGE '
DB ' WE RUN IN A SPECIAL VGA 320 X 240 OR 360 X 350 IN 256 COLOR MODE HARDWARE IS USED FOR SCROLLING THE TABLE '
DB ' THE FLIPPERS AND DOT MATRIX SCOREPANEL ARE DELTA ANIMATED AND TO MAKE THE GRAPHICS RUN FLICKER FREE WE ARE USING RASTER INTERRUPTS THE PALETTE IS USED FOR FLASHING THE LIGHTS '
DB ' THE MUSIC ROUTINE HAS FEATURES SUCH AS SOFT CLIPPING AND INTERPOLATIVE MIXING '
DB ' ALTOGETHER THIS MAKES THE GAME POSSIBLE TO RUN ON A 12 MHZ 286 WITH SOUNDBLASTER MUSIC AT 16KHZ IN EACH FRAME'
DB 21 DUP (1),255It is so obvious from the style and music that a demo group (The Silents) were behind this game. I'm still loving it to this day. Missing getting boxes of demo discs :)
Also: https://www.youtube.com/watch?v=o96I_UfSdIU Man, Jesper Kyd was great back then already...
https://github.com/historicalsource/pinballfantasies/blob/ma...
On another note, it's interesting to see what appear to be some kinds of todo items or task assignments in the comments of fantasie.asm: things like testing on different kinds of displays and computers. I guess the project management toolbox was a bit less refined at the time.
Pinball Fantasies was likely developed probably around 1991-1992, so 8 years earlier. We are really rather spoiled by nowadays tools (when we are not complaining about Jira etc. of course). I also still remember rather horrible crudeness of tools like Bugzilla or Mantis which were one of the first tools in this area I worked with.
I'm not sure you need a complex project management toolbox for a team that size.
(Digital Illusions grew into DICE, who certainly does need complex project management tools; I wonder how many of the original members are still there.)
Not that that's a bad thing by any means.
Wikipedia says this:
"Tim Sweeney saw some impressive 3D demos done by a group of Finnish developers that were members of the PC demogroup Future Crew and sent Mark Rein to Finland to recruit them. They declined except for Misko Iho who travelled to the US with Mark, bringing back an unfinished version of a pinball game.[5] Unable to convince them to allow Epic MegaGames to finish the game, Tim showed the unfinished game to James Schmalz in Canada. James developed Epic Pinball (with six pinball tables) from scratch in nine months while he was in college. Tim and Mark kept in touch with James to ensure he was on the right track.[6] The graphics were created using Deluxe Paint II and the music was composed using Scream Tracker.[7]"
The error handling is retarded! (At least out of mem)
> TONINGEN SKA INTE SLUTA P BAJSBRUNT UTAN P SVART!
The fade should not stop on poop-brown, but on black!
In practice it wasn't really possible to reuse code unless the target platform had the same CPU and at least equal graphics features (as was the case with e.g. porting from Atari ST to Amiga). So every port started from scratch.
Back in the day of course challenge was more not having widespread documentation and figuring things out as you went, especially with these pioneers.
It starts with the standard 320x200x256c MCGA mode (13h), then proceeds to tweak a few dozen video card registers into a combination that produces a 360*350 frame buffer.
Just don't fry your CRT while trying to come up with the magic register combo!
And I wasn't that good.
Skimming it, it has lots of data (or, possibly, bytecode that gets interpreted) and has a section called “animations” (starting at line 2259)