Remember me

Lost Password?

Register now!


Who's Online
69 user(s) are online (38 user(s) are browsing Forums)

Members: 0
Guests: 69



Forum Index

Board index » All Posts (Olle)

Re: Do we have fast, accelerated, bug-free, supporting scaling SNES emulator ?
Just popping in
Just popping in

And some good news again,

Booted from the Final edition CD and dh1 works just fine. Going to do a complete backup now, as i probably need to format it with other partition settings, maybe not use sfs anymore?

Go to top

Re: Do we have fast, accelerated, bug-free, supporting scaling SNES emulator ?
Just popping in
Just popping in


Some good and bad news. Yesterday i fixed the issue with black screen and also fixed the white border.

I also added 3x and 4x scaling + scanlines and some more things.

Today after trashing my wardrobe to find my serial, i registered and downloaded the final-update 1 and 2.

After installing final 1, it worked fine, after final 2, my dh1-partition had read-error, and once it booted into workbench the partition says "uninitialized" :O

This is the partition where all sources are, i did backups from my dh0-partition to dh1 in case something would go wrong, but i did not expect my dh1 partition to get trashed. Only afterwards i realised my sdk: assign is on dh1, so it did write to it.

Anyhow, the partition is using SFS, what is the best way to try to fix it, if possible?

Here are some screenshots.

https://www.dropbox.com/scl/fi/u9gak9o ... ye4h4zz4d6kq7lmlxm3e&dl=0

https://www.dropbox.com/scl/fi/namxwm7 ... xg6cm98obpjuo1fruryj&dl=0

All suggestions welcome, as all my energy just drained. :(

Edit, @samo79 atleast has a semi-working version from yesterday.

Go to top

Re: Do we have fast, accelerated, bug-free, supporting scaling SNES emulator ?
Just popping in
Just popping in

Ah, yes and it should work of course. We are slowly getting back on track. :D

@samo79, my reads update 8, but i will do as you say to be sure, thanks.

I will send you a test-version in a few minutes.

I changed to use my own private bitmap for screen as well as for windowed mode instead, no locking / unlocking needed according to the docs.

Edit, now i know why i used that method, because now i need to blit the image. However now i get the *exact* same issue as you guys are. I added the blit, and now it works, but i have a white border. :D

I will try to fix the border and send to @samo79 for testing.

Go to top

Re: Do we have fast, accelerated, bug-free, supporting scaling SNES emulator ?
Just popping in
Just popping in

Yes, ignore the last 3 debug entries. :)

Good catch, i will check it. Yes it's the Rastports bitmap so that could be it. I will make a quick test-version and send to @samo79 to see if it makes any difference.

Edit, i see now that i allocate my own private bitmap for window-mode, but do the locking/unlocking to retrieve the P96_BMA_MEMORY pointer for screens, and only do this once.

Since @Capehill mentions it should work with private bitmap, this could indeed be the issue then.

The last thing i apparantly did at some point was to install a clean system, the backdrop picture reads "Amiga OS Final Edition 4.1", the workbench titlebar reads: "Amiga OS 4.1 - update 8".

It's from 2014, i believe i temporarily used an external powersupply because i purchased the final update for Amiga OS and wanted to have it installed to check all new features. ;)

I assume it's outdated? But i installed latest SDK, and when i tried to compile some stuff using std::string, i got a message i needed newer libs to run the application.

I tried to use the built-in "update software"-feature to install any outdated libraries, but nothing found.

I did however just check the amigaos.net website, and read on the wiki about drawing graphics, that we should now use graphics library instead of picasso96 which was preferred prior to 4.1

So, maybe i should revise the code and see if that solves the problem?

Go to top

Re: Do we have fast, accelerated, bug-free, supporting scaling SNES emulator ?
Just popping in
Just popping in


Yes it's strange, it works perfectly on my Radeon 7000 on the ua1, my guess was also something with the screenmode parameters not matching.

What if you enable the #define EMU_DEBUG in the framework.cpp file?

Can you post the screenmode outputs from your machine in case it differs, however that shouldn't matter you should still get trash on the screen.

It's like we need some command to push the graphics to be rendered, which is not needed on the older hardware (atleast ua1, maybe others)

Yes i tested all 16-bit and 32-bit modes, and the RGB-format is converted by P96EncodeColor to the selected screenmode so it should always be correct.

The code for setting the black screen is in the amiga.cpp file, and it also works on the ua1, i tried setting purple as a test, and sure thing it changes.

Maybe possible to check the sdl-code to see what they do different?

Edit: Meanwhile i will look into the suggestions and feedback from @samo79 , thanks a lot. So i'll do some work on the gui-part.

Go to top

Re: Do we have fast, accelerated, bug-free, supporting scaling SNES emulator ?
Just popping in
Just popping in


Here is a download link to the latest version with the changes mentioned above.

Feel free to test, but i doubt it will solve the black-screen and border issues.

https://www.dropbox.com/scl/fi/vvnctd4 ... k06oa4dtqusiz8dl6n9b&dl=0

Edit, unpack this folder and run, do not copy to another previously existing folder since the config-file is incompatible with previous versions.

Go to top

Re: Do we have fast, accelerated, bug-free, supporting scaling SNES emulator ?
Just popping in
Just popping in


WarpSnes 1.43 sources sent, finally went through but i had to send you a dropbox-link because gmail refused to accept the archive.

Some of the changes done.

* Fixed amigainput support (fixed some bugs)
* Fixed some memory corruptions causing random crashes and general instability of the gui)
* Extended the size of the keyboard-setup fields so the key-mapping names are readable.
* Fixed the select resolution-button for fullscreen options, which was greyed out when starting the application.
* Fixed when selecting a saved savestate, to remove the button "Continue previously played session", to avoid confusion on how to run the savestate (by just clicking play)
* Updated the framework-code to use Amiga OS 4 methods for allocating objects and creating ports and stuff like that.
* Created a new renderer callback system for the framework, calling separate function depending on what option is selected. This avoids *alot* of if-cases in rendering-loop which should speed things up compared to previous version.
* Only 16 and 32 bit window/screenmodes are supported, removed 8-bit option everywhere to protect from crashes since this is a 16-bit system.
* Fixed paths for all save/loading in snes9x-code, previously some save-files could end up in different folders.
* Fixed save and load-state in the gui to find the screenshots even if the rom files are saved with .zip or .gz extensions.
* More bits and bobs i can't remember at the moment.
* Edit: Remembered, added FullScreen 2X with Scanlines. :)

I tried to compile with both old GCC 6-version and GCC 11.2 and both works, even with Optimization flags on now. :)

I will test to compile snes9x 1.62.3 now and try to make a version as well, interesting to see performance difference if nothing else.

Edited by Olle on 2023/11/27 22:42:12
Go to top

Re: Do we have fast, accelerated, bug-free, supporting scaling SNES emulator ?
Just popping in
Just popping in


Yeah, no worries i was just curious about the state of SDL2 or 3, and if there would be a reason to have it as an optional framework.

Go to top

Re: Do we have fast, accelerated, bug-free, supporting scaling SNES emulator ?
Just popping in
Just popping in


Sorry no that address stopped working long time ago without me being aware of it. For direct access to mail directly to my uA1-machine, use this one ollemann(@)telia.com , or if sending larger files, use perj0913(@)gmail.com but then i need to transfer them.

Go to top

Re: Do we have fast, accelerated, bug-free, supporting scaling SNES emulator ?
Just popping in
Just popping in

Thank you. :)

Thank you, yes it was unfortunate it wasn't possible to finish it back then. Maybe now it can be done.

Thank you, you are probably correct, it was just a quick check (and late night after full workday), i will take a stab at it once more, and if it's still not solved i will make an isolated code with the issue and post here for help.

Thanks, yes i will check the code with fresh(er) eyes, and yeah i know it's probably bug(s) in the code causing this, and not the optimizer flags, what put me off in that tangent was that from the S9xGraphicsMode() function, i only once calls my framework to open the display, like so: emu_frame->OpenDisplay();

So i put a log message in S9GraphicsMode() and log message in the OpenDisplay() functions, and when i compile without optimization, it calls them only once during startup. If i put optimization on, it calls S9GraphicsMode() once, and the OpenDisplay()-function repeatedly until crash.

I searched the whole codebase and the OpenDisplay is only called from S9xGraphicsMode(). This is why i thought it was strange.

I will send the code to TheMagicSN, so he can forward it to you as well, probably on Saturday or Sunday because i'm not at home this week.

Btw, i saw your github and awesome stuff. Question about SDL/SDL2 on Amiga OS 4, what is the state regarding latency and performance? Should i change to using SDL instead? If supporting OpenGL, maybe rendering to texture is a better option? , and how about audio latency?

That's nice to hear, congratulations on both marriage and house. No marriage here but a partner and stepdaughter and also bought a (tiny) house some 7 years ago.

>Yeah, I am fine. I sort of took a break from AmigaOS (like 10 year long break). I restarted on AmigaOS end of last year (now short before releasing OS4 Version of Heretic 2, >and working on Sin for OS4 as well as H2 and Sin for 68k). Not in full-time like before but in "fully accepted part-time by my employer" (believe it or not, actually I got a document with signature of a big-boss for that )

That's awesome :D , regarding the big-boss signature, hahah i have a similar one stating that i cannot be disturbed during easter holidays so i can go to Revision party, and also our local demoparty (Gerp) is a no-work zone. :D

I will send you the sources in the weekend as i am not at home this week, amazingly i managed to time my posting on amigans.net just as i got coworkers from China arriving and we are sitting in a cottage deep in the forest crunching for a software pre-release that is supporting Mac OS, Windows, IOS and Android and is going to be presented to Lidl and Walmart together with a special hardware. We'll see how it all turns out, if nothing else a good learning experience.

@Maijestro and samo79,

Thanks for the feedback, i think i have a pretty good idea of why this happens now. :)

Go to top

Re: Do we have fast, accelerated, bug-free, supporting scaling SNES emulator ?
Just popping in
Just popping in

Hello all,

Long time no Scene. :) , i hope everything is fine?

As smf said, i resurrected my old µA1 which i had disassembled as the powersupply was raided to get my parents mini-pc to work many moons ago, the timing now was just right to get the machine back working again, replaced the battery and connected all cables, and it started running again.

The last thing i did before shutting it down way back when, was making a clean update to OS 4.1 , so i spent yesterday downloading stuff and updating it a bit, also installing the new SDK 54.16 (is that the latest?) and tried to compile WarpSNES in order to make it workable before sending it to @TheMagicSN

That was a no-go, there was deprecated stuff in the dos library, Picasso96 and so on, so i did some changes to support it.

When it finally compiled, it just crashed when trying to play a rom. I debugged for 7-8 hours trying to understand what caused the problem and finally came to the conclusion that by just opening a screen and closing it, the crash would occur but there was nothing wrong, so i disabled the optimization flag (-O3) and, voilá it worked. Tried to use optimization (-O2) and it gave same problem. What actually happens with the optimization on, was that the call to open the window, would repeat endlessly so it would create 40-50 windows before crashing. Never experienced this before, anyone else had this?

Anyway long story short, i tried to attach a test-version, can you guys just see if this works? (may be slow since no optimization-flags are used due to the above mentioned)

Regarding the old 1.43 version, the readme is a bit unclear, actually about these changes:
Changes added by Per Johansson (amigan()comhem.se):
- Added amigainput support including button,axis and hats.
- Added native Amiga OS4 framework, ie no SDL dependency
- Added support for xadmaster.library (ie. support for zipped, gzipped games)
- Added keybindings
- Snapshots fixed (gamestates)
- Sound added
- Small gui added + different window modes
- Saves batterybackuped data correctly
- Additional small bugfixes

Sound added, yeah sounds weird but it just meant i added audio-support into my OS4-framework (the SDL-replacement)
Also the AmigaInput was back then a very special beast to get working, i looked in the code now and saw some special hacks to have it working at all and sometimes crash, versus not having it working at all, so it was a compromise. I assume things has changed since back then, so maybe i should remove the hacks and test with a usb-device.

So most of the above changes is about the framework and the gui, not the emulator in itself. However i found an email sent to @TheMagicSN where i mentioned i would send it once finished and cleaned up... Better late than never :D

Actually working on these emulators, primarily the framework and the gui and editing the gui to all emulators was madness work, so i decided at a later point to create a new system, together with Palombo Davide we created something we called "Katana" which basically was the framework + gui as an application and all the emulators was plugins (libraries) that were enumerated at runtime, so new emulators could be added without needing to change/recompile the main application.

That was the last work i did before it all halted.

I think we were quite close to release Katana (some distant memory about savestates not working with megaman 2?), i made plugins for the emulators that @TheMagicSN ported, and some more.

These were working back then:
WarpSNES (1.50 was the latest version i compiled and used)
Sega Master System , Game Gear
Genesis / Megadrive (Dgen)
GenesisPlus (Optional plugin)
TGEmu (Nec PC-16)
Gameboy Colour
Gameboy Advance

So i would rather prefer to actually update and finally release Katana, that way we can update the emulators without the need to make a new gui or gui-changes.

Btw, Not sure what to add to make the border black, on my system the border is always black, check this version and see if it's still the same problem.

Sorry for the ramblings, wrote this in the middle of the night while waiting for my account to be accepted. :)

Trying to add links and images below, fingers crossed it works.

Warpsnes 2023-11-20 testversion

Warpsnes Image

Katana Image

Go to top


Powered by XOOPS 2.0 © 2001-2023 The XOOPS Project