Terrahawks MSX conversion

Terrahawks MSX conversion

por Fish em 22-02-2020, 09:43
Tópico: Remakes
Idiomas:

Who doesn't remember Gerry Anderson's BBC series Terrahawks. In the year 2020 (!) an android space armada, lead by the android Zelda, conquer the human colony on Mars. This is your chance to help one of the Dr. Ninesteine clones to defend the colony on Mars.

Recently releasd,AGD is an awesome tool to create new MSX games or convert games created with it. And MRC User Fish has been playing around with the MSX version to developed a conversion of Terrahawks, a shooting game released in 1982 on the Philips Videopac (also known as the Magnavox Oddessey) as cartridge#51.

The game is optimized for 50Hz PAL, which will be forced on the disk version.

related link: Terrahawks gameplay in Youtube
related link: Download the game from the MRC Downloads Database.

Comentários (38)

Por hamlet

Scribe (3084)

imagem de hamlet

23-02-2020, 09:17

Isn’t DeltaSoft’s TheKid also a clone of Dr. Ninestein?
The gameplay is very smooth and fast, the music is great, like Kate Kestrel’s OST to the series. I like it very much. Good example to make use of the AGD system.

Por Maggoo

Paragon (1199)

imagem de Maggoo

23-02-2020, 15:01

Cool! Terrahawks was one of my favorites Videopac games (still wishing for a port of KC Krazy Chase). Glad to see AGD used for making this port, the soft sprites are a good way to avoid flickering.

The enemies movement patterns seems a little off from what I remember tho? Great job nonetheless.

Por CASDuino

Master (141)

imagem de CASDuino

23-02-2020, 18:28

Any possibility of making a ROM version so that it can be converted to CAS?

Por Fish

Resident (41)

imagem de Fish

23-02-2020, 21:07

No problem CASDuino, just tell me your mail address and I'll send it to you!

Por Juanmi

Expert (100)

imagem de Juanmi

23-02-2020, 21:27

Hi Fish,

I´m trying to load the game (.dsk) from the Megaflash SCC+ SD in a MSX turbo R ST and the game only shows the loading screen and freeze in a black screen.

Por CASDuino

Master (141)

imagem de CASDuino

23-02-2020, 21:50

buleste@gmail.com.

Once it's converted and definitely working as a CAS I'll send you the file.

Por Fish

Resident (41)

imagem de Fish

23-02-2020, 22:28

Juanmi, I could send you the rom version of the game. the disk version makes use of the onedrive tool, it could be it's not compatible with a Turbo R (can''t test it myself)

Por hamlet

Scribe (3084)

imagem de hamlet

23-02-2020, 22:35

We could add the rom version to the download db, Fish.
Anf the version for the CasDuino ofcourse, too. Smile

Por Manuel

Ascended (16632)

imagem de Manuel

23-02-2020, 23:08

Fish wrote:

Juanmi, I could send you the rom version of the game. the disk version makes use of the onedrive tool, it could be it's not compatible with a Turbo R (can''t test it myself)

You can do at least basic testing on an emulator... Smile

Por Juanmi

Expert (100)

imagem de Juanmi

24-02-2020, 07:22

Fish wrote:

Juanmi, I could send you the rom version of the game. the disk version makes use of the onedrive tool, it could be it's not compatible with a Turbo R (can''t test it myself)

You can send me the rom to this EMAIL

But as Hamlet said, it's better if you add the .rom version to the mrc downloads.

Thank you.

Por TheKid

Paladin (923)

imagem de TheKid

24-02-2020, 07:55

Haha, Yet another great series made by the gerry andersons team, although I Always was more of a Thunderbirds guy Smile
But, nice game.

Por gdx

Prophet (3494)

imagem de gdx

24-02-2020, 09:38

I converted the game to Rom and added the joystick support in the menu.

Download: https://mon-partage.fr/f/Y7ckEBCw/

Fish, was you who converted Terrahawks for MSX?
It works on more MSXs by removing the call "CD BB 9D".

Por hamlet

Scribe (3084)

imagem de hamlet

24-02-2020, 10:38

Added gdx' .rom file to our db.
Thanks!

Por Pippo

Champion (442)

imagem de Pippo

24-02-2020, 12:06

Very, very interesting conversion.
The music is pretty beautiful, really.
Congratulations! Smile

Por Robby

Master (183)

imagem de Robby

24-02-2020, 12:54

gdx wrote:

I converted the game to Rom and added the joystick support in the menu.

Download: https://mon-partage.fr/f/Y7ckEBCw/

Fish, was you who converted Terrahawks for MSX?
It works on more MSXs by removing the call "CD BB 9D".

No first option for the creator itself to release it as a romfile?

