Jump to content
marc.hull

Jumpman JR actually does exist ;-) and other things....

Recommended Posts

This isn't necessarily on topic but it's been something I've observed while trying to study 4A assembly.

 

To me; it appears that the 16-bit processor of our little TI is the biggest hindrance and limitation. Since everything has to be converted to the 8 bit bus and all the fiddling with byte oriented operations, it might actually have made more sense for it to be 8-bit and eliminate the constant word-to-byte-and-byte-to-word bs.

 

Alas, that is just mere speculation from someone who doesn't know jacksh*t about assembly nor the super depths of designing processors and systems.

 

Cheers!

 

-Dano

 

I think as you continue with your programming you will see the up side to the 16 bit architecture. Try adding 356 to 765 with one instruction on an 8 bit machine.

 

Don't get bogged down in that whole 8 bit multiplexing crap. The TI is plenty fast running machine code

  • Like 1

Share this post


Link to post
Share on other sites

The thing I find annoying about the byte operations is that they work on the most significant byte. That means you have to use additional operations (CLR, SWPB, SRL, etc.) when you want to use 8-bit values in 16-bit calculations. Why was it designed like that?

 

Anyway, if you program an assembly game make sure to put your register workspace, main variables and perhaps copying loops into 16-bit RAM (scratchpad). You can generally use all of scratchpad as you want, it's only when you need to call console routines (e.g. for disk access) that you need to stay away from some areas.

  • Like 2

Share this post


Link to post
Share on other sites

This isn't necessarily on topic but it's been something I've observed while trying to study 4A assembly.

 

To me; it appears that the 16-bit processor of our little TI is the biggest hindrance and limitation. Since everything has to be converted to the 8 bit bus and all the fiddling with byte oriented operations, it might actually have made more sense for it to be 8-bit and eliminate the constant word-to-byte-and-byte-to-word bs.

 

Alas, that is just mere speculation from someone who doesn't know jacksh*t about assembly nor the super depths of designing processors and systems.

 

Cheers!

 

-Dano

 

I hear where you're coming from, but you've kind of got it backwards! It's the motherboard that is the problem, not the TMS9900. The reason is that the mother board was designed for a different processor entirely (which, like the 9995 was 16 bit internally, with an 8 bit external data bus) but the chip never got released because it was a buggy mess. Hence they had to shoe-horn the 9900 into the existing design at the last moment. It's the worst of all worlds. It would have been sooooo much better with the 9995, but the 9995 didn't exist then.

 

Carl Guttag, a (then) new graduate just starting at TI, was sent to the UK to "learn a few things" from the TI Bedford crew. As he recalled, he didn't really have much to do, and was a bit under-utilised, so he got interested in the TMS9900. I think Colin Hinson (TI Bedford, UK) took him under his wing. Carl looked at the TMS9900 and said to himself, "Meh, I reckon I can do better than this" and he designed the chip himself, from scratch, just preserving the "essence" of the 9900, but not based on any pre-exiting 9900 circuitry. This would be at the time when chips were "designed" at the logic gate level, by drawing them out with black tape on huge drawing boards. Then you manufacture a small batch and cross your fingers. I believe it worked pretty much first time.

 

Guttag is a genius.

 

He went on to design the hallowed TI graphics processors, which were awesome devices for their day: The TMS34010 and (the one I worked on, and programmed in assembler) the TMS34020.

 

Happy days.

  • Like 3

Share this post


Link to post
Share on other sites

So which level is the missing level?

Don't know if the games go thru all levels when in "attract" mode. Anyway, here are the screenshots. Jumpman seems to have one more level named Spellbound (frame 9 below).

 

[media=544,440]http://sometimes.planet-99.net/pic/jumpman.swf[/media]

 

Also, I previously played a bit of Junkman but found the game too sluggish. Jumpman on the other hand has surprisingly been a pleasure to play (much more responsive).

 

:)

Edited by sometimes99er

Share this post


Link to post
Share on other sites

Don't know if the games go thru all levels when in "attract" mode. Anyway, here are the screenshots. Jumpman seems to have one more level named Spellbound (frame 9 below).

 

[media=544,440]http://sometimes.planet-99.net/pic/jumpman.swf[/media]

 

Also, I previously played a bit of Junkman but found the game too sluggish. Jumpman on the other hand has surprisingly been a pleasure to play (much more responsive).

 

:)

