Jump to content
IGNORED

New emulator "Felix" - help needed


laoo

Recommended Posts

@Songbird Thanks!

 

Let's do first things first and the first thing is to stabilize it and make it run all cartridges. Then I could think about some GUI driven debuggers, although I must say that GUI programming is not what Tiggers do best.

 

On the other hand - Felix has quite fine tracer. It has such advantage over debugger that you have access to whole history of execution that led to problematic spot. Can't let you inspect memory though.

 

Link to comment
Share on other sites

1 hour ago, sage said:

I was a bit wondering. Why do you not copy the code from handy?

Frankly... there wasn't much to copy and there wasn't any point of doing it.

Twenty four years passed since mr. Wilkins wrote his emulator in completely different circumstances and his design choices were determined by speed of then-current processors (Pentium II was premiered around writing of Handy).

Now I have much more CPU cycles to spare, much more powerful tools and I can afford to go completely different path.

When you strip down Handy's codebase to only algorithms that are orthogonal to application's architecture, there is not much left. Namely two things - audio generation and sprite blitting. It turned out that audio generation after rewriting many times could be written in more effective way using modern instructions and sprite blitting... it might be said that I just copied from Handy :) Only general layout of main algorithm survived all my changes, but overall, it's algorithm from Handy. No other thing could be copied. It really was easier to understand the problem and write it my way.

 

 

Edited by laoo
Link to comment
Share on other sites

20 hours ago, Songbird said:

This looks very cool!

 

For me to use it, I would want a debugger with breakpoints, memory read/write, and step functions at a minimum. Handy is far from perfect, but at least I can step through assembly and see what's going on when something doesn't work properly. :)

 

There is actually support for symbolic debugging in the cc65 suite. With the proper flags the compiler generates all kind of interesting extras in the asm files.

Link to comment
Share on other sites

21 hours ago, karri said:

0.4.2 still hangs on eeprom writes for some reason...

You know... I did some tests what I know about and the emulator passed them. I can't fix scenarios I know nothing about. Please share some details.

 

 

 

Link to comment
Share on other sites

15 hours ago, laoo said:

You know... I did some tests what I know about and the emulator passed them. I can't fix scenarios I know nothing about. Please share some details.

The problem turns out to be on my side. There was an wait forever on IODAT. So all emulators and likely also carts without the eeprom chip halt on this code.

  • Like 1
Link to comment
Share on other sites

I know I have not a thing to contribute here yet, but thanks.

 

I used to try and put up with HANDY like 20 years ago or so, and it wasn't that awesome even then.  Why it has taken this long is sad and confusing.  I get this is Windows centric, but I hope given it's on github some more people will have the skill to drop a line and help with it collaboratively speaking as we see a bit of here so far.  There's no reason the code couldn't be expanded to more formats.  Imagine if something could be tweaked for mobile (android, since ios is closed) it could work on some interesting devices on the go.  I was pleased when the Evercade got the Lynx packs, but annoying they're limited by 3rd party licensees playing ball or not on what can happen, and quite a few real gems are third party on that.

Link to comment
Share on other sites

@Tanooki

Thanks! I'm confused too that for 20+ years no one took another approach to Lynx emulation.

It's currently Windows centric only because I'm a Windows developer on a day to day basis but the emulation core is carefully written in standard C++20 without any platform dependencies, so it's only a matter of writing new front-end. I think that I probably could write WebAssembly front-end given I'll do some research, but android version is completely outside of my expertise and I would too count on community in this matter.

Edited by laoo
Link to comment
Share on other sites

I had a feeling as much, it's why I leaned on finding more help and github being a good place as people walk into stuff they have an interest in.  Maybe a few atari/emulation circles could puff up some awareness of it.  There are emulation sites still around that cover news like Zophar's Domain among few others, and if you had some story pop about it arriving, then future updates, it would perhaps get some feelers out for more group help and ports like android.

 

I'm speaking from I guess outdated but valid experience having (I'm not a coder) helping with some emulation projects back in the latter half of the 1990s into the early 00s.  NES, FC/FDS, SNES projects with largely comparative testing, trying to break things, digging up research, etc.

  • Thanks 1
Link to comment
Share on other sites

14 hours ago, laoo said:

Busy day. v0.4.4 adds suport for rotation flag in LNX header

 

Oh very nice ?

The ZeroAudioEngine seems to works well also (but as this is streaming from ROM, I guess you have similar feature in your demos, so even with different compression and algorithm, it is logical it is working)

 

May I abuse and request an automatic remapping of keyboard layout (arrow keys) in vertical mode :D ?

Link to comment
Share on other sites

1 hour ago, laoo said:

@Fadest Automatic remapping depending on rotation is a good idea.

@42bs There are some minor technical difficulties, but can be done.

My favourite emulator for running Lynx is the PS Classic. The gamepads follow nicely the rotation. It also has a simple snapshot function so you can play the game in parts.

Link to comment
Share on other sites

Good point for Felyx.

 

I add a kind of tearing while testing Ynxa in some conditions that was not occuring in Handy. Was thinking of a way to make a small test ROM for you, but before, I tested on real Lyxn and it was the same than with Felyx.

So I looked at the silly code I added yesterday, in certain condition (for 2 seconds) I need to draw a "saved" sprite o nscreen. And I added this after the vsync occurs and before the swap buffer :dunce:

When put in the right order, it works great on every emulator/device.

 

So on many points, Felyx is more accurate than Handy, and as EEprom is working, I guess I can now switch to Felyx for dev & testing.

So expect to get more remarks and feature requests from me :D

 

Like this one :

- when we drag a file on Felyx, is it possible to give Felyx the focus for keyboard instead of having to reclick on it to put it as active program ?

  • Thanks 1
Link to comment
Share on other sites

1 hour ago, Fadest said:

When we drag a file on Felyx, is it possible to give Felyx the focus for keyboard instead of having to reclick on it to put it as active program ?:D

I wasn't even aware of such behaviour. Please add an issue for that so I won't forget about it.

 

EDIT: Oh, it's already there! Thanks!

 

Edited by laoo
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...