Jump to content
IGNORED

Vectrex32 Smartcart


vtk

Recommended Posts

  • 3 weeks later...
  • 3 months later...

Well now... that's a reasonable conclusion I suppose. Actually, I'm quite interested! It's just... the $150 price tag makes me want to do research before pulling the trigger.

 

This Vectrex32 look extremely clever to me. The fact that it comes with a BASIC programming language makes it seem like a dream come true. Really, I'm interested.

 

My only issue is the lack of reviews and user feedback. I want it to be as amazing as it looks because I want to order one.

 

 

Sent from my iPhone using Tapatalk

Link to comment
Share on other sites

it would be a very good device for someone who wants to take the easier road of writing vectrex games in BASIC and have the added advantages of various useful features (many of which makes writing games easier etc), not to mention the added processing power ... but.. at the moment it kind of seems like there isnt much of a 'scene' going on with this device, eg. people chatting about it and swapping code and games coming out etc (that might change in the future though, or it might not. who knows!)

Link to comment
Share on other sites

  • 2 weeks later...

Having just acquired a Vectrex, I've been doing lots of reading and research and this device looked interesting. Still does, actually, but I think its shortcoming is likely to be the fact that anyone who might want to play a developed game appears to have to already have the unit. That's a steep entry price for anyone who'd be interested in just playing the games. It might be useful to have a lower cost "playback-only" variant of the cartridge but who knows if that's even feasible.

 

That said, I may still get one to fool around with.

Link to comment
Share on other sites

If you're saying the Vectrex32 needs an emulator, I'd agree. Being tethered to the Vectrex for programming is a major shortcoming. Everything else about the Vectrex32 is extremely impressive. Who wouldn't want to try programming the Vectrex in BASIC.

 

I really hope a Vectrex32 emulator is on the horizon. I too wish to try one of these out yet not being able to program independent of the Vectrex is a drag.

 

 

Sent from my iPhone using Tapatalk

Link to comment
Share on other sites

Excuse me - but this is getting absurd.

STOP WHINING!

If you want to program the vectrex just do it - whatever way you like.

If you are able to PROGRAM decent basic programs, you will be able to program the vectrex in
assembler if you invest 2 hours of your time.
(really! - 6809 combined with the Vectrex BIOS IS that simple)

There are tutorials, step by step introductions available that will guide you.
(and quite a few emulators around - and using VIDE you get your own program running in 10 minutes!)

Having no BASIC is no excuse not to program vectrex!

Now having BASIC - the excuse is "oh god I must have a vectrex connected".
Yeah sure, you want to program but don't want to use a vectrex.

You have a text editor, right? Use it! There you can program without any attachments at all, you
might even try a pen and paper style if you do not want to use any electronic device while programming.

What is that about a "playback only module"?
People do you THINK befor you write?

It is like I want a car, but I only want to be driven, not drive myself - so it should cost less than a "real" car...


That said - while I think the vectrex32 is a very cool piece of engineering, it fails at being fantastic.

Why?

1) Be what it may be - BASIC is an introduction to progamming, so should (IMHO) be a BASIC module.
Introduction, not some complete stand alone thing. An introduction that leads you to "real" programming
(aka in this context probably assembler).

Some stuff that you must "forget" that you learned while you did BASIC - like:
- absolut and relative positioning
- X <-> Y and Y <-> X
- others
Learning it the "wrong" way hinders you later on.

2) I have a super cool card, with a processor on it, connected and communicating with vectrex - but the ONLY way
I can access it is via doing BASIC?

Why - can't I use the device to upload my assembler programs and run them? Than I could use it also as a general
development tool? Now I have to wait for VecFever to do just that!

Why can't I use the processor as a "coprocessor" of some sort from my assembler programs.
E.g. If it had some sort of library usable from vectrex and I could call a "jsr rotate VLIST 29 degress" - than I could use
that from my own assembler programs.
(btw. while VecFever does not per se offer any "subroutines", it is open in the way
that it COULD - you can already access the card thru register programming, since it has mapped registers to the vectrex memory region)

Now I have to do BASIC, can't resuse stuff of my own and am hindered by the authors implementation of his own "main loop".
I can not do any "tricky" stuff at all, like curved vectors, output samples, use other hardware additions at all, because I am
caught in the BASIC trap.

What also would be cool if the "OS" of the device was open source - that way one could add, tweak the device perhaps even to be usable in
above mentioned ways, but no, the actual BASIC is top secret (sorry about being rude).

