SS Posted August 18, 2004 Share Posted August 18, 2004 Added some more redundancy (rather than using generic routines).Last one for the night...getting really close now Something changed on the second intermission. The ghost's foot now gets stuck on the front of the nail (bar, pellet, what-have-you) rather than on the back end of it. Minor but I thought that I'd point it out. As for the screen jumps, it had not occurred to me that playing on the smart ghost setting would make a difference. I did get one good screen roll on it whereas the in normal game I saw only a minor stutter or two again. I'm not half as good at the game with the smart ghost on either! Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted August 18, 2004 Author Share Posted August 18, 2004 Oops...I cut too much time out of the intermission That's corrected hack_em_hanglyman.zip Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted August 18, 2004 Author Share Posted August 18, 2004 From the other thread... You can take this with a grain of salt, as I have my own home made hardware. I burnt them to eprom. I got it going once I figured out you were starting from the second bank only. I tried the hackem! and intermission test. They both rolled about the same for me with the reset button. The intermission rolled on hackem but not the earlier intermission test. I don't know if starting only from the second bank will be a problem as I've only been messing with atari's for 2 weeks now but it seems to me when you power up a flipflop the status would be undefined. I don't know much about how bankswitching works...other than just performing an out-of-range read flips them. To curb any possibility of the game starting in bank1, I added another one to the top of that bank (that flips to bank2 and then performs a JMP to the start address). I had 60 bytes to spare in bank1, so I listed all of the indirect addresses as well...so if the binary is split and disassembled, it will seperate code from data nearly perfectly - all except the JMP to the start address (easy way to check all of the branching). Anyway, the program can now begin in bank1 or bank2. Nearly all of the in-game subroutines have been unrolled...it only JSR's now when checking the game map or initializing an energizer. I dunno what else to trim to save cycle time hack_em_hanglyman.zip Quote Link to comment Share on other sites More sharing options...
Dav Posted August 18, 2004 Share Posted August 18, 2004 That should make it possible to burn it to a cart. A cart would most likely have a simple flipflop to store the bank number. A single FlipFlop stores 1 bit; on boot up that bit is essentially a random number. That is why most games can boot from either bank. On more complicated hardware like a cuttlecart or a multicart you can define the intial state. Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted August 18, 2004 Author Share Posted August 18, 2004 Would it be still loading the start vector in bank1? Just in case it wouldn't be, I moved that bankswitch instruction right to the start of bank1... ;*=$D000 START1: LDA $1FF9 ;4 flip to bank2 . . . . ;*=$F000 nop ;2 nop ;2 nop ;2 jmp START ;3 Also, I cut out the score/maze colors being pushed to the stack...and put the score flash back in. hack_em_hanglyman.zip Quote Link to comment Share on other sites More sharing options...
Dav Posted August 18, 2004 Share Posted August 18, 2004 Yes, if it starts in bank 1 it loads the start vector from dffc. It will run the code at d000 and switches to bank 2 and jumps to the start. I haven't tried it yet but that looks correct. Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted August 19, 2004 Author Share Posted August 19, 2004 Just one thing to note: the fruit prizes seem to vary in how long they stay onscreen, unless I'm just seeing things. Sometimes they appear long enough for me to snag them, and sometimes they cut out too quickly. I just added a seperate timer to handle fruits alone. This cut 30 bytes out of the code, and mades the fruit time consistant (a little over 8 seconds). Pausing no longer messes it up The times they appear has been altered to just following 50 and 100 dots being cleared. Also, I moved the routine that handles adding a bonus player to happen only on a frame where the fruit is not eaten (i.e. this saves cycle time). I haven't noticed a problem with it. hack_em_hanglyman.zip Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted August 20, 2004 Author Share Posted August 20, 2004 ...and this one has an alternate timetable when grabbing fruits in the green maze Anyone have a chart of the number of seconds the fruit bluetime lasts up to the 9th key? hack_em_hanglyman.zip Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted August 20, 2004 Author Share Posted August 20, 2004 Oops...I mean 9th pancakes Quote Link to comment Share on other sites More sharing options...
atwwong Posted August 20, 2004 Share Posted August 20, 2004 I haven't seen any rolls in the latest versions, but then again I'm not a great Pac-man player either and my games don't last that long. Quote Link to comment Share on other sites More sharing options...
atwwong Posted August 20, 2004 Share Posted August 20, 2004 Yes, if it starts in bank 1 it loads the start vector from dffc. It will run the code at d000 and switches to bank 2 and jumps to the start. I haven't tried it yet but that looks correct.Has anyone tested Nukey's "Work of Art!" ( ) with hardware to see if it bankswitches correctly? Quote Link to comment Share on other sites More sharing options...
Dav Posted August 20, 2004 Share Posted August 20, 2004 ...and this one has an alternate timetable when grabbing fruits in the green maze Anyone have a chart of the number of seconds the fruit bluetime lasts up to the 9th key? How about a relative table? This is the main table. These numbers are indexes into more tables so they don't mean anything by themselves, but you can compare the pp time with the bonus time or with ms pacman values. pacman plus gs=ghost speed os = out speed rp = red shift point ft = powerpellet blue time bt= bonus blue time lev gs ?? os rp ft ?? bt 0 05 01 02 01 04 00 02 1 05 01 03 02 05 00 02 2 05 01 03 03 06 01 03 3 05 02 03 03 06 01 04 4 05 00 03 04 06 02 05 5 05 01 03 04 04 02 03 6 05 02 03 05 06 02 05 7 05 02 03 05 07 02 05 8 05 00 03 05 07 02 06 9 05 01 03 06 06 02 04 a 05 02 03 06 07 02 06 b 05 02 03 06 08 02 06 c 05 00 03 06 08 02 06 d 05 02 03 05 06 02 04 e 05 01 03 06 08 02 06 f 06 02 03 06 07 02 06 10 06 02 03 07 08 02 06 11 06 02 03 07 06 02 06 12 06 02 03 07 08 02 07 13 06 02 03 07 08 02 07 14 06 02 03 07 08 02 08 mspacman gs ?? os rp ft ?? 796 defb 03 01 01 00 02 00;0 defb 04 01 02 01 03 00;1______ defb 04 01 03 02 04 01;2 defb 04 02 03 02 05 01 defb 05 00 03 02 06 02;4______ defb 05 01 03 03 03 02 defb 05 02 03 03 06 02 ;6 defb 05 02 03 03 06 02 defb 05 00 03 04 07 02 ;8______ defb 05 01 03 04 03 02 defb 05 02 03 04 06 02;a defb 05 02 03 05 07 02 defb 05 00 03 05 07 02;c______ defb 05 02 03 05 05 02 defb 05 01 03 06 07 02 ;e defb 05 02 03 06 07 02 defb 05 02 03 06 08 02;10_____ defb 05 02 03 06 07 02 defb 05 02 03 07 08 02;12 defb 05 02 03 07 08 02 defb 06 02 03 07 08 02;14 Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted August 20, 2004 Author Share Posted August 20, 2004 Hey...thanks again Fruit bluetime matched (tho I had to remove it for the 7th and 8th keys...so that higher levels won't have any). Anyone seeing screen rolls? If I can manage to save enough time, it will be possible to improve the collision detection a bit. I also removed player animation when you are against a wall (so it usually stops with an open mouth). hack_em_hanglyman.zip Quote Link to comment Share on other sites More sharing options...
SS Posted August 21, 2004 Share Posted August 21, 2004 Anyone seeing screen rolls? If I can manage to save enough time, it will be possible to improve the collision detection a bit. The screen rolls are almost completely extinguished from the "normal" game. Less than once a game (and extremely brief flashes at that). They still show up in the "smart ghosts" game but are greatly lessened in both frequency and intensity there as well. I saw a couple a game and they weren't the major rolls that I was getting a couple of builds ago. What I am seeing now is similar to the "stutters" that I was describing on the normal game a week ago. Collision detection is slightly off as I managed to pass through a blue ghosts a few times (all the way through a forward and reverse move). Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted August 21, 2004 Author Share Posted August 21, 2004 Good...that means that I'm on the right track to finally solving it And yeah, the collision detection isn't all what it's supposed to be...since I'm only checking 1 monster per frame (and no hardware collision detections are being used). If I can find a spot that has cycles to spare, I'll try moving it there instead. Or perhaps switching to hardware collsion detection to notice when the in-game collision routines should be checked Hmm...That would save cycles on every frame. The way that I could do it is to kill player movement on the frame that a hardware collision is detected...and then jump to the detection routine. The monsters will still be able to move, so it might be tricky (especially considering "near-misses" - if the monster is nipping at you, it might slow you down). Last build had the GO symbol missing...as I was still in the middle of rewriting it to be more faithful. Now it only appears during the tune and briefly during the game hack_em_hanglyman.zip Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted August 21, 2004 Author Share Posted August 21, 2004 ...and now with a Game Over symbol as well (tho it's a bit squashed). hack_em_hanglyman.zip Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted August 21, 2004 Author Share Posted August 21, 2004 Corrected the bug that kept the "Go" symbol on the screen forever in the slow game...and I also changed the collision routine to check on every frame that the player isn't moving in that version as well. Now I just need to improve it on the quick game (still checking @ 15hz) hack_em_hanglyman.zip Quote Link to comment Share on other sites More sharing options...
WildBillTX Posted August 22, 2004 Share Posted August 22, 2004 One thing I noticed about this game is that Pac-Man (Hack-Man?) doesnt pause when he swallows a monster as on the original arcade version. Could adding a quick pause help with the collision detection? Quote Link to comment Share on other sites More sharing options...
SS Posted August 22, 2004 Share Posted August 22, 2004 Corrected the bug that kept the "Go" symbol on the screen forever in the slow game... It's still hanging around too long. Maybe about four seconds or so after the game has already started, the GO is still flashing. A few more screen stutters have worked their way back in too. I would suppose that the two issues could be related. Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted August 23, 2004 Author Share Posted August 23, 2004 One thing I noticed about this game is that Pac-Man (Hack-Man?) doesnt pause when he swallows a monster as on the original arcade version. Could adding a quick pause help with the collision detection? Not really, since the detection must happen while sprites are in motion (otherwise, you'd be needlessly pausing the player). In the slow version, I took advantage of every other frame that the player sprite is not updated and had it do the checking there. In the fast version, the player sprite is moving on every frame (so it's still only checking every 4th frame in the fast game). Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted August 23, 2004 Author Share Posted August 23, 2004 Corrected the bug that kept the "Go" symbol on the screen forever in the slow game... It's still hanging around too long. Maybe about four seconds or so after the game has already started, the GO is still flashing. A few more screen stutters have worked their way back in too. I would suppose that the two issues could be related. That is intentional Currently, it's being cleared when the frame counter reaches a specific value (#$80...half-full - about 5 seconds). I can lower that to any value - which wiould make it disappear quicker...or increase it. Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted August 23, 2004 Author Share Posted August 23, 2004 Here I lowered it to just a couple seconds. I also corrected a bug that garbled the logo bitmaps. Props to atwwong for pointing it out hack_em_hanglyman.zip Quote Link to comment Share on other sites More sharing options...
jetset Posted August 23, 2004 Share Posted August 23, 2004 Nukey, is there a way to slow the game down a bit? It seems the overall speed is a bit much ihmo...Forgive me if this was asked already...I didnt read the whole thread, but keep watching for updates! By the way...this is awesome! You 'da man! Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted August 23, 2004 Author Share Posted August 23, 2004 That question was asked regarding...um...another hack. It was the only real way that I could improve the gameplay due to the limited monster A.I. (which is already pretty easy to outwit). And if just feels too sluggish at slower framerates. With both switches on B, you should have little problem keeping a game going to see all the levels. If you really wanted to, you could run the game in an emulator with a reduced framerate...but all it would do is make the game even easier than it already is (when running with both "B"). Having such a limited collision detection in the fast game isn't helping (BTW has anyone seen the player going through the monsters in the slow game? That should have a nil chance of happening now that I'm checking all 4 monsters on a frame). Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted August 23, 2004 Author Share Posted August 23, 2004 One thing I noticed about this game is that Pac-Man (Hack-Man?) doesnt pause when he swallows a monster as on the original arcade version. This pause was added in fairly easy...when a monster is eaten, the game will pause all characters except for eyes. I ran short of bytes, so it WILL currently affect the fruit timer (need 4 bytes to correct this). It's actually not really needed, since the pause exists so that the player can see the point value for the monster. Since 5 additional sprites are impossible to add in, the pause really makes no difference. Tho it does make the game more faithful. What does everyone think? Pause or no pause? Try this, and hollar back if it's too disorienting hack_em_hanglyman.zip Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.