Jump to content
IGNORED

PAL60 ROMS


davyK

Recommended Posts

Hi all.

 

I've been hanging around here for years but rarely post - and what I do post rarely makes a difference.

 

Over the weekend I was poking around and came across the Medieval Mayhem thread. I bought a cartridge version of this from the shop quite a while ago and was impressed - I even took the time to review it in the atariage shop. I live in PAL land so naturally I asked for the PAL version. Very nice it is too - I even read it is speed adjusted for PAL However I noted in my review that the borders are big - paricularly the bottom border. Spiceware created a post containing a version of the ROM for PAL60 - basically (if I understand Spiceware's post right) the timings are for NTSC but with PAL colours.

 

Being a Harmony cart owner I tried this out - and lo and behold I have full screen Medieval Mayhem - I am delighted.I posted in the MM thread and PM'd Spiceware thanking him.

 

This got me thinking. If I'm right - then to get a PAL60 version of any game all that is needed is the correct PAL colour values hacked into an NTSC assembly.

 

I posted some time ago here asking if Kaboom! was optimised for PAL. A kind poster took the time to study the assembly and stated that there wasn't any speed optimisation to be seen in the code. As someone who back in the day could score >300K (albeit at diff B) I was somewhat perturbed that I was playing a less than optimal version of the game.

 

So today I searched for a Kaboom! disassembly (I downloaded the DASM kit ages ago and did some messing about and then of course abandoned any planned work in that area). I opened up the ASM file and I have to say the 2600 community is a marvel - there it was it in all its commented glory with DASM meta instructions for assembly - showing me the NTSC and PAL settings for colour (not color!!) and frame timings.

 

So I changed the file to use the PAL colour values in the NTSC part of the file, assembled it, copied it to my Harmony and Holy Mother I now have 60Hz Kaboom! on my PAL woody!!!! I can still bust 10K but I doubt I'll ever get back to the heady days of 6 figure scores - faster game and slower me!!! By the way , I run my woody through a Sony VCR which is connected via SCART to my Panasonic CRT so I'm guessing this is giving me a composite feed into the TV which keeps it happy re the frame rate.

 

Has anyone created a batch of PAL60 ROMS? I'm keen to create a set if it hasn't been done but I'll be limited to the number of high quality disassemblies that are available (at least initially - I can read 6502 and may get into more involved work if necessary). With a good disassembly this is ridiculously easy to do.

 

I don't know what the legality of this is (Kaboom! is available in a piss poor version on the PS2) so I won't post the ROM here - however happy enough if I'm allowed to and if anyone wants it. It will be of limited interest as its only relevant to those with a PAL console and a Harmony. There is an impressive amount of tech ability in this forum so this is child's play to most here but there might be those who aren't tech at all and just want the games.

Edited by davyK
Link to comment
Share on other sites

Thanks for the link - didn't know that was there despite a fair bit of poking about here.

 

That list is a straight conversion list where there isn't an equivalent in the required region (which is useful enough) - I'm more into just getting mainstream PAL games running full screen and full speed. As well as Kaboom! (bigger screen + runs faster) tonight I've cooked up PAL60 versions of Berzerk (full screen but no speed increase - PAL version was speed adjusted) and Yars Revenge (slightly larger display + speed increase)

 

I've found disassemblies of Surround, Jawbreaker, Air Sea Battle and Pitfall - none of which got a PAL optimisation according to the comments in the files. Some will be trickier than others to convert (though even then it is just a matter of finding the colour table in the disassembly and using something like Random Terrain's conversion tool).

Link to comment
Share on other sites

I'm just wondering if the Harmony cart could do this automatically.

That is, you load an NTSC game in "PAL snoop" mode.

It monitors the address bus for a write to a colour register. If so, it converts the data byte via table lookup from NTSC to PAL colours.

Voila! Instant PAL60 version of every NTSC game in existence.

I must ask Fred to see if my understanding of this is correct.

Cheers

A

Link to comment
Share on other sites

Sounds cool - I know nothing of this mode you speak of - is this in the manual?

 

