Apple II Emulator


@ Jerry Blade I would consider restructuring your PXML file to include a package element for more info go here

All set. Thanks for the heads up!


I guess with a unique package id, it registers as a different app on the Pandora Repo Test Page so I had to delete the old one and put the new one in its place. :)
 
Last edited by a moderator:
you could have just used the same id as the package id then it would have updated that app :p


the package element is all about the packag and packager i.e. author is package author, the application block is about the actuall application i.e. author = original app author so you might want to change some stuff around :)
 
  • B Button = Increase Speed (by 2) Note: Max Speed is 40
  • A Button = Decrease Speed (by 1)

When joystick support is working, these button mappings may cause issues. You did leave the X button unmapped which can still be joy1, but with my chubby fingers, I may hit B or A accidentally.


I cannot remember if any games or hardware on the A2e even used more than 2 joystick buttons.


Looking forward to joystick support in any case.
 
  • B Button = Increase Speed (by 2) Note: Max Speed is 40
  • A Button = Decrease Speed (by 1)

When joystick support is working, these button mappings may cause issues. You did leave the X button unmapped which can still be joy1, but with my chubby fingers, I may hit B or A accidentally.


I cannot remember if any games or hardware on the A2e even used more than 2 joystick buttons.


Looking forward to joystick support in any case.

Yeah I might have to do some remaps as I hammer out joystick support. TBH I think using the shoulder buttons would be better for the Joystick than using ABXY. Thoughts?
 
Last edited by a moderator:
Nubs as Joysticks are IN. Please test it out and let me know what you think.


Here is how they function:


Updated Joystick routines to allow each nub to act as a Joystick


Left Nub = Joystick 0


Right Nub = Joystick 1 (if enabled and set in linapple.conf)


Left Shoulder Button = Joystick Button 0


Right Shoulder Button = Joystick Button 1


If TWO PC Joysticks are enabled in linapple.conf then the following button is activated for some games that can use 2 joysticks:


Y Button = Joystick Button 2


It comes configured by default with One Joystick. You will need to have the left nub put into Joystick Mode until I figure out how to have the Emulator do that automatically. It's not hard. I just need to code it, and I didn't want this release to wait for that.


You can get the latest release here: http://repo.openpandora.org/?page=detail&app=linapple-jerryblade-042011


Have fun!


EDIT: I couldn't wait and added a shell script to put both nubs into Joystick mode on launch and then restore them on exit. :)
 
Last edited by a moderator:
Awesome, yes, joysticks work. I tested Montezuma's Revenge, and Robotron. Good job! :D


I would prefer to be able to remap the keys in the .conf file. I like setting the A + B keys as the joystick buttons instead of the triggers. Feels more comfortable to me.
 
Awesome, yes, joysticks work. I tested Montezuma's Revenge, and Robotron. Good job! :D


I would prefer to be able to remap the keys in the .conf file. I like setting the A + B keys as the joystick buttons instead of the triggers. Feels more comfortable to me.

Good idea - added to the list. I am still figuring out SDL and am having issues mapping keys I know don't exist on the Apple ][ (like the british pound and yen). Those would be great for speed up/slow down, and it would let me free up ABXY. It's crazy, but on keyboard based hardware, there aren't that many free options for keys.
 
