VOGONS


Java Port

Topic actions

Reply 80 of 203, by felixcatx

User metadata
Rank Newbie
Rank
Newbie

Hi Danoon!

I tested again and work fine under Firefox, I dont change anything only use Firefox.

I tested in my i7/860/XP-EN-32bits/4Gb and another Core2Duo/E7500/XP-EN-32bits/4Gb.

Sorry about my IE8... You in correct way! go for it!
Thank for you suport!

Felix

Reply 81 of 203, by danoon

User metadata
Rank Member
Rank
Member

New Beta Version build 19c

The new caching core is almost done. It runs all my standard test games, including, Death Rally, Doom, Tomb Raider and Dungeon Keeper. Currently the only problem is Windows 3.11.

On average this version should be about 2x faster than my previous official release.

Please test this version and report back any problems.

http://jdosbox.sourceforge.net/beta/jdosbox.jar

Reply 82 of 203, by danoon

User metadata
Rank Member
Rank
Member

0.74.20
* New dynamic core, most games are 2x faster than build #19
* Fixed lots of minor bugs, mainly around installers

Test out the faster Doom at http://jdosbox.sourceforge.net/

I can't believe it has been almost 2 months since build #19. The new core definitely took a lot of time, but I think it was was worth the effort. Doom seems to be the wost case for the new core, its only 25% faster, but every little bit helps. The nice part is this core works in unsigned applets. There is still room for improvement, a recompiling core shows lots of promise. Maybe someday I will get to that. For now I would like to work on stability, so please write about bugs your see.

Reply 83 of 203, by koun

User metadata
Rank Newbie
Rank
Newbie

I can confirm the performance improvements. Well done!

However, I also found 2 ways to reliably crash jDosBox using dynamic core:
1. Starting FreeCell in Windows 3.11 (not sure if win32s is supported, it worked with the non-dynamic core) [log/stack trace always the same]
2. In Civilization 2 get to the first "Rome wise men discover the secret of ..." dialog and close it [errors/stack traces vary]
I have attached a zip with stack traces from both situations. I hope that helps.

Something else: I'm currently porting some Java-based emulators to JavaScript using GWT (got GameBoy and Atari 2600 working so far). In the end I plan to release an open source library to simplify that process for others (covering video, audio, input, storage, a virtual file system, much better Java System Library coverage, ...).
I've also looked into porting jDosBox and, while it is definitively the most complex emulator I looked at, it seems doable. It would however make it a lot easier if you could help me with one thing, i.e. regularly interrupting the emulation loop(s) to let the browser repaint and handle input events. I'd really appreciate you helping me out with that part, when I get to it (most likely in a few weeks) as I'm not sure I fully understand the structure of jDosBox which seems to consist of multiple nested loops driving the emulation.

Attachments

  • Filename
    jdosboxlogs.zip
    File size
    3.6 KiB
    Downloads
    537 downloads
    File comment
    collection of logs containing stack traces
    File license
    Fair use/fair dealing exception

Reply 84 of 203, by danoon

User metadata
Rank Member
Rank
Member

0.74.21 May 27, 2011
* Fix for Windows 3.11 that affected Freecell

Thanks Koun for that bug report on Freecell, I tested SimTower and the standard games but forgot about Win32s

As for input and drawing, the emulator calls GFX_Events to see if the system has any pending events. For applets I post mouse and keyboard events into a queue, then dispatch on the emulator thread when it calls GFX_Events. For video drawing look at GFX_StartUpdate and GFX_EndUpdate. These are all in jdos.gui.Main.

Good luck with the port, if your experience is anything like mine, then the port will seem like a challenge but in retrospect it is nothing compared to how hard it is to track down bugs. I'm still trying to figure out why Windows 98 won't come up all the way. 😀

http://www.boxedwine.org/

Reply 85 of 203, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Are you using cache blocks like the x86 dynamic core and the general recompiler?
If so then build games like duke3d (iirc doom1/2 as well) screw the block recompilation
a bit since they write into code a lot thus invalidating the blocks frequently. Certain things
like using references to constants instead of compiling them into code effectively
counter measure these things.

Reply 87 of 203, by danoon

User metadata
Rank Member
Rank
Member