The device is great, but it could easily have been so much more!
And - don't get me wrong, while being mad at some things said here and at missed opportunities a device like the Vectrex32 might have had,
Bob is a nice guy, really responsive with his help.

But above were things that needed to be said (from my point of view).

So - all interested in programming - stop reading and whining - just do it!

Malban

Link to comment
Share on other sites

Excuse me - but this is getting absurd.

 

STOP WHINING!

...

What is that about a "playback only module"?

People do you THINK befor you write?

 

Malban

 

Yes, I do think before I write, thank you very much. The point being made here was that the BASIC cartridge, while cool in allowing someone to do their own game coding in a modern, easy-to-use language, isn't really effective for developing games for others to play because, as I understand it, you have to have the $150 device to do so. Consequently, if I develop a killer game that I might like to sell, the cost of entry for someone who might want to buy it becomes $150 plus the cost of my game. If there were a less-expensive, run-time only version of the BASIC cartridge, that would reduce the cost of entry. I also noted that it may not be feasible to do this. In fact, on further research, I'd guess that it isn't as you'd need the same PIC processor and RAM to run the game, since the Vectrex becomes just an I/O device. Still I can see some value there as a prototyping tool, trying out game ideas, looking at the vector character designs on the actual hardware, etc.

Link to comment
Share on other sites

1. Having to hook into my Vectrex to run and debug code makes the task highly impractical for someone who spends 100+ days traveling. My coding sessions often take place in hotel rooms. Most programmers include running and debugging into their workflow.

 

2. I am certain I do not share the brilliance of a man who claims to learn 6809 assembly programming and Vectrex BIOS in just two hours.

 

3. I'm a fan of the Vectrex32 who is simply voicing my concerns while framing questions.

 

4. FACT: There's very little feedback from the Vectrex32 forums. The owners are curiously quiet. Therefor, I'm asking questions here which isn't absurd at all. The goal is to be an informed buyer.

 

5. We're not all IT professionals here so interpreted BASIC sounds great to me. It appears he who learns 6809 assembly in two hours is not at all the target audience for this device.

 

HILLARIOUS PART: Milban's post contains more whining and criticisms than any post here.

Edited by Airshack
Link to comment
Share on other sites

This is a brilliant product. I've messaged the guy who made it on Facebook and he kindly answered some of my questions. Not a reclusive guy from first impressions.

 

But, I suspect he's a talented guy with many hobby projects. I don't think he has plans for this to be something like DPC+ for the Atari 2600. Any BASIC games will probably stay exclusive to other Vec32 owners. I can't see investing time developing the next Vectrex RPG and then not being able to make carts for publishing.

 

One scenario I can see is the guy moves to other projects and leaves this as a curiosity. That's totally within his rights. It does leave some awkward situations for those late to the game or who invest time with the product.

Link to comment
Share on other sites

Hi,

 

I am sorry if I sounded rude in my last post. It is probably because I was. I apologize.

Nonetheless, my opinion more or less holds.

 

BASIC - ASSEMBLER

 

I assume you know at least a little bit about programming, otherwise I would find it very ambitious to start your programming career doing vectrex stuff (you are nonetheless welcome to do so).

But if you are just starting out programming - I would nowadays not recommend BASIC. And certainly (sorry Bob) not the BASIC of Vectrex 32.

 

I AM sort of an IT professional, and the setup to get Vectrex32 running is not as easy as it may sound, and the error messages I encountered (using Verison 1.0) were not always straight forward.

 

So I conclude that in some form or another you DO have some experience programming. To write "good" BASIC programs you need a basic understanding of programing, how computers work what a variable is, what a loop is, what conditionals are and so on. If you know that and can work with that you can also write (IMHO) in a couple (2?!) hours a first basic 6809 assembler program making use of the BIOS. You have to learn some "names", some BIOS routines and if you don't know the difference between hex, binary and decimal than that too.

 

(The finer points of assembler certainly take longer, I admit, but the finer points of BASIC also, I know beginners are most of the time struggling with a BASIC "DIM" statement, you will be struggling in assembler with the difference of direct, immediate, indirect and indexed adressing, YES)

 

Yes you have to read, yes you have to experiment and yes you must have the "courage" to do so. But let me for some minutes do a MINI example. Assuming you have found on the internet a basic assembler gameloop of a vectrex program (or just used vide).

 

Following is a "complete" game loop for vectrex. This is a working vectrex program drawing a blank screen at 50Hz.

; load vectrex bios routine definitions
                    INCLUDE  "VECTREX.I"          ; vectrex function includes
                    BSS      
                    ORG      $c880                ; start of our ram space 
