Jump to content
IGNORED

Unicorns season: Prince of Persia for the A8!


rensoup

Recommended Posts

  • 2 weeks later...
On 2/25/2022 at 12:40 AM, Rybags said:

Does it spring back to centre or something when picked up?

It can not because it literally a heavy steel ball that rubs on 2 pot shafts. Very simple device.

Pick it up and put it back down again. Don't panic.

Those who understand it love it.

 

Link to comment
Share on other sites

  • 2 weeks later...

Final Assault and Gacek show that really impressive stuff is possible on stock Ataris at 64K.

Focussing on the real thing will bring better results for the real thing. 

Any "possible" upgrade costs development time. 

And, who knows it better than the coder, that time is the real limitation for developing things.

Still thinking about the Rick Dangerous port. 

Without the VBXE development, the game could have been available early.  

Link to comment
Share on other sites

On 2/25/2022 at 6:45 PM, rensoup said:

KFM is one of my favorite games ever . It's also really demanding for an A8... it would be impossible to get it to run nicely even with 128KB of RAM. Perhaps with 64KB and a 512KB ROM.

No 8bit version does the arcade justice. The Nes version seems ok though.

 

If it doesn't play like KFM, it shouldn't be named KFM.

 

That's fair.  What about something like Gottlieb's Reactor?  I know it was ported to the 2600, not bad considering the limitations of that machine.  I actually saw a 10Liner entry that was based on Reactor, made me think maybe that's a possibility?

Link to comment
Share on other sites

does every thread need to get into what a 'real machine' means? We have had a lot of years to shake out whats needed with the hardware to get what we want out of it. If not everyone has the hardware, and really who does, you can play it on the emulators. the dev can make whatever he wants the way he wants, no deadlines, (Christmas shipment) manuals already printed, doesn't resemble screenshots. Who cares. 

  • Like 4
Link to comment
Share on other sites

On 3/22/2022 at 4:12 PM, rdefabri said:

 

That's fair.  What about something like Gottlieb's Reactor?  I know it was ported to the 2600, not bad considering the limitations of that machine.  I actually saw a 10Liner entry that was based on Reactor, made me think maybe that's a possibility?

Had never heard of it, interesting though it doesn't look very appealing visually...

 

I've been investigating a title for the past few weeks though I still have no idea if it's actually doable and probably will not know before spending a few months on it... At which point I may drop it completely ?

  • Haha 1
Link to comment
Share on other sites

On 3/21/2022 at 5:32 AM, emkay said:

Still thinking about the Rick Dangerous port. 

Without the VBXE development, the game could have been available early.  

Absolutely wrong. The main reason behind it is unrealistic/difficult to achieve memory requirements the Authors are/were trying to meet. 

  • Like 1
Link to comment
Share on other sites

Maybe when they decide to use xBIOS these "unrealistic / difficult to achieve memory requirements" will become achievable :)

 

However, from the authors' conversations, I know that the color enhancement under VBXE was not a problem and was done practically in one day.

 

18 hours ago, rensoup said:

I've been investigating

maybe at least you can reveal what kind of game it will be using the Atarimania dictionary (genere)  :)

http://www.atarimania.com/advanced-search-atari-400-800-xl-xe-game-_8_G.html

Link to comment
Share on other sites

  • 3 weeks later...
  • 2 weeks later...
On 4/15/2022 at 3:29 PM, zbyti said:

fascinating so many days without post in this thread :D @rensoup I hope you taken another challenge without alerting the trolls :D

I did start something new like I said previously... It's arcade based so I built a standalone emulator with a bunch of debugging features but it's an enormous job, probably as big as PoP, but without any guarantee that it can actually be done... 

 

  • Like 13
  • Thanks 1
Link to comment
Share on other sites

14 hours ago, rensoup said:

I did start something new like I said previously... It's arcade based so I built a standalone emulator with a bunch of debugging features but it's an enormous job, probably as big as PoP, but without any guarantee that it can actually be done... 

 

Good luck - looking forward to hearing about it when time, though there's a wealth of feedback you can get here if need be ?

  • Haha 2
Link to comment
Share on other sites

On 4/28/2022 at 11:49 PM, rensoup said:

I did start something new like I said previously... It's arcade based so I built a standalone emulator with a bunch of debugging features but it's an enormous job, probably as big as PoP, but without any guarantee that it can actually be done... 

 

I want to know more !!!
Any clues you could share with us ? Come on, tell as at least year of arcade release ;)

 

Link to comment
Share on other sites

5 hours ago, popmilo said:

I want to know more !!!
Any clues you could share with us ? Come on, tell as at least year of arcade release ;)

 

https://www.gamesdatabase.org/list.aspx?DM=0&system=arcade&year=1981&sort=Game ?

 

Like I said, it's a massive job though... There's no guarantee that I'll have the motivation or that's it's even doable.

 

The challenge is different from porting PoP:

 

