Thanks retroclouds!! Yea, Karsten's title screen graphics are quite awesome. . The game is still pretty weak and only about 50% done, but with that title screen--- who cares?? We're a lucky community to have such talent. Karsten's graphics, SPECTRA, Tursi's emulation support, Jon's boards--- Pitfall, Tutankham, matthew's tutorials.... It's so cool
to be here in these times. Did you try the code out Filip?

**Code updated. Now, the diver and enemies do not reset to default position, but keep going after you collect a tank. You get an extra 10 oxygen when you collect a tank. Starting to be a bit more fluid now. =) I hope to keep this progress going. Next: treasure chests! =)

In thinking about this straight conversion to assembly, I want to keep the game premise simple and keep the code pretty simple and easy to read. I might change much of this code to single statement lines with a bunch of comments before I start the conversion.

Thanks retroclouds!! Yea, Karsten's title screen graphics are quite awesome. . The game is still pretty weak and only about 50% done, but with that title screen--- who cares?? We're a lucky community to have such talent. Karsten's graphics, SPECTRA, Tursi's emulation support, Jon's boards--- Pitfall, Tutankham, matthew's tutorials.... It's so coolto be here in these times. Did you try the code out Filip?

In thinking about this straight conversion to assembly, I want to keep the game premise simple and keep the code pretty simple and easy to read. I might change much of this code to single statement lines with a bunch of comments before I start the conversion.

Good idea.

Here's another idea. Throttle your emulation. Break it down a bit, simplify, logical sections, more lines doesn't matter, consider moving the sprites yourself (no automation), add speed controls overall and/or on objects, and consider integrating collision detection as you move each sprite (no coinc). This should hopefully help you once you start "translating".

A line-by-line conversion is a good idea. Keep the Basic statements in the comments of the assembler source (as Tursi did). It will make it easier for yourself and others.

I've played the game too. There are still some diver and tank collisions being missed - like I have to travel to the edge and back before it hits.

Yes, and I cannot figure out why it does that..... The collision thing. All I'm doing is coming up with a random integer that is within the screen parameters for the X and the Y.... Then I am checking for a collision between my PC SPRITE and that location by multiplying the integer by 8--- per each 8 pixel screen tile. Theoretically, it should work, and DOES work 85-90% of the time.. But there are those instances where you are forced to "find" the pixel (with tolerance) and it's driving me MAD.

I thought that setting boundaries for the tanks and keeping them on-screen would fix that, and it DID help, but it's not fully operational just yet. I might try playing with the tolerance and see if I can tighten it up a bit. Also need to set the boundaries for the diver--- can't have him going offscreen.

I have cut up the code into single statement lines with REM statements for each section of code... I'm not sure how closely this will mirror the routines that will be implemented in assembly, but at least it makes the whole thing alot more understandable. =) Please check out the new code and give it a rip. I haven't even tried it out yet, as I'm on my Mac right now doing all this in a text editor, so I don't have emulation available. If it works like I expect, there will be no performance degradation, and it should run as it's always run. Thanks for keeping up with progress... this newly formatted code should be pretty simple to look at and understand... It's pretty cool to see it all cut up and compartmentalized... =) Reminds me of writing BASIC programs back before I had an XB cart and no emulator. =)

Code has been broken down even further into very small chunks, mostly 2-3 instructions per REM statement. I am beginning to see how simple this could really be in assembly. =) Register usage makes so much sense... I just need to get this darn XB game done so I can start having fun. =)

Again, I haven't tested this new code--- the broken down code. I have kept a version in multiple-statement lines and without most of the REMs... but I'm pretty sure this new code works. No reason for it not to. =)

Code has been broken down even further into very small chunks, mostly 2-3 instructions per REM statement. I am beginning to see how simple this could really be in assembly. =) Register usage makes so much sense... I just need to get this darn XB game done so I can start having fun. =)

Again, I haven't tested this new code--- the broken down code. I have kept a version in multiple-statement lines and without most of the REMs... but I'm pretty sure this new code works. No reason for it not to. =)

Yeah, implementing an XB program in assembly is a great way to learn how to do it.

I did it myself with TI-Trek. That one was tricky because I decided to re-utilize the mathematical functions... which meant using XMLLNK and GPLLNK. Not so bad for tagged code, but a pain in the butt to implement with memory images.

Hey adamantyr, question for you. How "complex" a game was TI-TREK? This current game I'm working on is pretty simple--- I imagine once the font is in and the treasure chests--- the multiple levels, etc., I imagine the game will be twice this size. However since level changes won't be much more than a difference in water height, water color, enemy graphics, and speed, they won't add much complexity. Arcade games are easier to design than other types of games, I've learned....

Hey adamantyr, question for you. How "complex" a game was TI-TREK? This current game I'm working on is pretty simple--- I imagine once the font is in and the treasure chests--- the multiple levels, etc., I imagine the game will be twice this size. However since level changes won't be much more than a difference in water height, water color, enemy graphics, and speed, they won't add much complexity. Arcade games are easier to design than other types of games, I've learned....

TI-Trek was a great example of very bad BASIC programming, actually.

A great deal of the program was haphazardly organized. Maybe the original writer had some grand overarching scheme to his placement of code, but if it was there, I couldn't see it. I just saw a lot of spaghetti logic and GOTO's where there was no real call for it.

Converting the graphics was easy... practically a copy and paste job. The sounds were a little more difficult to replicate, because some of them were using loops and decimal mathematics to determine the sound to play. Assembly language is better with iterative sound lists, so I ended up "faking" it a bit.

The parser for entering commands and directions was probably the most complicated bit of code, as most parsers are. That's one reason I decided not to use any parsers at all in my CRPG; way too much error-checking. Utilizing the mathematical functions wasn't too bad, the process is fairly clear in the E/A manual. These days, I'd have found a way to use integers instead, because mathematical accuracy isn't necessary for the scope of the game.

Well, just knowing that someone writes crazier code than I do makes me feel better! Sometimes I look at my XB code and can't believe it works!!

I'm trying to keep the code for this game very clear and easy to understand--- you can be the judge of that. . The most updated code is at the top of this thread--- I think it's pretty easy to understand. Anyway, thanks for the reply--- I'll DL TI-TREK, the original and your EA version and see what I can see. Thanks!

Gotcha. Thanks alot... I'm setting up a template for my game conversion(s) and I'm just wanting to make it as efficient as possible. I need to familiarize myself with how cart ROM works.... Reading the SPECTRA docs as we speak... Hope to find my answers there.

That's very cool man! On the code notes--- yea, I know XB doesn't like those characters--- they are in my text file where I do alot of coding, and I use that stuff (plus the non-lined REM statements) just to separate my code out. If you copy and paste into Classic99, it just gives syntax errors on those lines and leaves them out of the final listing--- which is the plan...

I need to change my screen up... Add an ocean floor and move my statistics somewhere--- I'd like to lower the waves (as you suggested before) and tighten up the playing field some more.

I'll post completed code in the next few days. I'm trying to eliminate the automotion and make screen draws faster. Anyway, just about done. Sorry for being absent the last month... Been on the road busy busy busy