Jump to content

Photo

Another F6 bankswitching conversion...


42 replies to this topic

#1 Thomas Jentzsch OFFLINE  

Thomas Jentzsch

    Thrust, Jammed, SWOOPS!, Boulder Dash, THREE·S, Star Castle

  • 23,086 posts
  • Always left from right here!
  • Location:Düsseldorf, Germany, Europe, Earth

Posted Tue Jun 8, 2004 2:16 PM

Montezuma's Revenge

:idea: The archive contains NTSC and PAL binaries which should work with standard 16K boards.

Attached Files



#2 DEBRO OFFLINE  

DEBRO

    Stargunner

  • 1,937 posts
  • Location:Atlanta, GA

Posted Tue Jun 8, 2004 2:17 PM

Montezuma's Revenge

:idea: The archive contains NTSC and PAL binaries which should work with standard 16K boards.

What no source?

#3 Thomas Jentzsch OFFLINE  

Thomas Jentzsch

    Thrust, Jammed, SWOOPS!, Boulder Dash, THREE·S, Star Castle

  • Topic Starter
  • 23,086 posts
  • Always left from right here!
  • Location:Düsseldorf, Germany, Europe, Earth

Posted Tue Jun 8, 2004 2:31 PM

What no source?

There is no source, I just analyze the z26 tracefile for bankswitching and used slice combination and then patch the ROM.

#4 Susuwatari OFFLINE  

Susuwatari

    River Patroller

  • 2,701 posts
  • Location:Now in Ann Arbor, MI

Posted Wed Jun 9, 2004 12:25 AM

One down, about 100 more 8K non F8 games to hack... :D

Thanks, I've been itching to play one on the real 2600 and the cart usually sells for too much on eBay.

#5 Thomas Jentzsch OFFLINE  

Thomas Jentzsch

    Thrust, Jammed, SWOOPS!, Boulder Dash, THREE·S, Star Castle

  • Topic Starter
  • 23,086 posts
  • Always left from right here!
  • Location:Düsseldorf, Germany, Europe, Earth

Posted Wed Jun 9, 2004 1:45 AM

[quote name='Susuwatari]One down' date=' about 100 more 8K non F8 games to hack... :D[/quote']
I don't know where you got that high number. Unfortunately many different bankswitchings can not be converted that easily or not at all. Especially any extra RAM game is currently impossible.

But I'll work on some more Parker games when time permits.

BTW: The conversions hasn't been tested on real hardware yet. So if anybody does it, please report your results. Thanks :!:

#6 bjk7382 OFFLINE  

bjk7382

    River Patroller

  • 4,579 posts
  • Location:Michigan

Posted Wed Jun 9, 2004 2:01 AM

