Jump to content

Photo

Flashback Portable: Needed Controller Hacks


287 replies to this topic

#1 doctorclu OFFLINE  

doctorclu

    ******Blue Max****** *****Class 4***** **Moon Master**

  • 6,863 posts
  • Captain - Class 2
  • Location:Dallas, TX - U.S.A.

Posted Sat Nov 19, 2016 1:36 PM

Games Hacked to work on the Atari Flashback Portable.

 

Star Raiders 2600 - (By Nukey Shay)

Tapper - (By Nukey Shay)

BudTapper - (By Nukey Shay)

Acid Drop - (By Thomas Jentzsch)

Custer (portable)   - (By Nukey Shay)
Enduro (portable)   - (By Nukey Shay)
Jawbreaker (portable)  - (By Nukey Shay)
Lochjaw (portable) - (By Nukey Shay)
Marauder (portable)  - (By Nukey Shay)
Sharkattack (portable) - (By Nukey Shay)
Squeezebox (portable)  - (By Nukey Shay)
Wordsattack (portable)  - (By Nukey Shay)

Pac-Man 4K 1_3 - (By Debro)

Defender 2 - (By Nukey Shay)

Fix It Felix - (By Cybearg)

Raiders of the Lost Ark - (By Nukey Shay)

Circus (Circus Atari w/ a Joystick) - (By Zellers (Company)

Bloody Human Freeway - (By Nukey Shay)

Freeway - (By Nukey Shay) (first two player game on the AFP!)

Nackgammon (portable) - (By Nukey Shay)

Defender arcade (portable) - (By Nukey Shay)

Asteroids (alternate control) - (By Nukey Shay)

Spyhunter (portable) - (By Nukey Shay)

Star Trek (portable) - (By Nukey Shay)

Beamrider (portable) - (By Nukey Shay)

Beat'em and eat'em (portable) - (By Nukey Shay)

Spy Hunter (Black) - (By Nukey Shay with color mod by KevinMos3)

Spy Hunter (Gray)  - (By Nukey Shay with color mod by KevinMos3)

Berzerk - (opening screen modified for Flashback by KevinMos3 w/Nukey Shay fix)

Berzerk (fixed for Portable) - (By Nukey Shay)

Berzerk 2player (portable) - (By Nukey Shay)

Bumperbash (portable) - (By Nukey Shay)

Towering Inferno (portable) - (By Nukey Shay)

Wizard of Wor (controller order change) - (By Nukey Shay)

Gauntlet (other buttons hack) - (By Nukey Shay)

DarkChambers (Other buttons hack) - (By KevinMos3)

Wizard of Wor 16K [includes CBS version by pushing up on dpad at startup] - (By Nukey Shay)

Yahtzee (portable) - (By Nukey Shay)

DK VCS (portable) - (By Nukey Shay)

WestWorld (portable) - (w/ Berzerk fix by Nukey Shay and graphical hack by KevinMos3)

WestWorld Turbo - (w/ Berzerk fix by Nukey Shay and graphical hack by KevinMos3)

Berzerk Turbo (portable) - (w/ Berzerk fix by Nukey Shay and graphical hack by KevinMos3)

Yahtzee with big dice - (By Nukey Shay)

 

 

Games already made useful on the FBP through controller hacks (and my inspiration for this thread)

* Big Bird's Egg Catch - from kid's controller to joystick. - (By OmegaMatrix)

* Holey Moley - from kid's controller to joystick. - (By OmegaMatrix)

* Cookie Monster Munch - from kid's controller to joystick. (By OmegaMatrix)

* Omega Race joystick hack - (By Thomas Jentzsch)

 

 

(THE ORIGINAL PITCH THAT STARTED THIS MESSAGE THREAD)

-------------------------------------------------------------------------------------------------

post-4709-0-45339500-1479338060.jpg

 

Even though the Flashback Portable (with the SD card support) is not out in stores till early next month, some of us have ordered one online and are seeing which games work on the little handheld.

 

As a list of hundreds of games are being tested and the results listed, some games break due to special hardware tricks, but most of the non-working games are from the D-pad design and emulation problems.  But this thread is not about that...yet.  :)

 

