Jump to content
IGNORED

Harmony Software and BIOS


batari

Recommended Posts

On the first menu (the one with the hbios listed), how does Harmony order the folders? I have them into four alphabetized folders (2600 Roms; Conversions; Hacks; Homebrews). These four are in order on my sd card, but then not alphabetical on the menu on the Atari. What am I doing wrong? Thanks for the help.

Link to comment
Share on other sites

On the first menu (the one with the hbios listed), how does Harmony order the folders? I have them into four alphabetized folders (2600 Roms; Conversions; Hacks; Homebrews). These four are in order on my sd card, but then not alphabetical on the menu on the Atari. What am I doing wrong? Thanks for the help.

 

They may be ordered by date/time... check that.

Link to comment
Share on other sites

The files and folders on Harmony appear in the order they are stored on the SD card.

 

Someone suggested a program called drivesort that can sort files on an SD card for you. I have not tried it but others say it works.

 

Yes, for Windows DriveSort works very well, it's what I use.

Edited by Buzbard
Link to comment
Share on other sites

I just tried Kool-Aid Man on the Harmony and it doesn't seem to work.

I tried 3 versions, the one from AtariAge, a converted PAL60 version by Fabrizio Zavagli and also the "Fixed" version that's supposed to work with Stella but doesn't seem to anymore.

All 3 freeze at the start screen.

 

Anyone else get it to work?

 

Never mind, my fault, the left difficulty was set to A. :P

Edited by Buzbard
Link to comment
Share on other sites

I just (belatedly) updated the proto that batari sent me and am impressed as everyone else is.

 

I do see some room for improvement in how menu navigation is done with the paddles, however, but I'm not privy to any limitations that the kernel may be imposing on paddle reads.

 

One of the things we were going to do with Chimera was have a section where you could set a default game to load and decide whether the default boot behavior should be to load that game or go to the menu. Then depending on the console switches it would use that default behavior or the reverse. This would be similar to holding down OPTION to enable/disable the built-in cart on the Atari 8-bit systems. I know there is a way to load a game into the firmware but it would be nice to have a default game setting as well that will let you keep the multicart feature.

 

Maybe if it were something as simple as an AUTORUN.BIN type file on the SD card it would work if it's too much hassle to have an onscreen settings page. So on powerup Harmony would poll the select switch. If it's not depressed, it would look for AUTORUN.BIN and if it's there, load the game. If it is depressed, it won't even bother checking for it and go straight to the menu.

Link to comment
Share on other sites

I do see some room for improvement in how menu navigation is done with the paddles, however, but I'm not privy to any limitations that the kernel may be imposing on paddle reads.

We are reading the paddle just ten times/frame. So we have ten different paddle values to work with. We could add 2 or so extra checks outside the kernel.

 

I suppose you do not like how the cursor moves rather slowly up and down on the screen. It would be nicer, if you could directly position the cursor over a game, right?

 

But then we have a problem with the top and bottom of the list. There paging backwards and forward should happen, like when the joystick or DC reach the begin or end of the screen. Now imagine we have 12 paddle values to work with. 2..11 position the cursor over a game and 1 and 12 are used for paging. What happens after paging? The paddle is still at position 1 or 12, so it immediately will trigger paging again! Even a delay won't work well, since there is no visual feedback for the paddle (cursor) still being beyond the bounds.

 

Anyway, now that I have described the limitations and problems, you should have all major information required. I am also not 100% happy how paddle control works now, so if you have a better idea how to navigate with the paddle, I would be happy to implement it.

Link to comment
Share on other sites

So on powerup Harmony would poll the select switch. If it's not depressed, it would look for AUTORUN.BIN and if it's there, load the game. If it is depressed, it won't even bother checking for it and go straight to the menu.

I like the idea, but without support from the 6507, Harmony cannot poll the switches itself. And since the whole "stall" code (Yin-Yang) has to fit into 128 bytes of RAM, it will not be easy to add this feature.

Link to comment
Share on other sites

since the whole "stall" code (Yin-Yang) has to fit into 128 bytes of RAM, it will not be easy to add this feature.

 

How many bytes do you have left in the staller routine? It would only take a few to read the console register and poke it into the ARM.

 

What you could also do is go to the menu, but on the credits page of the menu, if it detects reset, then attempt to run AUTORUN.BIN. That would be nearly as convenient.

Edited by mos6507
Link to comment
Share on other sites

I suppose you do not like how the cursor moves rather slowly up and down on the screen. It would be nicer, if you could directly position the cursor over a game, right?

 

Yeah.

 