-PoP being a A2 game originally, I knew it was doable on the A8 from the start. The unknown was the quality that could be achieved.

 

-There are still many parts of the PoP code I don't know even though I've probably browsed all of it.

This new challenge is Z80 based which means every bit of code requires porting and a reasonable understanding of what it does. On top of that, a naive Z80 -> 6502 conversion is guaranteed to fail too because it would be too slow.

 

Ground level would be a functioning PC port in a high level language (C# in my case) ready to be ported to 6502.

 

Right now I'm underwater way down in the abyss ?

  • Like 6
Link to comment
Share on other sites

41 minutes ago, TheNameOfTheGame said:

Ok, only 172 games at that link. ?

 

My guess...Sky Skipper!

Well, 20 or so of those games have already made it to the Atari 8-bits. And a few others (New Rally-X and?) have been attempted/ begun... so that narrows it down a little.

 

Class of '81 really was a golden year for arcade games. Lots of standout classics.

  • Like 1
Link to comment
Share on other sites

Probably is not Lady Bug, RallyX, Turtles or JumpBug, but I would be ok with any of those ?

The other well known Z80 arcade conversion there... yeah it would be a challenge (but it would be really nice having your version in the A8).

  • Haha 1
Link to comment
Share on other sites

Damn this looks great, just got back into my Atari 8-Bit gaming checking new developments.

 

This looks great I was just wondering if someone had done a port of prince of persia on the A8 as it's on most other platforms, but I'll have to add it to the pile of games I'll be ableto play when/if I become less scared/cheap about upgrading my 800XL.

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

8 hours ago, rensoup said:

This new challenge is Z80 based which means every bit of code requires porting and a reasonable understanding of what it does. On top of that, a naive Z80 -> 6502 conversion is guaranteed to fail too because it would be too slow.

I hope you don't encounter the conversion of copying graphics through the stack. This is something that gives the Z80 with its 16bit registers a huge advantage over the 6502

Link to comment
Share on other sites

8 hours ago, rensoup said:

https://www.gamesdatabase.org/list.aspx?DM=0&system=arcade&year=1981&sort=Game ?

 

Like I said, it's a massive job though... There's no guarantee that I'll have the motivation or that's it's even doable.

 

The challenge is different from porting PoP:

 

-PoP being a A2 game originally, I knew it was doable on the A8 from the start. The unknown was the quality that could be achieved.

 

-There are still many parts of the PoP code I don't know even though I've probably browsed all of it.

This new challenge is Z80 based which means every bit of code requires porting and a reasonable understanding of what it does. On top of that, a naive Z80 -> 6502 conversion is guaranteed to fail too because it would be too slow.

 

Ground level would be a functioning PC port in a high level language (C# in my case) ready to be ported to 6502.

 

Right now I'm underwater way down in the abyss ?

 

First of all, your PoP port is pure awesomeness :)

 

Actually, you don't have to understand every piece of Z80 code when translating from Z80 to 6502. My experience with porting Pentagram, Gunfright, Jack The Nipper and Highway Encounter from ZX Spectrum to Atari proves that :) Also, according to 80/20 rule (here it translates to: 80% of CPU time is spent in 20% of code), a naive Z80 to 6502 translation does its job exceptionally well, as you actually need only 20% of the code to be optimized for performance (this was really the case with ZX Spectrum games which do everything in software, and if you are porting arcade game and these tend to have hardware for sprites, numbers may be a little bit different). What is also important is the size of translated code: naive translation produces ~2x larger code.

 

I have a compiler which does this naive translation and the results are really good - it saves lots of manual of work. There is still some manual work to do, but compiler tries to assist with the process, by marking places in the translated code which require manual intervention.

 

To make sure that translated code runs correctly, I have written simple debugger, which is CPU core for 6502 and Z80 running both versions of the code side by side, and comparing addresses accessed and values written/read. If you omit CPU opcode fetches and stack accesses, all other accesses should match apart from situation, where pointer is written or read from memory.

 

Mariusz.

  • Like 5
  • Thanks 1
Link to comment
Share on other sites

On 4/28/2022 at 4:49 PM, rensoup said:

I did start something new like I said previously... It's arcade based so I built a standalone emulator with a bunch of debugging features but it's an enormous job, probably as big as PoP, but without any guarantee that it can actually be done... 

 

I'm working on a conversion of an arcade game from Z80 to the Atari 7800.  The game loop runs at 60hz with all objects being updated every loop. My goal was to keep it running at 60hz so I decided to convert by hand and optimize every line of code.  I had no idea if I was going to be able to make it work until I had converted most of the code and had the first level running.  

I didn't make any changes in the general organization of the code but did change the data structures.  Data arrays for all animated objects were accessed with 16bit pointers, and I found that by transposing the arrays, I could efficiently access with the 6502 8bit index modes and eliminate all the 16bit pointer calculations.  The 7800 graphics code had to be written from scratch of course, and all sprites redrawn, but I retained the original organization of the sprite data table.  This is the table that the arcade hardware reads to generate the display.  I didn't even change the coordinate system.  I just do a table lookup to convert the x,y values when graphics code is updating the display list.  It has been time consuming but I've worked thru all the main code and can just barely maintain a 60hz loop speed with no slowdown.  I would have been very disappointed to go thru all that work and then need to reduce the frame rate. The rearranging of the data structures was a key optimization to make it work. I had to understand how much of the code works to do it this way, but I was lucky to have a commented disassembly of the original arcade game to use for reference.  Without that, I don't think I would have even attempted it.  

 

I hope this project works out for you and I look forward to seeing the results!

  • Like 3
Link to comment
Share on other sites

19 hours ago, rensoup said:

https://www.gamesdatabase.org/list.aspx?DM=0&system=arcade&year=1981&sort=Game ?

 

Like I said, it's a massive job though... There's no guarantee that I'll have the motivation or that's it's even doable.

 

The challenge is different from porting PoP:

 

Well. PoP really was a gift to convert after the graphics and mechanics had been adjusted to the 8 bit color format.

Also, it was possible because no HW scrolling is used, and not too much different moving objects on the screen.

 

What approach could a 1981's game offer?

The point is that no other platform offered stuff that the Atari was capable of, while the games always did put the advantage of other platform, where it had been developed first. 

It needed 16 bit devices of the 90s to show how good the Atari could handle things with the available colors and sound. 

It's like a cross running through time and space ;)

Link to comment
Share on other sites

On 5/2/2022 at 9:13 AM, xxl said:

I hope you don't encounter the conversion of copying graphics through the stack. This is something that gives the Z80 with its 16bit registers a huge advantage over the 6502

I wish it did graphics copying via the stack, that'd be less hassle than emulating hardware sprites with software sprites... but I'm nowhere near getting started on that!
 

On 5/2/2022 at 10:08 AM, mariuszw said:

a naive Z80 to 6502 translation does its job exceptionally well, as you actually need only 20% of the code to be optimized for performance (this was really the case with ZX Spectrum games which do everything in software, and if you are porting arcade game and these tend to have hardware for sprites, numbers may be a little bit different)

Well I could agree with that for spectrum games like you said, plus you've got 16 extra KB compared to the ZX I guess?

 

Indeed with an arcade port, this will likely be different... it's about squeezing about 6-7mhz worth of Z80 code + beefy sprite hardware into a 1.3mhz 6502 and 4 PMGs. There's a lot of gameplay code and even though some may be seldom used, I can't afford it causing spikes so any gameplay code may need some optimization work. While there's of course code for attract, game over, high score, ... that's not the bulk of it.

 

So perhaps not 100% but certainly a lot more than 20 ?

 

On 5/2/2022 at 10:08 AM, mariuszw said:

I have a compiler which does this naive translation and the results are really good - it saves lots of manual of work. There is still some manual work to do, but compiler tries to assist with the process, by marking places in the translated code which require manual intervention.

I'm going with a conversion to C# first so I'll be hopefully able to carry out higher level optimizations later. I gradually convert Z80-> C# subroutines then I do simple interception calls to bypass the Z80 code and call the new C# code. It's not perfect though and it's pretty horrible to convert code that does all sorts of bit manipulation too.

 

I'm curious how the ZX spectrum Z80 @3.5Mhz compares with the the A8's 6502. I don't have much experience with the Z80 but its instruction set seems way more efficient than the 6502 perhaps at the expense of taking many more cycles per instruction ?

 

On 5/2/2022 at 5:37 PM, tep392 said:

I'm working on a conversion of an arcade game from Z80 to the Atari 7800.  The game loop runs at 60hz with all objects being updated every loop. My goal was to keep it running at 60hz so I decided to convert by hand and optimize every line of code

Cool! Hopefully not a 1981 title ? ?
 

On 5/2/2022 at 5:37 PM, tep392 said:

I didn't make any changes in the general organization of the code but did change the data structures.  Data arrays for all animated objects were accessed with 16bit pointers, and I found that by transposing the arrays, I could efficiently access with the 6502 8bit index modes and eliminate all the 16bit pointer calculations

I'll potentially do these things if I ever get to a fully working C# prototype!

 

On 5/2/2022 at 5:37 PM, tep392 said:

The 7800 graphics code had to be written from scratch of course, and all sprites redrawn, but I retained the original organization of the sprite data table.  This is the table that the arcade hardware reads to generate the display.

You mentioned a while back that 7800 sprite hardware is super powerful compared to the A8. I don't think I'll have that kind of luxury and will have to go with some very specialized software sprite trickery. 
 

On 5/2/2022 at 9:07 PM, emkay said:

What approach could a 1981's game offer?

Hopefully the A8 is versatile enough to run an arcade game made for a much more powerful hardware (except for that horizontal resolution)
 

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