Jump to content

camputers lynx emulator?


craiganderson

Recommended Posts

There's no problem to save the config file, actually it's preferred since we won't be controlling all settings so the user can launch the emulator the first time set all the settings that aren't controlled by the module to his liking, exit and from that point on the settings would be saved.

Yeah I'm aware we can use snapshots instead, but I don't like using save states and prefer to always load the roms directly. This would also mean using 2 sets of files one with the snapshots for jynx and another with the tap files for Pale therefore our databases wouldn't be able to contain CRCs for the roms since they would differ from jynx to pale.

Anyway if you don't want to add support for that it's fine of course, but at least please add a faster emulation mode as even at 800% the loading takes quite a while. The only problem is that the user will need to change the speed back to 100% manually since there's no way for the module to know when the tape loading has finished. Unless you can change the window title to include the loaded program name or something once tape loading is finished, this would make detection possible by the module.

Link to comment
Share on other sites

  • Replies 139
  • Created
  • Last Reply

Question for Brolly/JYNX: Is there any way to have autohotkey "read" a line of text from his emulator?

If the answer is YES.... the module could automatically load a rom by

1) typing a generic LOAD "TEST" line,

2) waiting for the emulator to display the correct file name (i.e. "CENTIPEDE"),

3) Reset emulator

4) Reload rom using the correct file name "CENTIPEDE"

just a thought

thanks

edit

just noticed that the emulator can actually record screen output text to a text file (i.e. the correct file/rom name (i.e. "CENTIPEDE"))

the module could do the steps above and reload the rom the second time after reading the correct file name from the output .txt file

would that perhaps work?

thanks

Link to comment
Share on other sites

Hi Craig / Brolly

Don't do too much work until I've done another release.

I have added a feature to handle loading and running a TAP automatically. It resets the emulator, finds the correct type, and enters the LOAD / MLOAD command automatically.

I am also in the process of allowing the emulator to run "full speed" when loading a tape. There are some other little things in the area I need to finish, and then I'll release.

This will address a lot of what you need, and I'll make this accessible from the command line eg: --run "C:\..wherever..\SPOOK.TAP"

Jonathan.

Link to comment
Share on other sites

That's what I'm talking about! Thanks for adding that :)

That will make your emulation a much better experience for frontend usage and if done right will probably give no one any reason to still use Pale. Unless there are any 128K specific games which I have no idea.

That would be possible craig, but it's a hell of a hacked method, besides parsing the text file might not always work depending on what the output is. What you usually do on scenarios like this is to simply add a new setting to the ISD where you define the command to type for each game and since this system doesn't have a crazy amount of games wouldn't be too hard to configure.

Link to comment
Share on other sites

The 128K machine was effectively a completely different computer. Loads of 48 / 96 software didn't work on the 128.

The 128K was also the disc drives / CP/M machine, so it's mostly CP/M stuff -- ask Frank at http://elborg.dk -- he'll know.

I am aiming the emulator as being the best experience for what games the Lynx did have.

I also want to present the Lynx BASIC as well as possible, because it was pretty reasonable. That's why there is the "type in text from file" and "save lynx text to file" options, it's all about getting BASIC program listings out onto the Host, and vice versa.

Link to comment
Share on other sites

OK

the module now types RUN and hits enter after loading

so far it hasnt interfered with any of the roMs that DONT need it

but its there to finish the job for the ones that do

i can add this feature to the .isd as an option per rom i guess

StartModule()
BezelGUI()
FadeInStart()
7z(romPath, romName, romExtension, 7zExtractPath)

BezelStart()

Run(executable, emuPath)

WinWait("Jynx ahk_class #32770")
WinWaitActive("Jynx ahk_class #32770")

WinMenuSelectItem, Jynx ahk_class #32770, , File, Run TAP file ...

WinWait("Open Lynx TAP file ahk_class #32770")
WinWaitActive("Open Lynx TAP file ahk_class #32770")
Sleep, 1000