But then we have a problem with the top and bottom of the list. There paging backwards and forward should happen, like when the joystick or DC reach the begin or end of the screen. Now imagine we have 12 paddle values to work with. 2..11 position the cursor over a game and 1 and 12 are used for paging. What happens after paging? The paddle is still at position 1 or 12, so it immediately will trigger paging again! Even a delay won't work well, since there is no visual feedback for the paddle (cursor) still being beyond the bounds.

 

Then don't page by overrunning the top and bottom boundaries when in paddle mode. Have a -> and -< row and require a button press over it. Alternately, use both paddles and have one paddle trigger page forward and one paddle trigger page back. Then reset would need to be used to select a game. Since the paddle triggers already map to joystick left and right (do they not?) then that would be pretty simple. Sure, you have to be close to the console, but it's ok.

 

You could either do that or handle all the paging with the console switches. Reset = page forward. Select = page back. Select and reset together = select game.

Link to comment
Share on other sites

since the whole "stall" code (Yin-Yang) has to fit into 128 bytes of RAM, it will not be easy to add this feature.

 

How many bytes do you have left in the staller routine? It would only take a few to read the console register and poke it into the ARM.

 

What you could also do is go to the menu, but on the credits page of the menu, if it detects reset, then attempt to run AUTORUN.BIN. That would be nearly as convenient.

Running the menu when AUTORUN exists should be an opt-out feature if it is ever added.

 

The AUTORUN feature was added for two reasons - the first was for developers who wish to use SD cards and want to bypass the menu, and the second was to allow games released on SD card. Making AUTORUN an opt-in feature would defeat the second purpose and add an additional step to the first.

 

Opting out of AUTORUN might be possible but it is not quite as easy as it sounds. The ARM can't read the console switches directly and must feed instructions to the 6507 and capture the data bus when the values are read. We of course know how to do this but it takes up considerable space that we currently do not have.

Link to comment
Share on other sites

Then don't page by overrunning the top and bottom boundaries when in paddle mode. Have a -> and -< row and require a button press over it.

Sorry, but we don't have space for that. And we would loose 2 of the 10 entries/page.

 

Alternately, use both paddles and have one paddle trigger page forward and one paddle trigger page back. Then reset would need to be used to select a game. Since the paddle triggers already map to joystick left and right (do they not?) then that would be pretty simple. Sure, you have to be close to the console, but it's ok.

I like to page without having to be close to the console. Also, in case no controller is attached or has been swapped for the next game already, the current control switches allow basic navigating. That would be lost then too.

 

You could either do that or handle all the paging with the console switches. Reset = page forward. Select = page back. Select and reset together = select game.

Same here.

 

Sorry, but so far, I am not convinced. :)

Link to comment
Share on other sites

I like to page without having to be close to the console.

 

But the way moving through selections is done currently with the paddles, it's not practical. You'd be wasting more time waiting for the cursor to slowly move down and to the next page vs. getting up and twiddling the console switches.

 

You could either do that or handle all the paging with the console switches. Reset = page forward. Select = page back. Select and reset together = select game.

Same here.

 

Sorry, but so far, I am not convinced. :)

 

If you have any more than a handful of games it's not very practical navigating with just the console switches as they are currently set up. The current console layout is forward-only and the only combo you have is popping back to page 0 when you first depress select and toggle reset, and even then it leaves the cursor where it was before rather than popping back to the top. Am I missing something?

 

This will give you the whole enchilada (assuming a good debounce routine):

--

Reset = scroll down (on switch up)

Select = scroll up (on switch up)

Hold down select and flick reset = page forward (think of this like a shift click on a PC or Mac)

Hold down reset and flick select = page back (think of this like a shift click on a PC or Mac)

Hold down select and reset for one second = load game or navigate to subdir

Link to comment
Share on other sites

But the way moving through selections is done currently with the paddles, it's not practical. You'd be wasting more time waiting for the cursor to slowly move down and to the next page vs. getting up and twiddling the console switches.

You know that you can page using the fire button?

 

If you have any more than a handful of games it's not very practical navigating with just the console switches as they are currently set up. The current console layout is forward-only and the only combo you have is popping back to page 0 when you first depress select and toggle reset, and even then it leaves the cursor where it was before rather than popping back to the top. Am I missing something?

I think I can easily fix this.

 

This will give you the whole enchilada (assuming a good debounce routine):

--

Reset = scroll down (on switch up)

Select = scroll up (on switch up)

Hold down select and flick reset = page forward (think of this like a shift click on a PC or Mac)

Hold down reset and flick select = page back (think of this like a shift click on a PC or Mac)