; The cartridge ROM starts at address 0
                    CODE     
                    ORG      0 
                    DB       "g GCE 1998", $80    ; 'g' is copyright sign
                    DW       music1               ; music from the rom 
                    DB       $F8, $50, $20, -$80  ; hight, width, rel y, rel x (from 0,0) 
                    DB       "NEW PROG", $80      ; some game information, ending with $80
                    DB       0                    ; end of game header 

;***************************************************************************
; CODE SECTION
;***************************************************************************
main: 
                    JSR      Wait_Recal           ; Vectrex BIOS recalibration 
; your code goes here

; up to here
                    BRA      main                 ; and repeat forever 


The only two instructions that are in it are "JSR" and "BRA" which can be translated directly to BASIC as "CALL" and "GOTO". Names you have to learn in every programming language.

The instructions in assembler are not called "keywords" but rather mnemonics, but basically this is the same.

 

Following are the first few lines of Lunar Lander, which comes with the Vectrex32:

' lunar

if version()  < 100 then
    print "You need a newer version of the SmartCart software to run this game"
    stop
endif

call IntensitySprite(72)

textSize = {40, 5}
call TextSizeSprite(textSize)
instructions = {{-50, 90, "INSTRUCTIONS"}, _
                {-80, 70, "JOYSTK IS THRUST"}, _
                {-80, 50, "BTNS 1&2 ROTATE"}, _
                {-80, 30, "BTN 4 EXITS"}, _
                {-80, 1, "PRESS BTN 1 TO START"}}
        
call TextListSprite(instructions)

' Wait for button 1 or button 4
controls = WaitForFrame(JoystickNone, Controller1, JoystickNone)
while controls[1, 3] = 0 and controls[1, 6] = 0
    controls = WaitForFrame(JoystickNone, Controller1, JoystickNone)
endwhile

' If button 4 was pressed, exit
if controls[1, 6] then
    stop
endif

call ClearScreen()

The vectrex stuff in there you HAVE to learn, or do you know what "IntensitySprite", "WaitForFrame" or any other of the subroutines do? That is stuff that you equally have to learn in assembler there never anywhere is a way around that.

 

I will translate the above to assembler, so you can see the phenomenal differences.

; load vectrex bios routine definitions
                    INCLUDE  "VECTREX.I"                  ; vectrex function includes
                    BSS      
                    ORG      $c880                        ; start of our ram space 
; The cartridge ROM starts at address 0
                    CODE     
                    ORG      0 
                    DB       "g GCE 1998", $80 ; 'g' is copyright sign
                    DW       music1                       ; music from the rom 
                    DB       $F8, $50, $20, -$80          ; hight, width, rel y, rel x (from 0,0) 
                    DB       "NEW PROG", $80              ; some game information, ending with $80
                    DB       0                            ; end of game header 
;***************************************************************************
; CODE SECTION
;***************************************************************************
;if version()  < 100 then
                    jsr      version 
                    cmpa     #100 
                    blt      demoExit 
                    jsr      Read_Btns 
main: 
                    JSR      Wait_Recal                   
;call IntensitySprite(72)
                    lda      #72 
                    jsr      Intensity_a 
;textSize = {40, 5}
                    lda      #40 
                    sta      Vec_Text_Width 
                    lda      #-5 
                    sta      Vec_Text_Height 
;call TextListSprite(instructions)
                    ldu      #instructions 
                    jsr      Print_List 
;if controls[1, 6] then
;    stop
;endif
                    jsr      Read_Btns 
                    cmpa     #8 
                    beq      demoExit 

                    BRA      main                         ; and repeat forever 

demoExit 
                    bra      demoExit 

version: 
                    lda      #100 
                    rts      

;instructions = {{-50, 90, "INSTRUCTIONS"}, _
;                {-80, 70, "JOYSTK IS THRUST"}, _
;                {-80, 50, "BTNS 1&2 ROTATE"}, _
;                {-80, 30, "BTN 4 EXITS"}, _
;                {-80, 1, "PRESS BTN 1 TO START"}}
instructions 
                    db       90, -50, "INSTRUCTIONS", $80
                    db       70, -80, "JOYSTK IS THRUST", $80
                    db       50, -80, "BTNS 1&2 ROTATE", $80
                    db       30, -80, "BTN 4 EXITS", $80
                    db       1, -80, "PRESS BTN 1 TO START", $80
                    db       0 

All I am saying - do not mystify assembler.

 

If in BASIC you have to do a

if controls[1, 6] then

stop

endif

 

That is similar (if not more so) difficult to understand or learn to:

jsr Read_Btns
cmpa #8
beq demoExit

 

If you haven't the instructions handy you will not know what to write.

 

In fact I find the concept that "controls[1, 6]" is button 4 of port one more confusing than a "cmpa #8" (having the background that 8 represents the 4th bit of a binary number which in turn represents the state of the fourth button).

 

--

 

NEEDING A VECTREX

 

I get that is much easier using only a computer and not having a vectrex connected.

You wouldn't believe how MUCH I understand that. Being the author of not one, not even two - but three different vectrex emulators.

The last being vide, which is a (get that) "vectrex integrated development environment".

 

Trust me, if you are seriously considering programming vectrex you NEED a vectrex - (once in a while).

 

If you want to develop vectrex programs and do so (most of the time) without a vectrex "FORGET VECTREX32" or be really good at programming without trial and error and doing everything right at once. I know I am bad at that.

 

I think <theoretically> Bob could have made it possible to plug the vectrex32 only into the PC and have the programs loaded and executed on a "dummy" ("empty" vectrex) - that way you would at least have been able to determine if any syntax errors happened while reading the program. Also using the debugging capabilities you would have been able to single step thru the prograam (minus input from vectrex). But I also seem to remember that in the current state the vectrex32 NEEDS vectrex as a power supply, so there is NO standalone possible.

 

VIDE

I know you asked about Vectrex32 support of Vide (other forum), so, while I am writing a little book here anyway, I might respond to that.

I know I give of the expression that I don't like vectrex32. That is NOT true. I like the device very much! I have it and I did spend some time with it, and probably will spend more with it. Like I said in my last post - there could have been more, but that is probably always the way.

 

 

Although, the "target"-group of vectrex32 are "Beginners", the usage of the device is not really easy. A quote from the authors quick description on how to work:

- Plug the SmartCart into the Vectrex and turn it on.
- Plug the SmartCart via USB into your PC.
- Bring up a terminal window on your PC to talk to the SmartCart.
- Bring up your favorite text editor. Write some BASIC and save it to the SmartCart's USB drive.
- In the terminal window, load and run your program.
- Is there a fatal error in your program? BASIC will print out a message in your terminal window telling you what the error is and what line it was on.
- Is there a logic error in your program? Hit Ctrl+C. Print out variables, set breakpoints, and continue running.
- Are the shapes not right on the screen? Hit Ctrl+C. Change the values in the arrays that define your vectors. You'll see the changes reflected on the Vectrex screen immediately.
- When you've figured out the fix for the problem, change the BASIC in your text editor, save the changes to the SmartCart's USB drive again, and reload the program from the terminal window. Run it again and see the results.

How many people (that are not computer professionals) know how to handle a "terminal" or even know what that is?

 

It is NOT the command line window, which itself is not used much anymore. A terminal window is the "frontend" of a serial connection to a device (or pc) that is fed over a serial connection with (usually) ascii characters. The terminal accepts and transmits (usally) ascii data bi directional - the history reaches back to mainframe computers that were only accessable over "terminals".

 

I am not even sure if the latest window even has a terminal "program" included - I rather doubt it. You probably have to find a terminal "emulator" on the net and install it.

Than you have to configure it to (if I remember right) 9600 baud and "experimentally" find the right serial port, ouch, I forgot, todays PCs do not have serial ports anymore.

You have to find what serial port the usb port of your computer "emulates" - and use that!

 

So developing for vectrex32.

Good thing is - you can use any editor you like.

Bad thing is, you must use an editor. "professional programmers" have such things lying around, if you are not, that you will probably have to use "notepad" (on windows) or find one that suits you.

You edit your BASIC program using the editor. When finished you must save the program to the vectrex32 USB drive. When plugged in vectrex32 represents itself as a USB drive with

(if I remember right) a few hundred (480?) kiloByte. You must save it to that drive (but for savety you might also save it someplace else - you do not want to clutter your vectrex32 device, remember 480 kiloByte).

 

When finished you have to switch to your terminal program, connect to the device (which hopefully is configured), depending on the state of the vectrex 32 you probably have to press/type:

  • CRTL/C
  • STOP
  • LOAD “currentFile
  • RUN

If an error occurred - you go back to your editor and start again.

Overall there is quite a switch between usb drive, your editor the terminal window and the vectrex, more so if you debug or encounter errors.

 

While you can do a great deal of stuff, it is <very> cumbersome.

 

Here comes VIDE into play. The "menial" tasks it helps you with. You once set up which usb drive to use, you once setup the serial connection. If done so, you stay in Vide.

