Jump to content
craiganderson

camputers lynx emulator?

Recommended Posts

Is there a good emulator for Camputers Lynx?

Pale runs way too fast even at 25% setting and it seems like many .tap files do not play due to "no checksum"?

edit:

ANSWER

http://jynxemulator.wordpress.com/

WIP

2014-05-11_2-32-21_zps85f31579.png

(not all choppy in real life, looks as crisp as photobucket image above....just FYI)

0cGbsVHl4iA

thank you

craiganderson

Edited by craiganderson

Share this post


Link to post
Share on other sites

nice not sure about the banner for it tho - perhaps change it to white http://www.elborg.dk/LYNX%20LOGO%20hvid.png

the emulator i have for camputers is http://www.camputerslynx.info/PALE/index.htm pale http://www.camputerslynx.info/PALE/index.htm

also turn off the spinning in the back ground leave it as normal can give people hedaches

try this ive never tried this emulator yet - http://www.retroisle.com/others/camputerslynx/emulators.php

Edited by relic

Share this post


Link to post
Share on other sites

thanks

the PALE emulator runs everything VERY fast on my computer

even with the setting on 25% speed

does this happen to anybody else?

thanks

Share this post


Link to post
Share on other sites
the PALE emulator runs everything VERY fast on my computer

even with the setting on 25% speed

does this happen to anybody else?

thanks

you can turn it down in options but its a pain really cause everytime you boot up a game the speed always returns to 25 so what you may need to do is make a script to keep the settings of your choice especially with the speed of your choice but im sure you will figure something out you did a good job with excel or what ever you call it i see it auto loads and types in the games etc thats brilliant-

Edited by relic

Share this post


Link to post
Share on other sites
you can turn it down in options but its a pain really cause everytime you boot up a game the speed always returns to 25 so what you may need to do is make a script to keep the settings of your choice especially with the speed of your choice but im sure you will figure something out you did a good job with excel or what ever you call it i see it auto loads and types in the games etc thats brilliant-

the emulator does that by itself

not my doing

im just using the standard .ahk to load the game

Share this post


Link to post
Share on other sites
Is there a good emulator for Camputers Lynx?

Pale runs way too fast even at 25% setting and it seems like many .tap files do not play due to "no checksum"?

[snip]

thank you

craiganderson

Hi Craig

The Camputers Lynx (48K) was my first computer!! Wooo!!! :D

This summer (2014) I have developed a brand new emulator - "Jynx"- which emulates the Lynx 48K and 96K machines. This is released on Microsoft Windows (I have 8.1, hopefully is OK on Win7 at least!!).

My aim is to have the best sound and graphics presentation for Lynx games, in a nice UI. The emulation speed should be a very good match to a real Lynx. I'm working on the speed to tune it even more, but it should be fine for entertainment purposes.

I support the TAP file format. I've had a load of TAPs loading OK so far.

I've set up a Tumblr blog http://jynx-emulator.tumblr.com/ where I've put up a load of screen captures of Jynx in operation, and I talk about Lynx stuff.

My software release installation ZIP is on GitHub (see my Tumblr blog for link - its in the side bar), and there is a "readme.htm" in the ZIP file for additional info that you might need.

The software is 100% open source. You can find the C++ code on GitHub as well, if you're interested in that sort of stuff. I'm hoping to support other platforms if I can get porting volunteers. The program code is designed to allow porting to other platforms.

The program is under continuous improvement, and I'm hoping it can gain some traction amongst emulator / old computer fans!

Thanks for you time, and keep up the Lynxing!!

Jonathan. jynx_emulator [at] yahoo.com

~ Notice to sysadmins re: Hyperspin terms of service ~ No copyrighted files are, or will be, available at the blog link posted!

Share this post


Link to post
Share on other sites

Thanks a million. I will put together a module/.ahk file whenever I have a chance.

........unless you want to come up with one???? :)

Do you have any info you could share regarding "command line" manipulation of your emulator??

thanks

craig

Share this post


Link to post
Share on other sites

here is the one i was working on for the pale emulator

still a WIP