Spellbound. That makes sense since the secret was to spell out Jumpman EPYX for points. If this wasn't 100% official then they wouldn't want to put EPYX anywhere in the game. Then again, Spellbound is a pretty weak level so maybe they cut it for space reasons?

 

BTW I'm not seeing anything other than the PRESS KEY TO BEGIN screen.

Share this post


Link to post
Share on other sites

;) Yeah, well, activate the content by left clicking on it, and then "press any key to begin". Then use arrow keys to compare and navigate thru screenshots.

Ah it's interactive. I see now.

Share this post


Link to post
Share on other sites

Thanks for the explanation of my comments from my previous post.

 

I remember reading that now, in Orphan Chronicles maybe? Regarding the decision to put in the 9900 instead of the 8-bit CPU that it was intended for.

 

I really have been trying to study all the assembly books for the TI. Keep trying to get a slightly different perspective in hopes of obtaining the "light bulb" moment. Hasn't happened yet! LOL

 

I've got to get a better understanding of bit manipulation and the operations around that. I haven't been able to grasp good technique in my binary computation methods, so it's been tough to bring the pieces together in my head, and make sense out of it. But, I haven't given up. Once I have a little more time to dedicate to a small program to write, and give me a goal to work towards, it will come with practice. At least, that's the theory in my head right now. ;-)

 

Cheers!

 

-Dano

Share this post


Link to post
Share on other sites

Back story is required here.

 

A while back I inherited Bill Gaskill's huge floppy library. About once every two weeks I get a box in the mail with about 300 disks in it. I'm up to about 6000 total at the present and for that I am grateful and at the same time overwhelmed with the amount of material.

 

During one of my Friday night disk explorations (I'm near 50 so my definition of Friday night excitement has changed radically in the last 30 years) I stumbled (and that is the operative word here) across something that caught my eye. On a nondescript, well used disk with several files I happened to see a couple named JUMPMAN and JUMPMAO. Now I was skeptical at first thinking that someone had just renamed the files but since it was Friday in the big town I figured what the hell and ran them. Title screen popped up and that familiar tune began and I thought "no biggie, same old same old. " Almost hit reset when I noticed the title screen did indeed say "JUMPMAN and not JUNKMAN" and the graphics were slightly different. A hack ?

 

It had been a while since I had played the game so I thought what the hell and dove in. Played about the same as usual. Graphics were a bit different and I thought well this must be a prelim copy before it was changed for distribution. Levels were in a different order but I figured that must have been changed during conversion to cart form. All seemed about regular until I got to a level I did not remember. "Son of a bitch.... that's a new level." Don't know if I thought that or said it but none-the-less it shocked me a bit. This may indeed be old hat and there are bound to be people who have seen this but it definitely was new to me.

 

I contacted Bill and told him about it and he confirmed that in his opinion it was indeed a different version of the game and most likely the one written by Steve Mildon and submitted to DB for publication. I am guessing that in order to avoid royalties DB changed the title and eliminated this level. That is only a guess but it stands to reason.

 

For a couple of months I have tried to get into contact with Mr. Mildon but even though I figured out where he was I couldn't get a message to him. Finally Cory stepped up and through his contacts made the connection and secured permission from Steve to release the game. (Soap box on) It's never impossible to do things the right way ;-)... (soap box off.) Thank you Cory !

 

So without further ado........ I would like to present courtesy of Steve Mildon, Bill Gaskill and Cory...... Jump Man Jr. in all it's original 1980's glory.

 

The attached file is not a text file ! It is a 90K DISK image. Use TIDIR to extract the files and write to disk or convert to whatever form you need. The two files are ROM1 and ROM2 (I renamed them in my personal convention, rename them what you want.) They are an EA5 executable. Run them on your console or whatever EMU you like. If someone wants to break these down into an more user friendly set of file then please do.

 

This has been release to the TI world as freeware by Mr. Mildon and under no circumstances should it be offered for sale in any manner. If you want to send someone a physical disk then you have to eat the entire cost of doing so, media, postage the whole nine yards..... Period. If you electronically transfer the disk then you must do so with out charging a fee... again Period.

 

This is a pretty neat occurrence IMHO and a hearty thanks should be directed to Bill Gaskill for preserving what could have been easily lost without his efforts. Thanks to Corey for going out of his way to get permission and big thanks to Steve for a really fun fucking game ;-)......

 

Hull.

 

PS.... OVERWHELMED

 

 

 

