Jump to content

Bmack36

Members
  • Posts

    1,133
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by Bmack36

  1.  

    3 hours ago, youxia said:

    Not sure who the poster is there, but I question their capabilities to create a core if they think the Mister and Phoenix CV cores are the same. I also like how he is concerned with Phoenix "taking others work and using it in their product" when that is the exact purpose of open source. Now it is completely different using open source code in a closed source project, but that is not the case.

  2. On 11/1/2021 at 5:08 PM, DuggerVideoGames said:

     

     

     

    My Q-Bertese is a little rusty, so I'm not sure if I said something about somebody's mother, or thank you.  Here it is in plain English:  THANK YOU!  And thank you for the kind compliments, but I still look up to you and Bmack as the best Colecovision players (you both excel in a wide variety of games).  There's a handful in our community better than me at some games (I tip my cap to you all).

     

    It was yet another fun season, and as always, it's been great sharing these experiences with you guys.  No matter how little we know one another, this is truly a community, and a fun one!  In addition to fun competition, I truly enjoy seeing everybody's scores and seeing improvements as we all post multiple scores in a thread; OriginalJohn had some mighty impressive scores this season.

    Congrats Dugger! Thanks for the nod. Sorry I couldn't participate this season, I started a new job in Jan and haven't had much extra time.

    • Like 2
  3. 1 hour ago, fieroluke said:

    I did add the following registers:

     

    0x50: Write AY3-8910 address register

    0x51: Write AY data

    0x52: Read AY data

    0x53: bit 1: 0 (default): A12 tied high for RAM mirroring

                      1: full RAM access from 2000-7FFF

    0x54: USB FIFO read data

    0x55: bit 1: 0 (default): 8000-ffff cartridge 

                       1: 8000-ffff upper 32K of 64 onboard (Bios) EPROM 

    0x7F: bit 1: 0: 0000-1FFF RAM

                      1 (default): 0000-1fff BIOS

     

    The two 8 bit ports of the AY have their own jumpers, so it’s possible to add e.g. a keyboard.

    Also there are sockets for GAL16V8 and 20V8 chips for even more playing.

     

     

     

    Just as a heads up, the following ports are used on the Phoenix, so if you are using these ports for different purposes it is possible for games to have some weird issues.

     

    -- Extended I/O Ports
      --
      -- Port CPU Data
      -- --------------
      -- >50 WWWWWWWW (W) WSG / SGM-PSG Address Write
      -- >51 WWWWWWWW (W) WSG / SGM-PSG Data Write
      -- >52 RRRRRRRR (R) WSG / SGM-PSG Data Read
      -- >53 xxxxxx_W (W) 0 = SGM disable, 1 = SGM enable
      -- xxxxxxW_ (W) 0 = SGM Sound AY-8910, 1 = SGM Sound SEX-7264
      --
      -- >54 xxxxWWWW (W) 32K RAM bank select, 0000 is ignored
      -- xxxxRRRR (R) current bank
      --
      -- >55 xxxxxxxx (R) Loader disable, PoR re-enabled ROM loader
      -- xx__xxWW (W) Banking scheme
      -- 00 None, physical cartridge, other bits ignored
      -- 01 MegaCart: bank is address access >FFC0+bank
      -- 10 SGM: Bank is data written to >FFFF
      -- 11 Atari: >FF80, >FF90, >FFA0, >FFB0 ???
      -- xxWWxx__ (W) Select the upper memory operation:
      -- 00 32K Upper Internal RAM, ignores bank scheme
      -- 01 32K Expansion ROM, uses bank scheme
      -- 10 32K Upper Expansion RAM, uses bank scheme
      -- 11 32K Cartridge ROM, ignores bank scheme
      --
      -- >56 xxxxxx_W (W) SD-card CE_n (AKA SS_n), 0=enable
      -- xxxxxxW_ (W) SD-card speed, 1=400KHz, 0=12MHz
      -- RxxxxxRR (R) SD-card card-detect, bit >80 1=card inserted
      --
      -- >57 WWWWWWWW (W) SD-card Data Write
      -- RRRRRRRR (R) SD-card Data Read
      --
      -- >58 00001000 (R) Machine ID, Phoenix = 8
      --
      -- >59 xxxWWWWW (W) MegaCart memory size
      -- other 512K
      -- 11111 512K, 32 16K-banks
      -- 01111 256K, 16 16K-banks
      -- 00111 128K, 8 16K-banks
      -- 00011 64K, 4 16K-banks
      -- 00001 32K, 2 16K-banks (same as original cart)
      --
      -- >7F xxxxxxWx (W) 0 = 8K SGM RAM, 1 = 8K CV BIOS
      --
    • Like 1
  4. So the issue appears to be that the controller initialization is referencing uninitialized RAM. Changes were made to Phoenix's initial RAM state so it would not have an issue with Risky Rick which looks for specific things in the uninitialized RAM like multiple 00s in a row. So the Phoenix initial ram state has some FFs in the ram.

     

    When you run these games through the Atarimax (which initializes all RAM to 00) the game runs as normal. If you hit the reset button on the Phoenix (returns ram to initial phoenix ram state), the problem comes back (Atarimax was not power cycled so ram was not initialized to 00s). 

     

    The conclusion then is there something wrong with reading in the initial controller state that is not properly initializing the controller ram space.

  5. 9 hours ago, Tony Cruise said:

    ;

    
    ; Set ROM header
               ORG        8000h
    ;** CARTRIDGE SOFTWARE POINTERS 8000H **
    ;        --------------------------------------------
    
    ;           DB       0AAh,055h       ;Cartridge present:  Colecovision logo
               DB       055h,0AAh       ;Cartridge present:  skip logo, Colecovision logo
               DW       0000           ;Pointer to the sprite name table
               DW       0000           ;Pointer to the sprite order table
               DW       0000           ;Pointer to the working buffer for WR_SPR_NM_TBL
               DW       CONTROLLER_BUFFER ;Pointer to the hand controller input areas
               DW       START      ;Entry point to the user program
    
    ;****************************************************************
    
    rst_8:
           reti
           nop
    rst_10:
           reti
           nop
    rst_18:
           JP    RAND_GEN
    rst_20:
           reti
           nop
    rst_28:
           reti
           nop
    rst_30:
           reti
           nop
    rst_38:
           reti
           nop
    
           jp NMI
    
            db "Lunar Rescue/ELECTRIC ADVENTURES/2021"
    ;
    ; Start of application logic
    START:
        ; set stack pointer
        LD    SP,StackTop    ;128 bytes in length at 737fh
    
        ; enable SGM memory if present
        CALL ENABLE_SGM_MEMORY
    
        ; Initialise sound
        LD    B,SoundDataCount    ;Max number of active voices+effects
        LD    HL,SoundAddrs
        CALL    SOUND_INIT
    
        ; initialise clock
        LD    HL,TIMER_TABLE
        LD    DE,TIMER_DATA_BLOCK
        CALL INIT_TIMER
    
        CALL INITRAM
    
        ; Set screen mode 2,2
        CALL SETSCREEN2
    
        ;Enable both joysticks, buttons, keypads
        LD    HL,09b9bh
        LD    (CONTROLLER_BUFFER),HL
    
        ; Seed random numbers with a fixed number (nothing else to use?)
        LD HL,1967
        CALL SEED_RANDOM
    
        ;Enable timers
        CALL CREATE_TIMERS
    
        ; Do all our VRAM setup
        ; NMI is currently disabled
    
    TITLESCREEN:
        ; display our title screen
        CALL DISABLE_NMI
        ; Clear the screen
        CALL CLEARPAT
    
        ; Clean up in case the game left anything on screen
        CALL CLEARSPRITES
        CALL SPRWRT
    
        ; Load the character set, make all three sections the same
        CALL LOAD_CHR_SET
    
        ; now setup the title screen layout
        LD DE,VRAM_NAME
        LD HL,SL_TITLE_D1
        CALL dan1rvram;RLE_TO_VRAM
    
        CALL DISPLAYMACHINE
    
        CALL HISPRT
    
        CALL JOYTST ; clear joystick buffer
           LD HL,OUTPUT_VDP_TITLE
        CALL SET_VDU_HOOK
        CALL ENABLE_NMI
        LD A,15
        LD (LEVEL),A
    SPLASH_TITLE2:
        CALL JOYTST
        CP 255
        JR Z,NGAME
        LD    A,(HalfSecTimer)
        CALL    TEST_SIGNAL
        OR    A
        JR Z,SPLASH_TITLE2
        ; Any other actions on the title screen go here
        JR SPLASH_TITLE2
    
    NGAME:

     

    
    ;
    ; Test for the press of a joystick button (0 or 1)
    ; A = 255 - fire button pressed
    JOYTST:
        CALL POLLER
    	LD	A,(CONTROLLER_BUFFER+FIRE1)
        OR A
        JR Z,JOYTST2
        LD A,255
        RET
     JOYTST2:
        LD A,(CONTROLLER_BUFFER+5)
        AND 040h
        RET Z
        LD A,255
        RET

    That's all pretty standard code.  There are other games that are effected e.g. A.E. has been mentioned as well.

    Is the INITRAM a BIOS routine or a separate function? If so can you say what is it doing. 

  6. Although there may be some difference in the firmware, the fact that no other games, official or homebrew, other then EA games show this issue makes me think something is being done differently in the controller initialization code. Since the game works properly once a button is pressed it isn't an issue with reading the controller in general and just an initialization issue.

     

    What we know:

    -On bootup on a Rev 8 firmware there are no controller buttons actuated (ie no inputs/no buttons depressed) when running controller test roms

    -No other games display a controller press when booting up

    -When loading Cavern fighter the game appears to think a button is pressed

    -The game correctly identifies and reacts when the button is actually pressed and starts working correctly afterwards even through a new game

    -This would lead me to think something is happening in the controller initialization that is different then any other game.

     

    If we can find out what this difference in initialization implementation is, we can determine what in the firmware would affect this initialization code.

  7. 7 minutes ago, xdurable said:

    So I added the Ver 8 core to my Gen1 Phoenix ( works with my monitor) ( Core 4 slot ) - Cavern Fighter auto starts same behavior as on the 2nd Gen Phoenix ( Core Ver 8 )  - upon losing all lives - the Start screen flashes for a moment and the game starts again ... seems from my limited testing using Cavern Fighter and Electric Adventures CLASSICS - both from Tony they have the same behavior on the Ver 8 Core. but both work fine on the Ver 7 core.

     

     

    Brian - can the Ver 7 core be used on the 2nd Gen Phoenix  ?

    No you can't use anything before Ver 8 on 2nd Gen as the video interface is different.

×
×
  • Create New...