Jump to content

DZ-Jay

+AtariAge Subscriber
  • Posts

    14,954
  • Joined

  • Last visited

  • Days Won

    21

Posts posted by DZ-Jay

  1. 1 minute ago, wongojack said:

    I don't remember. and I didn't check - do you remember in the C64 version if you always had to earn more money than you started with?


    I kind of think it was that way.  As I remember (and it has been several decades, since I last played, so I could be wrong), at the end of the game, you would get an account number if you paid back your initial loan and earned a profit.  If you didn't, you would get a message about going bankrupt or something.

     

    I sort of recall that the point of the game was that you were starting a franchise and received a $10,000.00 loan from the bank to start, and you need to pay it back and succeed as a business.

     

        dZ.

    • Like 1
  2. 7 minutes ago, wongojack said:

    I wrote up a little review in the "Games Beaten" thread:  

     


    Very nice review.  Thanks for sharing it.

     

    I too have fond memories of the C=64 version, which I played for days on end, and it remains one of my favourite games of all time.  The Intellivision Ultimate Edition improves on the original in significant ways.

     

       dZ.

    • Like 1
  3. 1 hour ago, atari2600land said:

    Yes, please work on the death animation. I thought it was strange because I thought there weren't enough frames.

     

    Yeah, sorry about that.  I saw it in my sprite animation data, but I thought it was weird because I don't recall ever getting that far (the ROM I posted before, with the Pac-Man sprite running around and eating dots was all I did back then).

     

    I'll work on it.

     

    1 hour ago, atari2600land said:

    I'll work some more on the stuff you mentioned.

     

    Cool! 👍

  4. On 4/17/2024 at 5:18 PM, atari2600land said:

    Today's update:

    + added a button mode. Now you can play the game with the buttons instead of the joystick.

    + fixed a bug where the power dot wasn't resetting if it was on and on screen and ate again.

     

    pacline15a.rom 10.56 kB · 15 downloads

     

    I finally got around to playing your latest version.  Here is my feedback:

    • The difficulty ramp seems strange:  It is very easy for quite a number of boards, but then it just seems to speed up considerably all at once.  Maybe the speed increase should be leveled more gradually.  Also, when the ghost speeds up, Pac-Man should also speed up -- at least up to a point (like in the original game).  Remember:  a faster Pac-Man does not necessarily mean an easier escape from the ghost -- it also means a harder to control Pac-Man, especially in such a limited horizontal space.
    • The death jingle seems off.  I think the sound may be too high pitch.
    • The death animation does not seem smooth enough.  This is probably my fault, the sequence I sent you included just the key frames, but I had not yet implemented death back then, so it was not fully realized.  I can work on that if you'd like.
    • In the original game, there is a pause for about 2 seconds from when Pac-Man touches the ghost and the death animation starts.  It seems to go like this:
      • 0 sec:  Sprites freeze
      • 1 sec:  Ghost disappears
      • 2 sec:  Death sequence starts
    • I am not very fond of having to press a keypad key to select disc or button at the title screen to start the game (it forces me to move my eyes to focus on the hand-controller, while pressing the disc or button feels intuitive and can be done without even looking).  If you want to support both schemes, I propose the following alternatives, in order of preference:
      • Accept both types of input automatically during game-play.  There is not much going on in the game (only a couple of sprites and no complex mechanics), so you should be able to decode both disc and button at the same time.
      • Select the disc as the default input scheme, but offer the option for the player to switch it in the title screen.
      • Use disc if the player pressed the disc to start, or button if they pressed the button.
    • When Pac-Man eats a ghost, he disappears (yay!), but his eyes are still visible (boo!).  I suggest disappearing him completely during the pause, and only show the eyes once they start moving.

    And here is my latest score:

    shot0028.gif.a1892e6c70f91a62823a7a7bc87def87.gif

     

         -dZ.

  5. On 4/19/2024 at 9:40 AM, DZ-Jay said:


    I may have misspoken.  Let me check what is in the “bas-interface.bas” file.  It may not work at the top, if it includes code modules (I can’t remember right now).
     

    If you do not mind sharing your code, I could try to troubleshoot it.  I’m rather handy with the assembler and debugger …

     

    Maybe just the generated listing file from the assembler, or the song data itself.

     

    I would understand if you rather not, but in that case it would be harder for me to know what is going on.

     

       dZ.

     

    For the record, I misspoke about the "bas-interface.bas" file -- it needs to be included at the bottom of the program (i.e., outside of the program execution flow) because it includes the code library modules and data tables.

     

    Here is an excerpt from my test driver to play the "TRON Anthology" track from IntyBASIC:

    Spoiler
    ' =========================================================================
    ' IntyBASIC SDK Project: tron-remix-disco
    ' -------------------------------------------------------------------------
    '     Title:      TRON Anthology (Disco Remix)
    '     Programmer: James Pujals
    '     Created:    2022-09-10
    '     Updated:    2022-09-30
    '
    '     Project automatically generated by INTYNEW (SDK 1.2.3).
    ' -------------------------------------------------------------------------
    ' History:
    ' 2022-09-10 - tron-remix-disco project created.
    ' 2022-09-30 - Completed track.
        ' =========================================================================
    
    OPTION WARNINGS
    OPTION EXPLICIT
    
        INCLUDE "constants.bas"
        INCLUDE "metadata.bas"
        INCLUDE "title.bas"
    
        ' Set up a recurring task to update
        ' the tracker on every frame.
        ON FRAME GOSUB UpdateTracker
    
    ' =========================================================================
    ' Game Program
    ' =========================================================================
    
        ' INITIALIZATION:
        '   Initialize the tracker as part of your
        '   game initialization routine.
        CALL TRKINIT
    
        ' SET ACTIVE CHANNELS:
        '   At any point after initialization, you can
        '   set the number of active channels.  Values
        '   accepted are 1 through 6. The default is 6
        '   for all channels.
        CALL SET_ACTIVE_CHANNELS(6)
    
        ' LOAD & PLAY SONG:
        '   At any point after initialization, you may
        '   load a song ...
        '
        '   The routine TRKLOADSONG() is a special
        '   IntyBASIC interface that receives a pointer
        '   to the song data structure via R0.
        '
        '   The song will start playing immediately.
        CALL TRKLOADSONG(VARPTR TronAnthology(0))
    
    ' MAIN LOOP:
    '   This is your main game loop.  It will loop forever
    '   keeping your game program engaged.
    ' ----------------------------------------------------
    MainLoop:
    Goto MainLoop
    
    ' UPDATE TRACKER STATE:
    '   The state of the tracker needs to be updated
    '   once per frame, ideally at the same place
    '   every time.  We use ON FRAME GOSUB in this
    '   example, but all you really need to do is
    '   invoke TRKPLAY at some point from your regular
    '   game engine loop.
    UpdateTracker: PROCEDURE
        CALL TRKPLAY
    END
    
    ' =========================================================================
    ' Game Data
    ' =========================================================================
    
        ' Include the tracker IntyBASIC Interface library
        ' anywhere in your program, along with any other
        ' libraries you use.
        INCLUDE "lib/bas-interface.bas"
    
        ' INCLUDE SONGS:
        '   Include any songs to play in your program.
        '
        '   Song are still defined using assembler data
        '   structures and macros, and so must be loaded
        '   as assembly language modules.
    
        '   Include the standard global music definitions
        ASM INCLUDE "music/tron-drm.asm"
        ASM INCLUDE "music/tron-inst.asm"
        ASM INCLUDE "music/tron-pttr.asm"
    
        '   Include sample song.  Note that assigning a
        '   label before including the song allows us to
        '   address the structure using VARPTR when we
        '   load it.  Otherwise, we would have to dig up
        '   its actual address from the assembler's
        '   output LISTING file.
    TronAnthology:
        ASM INCLUDE "music/tron-anthology.asm"

     

     

    Notice that the tracker interface module for IntyBASIC is included at the bottom, followed by the instrument and song data (which could have been put in a single file, but I broke it up into separate modules).

     

    As for code segment segregation, make sure that the "bas-interface.bas" file occurs within a single ROM segment.  The music data does not need to be all in the same segment, unless it is a single data block.

     

    For reference, below are the most common ROM segments.  I intend to include a feature in the next version of the IntyBASIC SDK that will allow you to easily allocate code and data in ROM segments.

    ; --------------------------------------
    ; Memory map for 42K ROM cartridge
    ; --------------------------------------
    ;   SEGMENT     RANGE
    ;      0        $5000 - $6FFF :  8K
    ;      1        $A000 - $BFFF :  8K
    ;      2        $C040 - $FFFF : 16K
    ;      3        $2000 - $2FFF :  4K
    ;      4        $7000 - $7FFF :  4K
    ;      5        $4800 - $4FFF :  2K
    ;
    ;      CARTRAM  $8040 - $9EFF :  8K
    ; --------------------------------------
    
    * K = Kilo-Decle (16-bit words), not Kilo-Byte (8-bit bytes)

     

    Segment #0 is the default memory range that IntyBASIC uses.  You can see that the largest range is in segment #2.

     

         -dZ.

     

  6. 14 minutes ago, Eiswuxe said:

    Thanks for the quick reply. Unfortunately, the result is the same. The note that I hear is indeed the very first note in the song.

     

    Strangely, if I include the 

    bas-interface.bas

    At the very beginning of my program (after constants.bas), the game does not run at all.

     

    Only if I include it directly before the song data, or before the "ASM ORG $C040", then the game runs (with the afforementioned bug)


    I may have misspoken.  Let me check what is in the “bas-interface.bas” file.  It may not work at the top, if it includes code modules (I can’t remember right now).
     

    If you do not mind sharing your code, I could try to troubleshoot it.  I’m rather handy with the assembler and debugger …

     

    Maybe just the generated listing file from the assembler, or the song data itself.

     

    I would understand if you rather not, but in that case it would be harder for me to know what is going on.

     

       dZ.

  7. There is one more thing to try:  See if your program is blowing out of the available address space in its current segment.  It may be the case that your song data is being allocated outside the address space that is visible to the CPU, and thus fails to read data correctly.

     

    If that were the case, you can add something like the following right before all your program data, which typically lies at the end of the program (i.e., outside the program execution flow).

    ASM ORG $C040

     

    Let me know if this helps or not.

     

        -dZ.

  8. 41 minutes ago, Eiswuxe said:

    @DZ-Jay
    I think I will post my upcoming questions about IMT in this thread, since the other thread was mainly about an "editor" for the IMT format.

     

    Yes, that is a good point.

     

    41 minutes ago, Eiswuxe said:

    I am now able to convert Goat Tracker files to IMT file description. It works quite well in my test program, where I just load and play a song.

     

    Wow!  That is amazing.  I would be very interested in playing around with GoatTracker and your tool whenever we get all this sorted out.

     

    41 minutes ago, Eiswuxe said:

    However, when putting the routines into my game (I use IntyBASIC), only the very first note is triggered and the tracker does not continue, even though I CALL TRKPLAY in every frame.

     

    Hmm ... That is strange.  Would you mind sharing your song file with me?  You can send it in a PM if you'd like and I can troubleshoot it.

     

    41 minutes ago, Eiswuxe said:

    Does the tracker require the music to be in a specific region in memory? At the moment, all my data (cards, sprites, level, IMT music) starts at $E000 since otherwise I dont have enough memory for my code.

     

    The integration with IntyBASIC should be fairly straightforward, as described in the User's Guide (Appendix B):

    • Include "bas-interface.bas" at the top of your program.
    • Include your song file at the end of your program, with a handy IntyBASIC label preceding the song data so that you can reference it later from IntyBASIC.
    • Call TRKINIT() during your program's initialization phase.
    • Call TRKLOADSONG() with a pointer to your song data, to start song playback.
    • Call TRKPLAY() on every tick to update the playback state of the tracker.

    The "bas-interface.bas" library should take care of everything, including RAM allocation and appropriate library module inclusions.

     

    A few things to check, just in case:

    • Make sure you call TRKINIT() only once per program.  Calling it again will stop playback and reset the tracker.
    • Make sure you only call TRKLOADSONG() only once -- this loads the song and initializes the tracker for playback, so calling it again would just restart playback.
    • Make sure you are not writing to any of the variables used internally by the tracker.  These would be allocated as two arrays: TRK_BYTEVAR and #TRK_WORDVAR.
    • Check that your song data has the correct number of pattern tracks that match the number of tracks configured (3 or 6).
    • Check that all sub-pattern definitions used in a particular pattern match the length defined for that pattern.
    • Make sure the data format generated matches the IMT format, as described in the documentation.  (It may be easier to troubleshoot if your program generates IMT NOTES() macros rather than the raw data itself).

     

    I hope the above helps.  If not, let me know.  IMT has been used successfully in IntyBASIC programs in the past (and integration was as simple as described above), so it should certainly work.

     

         -dZ.

  9. 19 hours ago, Eiswuxe said:

    @DZ-Jay

     

    Thanks for sharing those files!


    You are most welcomed.

     

    19 hours ago, Eiswuxe said:

    Having Basedrum and Bass on one "instrument" is really cumbersome as you described. In Goat Tracker, you can specify wether a tick uses a "fixed" frequency or the current note frequency. That way, you can have a short "base drum" part that always sounds the same and afterwards the rest of the bass with current note frequency. What you described is "rebuilding this from hand with multiple samples".


    Yup.  I tend to do things the hard way.  One of my goals with IMT 2.0 is to be able to use something like MilkyTracker and translate the generated XM files to IMT 2.0 format.

     

    That, and create an actual tracker program for the Intellivision.

     

    19 hours ago, Eiswuxe said:

    For a snare drum, this does not work so well, since snares are generally longer than kick drums and therefore the bass starts a bit too late, so it sounds out of rhythm.

     

    It wouldn’t work to use that technique from GoatTracker, true.  It also would be tricky to do it by hand, since you would have to account for the fact that tone and noise are mixed by ANDing their outputs rather than ADDing or ORing them, which means that their combined sound tends to modulate the timbre of the noise rather than it’s pitch.


     

    19 hours ago, Eiswuxe said:

    And here are more questions :)

     

    Ready!

     

    19 hours ago, Eiswuxe said:

    I have noticed that using "0" as the noise frequency generates the lowest possible noise tone, where as "1" generates the highest, "2" a bit lower than "1", "3" a bit lower than "2" etc. So is value 0 an exception or is this a bug?


    The DRUM macro generates data that is pretty much passed through to the PSG device’s registers.  Therefore the tone and noise values are not frequencies but oscillator periods.

     

    Zero essentially turns off the oscillator, and shouldn’t be used unless that is exactly what you are looking to do.  (Changing it back to a higher value later on may result in an audible click due to the way the oscillators are cycled.).

     

    Typically, if you want to stop output of a PSG oscillator, whether tone or noise, you set its volume to zero and leave its period as is.  If you feel compelled to reduce the period, then try to avoid going below 1.

     

    The noise period is controlled by a 5-bit register, so it can go from $01 to $1F.  Since the noise generator generates white noise (or something close to it), the period serves to bias the frequencies included.

     

    Essentially, higher values act as a high-band filter, while lower values act as a low-band filter.  (Wait, I may have gotten those reverse, but you should still know what I mean:  one extreme has more higher frequencies than the other.)

     

        dZ.

  10. Hi, @Eiswuxe,

     

    Attached are the drums definition for the TRON song.  The "drmCombo" definitions are a combination of the "Synthpop Kick" drum sample and the "Bass" instrument, interpolated by hand.  I took the first few ticks of the kick drum definition (to establish its presence), then followed it with the tone and envelope definition of the bass instrument, tuned to a specific note.  I then repeated the process tuning the bass tone to different notes depending on where the kick drum hit in the pattern.

     

    (Note that these drums require 32 samples, so to use them, you need to set the TRK_DRUM_STEPS constant to 32 in the "global-config.asm" file.)

     

    This way, I could have the bass line playing on a channel, with the points where the kick drum is supposed to hit replaced by the appropriate tuned drum instrument.  The end result was drum and bass on one channel.

     

    (I should have done a similar thing for the snare drums, but didn't think of it at the time.  In retrospect, you can tell when the song goes from a pattern in which drums and bass are played in separate channels, to a pattern in which both are played in the same channel; precisely because the bass cuts out when the snares hit.  It still gives it a nice and distinct rhythm to the choruses, but it was mostly inadvertent.)

     

    I also include the instrument definitions for the track, just in case they can be of any use.

     

        -dZ.

    tron-drm.asm tron-inst.asm

  11. 3 hours ago, Eiswuxe said:

    Thanks for the offer. I would like to have a look at them for learning purposes.

    At the moment, I try to "recreate" the exact sound as in the goat tracker file. Unfortunately, you cannot specify two frequencies for one tick in goat tracker instruments. In fact, its a restriction of the SID Chip, not the tracker. You can only specify noise OR tone, so this is one of the restrictions when converting files. However, SID composers managed to create a lot of beatiful drum sounds with this limitation, so its not a big problem I think :)


    I understand.  Can't you use 2 channels in GoatTracker to synthesize one drum, one for tone and one for noise?  I haven't used GoatTracker, so I do not know its limitations.  I am somewhat familiar with the SID, though, having programmed it directly myself in the past.

     

    Also, I wanted to offer a small patch:  Right now, IMT 1.5 requires drum samples to be all of the same length, as defined in a configuration constant.  This can lead to a lot of waste for shorter samples (like hi-hats).  I could patch the 1.5 code to support drum samples of arbitrary length, so that the constant is no longer necessary.  You could then create drum samples as long or as short as you need them to be.

     

    Let me know if you are interested.  It is a small change.

     

        dZ.

  12. 1 hour ago, Eiswuxe said:

    @DZ-Jay Thank you very much for your detailed answer, and for even providing a bug fix to the instrument / drum problem!


     

     

    It is my pleasure. :)

     

    1 hour ago, Eiswuxe said:

    I know that kind of "I fixed this 10 times" bugs myself :P

     

    I think I will go with 1.5 for now. There is actually no need to implement new features only for me. After all, its my first game and I want to leave some place for improvements for my next game :)


     

     

    Sounds good.

     

    1 hour ago, Eiswuxe said:

    I have already added arpeggio, vibrato and envelope support to my converter. I only need drum support, then I will make a test track and show my results.

     

    Great!  
     

    By the way, I have other drum instruments I used in the TRON remixes, if you want them.  (It turns out I am pretty darn good at synthesizing drum sounds. :) )

     

        dZ.

  13. By the way, @Eiswuxe, I will send you what I have of IMT 2.0 during the week-end for you to play with.

     

    However, because it does use quite a bit of more RAM and CPU resources (and because I haven't had a chance to optimize the code yet -- at least not to the level that I've done to version 1.5 in over five years), it may not be fit for your game.  I can surely try to make it work, though.

     

    Nonetheless, in the case that you decide against using version 2.0, I would not mind working with you in enhancing version 1.5 with bespoke features tailored to your game and resource constraints.  Just ask. :)

     

    (The same offer is available to any other programmer who wants to use IMT but for some reason find it inadequate for their purpose.)

     

          -dZ.

  14. Attached find an updated "tracker.asm" library module from the previously unreleased IMT 1.5 revision #5.  I planned to release it several years ago, but got side-tracked into implementing IMT 2.0 and never got around to it.

     

    It does indeed fix the bug you noticed, that prevents you from switching back to a standard instrument when you use a drum in a channel.  It also fixed a stupid bug wherein the envelope did not recycle correctly (a feature introduced in revision #4, which was broken from the start!).

     

    From the history notes:

    ;;      28-Aug-2022 Rev. #5                                                 ;;
    ;;                  Fixed a bug in the new envelope re-cycling feature.     ;;
    ;;                                                                          ;;
    ;;                  Support for drums and instrument mix in "A" channels    ;;
    ;;                  still did not work correctly!                           ;;
    ;;                                                                          ;;
    ;;                  (Can you beleave it? That feature was precisely why I   ;;
    ;;                  started working on Arnauld's tracker back in 2017!!!)   ;;
    ;; ------------------------------------------------------------------------ ;;

     

    Yup, my SVN repo log is peppered with comments such as "... and this time I fixed it for real ..." since 2017.

     

    The good news is that the attached version actually does fix this finally -- attested by the mixing of drums and instruments in the TRON remixes.

     

    Just replace your version in the "lib" folder of the IMT 1.5 package.

     

    Let me know if you have any other questions or need additional help (or, heaven forfend, you find another bug!).

     

          -dZ.

    tracker.asm

  15. 2 hours ago, Eiswuxe said:

    Thanks for the offer. I might get back to it in the future :)

     

    And some more questions :)
     

    There is no such thing as a "note off" command in IMT, right? I mean, that a note stays at the sustain volume, not advancing the volume envelope any further, until a "note off" command is used to go to the "release" part of the envelope?

     

    No, there is no sustain in IMT envelopes, so there is no "note off" command for release.  The envelopes run for 255 ticks, at which point they will repeat the last 8 points, unless a volume of zero is reached at some point.

     

    2 hours ago, Eiswuxe said:

    Is this feature maybe in the 2.0 version?


    Not yet, but I was planning on it.  My goal with version 2.0 is to emulate as much as possible the behaviour of XM mods in FTII, within reason (i.e., without samples, of course).

     

    2 hours ago, Eiswuxe said:

    And is it possible to play a "normal" instrument and a drum instrument alternating on one and the same channel? Like, when you use 2 channels for music and 1 channel for sound effects, you could play bass notes and snare drum on one channel, and the melody on another one, like it is often done in SID tunes.

     

    Yes, that's how I play the bass and drums in my TRON song remix. ;)

     


    However, drums only play in channels A and D (the first channel of each PSG).  The reason for this is that the noise generator is hard coded to be enabled or disabled only in those channels.

     

    In version 2.0, you will be able to play drums on any channel, plus they are treated as regular instruments, so you can process them with effects, and change their pitch with notes.

     

    However, be aware that there is a single noise generator on each PSG device.  So, make sure that you do not play drums when you need to use noise in your game sound effects, or vice-versa.

     

    2 hours ago, Eiswuxe said:

    When I played around with it, only the first "normal" note is heard, then comes the drum, and after that, only the drums are heard.

     

    Could you post an example pattern of what you are trying to do?

     

    (By the way, there was a bug in that behavior that I had fixed in the past.  Just in case, I can send you the latest revision of IMT 1.5 that I used to track the song posted above.)

     

        dZ.

  16. 59 minutes ago, atari2600land said:

    What do you mean by score? You mean to have a sprite look like the number 200 like in Pac-Man?

     

    Sorry, I thought that is what you said you did.  You could do that to make it more like Pac-Man, but it is not really necessary unless you want to go for maximum Pac-Man look and feel.

     

    What I would recommend is to at least hide the ghost right before pausing, so that he is not just stuck there while you eat him.

     

        -dZ.

     

     

  17. 5 hours ago, atari2600land said:

    I don't know how though, as I swear I did it like I did before. Oh well. Here is the power dot blinking. I also attempted to add the score before the ghost pause.

     

    pacline12a.rom 9.56 kB · 10 downloads

     

    The blinking energizer looks good. 👍

     

    I do not see the score before the ghost pause ... 😕

     

    4 hours ago, atari2600land said:

    Can you give me the death sprites? I'm ready to add those in.

     

    Here is what I have:

    Death:
                    ' Animation Tile: 7
                    ' --------------------------------
                                ' ........ - %00000000
                    Data  $0000 ' ........ - %00000000
                                ' ........ - %00000000
                    Data  $0000 ' ........ - %00000000
                                ' ........ - %00000000
                    Data  $0000 ' ........ - %00000000
                                ' #......# - %10000001
                    Data  $8181 ' #......# - %10000001
                                ' ##....## - %11000011
                    Data  $E7C3 ' ###..### - %11100111
                                ' ######## - %11111111
                    Data  $FFFF ' ######## - %11111111
                                ' .######. - %01111110
                    Data  $7E7E ' .######. - %01111110
                                ' ..####.. - %00111100
                    Data  $183C ' ...##... - %00011000
                    ' --------------------------------
    
                    ' Animation Tile: 8
                    ' --------------------------------
                                ' ........ - %00000000
                    Data  $0000 ' ........ - %00000000
                                ' ........ - %00000000
                    Data  $0000 ' ........ - %00000000
                                ' ........ - %00000000
                    Data  $0000 ' ........ - %00000000
                                ' ........ - %00000000
                    Data  $0000 ' ........ - %00000000
                                ' ...##... - %00011000
                    Data  $3C18 ' ..####.. - %00111100
                                ' ######## - %11111111
                    Data  $FFFF ' ######## - %11111111
                                ' .######. - %01111110
                    Data  $7E7E ' .######. - %01111110
                                ' ..####.. - %00111100
                    Data  $183C ' ...##... - %00011000
                    ' --------------------------------
    
                    ' Animation Tile: 9
                    ' --------------------------------
                                ' ........ - %00000000
                    Data  $0000 ' ........ - %00000000
                                ' ........ - %00000000
                    Data  $0000 ' ........ - %00000000
                                ' ........ - %00000000
                    Data  $0000 ' ........ - %00000000
                                ' ........ - %00000000
                    Data  $0000 ' ........ - %00000000
                                ' ...##... - %00011000
                    Data  $1818 ' ...##... - %00011000
                                ' ..####.. - %00111100
                    Data  $7E3C ' .######. - %01111110
                                ' .######. - %01111110
                    Data  $C37E ' ##....## - %11000011
                                ' ##....## - %11000011
                    Data  $81C3 ' #......# - %10000001
                    ' --------------------------------
    
                    ' Animation Tile: 10
                    ' --------------------------------
                                ' #......# - %10000001
                    Data  $8181 ' #......# - %10000001
                                ' .#....#. - %01000010
                    Data  $4242 ' .#....#. - %01000010
                                ' ..#..#.. - %00100100
                    Data  $2424 ' ..#..#.. - %00100100
                                ' ........ - %00000000
                    Data  $E700 ' ###..### - %11100111
                                ' ........ - %00000000
                    Data  $2400 ' ..#..#.. - %00100100
                                ' ..#..#.. - %00100100
                    Data  $4224 ' .#....#. - %01000010
                                ' .#....#. - %01000010
                    Data  $8142 ' #......# - %10000001
                                ' #......# - %10000001
                    Data  $0081 ' ........ - %00000000
                    ' --------------------------------

     

     

  18. 27 minutes ago, atari2600land said:

    I can't get the power dot to blink. I sat here for like 2 hours but I couldn't do it. I've done everything else though. I don't think it needs to blink because it's green and bigger.

     

    pacline12.rom 9.56 kB · 1 download

     

    One suggestion on this last version -- I see that you made it pause after eating the ghost.  If you really want to make it look like the game, you replace the ghost with the points right before pausing.  Here's a screenshot from MAME, Pac-Man eating a second ghost.

     

    0003.png.a79008ef66e994adc2a8abb7ad9019cd.png

     

    Obviously, this is optional, it looks good, although I would recommend at least disappearing the ghost before pausing. :)

     

    Here is my score for today:

    shot0027.gif.1ee758220f81d7e6cb49544b180fcc47.gif

     

    It is getting harder! LOL!

     

        -dZ.

  19. 18 minutes ago, atari2600land said:

    I can't get the power dot to blink. I sat here for like 2 hours but I couldn't do it. I've done everything else though. I don't think it needs to blink because it's green and bigger.

     

    pacline12.rom 9.56 kB · 1 download

     

    That's funny -- you couldn't get it to work, so "it doesn't need it."  It did not need any of the changes you have made in the past couple of days, yet you must admit it is quite better with them. ;)

     

    Anyway, it is up to you of course, but if you would like to try again, and need help in getting it to blink, just let me know.

     

        -dZ.

  20. 2 minutes ago, Eiswuxe said:

    You are right. I should have had a look at this file earlier. Thanks for pointing this out!

     

    No worries.  I just got home and took a look at it.  The constant is TRK_ENABLED_6_CHN.  "1" means six channels, "0" means three.

     

    I also noticed that I had removed the average cycle count usage from the header comments because I got tired of profiling it on every release.  LOL!

     

    That being said, the version you have (1.5 rev.4) is highly optimized in assembly to ensure the highest performance for what it does.  So, if you have performance issues using it, send me a PM and I'll try to see how I can help.

     

    If you are not opposed to peppering your game code with Assembly Language routines, I can help you translate your most costly procedures to optimized assembly code.  I'm sort of good at that. ;)

     

         -dZ.

×
×
  • Create New...