Yeah, looking at pictures of the Pandora keyboard (pictures are all I have for the moment :( ), I see what you mean. You've already used the unique keys.


Possibilities that occur to me offhand are (1) get the keys you mentioned to work, or (2) have selectable choices for which joystick keys you want to work as Apple joystick keys, and which ones you want to speed up or slow down the emulator (for example, choice #1 would be A and B are Apple joystick keys and L and R are speed up and slow down, choice #2 would be L and R are Apple joystick keys and A and B are speed up and slow down, and maybe other choices if you take X and Y into account). Then of course, there is always the possibility of something I haven't thought of yet.


While I wait for my Pandora, I've been looking over KEGS some as well, since the IIgs is really a different machine than the ][, ][ plus, and //e series. It's written in C (not C++), and it hasn't been updated since 2002. It seems to have more rough edges than linapple, so I wouldn't expect too much too soon on that front. It might not be that much trouble to get it to compile (I haven't tried an ARM compile, but it was easy enough on x86), but streamlining it for ease of use (and perhaps stability) will probably take a bit of work.
 
Last edited by a moderator:
Yeah, looking at pictures of the Pandora keyboard (pictures are all I have for the moment :( ), I see what you mean. You've already used the unique keys.


Possibilities that occur to me offhand are (1) get the keys you mentioned to work, or (2) have selectable choices for which joystick keys you want to work as Apple joystick keys, and which ones you want to speed up or slow down the emulator (for example, choice #1 would be A and B are Apple joystick keys and L and R are speed up and slow down, choice #2 would be L and R are Apple joystick keys and A and B are speed up and slow down, and maybe other choices if you take X and Y into account). Then of course, there is always the possibility of something I haven't thought of yet.


While I wait for my Pandora, I've been looking over KEGS some as well, since the IIgs is really a different machine than the ][, ][ plus, and //e series. It's written in C (not C++), and it hasn't been updated since 2002. It seems to have more rough edges than linapple, so I wouldn't expect too much too soon on that front. It might not be that much trouble to get it to compile (I haven't tried an ARM compile, but it was easy enough on x86), but streamlining it for ease of use (and perhaps stability) will probably take a bit of work.

I think I am going to add the ability to configure Joy 1, Joy 2, Joy 3 in the conf file from a pool of buttons/keys (ABXYRL) and get british pound and yen working for speed up/down. You don't really need to do minute speed changes while using the emulator much. Most of the time, it is just engaging and disengaging the full-throttle to speed up load times or hardcoded intro sequences. The functionality should still be there but not at the expense of joystick usability IMO.


As far as KEGS goes... I have played around with it A LOT, and it's not nearly as mature as AppleWin/linapple. Besides, the Apple ][+ was my first real computer so that is what I was always excited about. Give it a whirl though, and I will be happy to test it for you.
 
In addition to a slew of small changes, buttons are now mappable to ABXYRL via linapple.conf. Also, I moved speed up/down to GBP & JPY. Let me know what you all think of this control scheme.


You can find it here: http://repo.openpandora.org/?page=detail&app=linapple-jerryblade-042011


*** As I have added new settings, please delete your linapple.conf file to take advantage of the joystick button mapping. ***


:)
 
Last edited by a moderator:
@Jerry


Nice work. I wanted to port LinApple, but was probably never going to get around to it, so I am very glad to see that you did. Works great.


There is one thing I'd like to see added: a way to map any of the game control buttons (D-pad, A B X and Y, and L and R shoulder buttons) to any apple keys. The reason is that a lot of apple games use IJKM as directional controls, and then some other keys for fire, dig, jump, etc. Of course a few games use IJKL for directions. For example, Dung Beetles uses IJKM for directions, and Lode Runner uses IJKL for directions and U and O for dig left and dig right. Ideally, this could be configured in a disk specific config file (whatever disk is in drive 0 on reset. If no dis specific config file present, set them based on settings in linapple.conf. Next best would be a way to change them in the emulator.


If you don't feel like doing this, I can take a stab at it if you point me to your modified source.


Thanks,


Pete
 
New Update:


Version 1.4.0.0:


Added the ability to map ABXYRL and the Joypad to any ASCII Keystroke via linapple.conf


NOTE: Delete your linapple.conf for it to load the new one in its place.


Alternately, you can just add this section to your existing linapple.conf:



Code:
#######################################################################

#

# Custom Keyboard Mapping

# Map the following Keys using ASCII values (A-Z = 65-90)

A Button  = 85

B Button  = 79

X Button  = 0

Y Button  = 0

R Button  = 0

L Button  = 0

U Keypad  = 73

D Keypad  = 75

R Keypad  = 76

L Keypad  = 74


This is an example with Lode Runner "IJKL UO" keys loaded


Enjoy :)
 
Last edited by a moderator:
New Update:


Controls can now be disk based. So, you can have IJKL-UO for Lode Runner mapped to the d-pad and two buttons, and some other control scheme to another. If the disk section is not defined in linapple.conf, it grabs the default one.


NOTE: Delete your existing linapple.conf for it to load the new one with the added control functionality. For instructions on how to use this, please refer the the linapple.conf in the PND.


Enjoy! :)


----------------------------------------------------------------------------------------------------


Hit F1 for instructions on how to operate the emulator.


For OpenPandora linapple version 1.4.2.1:


Disk specific control sections of the config file can now be used. Please see linapple.conf for details


For OpenPandora linapple version 1.4.0.0:


Added the ability to map ABXYRL and the Joypad to any ASCII Keystroke via linapple.conf


----------------------------------------------------------------------------------------------------


Here is what linapple.conf would look like with IJKL-UO mapped to the D-Pad + AB for Lode Runner.dsk



Code:
#######################################################################

#

# Custom Keyboard Mapping

# Map the following Keys using ASCII values (ex: A-Z = 65-90)

A Button  = 0

B Button  = 0

X Button  = 0

Y Button  = 0

R Button  = 0

L Button  = 0

U Keypad  = 0

D Keypad  = 0

R Keypad  = 0

L Keypad  = 0

Lode Runner.dsk - A Button  = 85

Lode Runner.dsk - B Button  = 79

Lode Runner.dsk - X Button  = 0

Lode Runner.dsk - Y Button  = 0

Lode Runner.dsk - R Button  = 0

Lode Runner.dsk - L Button  = 0

Lode Runner.dsk - U Keypad  = 73

Lode Runner.dsk - D Keypad  = 75

Lode Runner.dsk - R Keypad  = 76

Lode Runner.dsk - L Keypad  = 74
 
Last edited by a moderator:
Small update...


For OpenPandora linapple version 1.4.2.2:


Fixed Joystick button functionality overlap with ASCII Keystroke mapping
 
My D-pad doesn't seem to be mapped with arrow keys.


Is there anything to do to make it work ? I use the lastest version from the repo.
 
My D-pad doesn't seem to be mapped with arrow keys.


Is there anything to do to make it work ? I use the lastest version from the repo.

The joystick is mapped to anolog nubs, as the apple II used an anolog joystick, so the dpad isn't used. You can configure the dpad, there are instructions in one of the posts above on how to do this.


However, there does appear to be a issue with the anolog nubs related to the new Zaxxon Beta 4 release, in that they don't work. I have booted up using older kernal and all is fine, so it looks like Linapple needs updating to work with the new kernal.
 
I updated the emulator today for the way joysticks/nubs are handled in the lastest firmware.



Code:
For OpenPandora linapple version 1.5.0.0:

Fixed Joystick SDL routines - Removed hardcoding of JOY1/JOY2 for SuperZaxxon Firmware Compatibility. Nubs are filled as joysticks on first

available basis (i.e. nub0 is mapped if available as a joystick before nub1 is mapped)


You can find it here


Please let me know if you run into any issues. Thanks!


-Jerry
 
Last edited by a moderator:
Back
Top