Personally, i think it's obvious in the newspost that fish is responsible for the conversion.

Por hamlet

Scribe (3084)

imagem de hamlet

24-02-2020, 13:19

I have no problems to accept a third party ROM adaptation.
The intellectual property remains untouched. Fish's work is not modified by this.
If the author has problems with it, I will of course delete the ROM version from the db immediately.

Por Fish

Resident (41)

imagem de Fish

24-02-2020, 19:05

thanks gdx for making the game work on more MSX machines. I guess there is a bug in the RAM based distribution from AGD MSX suite.

Por CASDuino

Master (141)

imagem de CASDuino

24-02-2020, 19:45

And because absolutely no one wanted it except me. The CAS file can be downloaded from here.

Por jltursan

Prophet (2274)

imagem de jltursan

24-02-2020, 20:34

I'll implement the CAS support sooner or later, in fact it's partially supported but I need to find and test a good set of CAS tools able to handle the files inside a CAS file.

About the RAM distribution, not really a bug but a careless implementation. The stack initialization is based on the HIMEM variable and if you load the disk image from a bloated environment like the one you 've when using a MFR+MultiMente+other tools, the RAM can't handle it. Of course I'm only guessing, although I've all this hardware, I'm reluctant to leave apart OpenMSX to check compatibilities so I need to check the MFR compatibility of this emulator to start the tests.

If you simply run the dsk image dumped to a real diskette it works, there's no problem with the MSX models themselves, only with the multiple tools used to load the games. I encourage the ROMs just because this, easier to load and run from mostly whatever combination (beware that I've recently uptaded the suite with some fixes about ROM initialization).

Por Juanmi

Expert (100)

imagem de Juanmi

24-02-2020, 20:40

Continuing with MFR SCC+ SD + turbo R ST, now the rom works fine at 60hz, but forcing the rom at 50hz, the ingame freeze.

Por CASDuino

Master (141)

imagem de CASDuino

24-02-2020, 20:56

If you ever need anyone to help with the cas implementation, let me know. At the moment using caslink3 to convert to a WAV and the castoolsgui to convert to a CAS you need to add the /r reset switch so that the game will work on real MSXs, otherwise it seems to struggle on MSX2s

Por jltursan

Prophet (2274)

imagem de jltursan

24-02-2020, 21:29

I'll do thanks!, for now, the CAS tools I need must be console based as they need to be called from the build script.

Quote:

Continuing with MFR SCC+ SD + turbo R ST, now the rom works fine at 60hz, but forcing the rom at 50hz, the ingame freeze.

The AGD games works always by default at 50Hz (forced) if the machine is a MSX2 or higher, no need to force it externally.

Por gdx

Prophet (3494)

imagem de gdx

25-02-2020, 00:00

It is not a good idea to force in 50 or 60Hz. Most Japanese monitors / TVs do not support 50Hz. In other countries, it is the opposite (although it is less common).

Por Wlcracks

Champion (421)

imagem de Wlcracks

25-02-2020, 07:18

The TMS MSX1 video chip doesn't even support switching interrupt frequency.

Por gdx

Prophet (3494)

imagem de gdx

25-02-2020, 09:17

I played a little the game on a real MSX1 at 60Hz. It's crashes after a moment of game. I suspect access to VDP too fast or an access to a register upper the 7.

Por jltursan

Prophet (2274)

imagem de jltursan

25-02-2020, 19:08

Quote:

It is not a good idea to force in 50 or 60Hz. Most Japanese monitors / TVs do not support 50Hz. In other countries, it is the opposite (although it is less common).

Agreed, the forced 50Hz is part of the initialization code, probably the older code of the engine.I need to think about he best strategy, probably let the game run at default freq and offer a hotkey to change it.

Quote:

I played a little the game on a real MSX1 at 60Hz. It's crashes after a moment of game. I suspect access to VDP too fast or an access to a register upper the 7.

I've tested it in both emulators (BlueMSX and OpenMSX) and seems to work fine. Openmsx doesn't warns either about too fast VDP acceses, the engine has been hugely tested against this situation. Anyway some heavy uses of particles and a lot of sprite scripting could cause some frame overloads; but it usually must last very little time and generate garbage not crashes.
I doubt that a register higher than 7 can happen, except the palette, there're no MSX2 features and if it's a bug, most probably it would appear easily in other ROMs. I'll give it a quick look tho Smile
I've tested your ROM version, does the game crashes right after it boots up or during gameplay in some specific way?. I've some japanese MSX1 so I can try to test also these models...

Thanks for the feedback!, it's useful to have some user reports Smile

Por gdx

Prophet (3494)

imagem de gdx

26-02-2020, 02:09