I'm not really familiar with 2600 programming but am I right in saying that there are registers that when written to set the colour? If these are set/reserved addresses then a routine could be written to scan down a hex dump to identify writes to the registers and substitute the operand values with their PAL equivalents- creating a PAL60 version from the NTSC ROM. It would be a question of knowing the colour register addresses and the various op codes for the write instructions (and of course the NTSC to PAL mappings for colour)

 

Am I right in thinking this or am I talking up the left?

Edited by davyK
Link to comment
Share on other sites

OK - here's an extract from the vcs.h file:

 

COLUP0 ds 1 ; $06 xxxx xxx0 Color-Luminance Player 0

COLUP1 ds 1 ; $07 xxxx xxx0 Color-Luminance Player 1

COLUPF ds 1 ; $08 xxxx xxx0 Color-Luminance Playfield

COLUBK ds 1 ; $09 xxxx xxx0 Color-Luminance Background

 

 

These are the addresses the TIA uses to set colour?

 

Then I need the op codes for STA, STX and STY? (any else ? My 6502 is very rusty and my knowledge of the 2600 architecture is next to zero)

 

SO writing some GPL code that scans a ROM file looking for these combinations might be possible.....there's always a chance of hitting these values in data tables of course. Maybe running a ROM through something like DIstella first would help and writing code to scan through the disassembly would be more feasible?

Edited by davyK
Link to comment
Share on other sites

Am I right in guessing STA etc are in zero page mode given the low addresses? In that case

Using STA opcodes 85 and 95

Using STX opcodes 86 and 96

Using STY opcodes 84 and 94

 

So scanning for one of these opcodes with one of the colour register addresses would be a start? (if memory serves these are stored in reverse order in the assembly? I'm going back well over 20 years here)

Edited by davyK
Link to comment
Share on other sites

Just woke up and realised that to figure out what value a store instruction would be using could get rather tricky to work out. The store instruction operand isn't the colour code - its the target address.....got a bit carried away earlier. :? It's doable but its a lot more involved than I thought and would in all likilihood throw up special cases as you processed each ROM.

 

Still - if the "snoop mode" isn't feasible then hand inspections of disassemblies is probably the most feasible way forward.

Edited by davyK
Link to comment
Share on other sites

PAL 60 versions of games for my incoming Harmony cart would be a dream-come-true. I've always felt a little shafted as a PAL VCS gamer.

 

The snoop mode sounds like an amazing idea if it turns out to be feasible. Failing that, I would officially make davyK my best PAL (see what I did there!?) ever if some other PAL 60 ROMs were to appear. :)

Link to comment
Share on other sites

Also, some kind people did some color conversions for PAL-60 when I was asking the other day:

 

http://www.atariage....0%20conversions

 

 

 

And yes, there are occasions when the situation gets tricky and difficult, like Gravitar:

 

http://www.atariage.com/forums/topic/173720-looking-for-pal-pal-60-variants-of-these-games/page__view__findpost__p__2288660

Edited by maiki
Link to comment
Share on other sites

Hi there,

Thanks for the link - didn't know that was there despite a fair bit of poking about here.

 

That list is a straight conversion list where there isn't an equivalent in the required region (which is useful enough) - I'm more into just getting mainstream PAL games running full screen and full speed. As well as Kaboom! (bigger screen + runs faster) tonight I've cooked up PAL60 versions of Berzerk (full screen but no speed increase - PAL version was speed adjusted) and Yars Revenge (slightly larger display + speed increase)

 

I've found disassemblies of Surround, Jawbreaker, Air Sea Battle and Pitfall - none of which got a PAL optimisation according to the comments in the files. Some will be trickier than others to convert (though even then it is just a matter of finding the colour table in the disassembly and using something like Random Terrain's conversion tool).

 

It's nice to see my work being used. I hope it reads okay. It inspires me to work to find time to finish others I've started but never finished.

Link to comment
Share on other sites

It's nice to see my work being used. I hope it reads okay. It inspires me to work to find time to finish others I've started but never finished.

 

You should be proud of that work - it would be a tough enough task commenting a piece of 3GL code - never mind a block of assembler - made even trickier by 2600 architecture.

 

Thank you for doing this - it is actually inspiring me to get into 2600 development - something I started looking at some time ago...

Link to comment
Share on other sites

PAL 60 versions of games for my incoming Harmony cart would be a dream-come-true. I've always felt a little shafted as a PAL VCS gamer.

 