Hold down select and reset for one second = load game or navigate to subdir

Sounds good. Not sure how much fits into the remaining space, but I will have a look at it.

 

Thanks!

Link to comment
Share on other sites

You know that you can page using the fire button?

 

When the cursor is in "moving" mode and I press the fire button it does weird things. Like skipping forward by 10 or more pages at a time. When the cursor is static, then I can load a game.

 

I would not multiplex the paddle fire button that way. If anything, use both paddle buttons for different things. Maybe make them analogous to select and reset as I specced for the console switches. Maybe pull a Marble craze and use the 2nd paddle for paging forwards and back based on a center detente. There are many possibilities.

 

There are a lot of different controllers. I'm assuming you didn't also write a driver for the rotary controllers or the keypads?

 

How about always expecting the 2nd port to have a joystick in it? That way unless you had an Atarivox in there, you could always navigate with the 2nd joystick even for weird controllers in the main port. Good for single player sessions.

 

I think as long as the joystick and console switch methods are rock solid then it's okay if the other ones are limited.

Link to comment
Share on other sites

When the cursor is in "moving" mode and I press the fire button it does weird things. Like skipping forward by 10 or more pages at a time. When the cursor is static, then I can load a game.

Depending on where the paddle is, Harmony does different things while the button is pressed:

- very left: -10 pages

- left: -1 page

- centered: nothing

- right: +1 page

- very right: +10 pages

 

I would not multiplex the paddle fire button that way. If anything, use both paddle buttons for different things. Maybe make them analogous to select and reset as I specced for the console switches. Maybe pull a Marble craze and use the 2nd paddle for paging forwards and back based on a center detente. There are many possibilities.

Lots, yes. But so far I didn't find a really convincing one. Having to use two different paddles seems not very convenient to me.

 

There are a lot of different controllers. I'm assuming you didn't also write a driver for the rotary controllers or the keypads?

DC are supported, the keypad isn't. For unsupported controllers you have a least basic navigation using the console switches.

 

How about always expecting the 2nd port to have a joystick in it? That way unless you had an Atarivox in there, you could always navigate with the 2nd joystick even for weird controllers in the main port. Good for single player sessions.

AtariVox/SaveKey are the reason why I skipped this option. I have one of those! :)

Link to comment
Share on other sites

...

 

...It would be nicer, if you could directly position the cursor over a game, right?

 

But then we have a problem with the top and bottom of the list. There paging backwards and forward should happen, like when the joystick or DC reach the begin or end of the screen. Now imagine we have 12 paddle values to work with. 2..11 position the cursor over a game and 1 and 12 are used for paging. What happens after paging? The paddle is still at position 1 or 12, so it immediately will trigger paging again! Even a delay won't work well, since there is no visual feedback for the paddle (cursor) still being beyond the bounds.

 

...

Before I get to the subject of my reply, I'm going to ask for forgiveness, in advance, for two things:

 

  1. I'm not a VCS programmer (though I have programmed for other things in the past), so I don't know what is possible nor what you have room for as far as code space.
  2. I don't own a Harmony (yet! :)) so I'm just imagining its navigation in my head.

In situations when using paddles to navigate the menus, I would much prefer if it were done based on the paddle's physical position, rather than sequentially stepping through the menu based on how far off-center the pot is. I really don't see the problem, given the 12-position paddle scheme you mentioned, with designating positions 1 and 12 for paging, as long as there is a delay before another page jump. I think once people get used to such a scheme, they would soon learn to jog the paddle back a little if they didn't want to go another page. If you implemented such a scheme, perhaps it would help if, after one page flip, you flashed a "Next Page" marker, alerting the user that another page flip is imminent. Then if you don't want another page flip, just jog the paddle back a bit, and quickly "dial" the paddle to the game you want on the new page.

 

Since the user is presumably already a gamer, i.e. has the requisite "twitch" ingrained in muscle memory, I can imagine that a "next page" delay of as little as one second would not be an obstacle to quick and easy navigation.

 

Just my 2¢, with emphasis on my preamble.

 

-tet

Link to comment
Share on other sites

  • 2 weeks later...

I still have the problem with files not being in alphabetical order, but I noticed it only happens when I have the roms several folders deep. If I just put 200 roms on the SD card and alphabetize them, they appear perfect on the Harmony. It's when I categorize into folders that they start to appear out of order. I had some four folders deep: Hacks and Homebrews, Hacks, Berzerk, and then all the Berzerk Hacks (just an example) and these were really out of order. It may just be that I'm messing something up, but it doesn't do it with fewer or no folders. Not a big deal to me, but thought I'd post - love the cart.

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