Now, I'm pretty sure it's because of too fast access to VDP because the game seems to work well on Turbo R in R800 mode but not in Z80 mode even at 50Mhz.

jltursan wrote:

Anyway some heavy uses of particles and a lot of sprite scripting could cause some frame overloads; but it usually must last very little time and generate garbage not crashes.

I have already seen crashes due to too fast access.

jltursan wrote:

I've tested your ROM version, does the game crashes right after it boots up or during gameplay in some specific way?.

It crashes randomly after a few moments during a game.

BlueMSX warns only if you are using debug mode with the option "breakpoint when VDP access too fast" checked but it is not always reliable.

Por gdx

Prophet (3494)

imagem de gdx

26-02-2020, 09:02

Finally the game crashes also on emulator. It is rarer but it happens too.

Por jltursan

Prophet (2274)

imagem de jltursan

26-02-2020, 18:58

What emulator?, OpenMSX?. If so, does it even misses to detect the "too fast..." event?

I'm gonna try to run the game a good amount of time and check if it happens without warning with OpenMSX and an emulated TurboR.

Por Fish

Resident (41)

imagem de Fish

26-02-2020, 20:35

jltursan: if you need the agd file I'll be happy to sent it to you. It compiled without any errors.

Por jltursan

Prophet (2274)

imagem de jltursan

26-02-2020, 21:02

Yes please, I'll need it to recompile with some changes done in the engine.

It really hangs in OpenMSX after toggling freq to 60Hz in the TurboR and a lot of gameplay. I haven't been able to lock the game running over a National CF-3000 at native 60Hz, I don't have enough patience to achieve this Tongue
OpenMSX doesn't warns if it is or not a "too fast access.." and the "pause" led briefly flash and fades out.

There's a flag in the engine that can enable undelayed copy to vram routines but it's disabled by default and the big copy routines are always using the standard 27T wait except a routine that positively know that it'll be executed right after vertical retrace. Anyway, the VDP mode registers setup, in some places can be very tight with no more than 24T between OUT's and if this is a a problem it's strange that only this game crashes.
This game has a HEAVY use of PPI sound and all these bleeps and bloops are also very demanding, in fact, running over a MSX1 seems a bit slower than using the TR. I would try to disable all BEEPs first.
Also, if I'm not wrong, this conversion has no timers adapted and it runs as is in the MSX engine, twice as fast than the Spectrum original (the gameplay ends up being really frenzy!), that cause a little bit stress to the game logic as this game has a ot of sprite scripts.

Por gdx

Prophet (3494)

imagem de gdx

27-02-2020, 11:49

I tried to slow down access to the VDP but it didn't change anything. So I sorted out the interrupt routine a bit.

The game seems more stable now. I played about fifteen minutes without crash on an Japanese MSX1.

Download: https://mon-partage.fr/f/eSXs8vsS/

So finally I think this is the interrupt routine that must be improved.

Edit: Reuploaded! I modified the routine at 0B474h

LB474:  ld	hl,0b83bh
	set	7,(hl)
	res	6,(hl)
	ld	bc,0da1h    
	ld	hl,0b841h
LOOP:	out	(0a0h),a    
	outd
	ld	a,b          
	jr     nz,LOOP   
	ret

Por jltursan

Prophet (2274)

imagem de jltursan

27-02-2020, 21:03

I can't see any changes in the ISR in your ROM, only the ISR installer has some tweaks, what other changes have you done?. You can check the original sources in Github, routines "instisr" and "htimi".

The optimized routine is the ROUT ("psgrout" in my code) routine used by the PT3 & ayFX replayers, nice, thanks!, it's a bit faster this way. The first register accesed will always be equal to the value of STATFL, didn't checked it but I guess it would be always greater than a valid PSG register to avoid glitches.

Por ray2day

Champion (490)

imagem de ray2day

11-03-2020, 20:16

@Juanmi and others .DSK version works fine with MFR, but you have to hold the 'D' key at (re)start/boot.

Por gdx

Prophet (3494)

imagem de gdx

12-03-2020, 09:22

@ray2day 'D' key at (re)start/boot remove the disks from other interfaces. The stability issue seems occur on MSX at 60Hz only. It's not because of the disks

Por ray2day

Champion (490)

imagem de ray2day

16-03-2020, 16:49

@gdx I had the 'black screen' problem (on my 50hz NMS8245). And holding down D at restart worked.
Holding down D starting up MFR disables other disk interfaces to get more free RAM. (probably needed to get no black screen..)

Por spl

Paragon (1466)

imagem de spl

17-03-2020, 07:52

Great!!

Por gdx

Prophet (3494)

imagem de gdx

17-03-2020, 09:04

@ray2day I don't speak about 'black screen' problem but unstability (random crash). Terrahawks needs fix.