How do I use the jump.txt file that is in the first post?

Thanks in advance

Justin

 

 

 

 

 

 

 

Share this post


Link to post
Share on other sites

 

How do I use the jump.txt file that is in the first post?

Thanks in advance

Justin

 

Rename it to jump.dsk. It is a disk image.

 

....lee

Share this post


Link to post
Share on other sites
Quote

I contacted Bill and told him about it and he confirmed that in his opinion it was indeed a different version of the game and most likely the one written by Steve Mildon and submitted to DB for publication. I am guessing that in order to avoid royalties DB changed the title and eliminated this level. That is only a guess but it stands to reason.

You are correct.

 

I am the Stephan Meyers mentioned in the splash screen.  I was hired to prep it for sale as a cartridge - DBI handed me 16kb of more or less complete code, my job was to:
* break it up to run in 2x 8kb ROM banks
* change the name and graphics
* write the manual
* add the cheat code

 

... maybe some other things?  Like I think I had to refactor a little to shave off a few hundred bytes?  I was a teenager, it's my first published work, I don't really remember.  It's otherwise nearly identical.

I might have some floppy disks in a storage space in Texas containing the source code.  I may go there next year.  If I do have that, I would possibly have the original source code from before I changed it around.  If they're readable, and someone can give me the files, I would be willing to put them up on my GitHub - reconstructing, if I can, commits that would show the difference.  I suppose in theory that would be a violation of some copyright or something I signed 35 years ago, but I can't imagine who would go to the trouble of enforcing it.

More likely, they're gone, or they're unreadable.

If anyone has other questions, I can try to dredge up answers, but again, it was a very long time ago.

  • Like 7
  • Thanks 1

Share this post


Link to post
Share on other sites
6 hours ago, sometimes99er said:

If one was dedicated and had the time, it wouldn't take long to recreate this. What does someone like asmusr say ? ;)
 

I'm not dedicated, and I don't have time. 🙂

Share this post


Link to post
Share on other sites
7 hours ago, sometimes99er said:

If one was dedicated and had the time, it wouldn't take long to recreate this. What does someone like asmusr say ? ;)
 

 

59 minutes ago, Asmusr said:

I'm not dedicated, and I don't have time. 🙂

 

To recreate what?  The source code, or the commits?  Either way, no, I don't expect anyone could do it - you'd be missing something essential - the comments.  I don't remember the comments being particularly extensive, but there were some, and there is no way you could recreate them.

  • Like 3

Share this post


Link to post
Share on other sites
1 hour ago, stephancom said:

To recreate what?  The source code, or the commits?

I have no idea what I was supposed to do, to be honest. 🙂

  • Like 2

Share this post


Link to post
Share on other sites
On 3/25/2014 at 7:38 AM, sometimes99er said:

Don't know if the games go thru all levels when in "attract" mode. Anyway, here are the screenshots. Jumpman seems to have one more level named Spellbound (frame 9 below).

 

[media=544,440]http://sometimes.planet-99.net/pic/jumpman.swf[/media]

 

Also, I previously played a bit of Junkman but found the game too sluggish. Jumpman on the other hand has surprisingly been a pleasure to play (much more responsive).

 

:)

Oh!!! That might have been what I had to do to free up memory! I took out a level! I bet that’s it! The original code was a solid 16k, I had to do something to make room for the bank switching and cheat mode. I bet I dropped one of the levels, that would be the easiest thing, nothing else was “optional”

 

As for performance, this part I remember clearly, I had to split it up into two banks, so any long jump (BLWP? Maybe? Been forever since I did 9900. Maybe without the workspace pointer?) went through a routine that was in the same place in both banks. I checked the high bit to tell if you had to switch, and switching took time, I think I even had a string of NOPs or something to kill time waiting for the switch?

 

And then you’d land in the other bank and get routed to where you needed to go. I thought of it at the time as a bit like the bridge in Back to the Future III, I had to make sure the track would be there on the other side so the back switching routine was the same code in the same spot on both sides, I think at >7000, the only difference is one would switch if it was heading to an address in the >8000 range (and flip that bit), the other if the destination was in the >7000 bank (and not flip the bit, but flip it if we’re NOT bank switching)

 

it might have been at the end of the bank, like >7F00 or something, because I bet >7000 probably had to be initialization code and/or interrupt handling?

 

