home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.sys.apple2      Discussion about Apple II micros      56,720 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 56,083 of 56,720   
   Kent Dickey to peter.ferrie@gmail.com   
   Re: Paperboy GS emulation   
   26 Feb 23 18:57:28   
   
   From: kegs@provalid.com   
      
   In article ,   
   qkumba   wrote:   
   >I confirm that the sound timing is the issue in MAME.  The game is   
   >waiting for the sound register to return a value in a specific range,   
   >which currently never occurs.  I will see if I can work out why.   
      
   Ed Armstrong emailed me Feb 22 about KEGS not working, and it was an easy   
   fix (for KEGS).   
      
   Here's what I said:   
      
   I looked into running it on KEGS.  At the title screen, Paperboy is   
   constantly reading the DOC last-sampled-played register, and is waiting   
   for certain values to occur.  As an optimization 25 years ago, KEGS only   
   updates the DOC last-sample-played register at 60 times a second (to   
   basically make it work for DOCVU, and things like it).  And KEGS code   
   had a comment saying this should be fixed.   
      
   So I fixed it, and then it seems to play.  I'm quite bad at the game,   
   but I threw lots of papers, and even got 250 points eventually, and it   
   didn't hang.   
      
   I get the same results on the two .2MG files, and the .PO file.  KEGS   
   does not work with the .woz file, I'll need to look into that.   
      
   If you want to patch KEGS.1.16 and see for yourself, modify sound.c at   
   lines 1776-1779, and change it from:   
      
   ---   
                  case 0x3:       /* data register */   
                          /* HACK: make this call sound_play sometimes */   
                          g_doc_saved_val = rptr->last_samp_val;   
                          break;   
   ---   
      
   to   
      
   ---   
                  case 0x3:       /* data register */   
                          dsamps = dcycs * g_dsamps_per_dcyc;   
                          sound_play(dsamps);   
                          g_doc_saved_val = rptr->last_samp_val;   
                          break;   
   ---   
      
   Just add the "dsamps =" and sound_play() lines, and then recompile.   
      
   You can probably make a similar patch to GSPort.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca