Jump to content
Heaven/TQA

New Atari Port - Venus Express

Recommended Posts

just for fun I checked out the minigames from this years compo and found the c64 source of the winning 1k game "Venus Express". I love the dynamic scrolling and the physics behind it or the clever level generator so i simply tried to convert it to Atari800... the code is straight forward but if you are not familiar to c64 it might be difficult little bit (thanks TMR for help!).

 

it's still beta but the code grew to 3k. it's easy when you have 8 sprites but on atari side you need the player/missle overhead + display list... but fortunatly you then don't need the "copy map to screen" routine from the c64 anymore... ;)

 

it's good exercise for coding Boinxx further as I coded some "high end" sound effects... :) or the BCD score routines...

 

at top i have just included a dummy status line but i try to avoid it and try to reproduce it like in the c64 game itself... thank god i could take the score panel from Boinxx for that... but the repositioning of the multicolour players will be little bit tough...

 

in the .zip you'll find the c64 original and the .obx atari one... when the screen flashes just press fire... please have in mind it's just beta status as the "enter next level" has not yet be tested... :)

 

just let me know how does it feel on real machine with joystick...i just played it in atari800win... it's coded in NTSC mode but works in PAL as well...

venus.zip

post-528-1136325353_thumb.jpg

post-528-1136325388_thumb.jpg

Edited by Heaven/TQA

Share this post


Link to post
Share on other sites

So you know how the level generation works? Can you explain please?

Share this post


Link to post
Share on other sites

Aleksi did a very nice job on C64 so the kudos to his work... but as i learned it's not so easy to convert c64 games even simple ones to atari800 architecture... but Aleksi's code is very clever and more suitable for atari nature than imho for c64...

 

f.e. the whole physik engine can be taken to atari... and he has choosen the maths behind it so clever that you can write it directly into softscroll registers on c64... but not 100% it need some tweaks esp. for the hscrol register (4 pixel vs 8 pixel, reverse order etc...)

 

the levels are all 256 cars wide which is perfect for our Antic... :) and the scrolling engine and all screen calculations are damned easy...

 

so most credits have to go to Aleksi. i have reworked or newly written so far:

 

- scroll engine (rewritten)

- joystick routines (rewritten)

- sprite routines (rewritten)

- sound routines (rewritten)

- new kernel like in Boinxx to get max RAM by switching of OS.

 

the ram usage is unbelievable high...(so a 5200 port will be harder)

 

the level generator writes & fills the memory $1000-$cfff so that's why you need to switch off OS... and then you need new interrupt handlers etc...

 

so back to Thomas question...i just roughly have understood the level generator...but the random values are taken from c64 rom code (which is included in atari800 port as well... ;) no it's not a virus... ;))

 

more on the level generator tomorrow....

Share this post


Link to post
Share on other sites

oh...last comment before i got to sleep... yes... you can enter other caves...i just tested to escape from cave 1...just fly over the blinking object (carefully) then fly back straight out of the cave into the sky until the new level is build and press fire to enter again...

 

btw... should i change the thrust from pressing joystick up to fire?

Share this post


Link to post
Share on other sites

Very nice conversion!! Thanks Heaven!! :D

btw... should i change the thrust from pressing joystick up to fire?

IMO the thurst works fine with joys. up..

Share this post


Link to post
Share on other sites

Hiya,

 

nice one :)

 

I got your message yesterday but my brain was dead after a nights work - I'll have a looksie see if I have some music for you tomorrow or thursday

Share this post


Link to post
Share on other sites

sack... a nice 3 channel tune fitting to the theme would be nice and not very ram consuming (so not too long but not as short as radar rat race... ;))

Share this post


Link to post
Share on other sites

btw. did anyone tested the beta on a real machine with a game dos? as it uses RAM $0500-$0bff for the code... xboot is not able to make a bootable ATR due to memory conflict...

Share this post


Link to post
Share on other sites

A very good game, much better than the somewhat similar game I submitted for the 2004 minigame compo. I did not have a good idea for a random level generator in "Rocket Boy", so the game was a little bit boring after a while.

 

Thimo

Share this post


Link to post
Share on other sites

Good work! A nice little game to put to software library ;)

 

Indeed, GFX is nice and scrolling is very smooth.

Share this post


Link to post
Share on other sites
btw. did anyone tested the beta on a real machine with a game dos? as it uses RAM $0500-$0bff for the code... xboot is not able to make a bootable ATR due to memory conflict...

993675[/snapback]

 

Why not readdress it to, say, $fe00-$ebff (when the ROM is already off)?

Share this post


Link to post
Share on other sites

_nextcave
       jsr     Random                 ; random cave length
       and     #$03
       sta     cavelen
       jsr     Random                 ; random cave dir
       and     #$03
       tax
_cavestart
       lda.w   caveadd1,x             ; instruction ($e6 = inc, $c6 = dec)
       sta.w   caveadd_
       lda.w   caveadd2,x             ; memory location (gen or genh)
       sta.w   caveadd_+1

_caveon
       lda     #$80                   ; draw cave loop
       ldx     #$07

       jsr     Round                  ; fill top of cave cell
       inc     genh

_cblk1
       ldy     #$06
