Ideas for Scherzo's NesterDC SE.
-
- Somewhat Dumb Knight
- Posts: 3653
- https://www.artistsworkshop.eu/meble-kuchenne-na-wymiar-warszawa-gdzie-zamowic/
- Joined: Tue Oct 12, 2004 2:26 pm
- Has thanked: 0
- Been thanked: 0
-
- Mental DCEmu
- Posts: 303
- Joined: Tue Jun 29, 2004 4:20 pm
- Location: Colorado
- Has thanked: 0
- Been thanked: 0
- Contact:
-
- DCEmu Ex-Mod
- Posts: 4970
- Joined: Thu Nov 29, 2001 3:40 pm
- Location: The Canadian-Mexican border.
- Has thanked: 0
- Been thanked: 0
-
- DCEmu Super Poster
- Posts: 1342
- Joined: Thu Aug 26, 2004 4:05 am
- Has thanked: 0
- Been thanked: 0
- Contact:
I believe most, if not all homebrew do zip their saves. It was just a flaw that the commercial games had.404NotFound wrote:Here is a suggestion... In the Homebrew forums, VMZip can cause some dramatic reducitons in savestate size. Is there any chance that a feature could be added that would on-the-fly compress all VMU data? I know people could just use VMZip, but it'd be really cool to have such a thing built in.
-
- DC Developer
- Posts: 2285
- Joined: Fri Feb 21, 2003 7:37 am
- Location: Chicago, IL
- Has thanked: 0
- Been thanked: 1 time
- Contact:
I'm bored here at work, which is amazing since I'm almost always busy and stressed out here.
So I figure I'd update you people with my progress.
Yes, I'm still working on it whenever I get the opportunity. I just hope all the whiners realize that I have very little free time, especially free time where I can sit down and write some code.
I started to get into some memory issues so I had to pull out the MP3, MOD, OGG music support. I managed to cut down the size of the binary by 700kB the past week. This really helped.
The KJS JavaScript interpreter is the true memory hog. But I'm actually surprised that this wasn't an issue much earlier in development. It's too late to do something different. I will make sure that NesterDC SE has the features I want AND not run out of memory.
The number of major feature-adds is getting smaller and smaller. Check out the WIP page to see my progress.
http://www.sch3rz0.com/nesterdcse/wip_features.php
I'm going to devote some time to the CD builder application. The true core of the builder will be a config-file-driven command line program. That way, making ports of the builder to other platforms like Linux and Mac should be much easier. This cmdline thingy is just about done already.
I'm going to build a Windows app that'll basically give you a nice clean visual way of editing the config's various options. I look to other people to make equivelent GUI interfaces for other platforms like Linux and Mac.
Once the builder is done, NesterDC SE will be in a state positioned for a release at any moment after I decide it's ready.
I will choose a handful of testers from DCEmu to help me find the kinks. I'd like to be at this testing phase in about a month.
So the time is coming. Finally.
So I figure I'd update you people with my progress.
Yes, I'm still working on it whenever I get the opportunity. I just hope all the whiners realize that I have very little free time, especially free time where I can sit down and write some code.
I started to get into some memory issues so I had to pull out the MP3, MOD, OGG music support. I managed to cut down the size of the binary by 700kB the past week. This really helped.
The KJS JavaScript interpreter is the true memory hog. But I'm actually surprised that this wasn't an issue much earlier in development. It's too late to do something different. I will make sure that NesterDC SE has the features I want AND not run out of memory.
The number of major feature-adds is getting smaller and smaller. Check out the WIP page to see my progress.
http://www.sch3rz0.com/nesterdcse/wip_features.php
I'm going to devote some time to the CD builder application. The true core of the builder will be a config-file-driven command line program. That way, making ports of the builder to other platforms like Linux and Mac should be much easier. This cmdline thingy is just about done already.
I'm going to build a Windows app that'll basically give you a nice clean visual way of editing the config's various options. I look to other people to make equivelent GUI interfaces for other platforms like Linux and Mac.
Once the builder is done, NesterDC SE will be in a state positioned for a release at any moment after I decide it's ready.
I will choose a handful of testers from DCEmu to help me find the kinks. I'd like to be at this testing phase in about a month.
So the time is coming. Finally.
-
- Somewhat Dumb Knight
- Posts: 3653
- Joined: Tue Oct 12, 2004 2:26 pm
- Has thanked: 0
- Been thanked: 0
"You smell that Rei? That's the Smell of Success!" lol.
Umm, so it is commandline? You think it would be okay to build a small java app to call the functions, something not too messy, but so that it can be portable? It would be nice for you to release the cmdline app before the whole release so a gui can be worked on and released around the time of the NDCSE release.
The list is getting smaller and I only see a few major problems. Kudos to you sir.
Umm, so it is commandline? You think it would be okay to build a small java app to call the functions, something not too messy, but so that it can be portable? It would be nice for you to release the cmdline app before the whole release so a gui can be worked on and released around the time of the NDCSE release.
The list is getting smaller and I only see a few major problems. Kudos to you sir.
-
- Somewhat Dumb Knight
- Posts: 3653
- Joined: Tue Oct 12, 2004 2:26 pm
- Has thanked: 0
- Been thanked: 0
-
- DC Developer
- Posts: 2285
- Joined: Fri Feb 21, 2003 7:37 am
- Location: Chicago, IL
- Has thanked: 0
- Been thanked: 1 time
- Contact:
I'm sort of considering using a library called wxWidgets. It's a cross-platform GUI toolkit. If I use that, then all that would be required for another platform is a recompile. The only thing that deters me from going that route is the lack of a nice dialog editor like in Vidual Studio. But who says that this little proggy has to be pretty, right?
-
- DC Developer
- Posts: 2285
- Joined: Fri Feb 21, 2003 7:37 am
- Location: Chicago, IL
- Has thanked: 0
- Been thanked: 1 time
- Contact:
Thanks for the links. The only one I knew of before was wxDesigner. But that VisualWx looks rather nice. Looks like it's almost a self contained IDE with the compiler support and all. But I'm sure the built-in text editor will piss me off in one way or another and I'll have to go back to my trusty TextPad.
- Dreamcast4life
- DCEmu Nutter
- Posts: 846
- Joined: Mon May 30, 2005 12:24 pm
- Location: monticello,Indiana
- Has thanked: 0
- Been thanked: 0
- Quzar
- Dream Coder
- Posts: 7499
- Joined: Wed Jul 31, 2002 12:14 am
- Location: Miami, FL
- Has thanked: 4 times
- Been thanked: 10 times
- Contact:
Hey, if you still need to drop down the memory usage of kjs, hit me up and i fancy myself as pretty good at stripping things down (hey, i got neodc down to a little over 600kb, and a mame sga from 5 to 1mb =p).
There is no way you should be so low on memory that you can't load and play mp3/ogg/whatever files.
There is no way you should be so low on memory that you can't load and play mp3/ogg/whatever files.
"When you post fewer lines of text than your signature, consider not posting at all." - A Wise Man
-
- DC Developer
- Posts: 2285
- Joined: Fri Feb 21, 2003 7:37 am
- Location: Chicago, IL
- Has thanked: 0
- Been thanked: 1 time
- Contact:
Oh, the music could be played, sure. I know that the streaming nature of playing requires relatively little memory. I stripped out the functionality because the libs were rather large and accounted for a good chunk of the binary's size.
The problem I think I'm having with KJS is not so much the library, but the shear amount of script that I've written for Nester. And it's not the size of JS files themselves that worries me. Apparently, KJS parses the script and turns it into some sort of node structure, like an intermediate byte code form. Definitely faster to run than parsing a function's code every time you call it. KJS runs quite fast on DC. But, with speed, you usually trade space. So that's what I think it is.
Garbage collection was a problem in the KJS engine. For the sake of speed, I'm sure it lets dead objects sort of build up then do a big sweep ocassionally. I found the function in KJS that starts the garbage collection sweep and I exposed it to the scripts. So now I call it when I think it's needed.
Also, I store things in KOS's ramdrive so that CDs can be swapped and for other reasons. I have all the GUI images in there plus the NES database. But all this stuff only takes up 371 KB of memory. Not much.
The binary's size was about 1900 KB a couple weeks ago. Then I stripped out the music support. I then re-compiled everything using -Os, even KOS! Amazingly, emulation is still fullspeed. In fact, I don't notice anything different. But now the binary is about 1200 KB.
It's very possible that there's a memory leak somewhere too. I've gotta double check all my news and mallocs.
The problem I think I'm having with KJS is not so much the library, but the shear amount of script that I've written for Nester. And it's not the size of JS files themselves that worries me. Apparently, KJS parses the script and turns it into some sort of node structure, like an intermediate byte code form. Definitely faster to run than parsing a function's code every time you call it. KJS runs quite fast on DC. But, with speed, you usually trade space. So that's what I think it is.
Garbage collection was a problem in the KJS engine. For the sake of speed, I'm sure it lets dead objects sort of build up then do a big sweep ocassionally. I found the function in KJS that starts the garbage collection sweep and I exposed it to the scripts. So now I call it when I think it's needed.
Also, I store things in KOS's ramdrive so that CDs can be swapped and for other reasons. I have all the GUI images in there plus the NES database. But all this stuff only takes up 371 KB of memory. Not much.
The binary's size was about 1900 KB a couple weeks ago. Then I stripped out the music support. I then re-compiled everything using -Os, even KOS! Amazingly, emulation is still fullspeed. In fact, I don't notice anything different. But now the binary is about 1200 KB.
It's very possible that there's a memory leak somewhere too. I've gotta double check all my news and mallocs.
- Quzar
- Dream Coder
- Posts: 7499
- Joined: Wed Jul 31, 2002 12:14 am
- Location: Miami, FL
- Has thanked: 4 times
- Been thanked: 10 times
- Contact:
suprisingly Os can actually be faster on the Dreamcast at times than O3 depending on your cache interaction.
and i don't know if this is still applicable, but mallocs don't always give aligned pointers, so i always use memalign(32, * ); in place of malloc and calloc.
and i don't know if this is still applicable, but mallocs don't always give aligned pointers, so i always use memalign(32, * ); in place of malloc and calloc.
"When you post fewer lines of text than your signature, consider not posting at all." - A Wise Man