MEmu = Pale	
MEmuV =  Pale850
MURL = http://www.camputerslynx.info/PALE/index.htm
MAuthor = craiganderson
MVersion = 1.0
MCRC = 
iCRC =
MID = 
MSystem = "Camputers Lynx"
;----------------------------------------------------------------------------
; From The ReadMe Document Included in the Download:
; Copy the EXE program to your PALE directory
; Copy the DLL to your WINDOWS/SYSTEM32 directory
; You do NOT need Winsck.ocx (this is for networking, which is NOT working at present)
;----------------------------------------------------------------------------
StartModule()
BezelGUI()
FadeInStart()
7z(romPath, romName, romExtension, 7zExtractPath)

BlockInput, On

settingsFile := modulePath . "\" . moduleName . ".ini"
Fullscreen := IniReadCheck(settingsFile, "settings", "Fullscreen","true",,1)
BezelStart()

; screensize := "-fullscreen "
Run(executable . " """ . romPath . "\" . romName . romExtension . """", emuPath)
;Run(executable . " """ . romPath . "\" . romName . romExtension . """  " . screensize, emuPath)
;DllCall("SetMenu", uint, WinActive( "A" ), uint, 0) ; Removes the MenuBar (thank you djvj)

WinWait("ahk_class ThunderRT5Form")
WinWaitActive("ahk_class ThunderRT5Form")

WinActivate, PALE Control Panel ahk_class ThunderRT5Form
WinMove, PALE Control Panel ahk_class ThunderRT5Form, , 200, 200

WinActivate,   PALE - Pete's Lynx Emulator ahk_class ThunderRT5Form
WinWait(" PALE - Pete's Lynx Emulator ahk_class ThunderRT5Form")
WinWaitActive(" PALE - Pete's Lynx Emulator ahk_class ThunderRT5Form")

Sleep, 3500
BlockInput, OFF

BezelDraw()
FadeInExit()
Process("WaitClose", executable)
7zCleanUp()
BezelExit()
FadeOutExit()
ExitModule()


CloseProcess:
FadeOutStart()
Process, Close, pale.exe  
;	WinClose("ahk_class ThunderRT5Form")
Return

Share this post


Link to post
Share on other sites

Hi Craig

I don't have any built in command-line manipulation, to be honest it isn't something that crossed my mind!

What would your requirements be? Do you want to be able to automate it with a script?

Jonathan.

Share this post


Link to post
Share on other sites

Yes. Will need to automate it with a script. That's how hyperspin/hyperlaunch starts up an emulator/loads a game etc

I can put one together when i get a chance. No biggie.

another example

StartModule()
BezelGUI()
FadeInStart()

settingsFile := modulePath . "\" . moduleName . ".ini"
Fullscreen := IniReadCheck(settingsFile, "settings", "Fullscreen","true",,1)
BezelStart()

7z(romPath, romName, romExtension, 7zExtractPath)

Run(executable . " """ . romPath . "\" . romName . romExtension . """", emuPath)

WinWait("ElectrEm ahk_class SDL_app")
WinWaitActive("ElectrEm ahk_class SDL_app")

If Fullscreen = true
{
Sleep,1000
WinMenuSelectItem, ElectrEm ahk_class SDL_app, , Tools, Full Screen
}

BezelDraw()
FadeInExit()
Process("WaitClose", executable)
7zCleanUp()
BezelExit()
FadeOutExit()
ExitModule()


CloseProcess:
FadeOutStart()
WinClose("ElectrEm ahk_class SDL_app")

Return

Share this post


Link to post
Share on other sites
Hi Craig

I don't have any built in command-line manipulation, to be honest it isn't something that crossed my mind!

What would your requirements be? Do you want to be able to automate it with a script?

Jonathan.

Welcome Jonathan, nice to see more emulator authors showing up here :)

The very basic CLI would be loading a game directly through it, if you can add more relevant options even better, a fullscreen switch is another common one.

If you can also add a switch to direct the settings file to the same folder as the emulator this would be great for portable setups.

I don't really know this system well enough so have no idea what settings would be relevant, I'm guessing at least the machine model would be nice. But if you have all this configured in the settings file already the module can update all the info there prior to launching the emulator as long as it's contents aren't binary of course.

I was trying your emulator and it doesn't run under XP32, tells me it's not a valid Win32 application. Maybe you made 2 builds for 64-bit by mistake?

Share this post


Link to post
Share on other sites
Welcome Jonathan, nice to see more emulator authors showing up here :)

The very basic CLI would be loading a game directly through it, if you can add more relevant options even better, a fullscreen switch is another common one.

If you can also add a switch to direct the settings file to the same folder as the emulator this would be great for portable setups.

I don't really know this system well enough so have no idea what settings would be relevant, I'm guessing at least the machine model would be nice. But if you have all this configured in the settings file already the module can update all the info there prior to launching the emulator as long as it's contents aren't binary of course.

I was trying your emulator and it doesn't run under XP32, tells me it's not a valid Win32 application. Maybe you made 2 builds for 64-bit by mistake?

Hi Brolly

Thanks for the welcome! I like the presentation you guys have done on the machines and emulators.

Firstly, I will see about a WinXP version, I build on 8.1 but the problem you report rings bells - I think the issue is covered in the MSDN. I need to dig out an XP VM to test on. The 32-bit Jynx.EXE is a smaller file size than the 64-bit one.

Funny you should say about full-screen, I was thinking about adding that. I just need to find out how to overlap the Windows task bar.

Presently, the settings file is stored in a Microsoft-approved hidden folder called "AppData", which is inside the user's area, eg: "C:\Users\jonathan\AppData\Local\JynxEmulator\JynxEmulatorSettings.config" (on my win8.1 system). It has the following features:

FileVersion 1
MachineType 0
RenderStyle 1
SoundEnable 1
CyclesPerTimeslice 70000
TapeSounds 0
RemExtensions 0

  • MachineType 0 = 48K Lynx
  • MachineType 1 = 96K Lynx
  • RenderStyle 0 = Fit emulator screen to window (aspect ratio retained)
  • RenderStyle 1 = Force square pixels
  • RenderStyle 2 = Stretch screen to window border, ignoring aspect ratio
  • SoundEnable = 0 for off, 1 for on. With sound OFF, a different timing mechanism is used.
  • CyclesPerTimeslice = the number of Z80 cycles per 20ms. The menu ignores "non-standard" settings. Affects the pitch of the sound.
  • TapeSounds = 1 to hear the tape signals while loading and saving TAPs. 0 = tape sound suppressed
  • RemExtensions = 1 to enable emulator spying on input buffer (REM commands -- see readme.htm) 0 = disable

WARNINGS:

- The settings file is a custom format, not designed for user fiddling, and need to be an ASCII or UTF-8 file, no blank lines, one space after the setting name. (Notepad++ is your friend).

- You may set the program outside of normal operating parameters by changing the settings file.

- Don't fiddle the FileVersion. It doesn't do anything presently anyway.

As for loading straight into a game, I can't do this with TAP files, because that would mean hacking the Lynx more than I would like.

But I do have save / load snapshot. You can take a snapshot of a previous game in operation, and instantly re-load it. This might be useful?

So for command line I propose:

- Specify a different location for the settings file (that provides a fair amount of what you asked for).

- Specify the snapshot file to automatically start with.

Jonathan.

Share this post


Link to post
Share on other sites

I am not the .ahk expert. Brolly is.

But if you cannot load straight into a game....we can always use the "WinMenuSelectItem" type commands to click into games.\

craig

Share this post


Link to post
Share on other sites

Those CLI options sound good to me.

Fullscreen would be nice, and I see you have added it already so thanks for that!

Like I said I'm not familiar at all with the system and couldn't test the emulator (wasn't aware it's not XP compatible) so didn't how you were dealing with the tape loading. So I'm guessing Lynx loads into its native OS, you load the tape by typing some load command and then press some hotkey/menu item to start the tape player? Hope loading speeds are faster than real ones as tape loading usually takes quite a while :)

Without being able to test the emulator I can't really tell if something more is needed, I'll see if I can try it on a Win7 machine.

Your settings file format is pretty standard so shouldn't be an issue, would be easier for us if you used = instead of a blank space for key/value separation, but shouldn't be too hard to adapt the functions to deal with it.

Share this post


Link to post
Share on other sites

Hi again

Well I haven't done anything about the "=" signs, but I have done a load of other things today...

http://jynx-emulator.tumblr.com/post/96806775992/jynx-emulator-1-0-4-released

I'm gonna ask you guys to do a little testing on the XP side, because I haven't had time to dig out that VM. I particularly want to know if switching full screen and back works OK.

Also have an intro for how to load TAPs and take snapshots -- see the blog.

You guys know where to get TAPs, right? ;)

Forgot to say -- the command line information is in the readme.htm in the release ZIP as are the new menu items.

Source code on GitHub of course -- see blog.

Jonathan.

Edited by jynx_emulator
Forgot something

Share this post


Link to post
Share on other sites

Ok, just gave it a try and works well on XP now including fullscreen.

When you specify the config file through CLI it doesn't seem to be saving to it though, it loads from there, but if I change anything on the emulator the file content remains the same.

Also if the specified file doesn't exist could you please create it when you start the emulator? I think you do that with the default one in the AppData folder already, because the module will need the file to be there in order to be able to edit its contents.

A couple of requests and questions regarding tape loading:

- How can I find the file name that needs to be loaded? I could only find it by inspecting the tap file with a HEX editor, maybe this is something you could add to the emulator? Some sort of file explorer to at least allow users to see the contents of the tap files. Pale is more frontend friendly on this area because it will try to auto load the tap file by scanning the tap contents so there is no need to type any load commands. I know you don't want to do this, but you should consider to at least

have an auto-load option to do so which is what most emulators that need to deal with tape loading do (VICE, Spectaculator, etc.). This way you'd have the best of 2 worlds, you'd still be able to operate it as a real lynx and have a somewhat hacked loading method to make the emulator more frontend friendly. The idea of using an emulator with a frontend is that loading into game should be as fast as possible and with no user intervention;

- Could you increase the emulation speed to the maximum possible during tap loading? Again I needed to manually change it to 800% and then once done revert it back to 100%, this manual intervention isn't good for frontends because it's also something which can't be automated since we don't know when the tape has finished loading. Once again Pale does this;

If all this could be addressed then I think game loading would perfect and your emulator would be more frontend friendly than Pale.

Regarding tap files, the only Lynx dumps I'm aware of are the ones archived on the TOSEC set and the ones that come with the Pale emulator not sure if there are any others, but I'm guessing there's still a lot of tapes that were never archived, I wonder if there are still any Lynx collectors that could provide those :)

Share this post


Link to post
Share on other sites

Hi Brolly

Glad to hear it works on XP now, and the full-screen is OK.

"When you specify the config file through CLI it doesn't seem to be saving to it though, it loads from there, but if I change anything on the emulator the file content remains the same."

This was by design. I deliberately didn't re-save the config file when it's loaded from a user-defined location, because I thought you guys would not want that with your front-ends, just in case the user fiddles the settings? I will make this consistent with the regular snapshot file. In fact, I was going to ask if you needed most of the menus disabling? I may not fully understand the needs of front-ends yet!

"Also if the specified file doesn't exist could you please create it when you start the emulator?"

Okay, I can do this. I assumed that you would manually copy a default config, re-name it, and prepare new content, but I can do this.

"How can I find the file name that needs to be loaded? I could only find it by inspecting the tap file with a HEX editor... [snip]"

Yes. That's how I do it too, and how to determine whether to use the MLOAD command versus the LOAD command by the presence of the letter "M" or "B" to the right of the quotation mark after the name.

In my snapshot articles (links below), I talk about loading on the Lynx.

On a real Lynx, the computer lists the names to the screen as it discovers them on the tape. It will only load if the name you enter precisely matches.

I will see about providing a list of names as a menu option, and it could list the TAP information to the Lynx's screen.

I do not want to add external user interface at this stage in the project. Such additional UI will only need to be ported! I may add displays that overlay the Lynx's screen while pausing the emulator though, just haven't written the code yet.

"Pale is more frontend friendly on this area because it will try to auto load the tap file by scanning the tap contents"

(Answer for everyone else's benefit) Pale does that by interfering with the Lynx more closely that I really want to do.

"... The idea of using an emulator with a frontend is that loading into game should be as fast as possible ..."

And you can do exactly that in Jynx using the snapshot feature. There is a little more work for the guys preparing the front end, but not much. See my blog articles I put up yesterday:

http://jynx-emulator.tumblr.com/post/96808474917/take-the-perfect-snapshot-part-1

http://jynx-emulator.tumblr.com/post/96808710957/take-the-perfect-snapshot-part-2

Jonathan.

Edited by jynx_emulator

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.


×
×
  • Create New...