[quote name='Thomas Jentzsch]BTW: The conversions hasn't been tested on real hardware yet. So if anybody does it' date=' please report your results. Thanks :!:[/quote']

Works good for me. I am no good at the game (and don't care for it either) but it worked as far as I could see. I only got 3500 points, so I didn't get very far :D

#7 Gregory DG OFFLINE  

Gregory DG

    TAT IS BACK!

  • 11,235 posts
  • Go Cardinals!
  • Location:Winter Haven, FL

Posted Wed Jun 9, 2004 8:34 AM

Why did this one need to be hacked anyway? I have the other version on my CC2 and it works fine. It also worked with Z26...

#8 Thomas Jentzsch OFFLINE  

Thomas Jentzsch

    Thrust, Jammed, SWOOPS!, Boulder Dash, THREE·S, Star Castle

  • Topic Starter
  • 23,086 posts
  • Always left from right here!
  • Location:Düsseldorf, Germany, Europe, Earth

Posted Wed Jun 9, 2004 8:39 AM

Why did this one need to be hacked anyway?

Carts? :ponder: :)

#9 Bruce Tomlin OFFLINE  

Bruce Tomlin

    River Patroller

  • 3,602 posts
  • CD C9 01
  • Location:San Antonio, TX

Posted Wed Jun 9, 2004 8:44 AM

I've got a halfway commented disassembly I've been working on. I regularly check that it generates a binary that matches the original 8KPB ROM. I'll try to clean it up and post it here since I haven't worked on it for at least a week.

Most of what I haven't got commented is the game logic code. The display kernals were the easy part.

#10 Dav OFFLINE  

Dav

    Moonsweeper

  • 353 posts

Posted Wed Jun 9, 2004 11:21 AM

What no source?

There is no source, I just analyze the z26 tracefile for bankswitching and used slice combination and then patch the ROM.


I've been playing with the mess source code. I have it outputting the bank and pc for all bankswitching to the error log. Then a vb program compiles this and automatically builds a rom and a list of pc that bankswitch to each bank. The next step is for the vb program to patch the new rom but I haven't gotten that far yet. The problem is I ended up with an F4 rom not an F6 so I got discouraged. I think it might be easier to build a pb cart that to convert them automatically.

#11 jsoper OFFLINE  

jsoper

    Stargunner

  • 1,527 posts
  • Location:San Jose Ca

Posted Wed Jun 9, 2004 11:23 AM

I've got a halfway commented disassembly I've been working on.

Wow, all that disassembly stuff always blows me away. Having a huge file of bits and trying to figure out which ones are code and which ones are data just seems impossible

#12 Thomas Jentzsch OFFLINE  

Thomas Jentzsch

    Thrust, Jammed, SWOOPS!, Boulder Dash, THREE·S, Star Castle

  • Topic Starter
  • 23,086 posts
  • Always left from right here!
  • Location:Düsseldorf, Germany, Europe, Earth

Posted Wed Jun 9, 2004 12:49 PM

I have it outputting the bank and pc for all bankswitching to the error log. Then a vb program compiles this and automatically builds a rom and a list of pc that bankswitch to each bank.

That's about the same that I did with my Pascal program. I recorded all 1K slice accesses between two bankswitchings, here is how the result for Montezuma's Revenge it looks like:
slice

0 1 2

-------

- - -  fcef  fcf2  fcfb  fcfe

 0 - -  fcf5

 3 - -  fd18  fd07  fd12

 4 - -  fd01

 0 1 -  fd1e

 0 - 2  fcf5

 - 1 2  fd28

 0 1 2  fd1e  fcf5

 - - 6  fd22

 4 5 6  fd01
As you can see, there are quite a few switches after which only a few slices are accessed, so it doesn't matter what's inside the other ones. Therefore I could reduce the slice combinations to:
0 1 2  fd1e  fcf5  fd28

 3 - -  fd18  fd07  fd12

 4 5 6  fd01  fd22
So actually I only needed 12K this time. :)

#13 Dav OFFLINE  

Dav

    Moonsweeper

  • 353 posts

Posted Wed Jun 9, 2004 1:17 PM

I haven't figured out how to get mess to tell me what slices were accessed. Well actually I have,I made a new read handler, what I haven't figured out is how to get it to return the value fetched from the rom as well as a used flag.

My C is a little rusty.

#14 Thomas Jentzsch OFFLINE  

Thomas Jentzsch

    Thrust, Jammed, SWOOPS!, Boulder Dash, THREE·S, Star Castle

  • Topic Starter
  • 23,086 posts
  • Always left from right here!
  • Location:Düsseldorf, Germany, Europe, Earth

Posted Wed Jun 9, 2004 2:22 PM

[quote name='Dav]Well actually I have' date='I made a new read handler, what I haven't figured out is how to get it to return the value fetched from the rom as well as a used flag.[/quote']
Why do you need the flags or the value? All you need are the code addresses and the data addresses accessed by the code.

#15 Bruce Tomlin OFFLINE  

Bruce Tomlin

    River Patroller

  • 3,602 posts
  • CD C9 01
  • Location:San Antonio, TX

Posted Wed Jun 9, 2004 2:51 PM

I've got a halfway commented disassembly I've been working on.

Wow, all that disassembly stuff always blows me away. Having a huge file of bits and trying to figure out which ones are code and which ones are data just seems impossible

You just need a code-tracing disassembler and a little practice on what looks like code and what doesn't, and keep re-running the disassembler until you've found everything. It's figuring out what the code actually does that's the hard part.

#16 Dav OFFLINE  

Dav

    Moonsweeper

  • 353 posts

Posted Wed Jun 9, 2004 2:58 PM

It's the read handler for the cpu, it normally just reads the rom and sends the value to the cpu. What I was trying to do was have it set a flag if it actually read from each slice. I'm trying to reduce the data to look at, I don't wan to log every read.

currently the log looks like this. Gyruss BTW


           PC     slice    bank 1 2 3      

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

Bank   PC fca2   Set 3 = 6;    0 0 6     

Bank   PC fca5   Set 2 = 5;    0 5 6 Cons

Bank   PC fdb8   Set 1 = 3;    3 5 6     

Bank   PC fdca   Set 1 = 0;    0 5 6     

Bank   PC fdf0   Set 1 = 3;    3 5 6     

Bank   PC fdfc   Set 1 = 0;    0 5 6     

Bank   PC fd5d   Set 2 = 1;    0 1 6     

Bank   PC fd60   Set 3 = 2;    0 1 2 Cons

Bank   PC fd66   Set 2 = 5;    0 5 2     

Bank   PC fd69   Set 3 = 6;    0 5 6 Cons

Bank   PC fcdc   Set 1 = 3;    3 5 6     


So far I know to ignore combinations if they are banked consecutively. The ones with short gaps could probably be ignored but I want mess to sort that out for me, by clearing read flags for each slice every time there is a bank and setting them if a slice was used. I was able to make it do that but in the process it quit sending the fetched values to the cpu and the game no longer ran.

I'm not really that good with C, I can usually get by but it seems the a2600 driver is too much for me. If I can figure that out then the process pretty much becomes automatic.

#17 Bruce Tomlin OFFLINE  

Bruce Tomlin

    River Patroller

  • 3,602 posts
  • CD C9 01
  • Location:San Antonio, TX

Posted Wed Jun 9, 2004 3:02 PM

Okay, here it is.

Attached Files



#18 Bruce Tomlin OFFLINE  

Bruce Tomlin

    River Patroller

  • 3,602 posts
  • CD C9 01
  • Location:San Antonio, TX

Posted Wed Jun 9, 2004 3:04 PM

Those of you following along with the home game might want this too. It's esentially the same as stella.h but it's the one that I used with this.

Attached Files



#19 Thomas Jentzsch OFFLINE  

Thomas Jentzsch

    Thrust, Jammed, SWOOPS!, Boulder Dash, THREE·S, Star Castle

  • Topic Starter
  • 23,086 posts
  • Always left from right here!
  • Location:Düsseldorf, Germany, Europe, Earth

Posted Wed Jun 9, 2004 3:22 PM

[quote name='Bruce Tomlin]Okay' date=' here it is.[/quote']
Why are you using such a weird format? Why not DiStella/DASM? :?

#20 Bruce Tomlin OFFLINE  

Bruce Tomlin

    River Patroller

  • 3,602 posts
  • CD C9 01
  • Location:San Antonio, TX

Posted Wed Jun 9, 2004 4:05 PM

Wierd? It's perfectly normal 6502 assembly language.

And I wrote the assembler myself, thank you very much.

FYI, the RORG thing is something I came up with when doing this one disassembly as a quick and dirty way to make all the various pieces of the ROM come out in the right order.

#21 Thomas Jentzsch OFFLINE  

Thomas Jentzsch

    Thrust, Jammed, SWOOPS!, Boulder Dash, THREE·S, Star Castle

  • Topic Starter
  • 23,086 posts
  • Always left from right here!
  • Location:Düsseldorf, Germany, Europe, Earth

Posted Wed Jun 9, 2004 4:15 PM

Wierd? It's perfectly normal 6502 assembly language.

And I wrote the assembler myself, thank you very much.

I didn't wanted to criticize you.

I just meant that most current 2600 programmers (like me) use (and understand) DASM syntax. By using a different syntax, you make it a bit tougher for us to use your results.

#22 Thomas Jentzsch OFFLINE  

Thomas Jentzsch

    Thrust, Jammed, SWOOPS!, Boulder Dash, THREE·S, Star Castle

  • Topic Starter
  • 23,086 posts
  • Always left from right here!
  • Location:Düsseldorf, Germany, Europe, Earth

Posted Wed Jun 9, 2004 5:00 PM

BTW: Don't worry if you need 32K, the hardware costs are identical.

And Gyruss is really nasty, because the some slices are used in different segments. That's different to the three ones I did.

#23 Dav OFFLINE  

Dav

    Moonsweeper

  • 353 posts

Posted Wed Jun 9, 2004 5:18 PM

And Gyruss is really nasty, because the some slices are used in different segments. That's different to the three ones I did.


I wasn't expecting that, I wondered if that was normal for these or if I was just lucky on my selection. :)

For a multicart 32k adds up fast, I think I might be better off implementing the pb banking.

#24 Thomas Jentzsch OFFLINE  

Thomas Jentzsch

    Thrust, Jammed, SWOOPS!, Boulder Dash, THREE·S, Star Castle

  • Topic Starter
  • 23,086 posts
  • Always left from right here!
  • Location:Düsseldorf, Germany, Europe, Earth

Posted Thu Jun 10, 2004 3:51 PM

Ok, I think I finally was successful, but somebody who knows the game better than me should test it.

Gyruss is really a beast when converting to F4, some hotspots rely on different previous settings for unchangd segments. I just hope I got them all.

Attached Files



#25 bjk7382 OFFLINE  

bjk7382

    River Patroller

  • 4,579 posts
  • Location:Michigan

Posted Thu Jun 10, 2004 5:07 PM

Ok, I think I finally was successful, but somebody who knows the game better than me should test it.

Gyruss is really a beast when converting to F4, some hotspots rely on different previous settings for unchangd segments. I just hope I got them all.


I tested gyruss on real hardware and didn't notice any problems. I got 101900, but I don't know if that would be testing all the parts you changed.




0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users