Loop {
	ControlGetText, edit1Text, Edit1, Open Lynx TAP file ahk_class #32770
	If ( edit1Text = romPath . "\" . romName . romExtension )
		Break
	Sleep, 100
	ControlSetText, Edit1, %romPath%\%romName%%romExtension%, Open Lynx TAP file ahk_class #32770
}
ControlSend, Button1, {Enter}, Open Lynx TAP file ahk_class #32770

WinWait("Jynx ahk_class #32770")
WinWaitActive("Jynx ahk_class #32770")
Sleep, 5500
SetKeyDelay, 50
Send, {r down}{r up}{u down}{u up}{n down}{n  up}{ENTER down}{ENTER up} 

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


CloseProcess:
FadeOutStart()
Process, Close, Jynx-Windows-64bit.exe
Process, Close, Jynx-Windows-32bit.exe
Return

Link to comment
Share on other sites

Nice, works great now Jonathan, thanks for the improvements!

How will tape loading work on games that span through multiple tap files btw? Will it also boost the loading speed automatically once you change the tap file? And what should we use to switch tap files, it will be through Open TAP file instead of Run TAP file right?

Link to comment
Share on other sites

Nice, works great now Jonathan, thanks for the improvements!

How will tape loading work on games that span through multiple tap files btw? Will it also boost the loading speed automatically once you change the tap file? And what should we use to switch tap files, it will be through Open TAP file instead of Run TAP file right?

Use the HxD hex editor to concatenate the TAP files in the order they need to be loaded, and use the single unified TAP file.

Then see what happens.

Tape loading will be always boosted if the option is set in the settings file. (See what Jynx saves these days, to get the new file format).

Link to comment
Share on other sites

So Jynx auto stops tape loading once the game is loaded and then would resume loading from that point if another tap file is appended?

Yes it should. Sort of!

It works with TAPs I create myself by saving multiple programs on after another from the BASIC prompt.

I have not tried concatenating other people's TAPs yet -- I might try that with the Level 9 adventure games, and see what happens.

This isn't guaranteed to work! We'll have to see...

Jonathan.

Link to comment
Share on other sites

Brolly: I am fairly good at .isd's. BUt I have not set up any that allow manipulation of individual ROMS.

For this systems module that i am working on for myself (and anybody that wants it) I would like to have the user select whether an individual rom needs to have "RUN" typed after it loads or not.

Can you point to any tutorials or examples? t

thank you very much for your time

craig

Link to comment
Share on other sites

(Replying to my own post)

The Level-9 COLOSSAL and DUNGEON files seem to start with a header A5 41.

This is followed by 2 bytes containing the load address (I expect -- doesn't matter to me anyway).

The next 2 bytes are the payload length. This appears to always be 18 bytes less than the file size.

I am guessing all I need to do is put the SYNC that the Lynx requires at the head of this file image, and all will be well. There is no file name in this case.

Jynx needs to know the length information so that it can "re-split" a concatenated TAP (because I did not desire to add anything else to the format).

Background -

Lynx TAP files (as you may not be aware) do not contain the 768 bytes of zeroes that the Lynx uses as SYNC, nor do the filename-based TAPs contain the special "A5" marker byte that appears immediately after the SYNC and before the data, either. Nor do they contain the second lot of SYNC + A5 after the closing quote of the file name. So I have to re-synthesize all of this, and pass it to the Lynx!

Assuming all goes well, are you guys alright about shipping a concatenated TAP for the adventure games - ie: one file per game?

Link to comment
Share on other sites

Assuming all goes well, are you guys alright about shipping a concatenated TAP for the adventure games - ie: one file per game?

That would work for me.

craig, check the ISD file for BSNES for example, all you need is a %RomName% section and then add a boolean setting there where you define if you should type run or not.

Link to comment
Share on other sites

You would not believe the fuss I've had with this Dungeon adventure -- it does so much strange stuff!

I got it loading, but the game code messes with hardware in a strange way, so I have some issues surrounding the screen, keyboard AND cassette as a result of this!

I won't release again until I have tuned the emulator to cope with Level 9's strange ways... It's been worthwhile, as I've strengthened the emulation by fixing a couple of bugs. Not that these affected all the other games I've tested so far!

Colossal adventure won't load. Don't know why -- damaged files maybe.

Will keep you guys posted.

Jonathan.

Link to comment
Share on other sites

No problem Craig, my pleasure. Looking forward to seeing what you guys come up with!

Here's the latest release notes + link on blog:

http://jynx-emulator.tumblr.com/post/97155837412/jynx-camputers-lynx-emulator-v1-0-7-released

Still working on COLOSSAL adventure though. Not sure quite how "standard" the on-line TAP files are. The odd one is definitely broken!

Jonathan.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.


×
×
  • Create New...