remakes of Oric games

Comments, problems, suggestions about Oric emulators (Euphoric, Mess, Amoric, etc...) it's the right place to ask. And don't hesitate to give your tips and tricks that help using these emulations in the best possible way on your favorite operating system.
jotd
2nd Star Corporal
Posts: 25
Joined: Sun Feb 03, 2008 3:24 pm
Location: France
Contact:

Post by jotd » Sat Mar 01, 2008 3:18 pm

Symoon wrote:
jotd wrote:Which games are sufficiently original and oric-unique and would be worth converting/updating ?
Ooops, I read that too quickly and kept in mind "oric classics" when I gave my answer !
So my list could be shortened to:
Zebbie
The Hellion (thought it's just another shoot-them-up game, it has loads of funny references)
Don't Press The Letter Q (totally original and Oric-only, although an Amiga version was made by Andrew Moore, but not published).

L'Aigle d'Or was ported to other platforms like MO5, with more rooms, as designed originally by the author. He had to initially remove them from the Oric version because of memory limitation !
I just played the Hellion. Looks like a ripoff of "The Ultra". And I prefer "The Ultra" :)


Don't Press The Letter Q and Zebbie are excellent candidates, although I don't know the first one very well (but Andrew Moore certainly is talented)
-

JOTD

User avatar
Symoon
Archivist
Posts: 1169
Joined: Sat Jan 14, 2006 12:44 am
Location: Paris, France
Contact:

Post by Symoon » Sat Mar 01, 2008 4:15 pm

jotd wrote:I just played the Hellion. Looks like a ripoff of "The Ultra". And I prefer "The Ultra" :)
Actually, it's the sequel of The Ultra !
The 16 levels of The Ultra are included in the 101 levels of The Hellion :)

jotd
2nd Star Corporal
Posts: 25
Joined: Sun Feb 03, 2008 3:24 pm
Location: France
Contact:

Post by jotd » Sun Mar 02, 2008 1:07 pm

Symoon wrote:
jotd wrote:I just played the Hellion. Looks like a ripoff of "The Ultra". And I prefer "The Ultra" :)
Actually, it's the sequel of The Ultra !
The 16 levels of The Ultra are included in the 101 levels of The Hellion :)
The Ultra is superior IMHO even if it doesn't boast 101 levels.

BTW Zebbie alpha version is ready:

http://pagesperso-orange.fr/jotd/zebbie/index.html
-

JOTD

User avatar
Dbug
Site Admin
Posts: 2394
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Post by Dbug » Sun Mar 02, 2008 1:24 pm

Do you have an explanation somewhere of the process you use to convert these games ?

I can imagine easily how to translate assembly code to C using some kind of real time decompiler (like a Java JIT compiler), but I fail to see how to handle self modified or auto-generated code.

jotd
2nd Star Corporal
Posts: 25
Joined: Sun Feb 03, 2008 3:24 pm
Location: France
Contact:

Post by jotd » Sun Mar 02, 2008 1:59 pm

Dbug wrote:Do you have an explanation somewhere of the process you use to convert these games ?

I can imagine easily how to translate assembly code to C using some kind of real time decompiler (like a Java JIT compiler), but I fail to see how to handle self modified or auto-generated code.
You cannot handle SMC. There was none in Xenon or Zorgon's, but there was some in Zebbie and I had a little trouble with it. But it was rather easy to find by hand.
(But I could detect it by marking the non-data sections and checking them when I write into the memory at run-time).

It's not a real-time decompiler: I disassemble the game then I convert it to C using a custom awk script. Then I try to make it compile, and work.

e.g. it's not possible to handle JMP outside procedures automatically. goto instruction only works within the procedure (and there's no such thing as a procedure in assembler, specially in the eighties :) ).
Sometimes code must be duplicated/rearranged. Delay loops must also be patched as well as the inputs. So a minimum of understanding of the game inner workings is required.
-

JOTD

User avatar
Dbug
Site Admin
Posts: 2394
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Post by Dbug » Sun Mar 02, 2008 2:21 pm

Ok, makes sense :)

No SMC in Xenon or Zorgon ? I'm impressed !
This means all is done using zero page adressing, which considering how smooth the game is, is quite impressive.

Do you have a rough ideam of how Xenon is coded ? How is the second screen coded ? The sprites are quite large, with colors, and there is not much of flickering or glitches. Is it drawing directly on the screen, using some buffer, some smart partial screen update/paint/erase ?

jotd
2nd Star Corporal
Posts: 25
Joined: Sun Feb 03, 2008 3:24 pm
Location: France
Contact:

Post by jotd » Sun Mar 02, 2008 2:30 pm

Dbug wrote:Ok, makes sense :)

No SMC in Xenon or Zorgon ? I'm impressed !
This means all is done using zero page adressing, which considering how smooth the game is, is quite impressive.

Do you have a rough ideam of how Xenon is coded ? How is the second screen coded ? The sprites are quite large, with colors, and there is not much of flickering or glitches. Is it drawing directly on the screen, using some buffer, some smart partial screen update/paint/erase ?
There's a unique "blit to screen" routine which copies data from RAM to video memory, using page 0 as parameters. For better speed, I recoded it in C for my remakes (Zorgon & Xenon share the same routine).
There is no double buffering as the sprites are directly copied.

