Jump to content
IGNORED

Another F6 bankswitching conversion...


Thomas Jentzsch

Recommended Posts

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 :!:

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

What no source?

There is no source' date=' I just analyze the z26 tracefile for bankswitching and used slice combination and then patch the ROM.[/quote']

 

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.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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. :)

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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

Wow' date=' 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[/quote']

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

Wierd? It's perfectly normal 6502 assembly language.

 

And I wrote the assembler myself' date=' thank you very much.[/quote']

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.

Link to comment
Share on other sites

And Gyruss is really nasty' date=' because the some slices are used in different segments. That's different to the three ones I did.[/quote']

 

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.

Link to comment
Share on other sites

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.

gyruss__ntsc__f4_.zip

Link to comment
Share on other sites

Ok' date=' 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 [b']different[/b] 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.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...