This thread is making some adjustments to games to help them work better with an Atari system with only one dpad controller and no other controller options.

 

For those up for a challenge or just showing off, here are some games that could use a slight adjustment to make an awesome game on the Flashback Portable (FBP)

 

1) Wizard of Wor:  reassigning controller 2 to controller 1.  It was wild how they made that game making the first player use the second joystick.   At the moment you have to select a two player game to get this to work so that player two gets the FBP's only controller.   Re-assigning player one to joystick 1 instead of the second joystick will just make this experience better.

 

Atari 2600 Star Raiders Overlay.jpg

 

2) Star Raiders :  Brought this one up, was sad that there was not a keyboard controller.  Then I played Star Master and was inspired on how they brought up a galactic map with the select switch.

 

On the FBP they give you six buttons.  So you have fire of course, then L and R difficulty (two buttons that I know can use used during gameplay), the TV option switch (not sure if anyone has ever used this switch during gameplay) and the select switch (which we know Star Master used.)

 

If someone is up for a challenge, or walking me through a challenge but I'll admit it would be a bit of walking :P what if we used difficulty L (on) for shield on Difficulty L (off) for shield off [since this was a two position switch.   R Difficult on for Fore View, R Difficulty off for Galactic Map, and then select of the TV select switch for hyperspace?   (The sixth button is the pause button which would probably not help us in this case being more hardware/emulator effect than a in game effect.)


Edited by doctorclu, Thu Feb 9, 2017 6:29 AM.


#2 atwwong OFFLINE  

atwwong

    Stargunner

  • 1,165 posts
  • Haunted Adventurer
  • Location:Vancouver

Posted Sat Nov 19, 2016 2:41 PM

I don't have my portable yet, so I can't test this awesome Wizard of War hack that is 16k and allows you to select the left joystick for player one:

 

http://atariage.com/...10#entry3181547

 

I believe there is a 4k hack elsewhere; I just haven't search for it yet. (Still can't find it... Just the supercharger conversion by Nukey that starts with 2 player mode.)


Edited by atwwong, Sat Nov 19, 2016 2:54 PM.


#3 doctorclu OFFLINE  

doctorclu

    ******Blue Max****** *****Class 4***** **Moon Master**

  • Topic Starter
  • 6,863 posts
  • Captain - Class 2
  • Location:Dallas, TX - U.S.A.

Posted Sat Nov 19, 2016 5:14 PM

That version of Wizard of Wor works pretty good on the FBP and I added that to the list of alternatives for it.

 

 



#4 SpiceWare ONLINE  

SpiceWare

    Quadrunner

  • 10,570 posts
  • Medieval Mayhem
  • Location:Planet Houston

Posted Sat Nov 19, 2016 6:13 PM

1) Wizard of Wor:  ... It was wild how they made that game making the first player use the second joystick.

That makes it arcade accurate

Player one has yellow Worriors, on the right, and player two has blue Worriors, on the left.



#5 doctorclu OFFLINE  

doctorclu

    ******Blue Max****** *****Class 4***** **Moon Master**

  • Topic Starter
  • 6,863 posts
  • Captain - Class 2
  • Location:Dallas, TX - U.S.A.

Posted Sat Nov 19, 2016 6:56 PM

That makes it arcade accurate
 

 

I've played this game in the arcade, and I've played this game on the 2600 and 800 computer. 

Having the 1st player on joystick 2 just makes it a pain in the butt.  More so if you're on a game system like the FBP that only has joystick 1.



#6 SpiceWare ONLINE  

SpiceWare

    Quadrunner

  • 10,570 posts
  • Medieval Mayhem
  • Location:Planet Houston

Posted Sun Nov 20, 2016 7:29 AM

Having the 1st player on joystick 2 just makes it a pain in the butt.


Don't disagree, I just don't consider it "wild" that they would strive to make the game more arcade accurate after the backlash to Pac Man that occurred the year before.