0.74.22 May 29, 2011
* More fixes for Windows 3.11

I tested this build with Civilization 2 and Microsoft arcade, Centipede makes use of frequent code modification.

Hopefully Windows 3.11 will be more stable now. This was 3 separates fixes, 2 were for the dynamic core and one affected both cores.

wd: Yeah, I ported the block handling from the c code. And you are right, self modifying code is a challenge, especially when it modifies the current running block. I print out stats on how many blocks are being created and active and it looks like my modified code handling is working. I don't see blocks being invalidated and rebuilt on a frequent basis.

http://www.boxedwine.org/

Reply 88 of 203, by danoon

User metadata
Rank Member
Rank
Member

Just an update.

0.74.23a
* Reduced flicker and added auto frameskip
* Added Tandy Sound
* Implemented IPX

This isn't an official release, but if anyone wanted to try the current svn with ipx support here is a package that contains jdosbox.jar, doom and script to start doom as a local server and a script to connect to it as a client.

http://jdosbox.sourceforge.net/doomipx.zip

Currently IPX only works for some games, like Doom and Duke Nukem 3D, unfortunately Z does not work yet. Once I get that fixed then I will make an official release.

Reply 89 of 203, by Orguth

User metadata
Rank Newbie
Rank
Newbie

Hello,

first of all, apologize me for my english, but it doesn't too good like I want.

I have a problem with jDosbox when I make the .img file of the games. I can run without problem if I download a .zip file of a web that is using jDosbox.
I see that the .zip have inside a .img file, but, like I said, when I "make" this .img file my jDosbox not run with it. Neither DosBox in my computer.

What software use you for make that .img file? I tried a lot of things and differents ways but the result is not run the game except with .zip that I download of other communities.

Could you help me? Thanks everyone.

Reply 90 of 203, by danoon

User metadata
Rank Member
Rank
Member

I used dosbox megabuild to create the images

http://home.arcor.de/h-a-l-9000/megabuild.html

Within megabuild dosbox

To create a 16 MB image
z:\imgmake d:\game.img -t hd -size 16

Within megabuild dosbox mount the image so that you will get the geometry
z:\imgmount c d:\game.img

It will print out:

Image geometry auto dection: -size 512,32,2,512
Drive C is mount as d:\game.img

Now in jdosbox you can use this image
z:\imgmount c d:\game.img -size 512,32,2,512

Reply 91 of 203, by Orguth

User metadata
Rank Newbie
Rank
Newbie
danoon wrote:
I used dosbox megabuild to create the images […]
Show full quote

I used dosbox megabuild to create the images

http://home.arcor.de/h-a-l-9000/megabuild.html

Within megabuild dosbox

To create a 16 MB image
z:\imgmake d:\game.img -t hd -size 16

Within megabuild dosbox mount the image so that you will get the geometry
z:\imgmount c d:\game.img

It will print out:

Image geometry auto dection: -size 512,32,2,512
Drive C is mount as d:\game.img

Now in jdosbox you can use this image
z:\imgmount c d:\game.img -size 512,32,2,512

Thank you so much. I have get a first little positive result using this.

You're the best guys!

Reply 92 of 203, by danoon

User metadata
Rank Member
Rank
Member

0.74.24 July 2, 2011
* Fixed some mouse sensitivity issues
* Reduced flicker
* Ported Tandy sound
* Ported IPX

IPX seems to be working well, I finally got Z to work.

http://www.boxedwine.org/

Reply 93 of 203, by divinity

User metadata
Rank Newbie
Rank
Newbie

Hi,

i can't get IPX working when i use jDosbox as an Applet. Warcraft 1 crashes with cryptic text and Command & Conquer 1 freezes.
I tried with all 3 Applet methodes described in HowTo-Applets.txt on Sourceforge and i did this on my local Computer with Server & Client (ipxnet connect 127.0.0.1).
jDosbox as Application with IPX works fine.

Is it possible to make the IPX Applet working or is this only a problem of these 2 Games?

Reply 94 of 203, by danoon

User metadata
Rank Member
Rank
Member

I'm pretty sure unsigned applets can't listen on a socket (server socket). You can try running a dedicated server, like this one dosbox-ipxdelay dedicated server Also unsigned applets can only open sockets to the host they are served from so if you run a dedicated server, make sure its using the same ip address or name as the page you are hosting the applet.