_cblk3
       sta     (gen),y                ; fill middle of cave cell
       dey
       bpl     _cblk3

       inc     genh
       dex
       bne     _cblk1

       jsr     Round                  ; fill bottom of cave cell

       lda     genh
       sec
       sbc     #$08
       sta     genh

caveadd_
       inc     genh                   ; modified by cave dir

       lda     genh                   ; check level bounds
       cmp     #$2c
       bne     _notop
       inc     genh
_notop
       cmp     #$b8
       bne     _nobot
       dec     genh
_nobot
       lda     gen
       cmp     #$28
       bne     _noleft
       inc     gen
_noleft
       cmp     #$d0
       bne     _noright
       dec     gen
_noright
       dec     cavelen
       bpl     _caveon

       dec     cavesl
       bne     _nextcave
       dec     caves
       bne     _nextcave

 

1. first... the whole level is filled with the wall texture

2. then via random it's choosen if the cave cell is opened (or moved? --> cave dir) top, down, left, right.

3. then subroutine is "drawing", well actually erasing the wall texture top, middle or ground vise... --> "subroutine round".

4. a cave cell seems to have 8x8 character dimension

 

so actually it's like with photoshop and drawing with thik pencil... ;)

 

and random seeds are predictible and are feeded by c=64 rom code at $e700 and $ef00. so actually this 512 byte rom code is included here as well to reproduce the levels correctly.

Share this post


Link to post
Share on other sites

i played little bit the c64 version again and it seems that the collision routine there is same weak as the atari one... (the picking up of the capsules)... anybody discovered any difference between the 2 versions? i do not mean right starting position (tunnel below the space ship f.e.)

 

i tend to improve various things on this port... as i will not force me to the 1k or 4k limit... so i will add some msx and title screen with credits if you don't mind...

 

some tweaks are already added f.e. the overscan playfield...

Share this post


Link to post
Share on other sites
some tweaks are already added f.e. the overscan playfield...

993977[/snapback]

 

heaven,

 

have you every tried to run Venus on a real machine? It runs well on the emulator but not from MyDos, Picodos or the QMEG Menu.

 

What may be wrong?

 

\twh

Share this post


Link to post
Share on other sites

it should work running with a game dos but not from a standard dos as the loading adress is $500ff...

Share this post


Link to post
Share on other sites

ok. here is the atr file... it's just a work around i moved the main code to $f000 and the sprite data to $0600 so it now should work on real machine... (ok bit of waste using 3k of the 130kb of a disc... ;))

venus.zip

Share this post


Link to post
Share on other sites
ok. here is the atr file...  it's just a work around i moved  the main code to $f000 and the sprite data to $0600 so it now should work on real machine... (ok bit of waste using 3k of the 130kb of a disc... ;))

995124[/snapback]

 

yeah! great stuff!! I especially enjoy the overscan!!! The game is really great. Somehow cooler than Thrust. Do you think you can eleminate the top/bottom-borders too? I think this is what the atari version of this game would make it superior to the c64 version!!!!

 

\twh

Share this post


Link to post
Share on other sites

removing the borders never was a real big issue with our Antic and Gtia duo... ;) so it could be happen...

Share this post


Link to post
Share on other sites

here is the latest build as bootable ATR...

 

changes to previous version:

 

- score & timing routines adapted

- game over etc works now

 

so actually now you should be able to play it properly...

 

now...rest is polishing and making an "plus" version for the atari version...

 

btw. i have thought about using complete overscan...but question...will this not hit gameplay as you can see more of the caves than in the original version? what do you guys think... should i switch back to 40x25 mode like the c64 original?

venus.zip

Share this post


Link to post
Share on other sites
here is the latest build as bootable ATR...

 

changes to previous version:

 

- score & timing routines adapted

- game over etc works now

 

so actually now you should be able to play it properly...

 

now...rest is polishing and making an "plus" version for the atari version...

 

btw. i have thought about using complete overscan...but question...will this not hit gameplay as you can see more of the caves than in the original version? what do you guys think... should i switch back to 40x25 mode like the c64 original?

995873[/snapback]

 

:cool: :cool:

 

The complete overscan is for sure a "polishing feature". I think it's not disturbing the gameplay at all. Honestly adding overscan makes this game really atari 8bit like! You know, this one thing I really love about my XE. Rather than C64 and Atari ST (surprise, surprise) the XL/XE machines had this great overscan mode which adds so much more flexibility to any game/demo. So why abdicating this feature when we can have it for free?

 

Okay about the "Venus plus" version here what comes up to my mind:

 

* G2F opener

* G2F title screen / logo

* music in title screen / game

* highscore list / hall of fame

* rolling time - to - points effect :) (like in boulderdash)

* disk version -> to store highscores

* crash animation / sound

* transparent on screen display (what are the technical limitations here?)

-> this also means even more overscan!

* replacing the "rainbow color distortion" by text "Get ready!"

* G2F end screen (how many levels are in the game?)

* end screen music

* game over jingle

* get ready jingle

* usb mouse support -> hereby the throttle must be the button

(I can help on this)

 

and much much more :)

 

Can you open source the atari version? What about the restricitons of the original author of the game? If open sourced, everybody could contribute changes.

 

last words: Thx 2 u Heaven!!! This nice little game spent me hours of fun with my XE :) at this weekend.

 

grtx,

\twh

Share this post


Link to post
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.

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