#7 doctorclu OFFLINE  

doctorclu

    ******Blue Max****** *****Class 4***** **Moon Master**

  • Topic Starter
  • 6,863 posts
  • Captain - Class 2
  • Location:Dallas, TX - U.S.A.

Posted Wed Nov 23, 2016 8:16 AM


If someone is up for a challenge, or walking me through a challenge but I'll admit it would be a bit of walking :P what if we used difficulty L (on) for shield on Difficulty L (off) for shield off [since this was a two position switch.   R Difficult on for Fore View, R Difficulty off for Galactic Map, and then select of the TV select switch for hyperspace?   (The sixth button is the pause button which would probably not help us in this case being more hardware/emulator effect than a in game effect.)

 

Looks like I have some decompiling, recoding, and re-compiling to do to get Star Raiders working on the Atari Flashback Portable.  (AFP)

 

I found the tools for decompiling.   I need some examples of the code for using the following buttons to effect gameplay, can someone point me to some good links?

 

* The difficulty switches.

* The color select switch

* The select switch.


Edited by doctorclu, Wed Nov 23, 2016 8:16 AM.


#8 doctorclu OFFLINE  

doctorclu

    ******Blue Max****** *****Class 4***** **Moon Master**

  • Topic Starter
  • 6,863 posts
  • Captain - Class 2
  • Location:Dallas, TX - U.S.A.

Posted Wed Nov 23, 2016 5:59 PM

Looks like we have an example of the black and white/color switch code here:

 

http://atariage.com/...r/#entry1982434



#9 SpiceWare ONLINE  

SpiceWare

    Quadrunner

  • 10,570 posts
  • Medieval Mayhem
  • Location:Planet Houston

Posted Thu Nov 24, 2016 9:41 AM

I need some examples of the code for using the following buttons to effect gameplay, can someone point me to some good links?
 
* The difficulty switches.
* The color select switch
* The select switch.


TV Type, Select and Reset are shown in my Collect series, which is probably amongst the most thoroughly commented 2600 code you'll ever find. I suggest going through the entire series, starting with Let's Make a Game!, but if you don't wish to then check at least these:

All of those switches are read via the same register, SWCHB.
Screen Shot 2016-11-24 at 9.28.21 AM.png
 
While the programming documentation shows difficulty switch positions as amateur (B) and pro (A), I refer to them as beginner (B) and advanced (A).
 
I didn't use the difficulty switches in Collect, but you'll find that they're typically checked using the BIT instruction because it moves bit 6 into V (overflow flag) and bit 7 into N/S which makes it very easy to check them.  N/S = negative/sign - some documentation uses N for negative, other documentation uses S for sign.  They both mean exactly the same thing, it's just something to be aware of - Stella uses N:
 Screen Shot 2016-11-24 at 9.24.20 AM.png
 

CheckLeftDifficulty:
    bit SWCHB
    bvs LeftDifficultyA
LeftDifficultyB:
    ; do left difficulty B here
    jmp DoneLeftDifficulty
LeftDifficultyA:
    ; do left difficulty A here
DoneLeftDifficulty:
 
CheckRightDifficulty:
    bit SWCHB
    bmi RightDifficultyA
RightDifficultyB:
    ; do right difficulty B here
    jmp DoneRightDifficulty
RightDifficultyA:
    ; do right difficulty A here
DoneRightDifficulty:

 
The branch can also be done the other way:

CheckLeftDifficulty:
    bit SWCHB
    bvc LeftDifficultyB
LeftDifficultyA:
    ; do left difficulty A here
    jmp DoneLeftDifficulty
LeftDifficultyB:
    ; do left difficulty B here
DoneLeftDifficulty:
 
CheckRightDifficulty:
    bit SWCHB
    bpl RightDifficultyB
RightDifficultyA:
    ; do right difficulty A here
    jmp DoneRightDifficulty
RightDifficultyB:
    ; do right difficulty B here