could it have been better? could I maybe have only done the switch if the destination needed it? Maybe, or maybe I did do that, or maybe it wasn’t practical... I’m a real good programmer, and I was really good then, so I bet I did ok. I might have moved some subroutines around to avoid switching? Bank switching and cheat mode were requirements handed to me, not my decision, hardware constraints for the former, I think the latter was mainly for QA.


Maybe if I had a few more months to dick around I could have shaved a few bytes here and there instead of dropping the level but my memory is that the code was REALLY tight to start with. If it wasn’t, I bet the other guy would have added another level, he was out of space, and in general (to my memory) all or nearly all of the code was needed on every level.

  • Like 2

Share this post


Link to post
Share on other sites
1 hour ago, Asmusr said:

I have no idea what I was supposed to do, to be honest. 🙂

Ell oh ell. Probably they were thinking you could disassemble it and do a diff. Which would lack comments and just not be the same.

 

Plus, if I know my habits, I probably had made backups at multiple points in development. Maybe not, floppies were expensive, and it was huge, took forever to assemble, but odds are there’s copies comprising snapshots at most two weeks apart.

 

I wish I’d had git then, or at least CVS. But I never heard of source control for another decade - or unit testing for another decade after that.

Share this post


Link to post
Share on other sites
10 hours ago, stephancom said:

Oh!!! That might have been what I had to do to free up memory! I took out a level! I bet that’s it! The original code was a solid 16k, I had to do something to make room for the bank switching and cheat mode. I bet I dropped one of the levels, that would be the easiest thing, nothing else was “optional”

 

As for performance, this part I remember clearly, I had to split it up into two banks, so any long jump (BLWP? Maybe? Been forever since I did 9900. Maybe without the workspace pointer?) went through a routine that was in the same place in both banks. I checked the high bit to tell if you had to switch, and switching took time, I think I even had a string of NOPs or something to kill time waiting for the switch?

 

And then you’d land in the other bank and get routed to where you needed to go. I thought of it at the time as a bit like the bridge in Back to the Future III, I had to make sure the track would be there on the other side so the back switching routine was the same code in the same spot on both sides, I think at >7000, the only difference is one would switch if it was heading to an address in the >8000 range (and flip that bit), the other if the destination was in the >7000 bank (and not flip the bit, but flip it if we’re NOT bank switching)

 

it might have been at the end of the bank, like >7F00 or something, because I bet >7000 probably had to be initialization code and/or interrupt handling?

 

could it have been better? could I maybe have only done the switch if the destination needed it? Maybe, or maybe I did do that, or maybe it wasn’t practical... I’m a real good programmer, and I was really good then, so I bet I did ok. I might have moved some subroutines around to avoid switching? Bank switching and cheat mode were requirements handed to me, not my decision, hardware constraints for the former, I think the latter was mainly for QA.


Maybe if I had a few more months to dick around I could have shaved a few bytes here and there instead of dropping the level but my memory is that the code was REALLY tight to start with. If it wasn’t, I bet the other guy would have added another level, he was out of space, and in general (to my memory) all or nearly all of the code was needed on every level.

So you're referering to something more than 6 years ago. The link is even broken. But thanks for at least being somewhat open about what shortcuts were taken.

I will always try and stand by my word. I'm sure I was as honest as I could at the time.

:|

 

  • Like 1

Share this post


Link to post
Share on other sites
On 9/6/2020 at 10:20 PM, stephancom said:

* write the manual

* add the cheat code

So does anyone have the manual?

Also, what is the cheat code?

Share this post


Link to post
Share on other sites
6 hours ago, sometimes99er said:

So you're referering to something more than 6 years ago. The link is even broken. But thanks for at least being somewhat open about what shortcuts were taken.

I will always try and stand by my word. I'm sure I was as honest as I could at the time.


haha and I’m referring to something more than thirty years ago! I don’t doubt for a second that my modifications slowed it down noticeably. That long jump happened all the time, surely several times per game loop, and it’s not like we had some fancy interrupt driven draw routine decoupled from the play loop like you would have today.

 

Though it does give me an insane urge to go back and see if I can improve it. There is no way that would be productive use of my time.

  • Like 1

Share this post


Link to post
Share on other sites
2 minutes ago, majestyx said:

So does anyone have the manual?

Also, what is the cheat code?

It’s online somewhere but I have (somewhere) a physical paper copy I bought on eBay, I’ll scan it if I can’t find it elsewhere.

 

Cheat code I think is either *#* or #*# followed by a level number?

  • Like 2

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