You can edit, save, load and debug (using a terminal IN vide) all in one program. Also the editor has some rudimentary syntax highlighting when editing your BASIC.

 

But Vide does NOT emulate BASIC, it only allows you to more easily use the device.

 

 

@ToyguyVT:

...
 In fact, on further research, I'd guess that it isn't as you'd need the same 
PIC processor and RAM to run the game, since the Vectrex becomes just an I/O device.
...

I sense there is a "not" missing in that sentence - your conclusion suggests that at least.

And the conclusion is exactly what I meant by "People do you THINK befor you write?", but yes - I could have phrased hat more friendly...

 

Anyway.

 

Even if I may come across as the bad guy here - I am a huge Vectrex fan, I like programing and I also do not mind helping out, I will gladly help you if you want to step into the vectrex programming world.

 

Regards

 

Malban

 

Link to comment
Share on other sites

Thanks for the info Malban, this actually makes want to write something for the Vectrex. Last type I wrote anything profesionally as a programmer was back in the late 90's. I was pretty much self-taught so my methods seem super archane now to me. I would outline something via pen and paper, code it in basic... I would play with what I wrote in basic until I had something that I like and then start rewriting the program in assembly. In my mind back then was straight hexidecimal, I completely skipped things like C and assembler languages. I wasn't until later that I would stubble upon more intermediate languages. These days I generally only write apps when I have to and usually it's html, python, perl, java, php and a odd occasion I'll need to fix some C stuff.

 

I did look a little bit at the Vectrex32, in the material it says you can pause and modify code which to me if it work sounds really appealing. It also makes is sound like really eveything runs on the onboard DSP so that you can write programs the are to complex to run on the Vectrex unassisted. The turn off would be then would be how would you get that software out to users.

 

There is so much great homebrew, so I am not sure what value I could add.

Link to comment
Share on other sites

Thanks for the writeup Malban - that was very helpful. I am hopeful that learning assembler may work out but at 63 years old, who knows. My brain doesn't absorb new things as well as it used to...

 

As I've said, I like the Vectrex32 and some of the things it might open up with its improved hardware specs, so I will probably get one even though I think its use is likely to be limited to one-off solo projects.

 

I've been working with your VIDE the last few days and it's a very nice piece of work, Thanks for making that available to the community. I've been able to do some basic vector drawing and simple text display so far. Next I will have to investigate how to animate them.

 

I also saw the posting on the VecFever and that looks really interesting in conjunction with the IDE. Once it's released, that will probably be the environment I intend to learn on.

Link to comment
Share on other sites

  • 7 months later...

I'm Bob Alexander, the creator of Vectrex32.

 

I stumbled upon this old discussion, 7 months after it took place, so I don't know if anyone still has questions, comments, or criticisms they want me to address. But if so, I'm here. Of course, my website (vectrex32.com) has forums and a Contact form, so that's really the best and most reliable way to contact me.

 

Note that I am now following this thread, but I am not following this forum. If you create a new thread about Vectrex32, I won't be aware of it.

 

- Bob

 

 

Link to comment
Share on other sites

At the price, I'd hope-against-hope that it would also act as a general-purpose flash cartridge so that I could deprecate the one I currently use with a bunch of fiddly-switches. If not, then it is still a great idea. I cannot tell from the docs if it does this, anyone know?

Edited by towmater
Link to comment
Share on other sites

At the price, I'd assume it would also act as a general-purpose flash cartridge so that I could deprecate the one I currently use with a bunch of fiddly-switches. I cannot tell from the docs if it does this, anyone know?

 

The Vectrex32 (V32 for short) can not act as a general-purpose flash cartridge.

 

The V32 has a 32 bit processor that talks to the Vectrex's 6809 through a dual-port memory chip (that's a memory chip that can be read and written by two different computers simultaneously). Such chips are rare and expensive (in relative terms). The V32 uses a 2K dual-port RAM chip, one of the largest available. That's big enough for the V32 to send commands to the Vectrex, but is not big enough to hold an entire 6809-based Vectrex game. And so the V32 simply doesn't have the hardware needed to act as a general purpose flash cartridge.

 

- Bob

Link to comment
Share on other sites

  • 1 year later...
  • 8 months later...

I am tempted to pick up one of these, just in case, partly because as soon as something interesting happens it will probably be unavailable and $1000 on eBay...

 

There is the suggestion it could be used like a VecFever to support MAME as others have done to display vector games, which would be enough of a selling point for me as Fevers don't seem to be available any time soon. It just needs someone clever enough to do it...

 

http://forums.vectrex32.com/index.php/topic,66.0.html

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