DoneRightDifficulty:

 
When reviewing the Stella Programmer's Guide you may notice the TIA read registers are also wired up to use bits 6 and 7, which was done so they could easily be tested via the BIT instruction.
Screen Shot 2016-11-24 at 9.38.42 AM.png



#10 doctorclu OFFLINE  

doctorclu

    ******Blue Max****** *****Class 4***** **Moon Master**

  • Topic Starter
  • 6,863 posts
  • Captain - Class 2
  • Location:Dallas, TX - U.S.A.

Posted Thu Nov 24, 2016 12:01 PM

Oh this is awesome info!   Now to plug this in after Thanksgiving.

 

So do we have examples of the keyboard controller code?  :D



#11 SpiceWare ONLINE  

SpiceWare

    Quadrunner

  • 10,570 posts
  • Medieval Mayhem
  • Location:Planet Houston

Posted Thu Nov 24, 2016 3:12 PM

So do we have examples of the keyboard controller code?  :D


http://www.spiceware.../dds/index.html

#12 Asaki OFFLINE  

Asaki

    Stargunner

  • 1,914 posts

Posted Fri Nov 25, 2016 1:10 AM

I'm going to have to keep an eye on this thread, good luck guys.

BTW, Outlaw does have game modes that are 1-player, although they aren't very exciting =)

Edited by Asaki, Fri Nov 25, 2016 1:15 AM.


#13 doctorclu OFFLINE  

doctorclu

    ******Blue Max****** *****Class 4***** **Moon Master**

  • Topic Starter
  • 6,863 posts
  • Captain - Class 2
  • Location:Dallas, TX - U.S.A.

Posted Thu Dec 8, 2016 6:32 AM

Just wanted to say thanks for the advice.  Currently I'm trying to figure out Distella to disassemble the roms.  Figure it would be fairly cut and dry, and it probably is, but I've got it figure out which subcommands I need to get the rom to disassemeble.  Would appreciate any pointers to the following...

 

Here is what I get so far when trying to disassmble the Star Raiders rom:

 

Use: DiStella [options] file
 options:
   -7  Use Atari 7800 MARIA equates and file sizes
   -a  Turns 'A' off in accumulator instructions
   -c  Defines optional config file to use.  (e.g. -cpacman.cfg)
         (see distella.txt for additional information)
   -d  Disables automatic code determination
   -f  Forces correct address length
   -i  Process DMA interrupt Vector (7800 mode)
       If 2600 mode, enables -b option
   -b  Process BRK interrupt Vector (2600 and 7800 mode)
   -k  Enable POKEY equates (7800 mode only, auto-detected if a78 file)
   -o# ORG variation: # = 1- ORG $XXXX  2- *=$XXXX  3- .OR $XXXX
   -p  Insert psuedo-mnemonic 'processor 6502'
   -r  Relocate calls out of address range
   -s  Cycle count

 Example: DiStella -pafs pacman.bin > pacman.s
 Example: DiStella -paf7ikscball.cfg ballblaz.bin > ballblaz.asm

 Email: rcolbert@novia.net or dboris@comcast.net
        Version 3.0 updates, email jkharvey@voyager.net
        Version 3.01+ updates, email stephena@users.sf.net
>distella -pafs Raiders.bin
Error: .bin file must be 2048 or 4096 bytes
 for 2600 games; For 7800 games, .bin file must be
 16384, 32768 or 49152 bytes (+128 bytes if header appended)
 Also, the -7 option must be set or unset appropriately

 



#14 Asaki OFFLINE  

Asaki

    Stargunner

  • 1,914 posts

Posted Thu Dec 8, 2016 7:16 AM

Can you just pad the ROM?

Edit: Nevermind, I see Star Raiders is 8192 bytes. I guess the program won't do files that large?

Edited by Asaki, Thu Dec 8, 2016 7:18 AM.


#15 SpiceWare ONLINE  

SpiceWare

    Quadrunner

  • 10,570 posts
  • Medieval Mayhem
  • Location:Planet Houston

Posted Thu Dec 8, 2016 10:43 AM