The snoop mode sounds like an amazing idea if it turns out to be feasible. Failing that, I would officially make davyK my best PAL (see what I did there!?) ever if some other PAL 60 ROMs were to appear. :)

 

 

I'll put them out on the net - my web page might be a good place to look....

 

Here are links to the PAL60 versions of ROMS that are available on this site.

 

Berzerk http://www.davykelly,com/berzerkPAL60.bin - this runs full screen but the speed is the same as it was optimised for speed in the PAL version

Surround http://www.davykelly.com/surroundPAL60.bin - this runs faster and has smaller borders

Yars' Revenge http://www.davykelly.com/Yars_RevengePAL60.bin - with this game the display area is bigger and it runs faster apart from the quotile missile which was adjusted for speed in the PAL version

Edited by davyK
Link to comment
Share on other sites

oops - had a comma in there instead of a full stop....there's a couple of other ROMS available at that domain.

 

There are a few other quality disassemblies kicking around (mostly by debro, Thomas Jentzsch and Nukey Shay) so after those are done things will slow down as I'll have to have a go at disassembling myself.

Edited by davyK
Link to comment
Share on other sites

Here's an attempt at PAL60 Adventure. I don't really know this game too well and I could never find my way about in it....

 

Can someone check this out? It runs full screen. This one was trickier because I had to update a data table and without the comments showing which offset held the colour data I would have struggled. I could see the code writing to the colour regsisters but it uses indirect indexed (or is it indexed indirect?) addressing (executing an LDA($93),Y before the STA) so it would have been tricky with my current knowledge working out where to look.

 

I used Random Terrain's rather splendid colour converter tool.

 

http://www.davykelly...enturePAL60.bin

Edited by davyK
  • Like 1
Link to comment
Share on other sites

Got another one done - Pitfall!.

 

This one was a bit trickier - there were problems. When I compiled this code Harry wouldn't jump or collide with anything and when he fell down a hole he starting swinging from an invisible vine!!!,

 

After a fair old bit of messing about with some changes I reckoned it was an alignment problem as the game was running OK but it just appeared to be a bit off kilter. Thought it was the data at first. This disassembly by Thomas Jentzch has some compile options for switching off the screensaver etc. and depending on these it inserts NOPs and has other options for some optimisations so I thought maybe there was cycle counting problem or a data alignment problem.

 

Then looking at the code that checks for collisions I realised that this file was made in 2001 and the VCS.H file is 2003. Then I saw that references to the collision register in the code had an offset (-$30). I removed those offsets from the code in Thomas' disassembly and it works!! Hurrah!

 

The image is noticably bigger and of course it runs a bit quicker too. Not the fastest of games even in NTSC but it's nice to get the speed boost. The ROM binary is now with the others I've done.

 

 

btw I checked out SCISicide and the NTSC version runs fine on PAL machines untouched......excellent game.

Edited by davyK
Link to comment
Share on other sites

Here's Asteroids - wow this makes a big difference. The game now runs silky smooth and the colours are better because the NTSC code adds values to the base colours to help minimise flicker. Your shots and the saucers are far more visible now too.

 

We got a raw deal on this in PAL land which hurts because this was my favourite game back in the day.

 

 

However there is a small amount of judder on the display - almost as if the kernel is starting at different lines in different frames - don't know if its just my TV. Feedback welcome on this one to see if it needs some more work. It flickers like buggery in my version of Stella but there's none of that on the real thing on my TV. I've had this effect before with some NTSC sources but I'm not getting the same effect with other games. It's a bit odd. It small enough so it doesn't put me off playing but I'd rather it wasn't there.

http://www.davykelly...eroidsPAL60.bin

 

 

(btw untouched NTSC version works OK too but everything looks quite brown....it has the judder too so maybe my TV just can't handle this one)

Edited by davyK
  • Like 2
Link to comment
Share on other sites

I've been playing the Asteroids ROM and it seems fine to me. It's no more juddery than the NTSC version and it's a helluva lot better than the pants PAL version! Thanks again. :)

 

BTW: Do you know if there's any difference between the PAL and NTSC versions of Beamrider? Just curious as I'm having problems with the game on my Harmony cart... :)

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