Jump to content

Endless Runner 2600

New Members
  • Content Count

    11
  • Joined

  • Last visited

Posts posted by Endless Runner 2600


  1. I would like to clarify something. When I said I was working on a similar project, all I meant was a side-scroller with a player object that only moves up and down, and sprites that move right-to-left. In my game, there are "good items" you want to collect, and "bad items" you want to avoid. It is NOT, however, the same as your idea. I haven't even actually started on the gameplay aspect yet, it's basically just a demo for the kernel at this point. I am still figuring out what I want to do. Plus it's a Nyan-Cat themed game, so it is very different from your idea, actually.

     

    I hope I didn't scare you off with an overload of information. I wasn't sure how much you knew about the hardware, and it seems that you are still a beginner. That's perfectly fine, all of us had to start at that point. Follow the links azure posted above, and that will give you the basics. Start with something small! My first project was a super-simple bouncing-dvd-logo style mini-demo. As stated, if this just isn't your cup of tea, that's fine, but if you push yourself through the learning process, you will be able to do things you never imagined possible.

    You didn't scare me at all. I just don't want to "compete" with another project. The reason being, because it may cause the people watching the other project to lose interest in it and deflect to the "new shiny toy". It just wouldn't be right if no one was interested in your awesome game because of me.

  2. I deleted your files I uploaded in my comment in order to respect your wish to delete your program. If you ever want them back, send me a PM.

     

    I'm just very puzzled by this thread. Development for the 2600 is hard. It requires an extraordinary level of patience and rework. In many ways it's very different from traditional game development, but in other ways it's identical. My game isn't complete, but it's getting close. The lessons I've learned from this unusual series of problems have made it a very satisfying intellectual challenge. I'm only just scratching the surface. I'm still working out how 2600 shoot'em ups manage to multiplex so many sprites. It's one giant puzzle of lots of smaller puzzles, which appeals to me a lot. It requires a level of stubbornness and resilience to frustration. I suggest you keep trying. There's no requirement that your final game design be the same as the initial design. You could end up with a completely different game, and nobody is going to judge you for it. If it's turning out not to be your cup of tea, that's fine too. There's plenty of other platforms you can code for.

    That's not the issue. The issue is if someone else is already making the same game, there's no point in having 2 games that play exactly the same. I can try to recover my source code and see what happens, but no guarantees. Thanks for removing the source files.

  3. I was replying right as you updated. What I meant by refactoring is the 3rd PosObject call just needed to happen after the digits were drawn.

     

    Also, there are a lot of 2600 games that are similar, because the nature of the hardware forces the same limits one every game. I wouldn't worry about it. I think a bunch of projects end up being something different from what they started out as, because you find out some designs either won't work or you think of better game elements that change the dynamic of the game.

    I'm sorry, but I deleted all the source code already. As I said the project has already been canceled. :(

  4. The way I would do it would be setting the playfield to reflect mode and using PF1 to draw the main character, since it doesn't move left or right, only up and down. Then I could use both player objects to draw the enemies at quad size, allowing 2 enemies on screen at a time, per row. This would allow adding elements like multiple enemies with different colors, pickup items, etc.

    This would require changing the playfield color twice on every scanline, so the playfield could be drawn in the player's color on the left side, but the right side would be the same as the background color to make it invisible.

    Both missile objects would also be free, in case you wanted to add a shooting element to the game. Lots of possibilities!

     

    You could also scale down the size of the players to allow more on-screen at a time using NUSIZ to copy the players, but the playfield could not also be scaled down.

     

    I am actually working on a similar concept, but at a different scale. You can check out my project thread, if you are interested. I haven't posted in awhile, but have been doing some work in it lately.

     

    Also, when you post a large piece of code (50+ lines or so), it's a good idea to include it as a file.

    This sounds very complicated is there a tutorial?

     

    Edit: Actually since your working on something similar anyways, nevermind I canceled the project.


  5. Got a response from the author.

     

    Quote:

    """

    Hi,

     

     

    This is Gustavo. I work with the Pikuma team and I am the author of the Atari2600 course. Thanks for the message.

     

     

    The course is currently being sold as $11.99, but Udemy takes the extra money they are charging to themselves.

     

     

    That is why the price on Udemy is more expensive than the one on the Pikuma website. Udemy adds approximately 50% on top of every course and keeps the % to themselves.

     

     

    Since Pikuma.com is the home of the Atari2600 course, there is no % added to the original $11.99.

     

    Let me know if that helps.

    """

    So if you still want to get the "Udemy features", be prepared to pay an additional $8 to line Udemy's fat wallets.


  6. I'm trying to use the sleep macro inside the macro.h header. Here is the code:

    ; SLEEP duration
    ; Original author: Thomas Jentzsch
    ; Inserts code which takes the specified number of cycles to execute.  This is
    ; useful for code where precise timing is required.
    ; ILLEGAL-OPCODE VERSION DOES NOT AFFECT FLAGS OR REGISTERS.
    ; LEGAL OPCODE VERSION MAY AFFECT FLAGS
    ; Uses illegal opcode (DASM 2.20.01 onwards).
    
                MAC SLEEP            ;usage: SLEEP n (n>1)
    .CYCLES     SET {1}
    
                    IF .CYCLES < 2
                        ECHO "MACRO ERROR: 'SLEEP': Duration must be > 1"
                        ERR
                    ENDIF
    
                    IF .CYCLES & 1
                        IFNCONST NO_ILLEGAL_OPCODES
                            nop 0
                        ELSE
                            bit VSYNC
                        ENDIF
    .CYCLES             SET .CYCLES - 3
                    ENDIF
                
                    REPEAT .CYCLES / 2
                        nop
                    REPEND
                ENDM
    

    However when I try to assemble it get the error:

     

     

    --- Unresolved Symbol List
    NO_ILLEGAL_OPCODES 0000 ???? (R )
    --- 1 Unresolved Symbol

     

    Here is the output log:

    START OF PASS: 1
    
    ----------------------------------------------------------------------
    SEGMENT NAME                 INIT PC  INIT RPC FINAL PC FINAL RPC
                                 f000                            f000               
    RIOT                     [u] 0280                            0280               
    TIA_REGISTERS_READ       [u] 0000                            0000               
    TIA_REGISTERS_WRITE      [u] 0000                            0000               
    INITIAL CODE SEGMENT         0000 ????                       0000 ????          
    ----------------------------------------------------------------------
    15 references to unknown symbols.
    20 events requiring another assembler pass.
     - Expression in mnemonic not resolved.
     - Label defined after it has been referenced (forward reference).
    
    --- Unresolved Symbol List
    NO_ILLEGAL_OPCODES       0000 ????         (R )
    --- 1 Unresolved Symbol
    
    
    START OF PASS: 2
    
    ----------------------------------------------------------------------
    SEGMENT NAME                 INIT PC  INIT RPC FINAL PC FINAL RPC
                                 f000                            f000               
    RIOT                     [u] 0280                            0280               
    TIA_REGISTERS_READ       [u] 0000                            0000               
    TIA_REGISTERS_WRITE      [u] 0000                            0000               
    INITIAL CODE SEGMENT         0000 ????                       0000 ????          
    ----------------------------------------------------------------------
    1 references to unknown symbols.
    0 events requiring another assembler pass.
    
    --- Symbol List (sorted by symbol)
    0.DigitPointerLoop       f05f              (R )
    0.divideby15             f017              (R )
    0.FREE_BYTES             0000
    1.CYCLES                 0028              (R )
    AddScore                 f033
    ApplyGravity             f16f              (R )
    AUDC0                    0015
    AUDC1                    0016
    AUDF0                    0017
    AUDF1                    0018
    AUDV0                    0019
    AUDV1                    001a
    BLACK                    0000              (R )
    BROWN                    00f0              (R )
    CheckActivatePlayer      f136
    ClearRAM                 f0e3              (R )
    COLUBK                   0009              (R )
    COLUP0                   0006              (R )
    COLUP1                   0007
    COLUPF                   0008              (R )
    CTRLPF                   000a
    CXBLPF                   0006
    CXCLR                    002c
    CXM0FB                   0004
    CXM0P                    0000
    CXM1FB                   0005
    CXM1P                    0001
    CXP0FB                   0002
    CXP1FB                   0003
    CXPPMM                   0007
    Digit0                   f000              (R )
    Digit1                   f002              (R )
    Digit2                   f004              (R )
    Digit3                   f006              (R )
    Digit4                   f008              (R )
    Digit5                   f00a              (R )
    DigitsFont               f200              (R )
    DrawDigits               f085
    DrawDigitsLoop           f0a0              (R )
    DrawDigitsLoopCounter    f00c              (R )
    ENABL                    001f
    ENAM0                    001d
    ENAM1                    001e
    fineAdjustBegin          f024              (R )
    fineAdjustTable          ef33
    FinishPlayer             f153              (R )
    FLOORY                   0015              (R )
    GetDigitPointers         f05b
    GRP0                     001b              (R )
    GRP1                     001c              (R )
    HMBL                     0024
    HMCLR                    002b
    HMM0                     0022
    HMM1                     0023
    HMOVE                    002a              (R )
    HMP0                     0020              (R )
    HMP1                     0021
    INPT0                    0008
    INPT1                    0009
    INPT2                    000a
    INPT3                    000b
    INPT4                    000c              (R )
    INPT5                    000d
    INTIM                    0284              (R )
    MainLoop                 f0f9              (R )
    NO_ILLEGAL_OPCODES       0000 ????         (R )
    NUSIZ0                   0004
    NUSIZ1                   0005
    OverScanWait             f177              (R )
    PF0                      000d              (R )
    PF0Data                  f300              (R )
    PF1                      000e              (R )
    PF1Data                  f400              (R )
    PF2                      000f              (R )
    PF2Data                  f500              (R )
    PlayerBuffer             f00e              (R )
    PlayerGraphic            f17f              (R )
    PLAYERX                  001e              (R )
    PlayerY                  f00f              (R )
    PosObject                f014              (R )
    REFP0                    000b
    REFP1                    000c
    RESBL                    0014
    RESM0                    0012
    RESM1                    0013
    RESMP0                   0028
    RESMP1                   0029
    RESP0                    0010              (R )
    RESP1                    0011
    RSYNC                    0003
    ScanLoop                 f12f              (R )
    Score                    f010              (R )
    SkipActivatePlayer       f140              (R )
    SkipJetpack              f116              (R )
    Start                    f0dc              (R )
    SWACNT                   0281
    SWBCNT                   0283
    SWCHA                    0280
    SWCHB                    0282
    T1024T                   0297
    Temp                     f013              (R )
    TIA_BASE_ADDRESS         0000              (R )
    TIA_BASE_READ_ADDRESS    0000              (R )
    TIA_BASE_WRITE_ADDRESS   0000              (R )
    TIM1T                    0294
    TIM64T                   0296              (R )
    TIM8T                    0295
    TIMINT                   0285
    VBLANK                   0001              (R )
    VDELBL                   0027
    VDELP0                   0025
    VDELP1                   0026
    VERSION_MACRO            006a
    VERSION_VCS              0069
    VisiblePlayerLine        f00d              (R )
    VSYNC                    0000              (R )
    WaitForVblankEnd         f124              (R )
    WSYNC                    0002              (R )
    YELLOW                   001c              (R )
    --- End of Symbol List.
    --- Unresolved Symbol List
    NO_ILLEGAL_OPCODES       0000 ????         (R )
    --- 1 Unresolved Symbol
    
    
    Complete.
    
    
    

    I'm using DASM 2.20.11 20040304 if that helps. Any ideas on what the issue could be?


  7. Is there a tutorial or guide for displaying a 4 digit score, cause I tried searching the forums and couldn't find any tutorials. I looked for videos on youtube and also couldn't find any.

×
×
  • Create New...