You have to split the Star Raiders ROM into the separate 4K banks, then run each bank thru Distella.  However, the jumps between banks means distella can't follow the program flow, so it won't be able to easily differentiate between code and data.  Nukey Shay goes into detail on how he handles that in this topic:

http://atariage.com/...tari-2600-games

 

Stella has a built in version of Distella, use the savedis command at the prompt, but likewise it only supports 4K or smaller ROMs.

Screen Shot 2016-12-08 at 9.51.37 AM.png

 

Stella's version is really good for the ROMs it supports though.  Best practice is to run the game for a while, making sure to see/do everything you can, and only then use savedis.  The process of running the game allows Stella to determine which parts of the program are code and which parts are data.  Additionally, it will know which parts of the data are used as graphic data for the players or playfield and will output them in a different format than regular data.  In this screenshot:

  • top-left = legend
  • bottom-left = the * denotes code that hasn't been executed by Stella
  • top-right = the (D) denotes data that hasn't been used1 for player or playfield
  • middle-right = the (G) denotes data used as graphics for a player (the castle gate)
  • bottom-right = the (P) denotes data used as graphics for the playfield

Screen Shot 2016-12-08 at 9.58.59 AM.png

 

1 it's still possible this data is for players or playfield, just that it hasn't yet been used for that purpose.



#16 toiletunes OFFLINE  

toiletunes

    River Patroller

  • 2,780 posts
  • Hater Brigader
  • Location:Salem, Mo 65560 USA

Posted Thu Dec 8, 2016 10:51 AM

Star Ship and Towering Inferno use the other joystick



#17 doctorclu OFFLINE  

doctorclu

    ******Blue Max****** *****Class 4***** **Moon Master**

  • Topic Starter
  • 6,863 posts
  • Captain - Class 2
  • Location:Dallas, TX - U.S.A.

Posted Thu Dec 8, 2016 5:57 PM

Speaking of Nukey Shay I found this from six years ago about Star Raiders disassembly...

 

http://www.gamefaqs....aiders/52705745

 

"Star Raiders

;First 4k segment---

ORG D000
DATA D000 D12A
CODE D12B D3BF
DATA D3C0 D60C
CODE D60D D639
DATA D63A DFF1
CODE DFF2 DFF7
DATA DFF8 DFFF

;Second 4k segment---

ORG F000
DATA F000 F09D
CODE F09C FD98
DATA FD99 FFE9
CODE FFEA FFF7
DATA FFF8 FFFF



Note: the program uses interlaced graphics for moving objects. Every other scanline's data is grabbed 134 bytes away from the rest of the shape's data. Also, much of the first segment's romspace...$D63A-$DFF1...is completely unused. Had Atari taken a bit more time optimizing the code, they may have been able to use 4k chips for production. Surprising how many games wasted money like this (including Asteroids, their first ever bankswitched game)."



#18 doctorclu OFFLINE  

doctorclu

    ******Blue Max****** *****Class 4***** **Moon Master**

  • Topic Starter
  • 6,863 posts
  • Captain - Class 2
  • Location:Dallas, TX - U.S.A.

Posted Thu Dec 8, 2016 6:57 PM

I have to be honest, the decompiled rom I don't see how anyone can make heads or tails of that.  It's not source code but more data output.  Any pointers?



#19 SpiceWare ONLINE  

SpiceWare

    Quadrunner

  • 10,570 posts
  • Medieval Mayhem
  • Location:Planet Houston

Posted Fri Dec 9, 2016 10:16 AM

If he posted that it's likely he also posted the source at some point :ponder:

 

<searching>

 

reply #3

 

and now I know Nukey's real name ;)



#20 Dave Neuman OFFLINE  

Dave Neuman

    Chopper Commander

  • 128 posts
  • Location:Riverview, Michigan

Posted Sat Dec 10, 2016 5:32 PM

If he posted that it's likely he also posted the source at some point :ponder:

 

<searching>

 

reply #3

 

and now I know Nukey's real name ;)

Howe do you know that? :)



#21 SpiceWare ONLINE  

