The cat's out of the bag on this now, good job as it was getting a bit smelly being in there for over a year now.
I've been looking at how Star Wars really works and thought I'd have a go at making a crude webpage to record my efforts so that other folks could have a look at it, and maybe even have a go at pushing knowledge even further. As reverse engineering any game code is somewhat frowned upon I was reluctant to go public with it, but on the other hand there may be as many as 5 people who are actually interested in any of this stuff...
After meeting Alpha1 at Revival, I took notice of a comment he made about making UKVAC text on a vector screen, so I spent a while altering the Star Wars attract screen logo to a crude UKVAC drawing and changed the scrolling text, using the software tools I've made to allow assembly of altered Star Wars code.
https://www.facebook.com/pages/ukVac/137395616361911
Take a look here for my findings so far:
http://www.wardclan.f9.co.uk
There are NO direct ROM images stored there, and don't expect any to ever be uploaded.
It's my first attempt at HTML, so don't expect anything pretty, really it's just a way of logging what I've done. As I find out more I'll slowly keep updating the page.
Changing the attract logo was interesting. The green text part was simple, just find the ASCII data starting at address $E145 and change it, but set bit 7 of the last character to flag the end of the line. The large blue 'Star Wars' graphic was a little harder though, and showed the rather strange way it's been coded.
There's a function at $611E that copies a 2K chunk of data from ROM at $CEDE to vector RAM at a fixed address of $2800. This data is the vector drawing instructions for the Star Wars logo, but rather than one set of lines it appears to be about six different segments, with the 'ST'of STAR WARS being the first chunk.
When that attract screen is shown, there's a function at $D9FA that then fills vector instructions to zoom, colour and call vector subroutines for each of the six logo chunks. Why it's done this way I have no idea, I suspect it may be to get the logo large enough on the screen?
When I changed the logo to 'UKVAC' I made one call to one drawing chunk and disabled the other 5 calls. It did need to be zoomed in larger though, and it also seems to corrupt where the 'INSERT COINS' and 'GAME OVER' text is positioned for a few seconds.
I question why they didn't just design in a larger vector ROM and do away with the copying vector data from main game ROM to vector RAM. I guess they thought 4K vector ROM was enough and 12K of vector RAM would be more useful when the hardware was designed, which would be way before the software for the attract screen was made.
Here's hoping that someone else out there will be able to start making their own altered or new code additions too.
What's not shown on the webpage is the Windows realtime sound effects/music editor that I'd stalled on developing, from not knowing enough about Windows Direct sound buffers. Not sure whether I'll ever be able to complete that one, now I'm focussing on other areas.
I've been looking at how Star Wars really works and thought I'd have a go at making a crude webpage to record my efforts so that other folks could have a look at it, and maybe even have a go at pushing knowledge even further. As reverse engineering any game code is somewhat frowned upon I was reluctant to go public with it, but on the other hand there may be as many as 5 people who are actually interested in any of this stuff...
After meeting Alpha1 at Revival, I took notice of a comment he made about making UKVAC text on a vector screen, so I spent a while altering the Star Wars attract screen logo to a crude UKVAC drawing and changed the scrolling text, using the software tools I've made to allow assembly of altered Star Wars code.
https://www.facebook.com/pages/ukVac/137395616361911
Take a look here for my findings so far:
http://www.wardclan.f9.co.uk
There are NO direct ROM images stored there, and don't expect any to ever be uploaded.
It's my first attempt at HTML, so don't expect anything pretty, really it's just a way of logging what I've done. As I find out more I'll slowly keep updating the page.
Changing the attract logo was interesting. The green text part was simple, just find the ASCII data starting at address $E145 and change it, but set bit 7 of the last character to flag the end of the line. The large blue 'Star Wars' graphic was a little harder though, and showed the rather strange way it's been coded.
There's a function at $611E that copies a 2K chunk of data from ROM at $CEDE to vector RAM at a fixed address of $2800. This data is the vector drawing instructions for the Star Wars logo, but rather than one set of lines it appears to be about six different segments, with the 'ST'of STAR WARS being the first chunk.
When that attract screen is shown, there's a function at $D9FA that then fills vector instructions to zoom, colour and call vector subroutines for each of the six logo chunks. Why it's done this way I have no idea, I suspect it may be to get the logo large enough on the screen?
When I changed the logo to 'UKVAC' I made one call to one drawing chunk and disabled the other 5 calls. It did need to be zoomed in larger though, and it also seems to corrupt where the 'INSERT COINS' and 'GAME OVER' text is positioned for a few seconds.
I question why they didn't just design in a larger vector ROM and do away with the copying vector data from main game ROM to vector RAM. I guess they thought 4K vector ROM was enough and 12K of vector RAM would be more useful when the hardware was designed, which would be way before the software for the attract screen was made.
Here's hoping that someone else out there will be able to start making their own altered or new code additions too.
What's not shown on the webpage is the Windows realtime sound effects/music editor that I'd stalled on developing, from not knowing enough about Windows Direct sound buffers. Not sure whether I'll ever be able to complete that one, now I'm focussing on other areas.