As for the erase, I guess this is the color attribute that does it to the right, and to the left, it may have a little 0x40 array. I don't know. There's little ORA or EORing.

Here's the rewritten source code with comments:

/* copy to screen
*
* params:
*
* 0.b : frame number (if animated sprite)
* 1.w : destination
* 3.w : source
* 5 : number of rows
* 6.b : number of bytes
*/
void P_screen_copy_5172()
{
int dest_address = deek(1);
int source_address = deek(3);
int frame_index = peek(0);
int nb_bytes = peek(6);
int nb_rows = peek(5);
int i;

source_address += frame_index * nb_bytes;
int nb_lines = nb_bytes / nb_rows;

if ((nb_rows > 0) && (dest_address >= 0xA000) && (dest_address < 0xC000))
// && (source_address + nb_bytes < 0xC000) && (dest_address + nb_lines*40 < 0xC000))
{

for (i = 0; i < nb_lines; i++)
{
cpu_memcopy(source_address,dest_address,nb_rows);

dest_address += 40;
source_address += nb_rows;
}


doke(1,dest_address);
}

}
-

JOTD

jotd
2nd Star Corporal
Posts: 25
Joined: Sun Feb 03, 2008 3:24 pm
Location: France
Contact:

Zebbie beta

Post by jotd » Mon Jul 28, 2008 9:02 pm

Hi,

A much better version of the Zebbie remake is ready with a nice parallax scrolling !

http://pagesperso-orange.fr/jotd/zebbie/index.html
-

JOTD

User avatar
Symoon
Archivist
Posts: 1169
Joined: Sat Jan 14, 2006 12:44 am
Location: Paris, France
Contact:

Post by Symoon » Fri Aug 01, 2008 10:11 pm

I tried the new Zebbie version, but only the "oric-like" version works.
Versions with better graphics seem to open a windowthat closes immediately :?

jotd
2nd Star Corporal
Posts: 25
Joined: Sun Feb 03, 2008 3:24 pm
Location: France
Contact:

Post by jotd » Sat Aug 02, 2008 8:27 pm

Symoon wrote:I tried the new Zebbie version, but only the "oric-like" version works.
Versions with better graphics seem to open a windowthat closes immediately :?
you're right! this is an archive problem. Now fixed on the page

thanks
-

JOTD

User avatar
Symoon
Archivist
Posts: 1169
Joined: Sat Jan 14, 2006 12:44 am
Location: Paris, France
Contact:

Post by Symoon » Sun Aug 03, 2008 11:01 am

Mmmh, sorry Jeff but the problem is still there with the 0.91 archive... Exactly the same !
(I'm on XP with Directx9, just in case).

jotd
2nd Star Corporal
Posts: 25
Joined: Sun Feb 03, 2008 3:24 pm
Location: France
Contact:

Post by jotd » Sun Aug 03, 2008 6:07 pm

Symoon wrote:Mmmh, sorry Jeff but the problem is still there with the 0.91 archive... Exactly the same !
(I'm on XP with Directx9, just in case).
works fine here (just downloaded the .zip from my page and tried it). Ensure that you have the "gfx" and "sfx" directories in your archive.
-

JOTD

User avatar
Symoon
Archivist
Posts: 1169
Joined: Sat Jan 14, 2006 12:44 am
Location: Paris, France
Contact:

Post by Symoon » Sun Aug 03, 2008 6:38 pm

Oh, my bad, everything was unzipped in the same directory.
It works fine now :D

Strange thing: I have the bonus screen very early in the game, not having picked up a single bottle!
Seems like it appears after having collected a few "oil" things?

User avatar
waskol
Flight Lieutenant
Posts: 331
Joined: Wed Jun 13, 2007 8:20 pm
Location: FRANCE, Paris

Post by waskol » Thu Aug 07, 2008 10:09 am

A while ago, for a programming contest, I wrote a clone of "Cobra" (the snake game from Norsoft).
My clone was not in the contest since I was one of the judges :lol:

You can play with 2 kind of graphics : "8-bits style" (Same graphics than the original, or "Toon style" (Let's say it could be like this if it has been developped for an Amiga or Atari ST)

You can download it here


You can also find the sources (in Delphi), on this webpage :

Or you have also the direct link to the zip file here.

Have fun :P

Platform : PC with Windows OS
Number of players : 1 or 2
Kind of game : Mix between the classic snake game and Pacman
Features : Wall of Fame, 2 different graphic environments for the same game, the 5 original levels, on screen instructions.
Game in French (but it should not be a problem for english speaking people)
Development tool : Delphi 7

User avatar
TheSpider
Pilot Officer
Posts: 71
Joined: Sat Jan 07, 2006 8:17 am
Location: Lexington, Kentucky, USA (Ex-Elgin, Scotland)
Contact:

Post by TheSpider » Sat Aug 09, 2008 5:16 am

Waskol, your clone of Cobra is excellent.
Thank you so much.
Peter (TheSpider) Paterson
A Scotsman in Kentucky
http://thespider.oric.org
http://mintspider.blogspot.com

Post Reply

Who is online

Users browsing this forum: No registered users and 7 guests