SpiceWare

    Quadrunner

  • 10,570 posts
  • Medieval Mayhem
  • Location:Planet Houston

Posted Sun Dec 11, 2016 9:29 AM

<obi-wan>Use the Source Dave</obi-wan>



#22 Nukey Shay OFFLINE  

Nukey Shay

    Sheik Yerbouti

  • 21,509 posts
  • Location:The land of Gorch

Posted Sat Dec 17, 2016 10:51 AM

Regarding Star Raiders difficulty switch reassignments: How would you then handle auto/manual modes for the attack computer and shields? Via added game selections? BTW these are the program areas you'd need to change for button reassignments.
LF1DB:
       bit    SWCHB ;4
       bpl    LF1F2 ;2 skip ahead if auto shields
       lda    $EE   ;3
       and    #$1F  ;2
       bne    LF1F2 ;2
       lda    $DB   ;3
       bit    INPT3 ;3
       bmi    LF1F2 ;2 branch if shields button not pressed
       eor    #$80  ;2
       sta    $DB   ;3
       bne    LF207 ;2
LF1F2:
       bit    SWCHB ;4
       bvc    LF207 ;2 skip ahead if auto computer
       lda    $EE   ;3
       and    #$1F  ;2
       bne    LF207 ;2
       lda    $DB   ;3
       bit    INPT2 ;3
       bmi    LF207 ;2 branch if computer button not pressed
       eor    #$40  ;2
       sta    $DB   ;3
LF207:
LF29B:
       jsr    LFD90 ;6
       bit    INPT5 ;3
       bmi    LF2A5 ;2 branch if hyperwarp button not pressed
       jsr    LFB04 ;6
LF2A5:
       bit    $FB   ;3
       bmi    LF2F2 ;2
       jsr    LFD90 ;6
       bit    INPT2 ;3
       bmi    LF2B6 ;2 branch if fore view not pressed
       lda    $FB   ;3
       and    #$FB  ;2
       sta    $FB   ;3
LF2B6:
       sta    WSYNC ;3
       bit    INPT3 ;3
       bmi    LF2C2 ;2 branch if map button not pressed
       lda    $FB   ;3
       ora    #$04  ;2
       sta    $FB   ;3
LF2C2:


#23 Nukey Shay OFFLINE  

Nukey Shay

    Sheik Yerbouti

  • 21,509 posts
  • Location:The land of Gorch

Posted Sat Dec 17, 2016 6:47 PM

WIP...needs some fixing (as well as 7800 support, and auto modes via game select).  Spared a byte of ram by eliminating the indirect jump ($FC).  I did get hyperwarp to be set to the stick button when the map is shown, tho :)

Attached Files



#24 doctorclu OFFLINE  

doctorclu

    ******Blue Max****** *****Class 4***** **Moon Master**

  • Topic Starter
  • 6,863 posts
  • Captain - Class 2
  • Location:Dallas, TX - U.S.A.

Posted Sat Dec 31, 2016 12:58 PM

WIP...needs some fixing (as well as 7800 support, and auto modes via game select).  Spared a byte of ram by eliminating the indirect jump ($FC).  I did get hyperwarp to be set to the stick button when the map is shown, tho :)

 

YESSSS!!!!   I still would like to learn how you did this on the 8K game.  Most of the decompilers I looked into were 4K. 

 

Trying out the rom now.



#25 Nukey Shay OFFLINE  

Nukey Shay

    Sheik Yerbouti

  • 21,509 posts
  • Location:The land of Gorch

Posted Sat Dec 31, 2016 1:15 PM

They work with 4k because that is the most ROM memory that the console is able to work with (due to the 13-bit address line of the 6507). So you need to split larger games into separate chunks and do them individually. The size of each chunk depends on which banking scheme the ROM employed (2 parts of 4k each in this case). The act of switching from one bank to another means that the auto code detection of Distella will fail in areas that use it, so configuration files must be created as you discover the code and data sections to aid in disassembly (playing a game for a while in Stella and then checking the debugger can help here...it'll figure out those sections on its own as the program runs).




0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users