I haven't tested ipx with unsigned applets. But I did test Warcraft 1 with a self signed applet served from an ubuntu/apache box with the dedicated ipx server I mentioned running on it. I was able to start a multiplayer game by running one instance in IE9 and the other in Firefox 4.

http://www.boxedwine.org/

Reply 97 of 203, by danoon

User metadata
Rank Member
Rank
Member

0.74.25a (BETA) Aug 7, 2011
* First version to support Windows 98
* Can set video memory size up to 8MB
* Improved file path handling for Mac/LInux
* Added NE2000 network card support (requires PCap)

http://jdosbox.sourceforge.net/jdosbox-0.74.25beta.zip

Here is the current build from SVN. Windows 98 seems pretty stable, though I haven't tested very many apps, IE5 and Diablo work well.

Speed of course is an issue. Keep in mind that 64-bit version of Java are noticeably faster for jDosbox.

Please report any problems you have with this build, excluding sound quality. I know there are pops and it can be a bit delayed. I'm hoping to make that one of my next priorities.

Reply 98 of 203, by lil_stenly

User metadata
Rank Newbie
Rank
Newbie

Well Daggerfall works ingame with the default settings 😜, pretty slowly, still without bugs from the installation to the moment when you playing it on "frames", haha I can't believe that runs in java... awesome work!
Just one thing that appears as an issue, disk space, still that issue also applies in dosbox I think. 😀

Reply 99 of 203, by lil_stenly

User metadata
Rank Newbie
Rank
Newbie

There has a bug with typing "mixer" command without to specify a value, it should return the default value, instead of doing that it crashes... exits right away actually.

Here is the log.

DOSBox version 0.74.25a
Copyright 2002-2010 DOSBox Team, published under GNU GPL.
---
CONFIG: Generating default configuration.
Writing it to F:\DOS\java\.dosbox\dosbox-0.74.conf
CONFIG:Loading primary settings from config file F:\DOS\java\.dosbox\dosbox-0.74.conf
DOSBOX_RealInit
About to allocate memory 22536kb: 44485kb free
HARDWARE_Init not finished yet: NO SCREEN SHOTS
Using Soundbank: soundbank-min.gm
DSP:Reset
Read from port 378
Read from port 379
Read from port 3bc
Read from port 3be
Read from port 278
Read from port 279
INT10_Init
Invalid type for serial1
Invalid type for serial2
Network card disabled
Parsing command line: AUTOEXEC.BAT
Special file open command 80 file Z:\AUTOEXEC.BAT
Special file open command 80 file Z:\AUTOEXEC.BAT
Parsing command line: SET BLASTER=A220 I7 D1 H5 T6
Special file open command 80 file Z:\AUTOEXEC.BAT
Startup time: 250ms
Parsing command line: mixer
Execute mixer.COM 0

And the error that shows up.

java.lang.StringIndexOutOfBoundsException: String index out of range: 4
at java.lang.String.substring(Unknown Source)
at jdos.util.StringHelper.sprintf(StringHelper.java:227)
at jdos.misc.Program.WriteOut(Program.java:123)
at jdos.hardware.Mixer.ShowVolume(Mixer.java:753)
at jdos.hardware.Mixer.Run(Mixer.java:747)
at jdos.misc.Program$1.call(Program.java:73)
at jdos.Dosbox$1.call(Dosbox.java:65)
at jdos.Dosbox.DOSBOX_RunMachine(Dosbox.java:190)
at jdos.cpu.Callback.CALLBACK_RunRealInt(Callback.java:157)
at jdos.shell.Dos_shell.Execute(Dos_shell.java:733)
at jdos.shell.Dos_shell.DoCommand(Dos_shell.java:611)
at jdos.shell.Dos_shell.ParseLine(Dos_shell.java:171)
at jdos.shell.Dos_shell.Run(Dos_shell.java:96)
at jdos.shell.Shell$5.call(Shell.java:377)
at jdos.misc.setup.Config.StartUp(Config.java:96)
at jdos.gui.Main.main(Main.java:896)
at jdos.gui.MainFrame.main(MainFrame.java:235)

Same error applies to previous versions too.