Hi guys,
I had not really the time to finish coding the latest JavaCPC version,
but because we have christmas, I will present you a pre-BETA of the new version.
(http://cpc-live.com/javacpc_desktop_small.png) (http://cpc-live.com/javacpc_desktop.png)
(Click to view in fullsize)
Please regard:
- This is a BETA preview of the upcoming version
- Many things have not cleaned-up yet (Especially the 'menu'!!!) So don't wonder, if you get in trouble using the old features...
- It is strongly recommended that you choose "Desktop version"!!! (Classic emu has not been tested yet)
- Min. System-requirements: - about 2,0ghz and better!
- Last, but not least: It's really important that you commit every bug you find... Please help me finding bugs...
Download here:
http://cpc-live.com/JavaCPC_beta_WIN32.rar
Into this package is a DSK included called "flip-slide.dsk"
- this is a 800k Parados DSK containing 22 flip-screens viewable best with "De-Interlace" feature! (You find this button @ bottom of JavaCPC Desktop)
And now:
Merry Christmas to ALL CPC-Fans around the globe!!!
Markus
Actually working on a new Animated-GIFcapture tool for JavaCPC.
This allows to create animated GIFs now with an acceptable framerate. (Without Emulator slowdown)
Example is here (http://cpc-live.com/capture.gif) (ca. 7,5mb, best viewed with Firefox)
Ah damn! I had missed that!!!! What a pity I don't have JVM here at work :( :( :(
BETA update: http://devilmarkus.de/desktop.rar
please report bugs here...
(I cannot fix things which work on my system)
Please don't report bugs about the menu! It needs to got re-arranged.
You cannot choose the "BlackEye" theme!
Cheers,
Markus
Quote from: Devilmarkus on 13:02, 29 January 10please report bugs here...
I'll just say this: i tried using javacpc in my 10"-screen netbook (1024x600). Need i say more? :)
Ok, maybe i need to. The emulator window appears to be located at position [-something, -something] (only part of it appears inside the master window, which makes it unusable). Also, the master window should contain scrollbars because not all icons are visible in that resolution. I'll try to make some more tests, probably in the next beta, if the emulator window location issue is solved.
Finally, in that resolution, the Settings menu, when open, it overlaps the menus to its right (Monitor, Extras, Help)
In general, javacpc looks promising. Keep it up devil... ;)
Quote from: Wanderer on 19:36, 02 February 10
I'll just say this: i tried using javacpc in my 10"-screen netbook (1024x600). Need i say more? :)
1024 x 600? Wow.... Do you breast-feed it? ::)
Maybe it'll grow then ;)
No, really,
I don't know if it makes sense to run an emulator @ this resolution.
But I re-arranged some things in JavaCPC so it should be possible to run it @ 800x600, too...
You will also be able to run it as "classical" emulator without desktop in it's own frame.
I really wonder that it works on such a netbook / notebook... 8)
Quote from: Devilmarkus on 11:00, 08 February 10
1024 x 600? Wow.... Do you breast-feed it? ::)
Maybe it'll grow then ;)
:) My little one insists on running JavaCPC, how can i say no to it?
Quote from: Devilmarkus on 11:00, 08 February 10I don't know if it makes sense to run an emulator @ this resolution.
Why not? It's powerful enough. Unfortunately netbooks don't have greater resolutions (yet).
Quote from: Devilmarkus on 11:00, 08 February 10But I re-arranged some things in JavaCPC so it should be possible to run it @ 800x600, too...
You will also be able to run it as "classical" emulator without desktop in it's own frame.
Great thanks. I'll try the next beta then.
Quote from: Devilmarkus on 11:00, 08 February 10I really wonder that it works on such a netbook / notebook... 8)
I'll grab a picture and post it here. Things are too tight as you can imagine.
I am also creating a new RGB - filter.
Maybe you know the RGB filter used in DosBox.
It reproduces the output image with the following pixel rules: (2x zoom)
1 Pixel is splitted to:
R |G
-------
B |rgb
Together with Kevin I managed to create this filter now for JavaCPC and WebCPC, too.
Running with 50fp/s on my system.
Here's a screenshot:
(http://cpc-live.com/rgbfilter.png)
I like this!!! :D
Let's have a closer look:
(http://cpc-live.com/rgbcloser.png)
Quote from: Devilmarkus on 18:09, 11 February 10
Let's have a closer look:
(http://cpc-live.com/rgbcloser.png)
ouch my eyes. too close! ;D
Come on guys, this can show cool effects:
- CRT filter + Monitor blend + De-interlacing:
(http://cpc-live.com/crtfilter.png)
You can also disable everything.... ;)
Some more:
(http://cpc-live.com/crt1.png)
(http://cpc-live.com/crt2.png)
(http://cpc-live.com/crt3.png)
Quote from: Devilmarkus on 18:11, 12 February 10
Come on guys, this can show cool effects
Wow. Nice (as long as it's not too close ;) ).
Just improving JavaCPC - Paint.
New / changed features:
- Green/Grey screen rendering possible (in up to 16 green tones)
- Rendering to every palette you want possible now
- Simple zoom-window (To view closer, what you are pixeling)
- New Soft/Sharpen effect for imported screens
- You are able now to work on up to 20 screens simulteanously! No image will be lost, all are stored and reloaded when you relaunch the emu, so you can continue pixelwork.
- Better brightness slider to improve your image conversions
- New display handling routines
- New conversion algorithm (You will always get the best result)
Screenshot:
(http://cpc-live.com/new_paint_thumb.png) (http://cpc-live.com/new_paint.png)
(click to watch)
Working on overscan images!
The algorithm works already perfect now...
Need to optimize some routines (because the emu runs @ 90% CPU useage @ moment) :o
Here you can see a test screenshot of an overscan image I rendered:
(http://cpc-live.com/overscantest.png)
http://cpc-live.com/overscan_editor.png
Working on a Z80 assembler...
It can already compile some simple programs.
(It's really very hard for me to code the parser from scratch....)
Many things still to do (Labels work basic only, EQU the same, parsing ALL instructions etc...)
Here's a preview:
(http://cpc-live.com/assembler.png)
Making progress:
http://cpc-live.com/asmtest/
Still many things to do :(
- Undocumented Instructions
- better parsing of labels
- DB,DEFB,DW etc... need improvements
- and so on......
I'm sure I'll finish it in 2090 or so :D
Made lot progress today with the Z80 Assembler!
Who wants to help me to debug it?
It already can compile about 80% accurate.
I need better knowledge about undocumented instructions and pasmo/maxam specific commands.
Here you can watch an actual video:
http://cpc-live.com/javacpc_assembler/
Very impressive stuff, especially the images... the filter is very interesting, before I saw your close-ups I was struggling to imagine how it works and what it does in the first pics...
Quote from: Gryzor on 13:27, 01 March 10
Very impressive stuff, especially the images... the filter is very interesting, before I saw your close-ups I was struggling to imagine how it works and what it does in the first pics...
Well the green and grey screen also profit from new display filters:
http://cpc-live.com/climaxg/ (66mb video !!)
Used filters:
- Scanlines
- Full gatearray emulation (768 * 544 pixel)
- SuperPALfilter
- Deinterlace filter
JavaCPC uses 544 vertical lines now. This doesnt make it slower on most machines.
(Older JavaCPC only used 270/272 vertical lines)
Arghhhhhh piss on that f*cked up line here at work! WIll watch it at home... :(
Making some progress with my assembler:
http://cpc-live.com/xilen/
It's getting better!
Like magic :)
But why is the game running so slowly? Is it the video or something?
Humm slow?
Check it with WinAPE assembler:
Hmmm, dunno, maybe it's the game itself? But it seems to be totally un-smooth and erratic...
Just finished:
A simple Poke-Finder (like Action Replay)
(http://cpc-live.com/pokefinder.png)
Maybe helpful to find some cheats...
Hehhh! I remember some DOS memory trap programs that did the same job... I should try it just for the heck of it!
Hi guys,
yesterday & today I improved the digiblaster emulation in JavaCPC.
I added a pseudo-stereo-effect.
This sounds much better now.
You'll be able to set the delay timing in options.
Example: (Yes, it's real CPC music!)
http://cpc-live.com/kraftwerk.zip (http://cpc-live.com/kraftwerk.zip)
http://cpc-live.com/gowest.zip (http://cpc-live.com/gowest.zip)
http://cpc-live.com/sweetdreams.zip
Example:
[cpc=http://cpcwiki.eu/forum/index.php?action=dlattach;topic=484.0;attach=440,none,1]CPC6128[/cpc]
This is nuts... I'll say it again, this is Amiga-level tunes... Only Go West is a bit loud, resulting in what appears to be heavy clipping, but it's so impressive!
Right, all songs are converted from amiga.
http://cpc-live.com/silkworm.zip
Another well known tune
Oh cr@p, hadn't listened to that in ages... I used to be so good, on the CPC, I would play it for hours controlling both the jeep and the heli and never lose... or was it so easy?
Some more MDL's I made: (1-1 conversion from Amiga-MODs)
[cpc=http://cpcwiki.eu/forum/index.php?action=dlattach;topic=484.0;attach=446,DIGITRAK,1]PARADOS[/cpc]
Instructions:
- Disable Joystick input (In Emulator)
- Wait until Digitracker has loaded
- Press "." on right numberpad twice (Until "Out at: D" is shown in Digitracker)
- Use cursor keys & Enter to load a song and play it (ESC to go back to main menu)
- Have fun
Quote from: Devilmarkus on 17:55, 02 April 10
Right, all songs are converted from amiga.
http://cpc-live.com/silkworm.zip (http://cpc-live.com/silkworm.zip)
Another well known tune
That's so cool, loving it 8)
Quote from: Devilmarkus on 17:55, 02 April 10
Right, all songs are converted from amiga.
http://cpc-live.com/silkworm.zip
Another well known tune
Nice! :) Brings back some memories... ::)
Just added a format disk dialogbox where you are able to create different formatted DSK:
(http://cpc-live.com/format1.png)
(http://cpc-live.com/format2.png)
If no DSK is in actual drive you want to format, a new DSK can be created with selected options.
This is really useful - it's actually two features in one: a disk creator and a disk formatter... thanks :)
That reminds me when someone in the csa8 newgroup did'nt know how to format a DSK, someone else provide an empty preformatted disc image for download. Pretty cool idea, downloading empty discs! Or maybe not? ;)
Quote from: nurgle on 14:41, 19 April 10
That reminds me when someone in the csa8 newgroup did'nt know how to format a DSK, someone else provide an empty preformatted disc image for download. Pretty cool idea, downloading empty discs! Or maybe not? ;)
Well, other emulators, I think, use a real format routine to do that.
I use preformatted empty dsk (They find their place inside the .jar file)
22 DSK images but compressed 95k only.
Positive aspect is: size of old dsk doesnt matter... It will always be formatted accurate.
Also positive is: You can simply create a new DSK using your selected format.
Hi Devilmarkus.
I'd really like to see what you've been up to the last few months. Should we expect a new beta released soon?
Quote from: Wanderer on 05:22, 20 April 10
Hi Devilmarkus.
I'd really like to see what you've been up to the last few months. Should we expect a new beta released soon?
Well, here you go:
Download JavaCPC build 2010-04-20 (http://cpc-live.com/javacpc_6_8_beta.zip)
Please,
to all testers, report bugs, and also positive/negative feedback.
Can you add the Vortex format too?
Thanks.
Quickly added Vortex format (double sided, 80 tracks), too.
Download JavaCPC build 2010-04-20 (http://cpc-live.com/javacpc_6_8_beta.zip)
I also added both Vortex-roms: 1.0 and 2.0
Please notice:
AFAIK Vortex-roms only support CPC 464 rom set.
Formatting works, too, in JavaCPC :)
Quote from: Devilmarkus on 09:32, 20 April 10Well, here you go
:) Great. Thanks for the beta. I'll check it and report impressions.
OK, the first time it froze on startup but after killing and restarting it, it loaded nicely all times i tried it.
Observations:
1. On startup, even though keyboard noises are disabled, it performs noise on key click. Selecting and deselecting "keyboard noises" from the menu solves this issue.
2. It seems that the data shown on screen when "observe performance" is selected are overlapping the actual screen when "simple screen size" is selected. I've tried this in my netbook and i couldn't try a larger setting but i'm guessing the same problem may exist in "triple screen size" too.
3. On startup, even though "observe performance" is unchecked, performance info are being shown on screen for a few seconds. The same seems to happen when JavaCPC receives focus.
4. Menus "CRTC type" and "Memory", even though they seem to have submenus, they don't appear.
Found these so far. I'll keep playing with it later.
Thanks again for the beta. Working really nice even in my netbook (not the best speed but still, it's working).
Quote from: Wanderer on 18:41, 20 April 10
1. On startup, even though keyboard noises are disabled, it performs noise on key click. Selecting and deselecting "keyboard noises" from the menu solves this issue.
I know, is on my TODO list ;)
Quote
2. It seems that the data shown on screen when "observe performance" is selected are overlapping the actual screen when "simple screen size" is selected. I've tried this in my netbook and i couldn't try a larger setting but i'm guessing the same problem may exist in "triple screen size" too.
Please email me a screenshot. devilmarkusATcpcwiki.eu
Quote
3. On startup, even though "observe performance" is unchecked, performance info are being shown on screen for a few seconds. The same seems to happen when JavaCPC receives focus.
That's right!
FPS and CPU speed is shown always for 2 seconds when CPU resyncs!
(And on startup)
This has nothing to do with focussing/un-focussing the display.
Emulator does a resync when you load a dsk, or change some settings like roms etc...
It also resyncs when performance gets too low.
The "Observe Performance" option is only for setting JavaCPC to low performance system when there are too many resync's in a measured time.
Quote
4. Menus "CRTC type" and "Memory", even though they seem to have submenus, they don't appear.
I know this, too.
Most menu's will be removed in final release. And replaced by config dialog.
Quote
Found these so far. I'll keep playing with it later.
Thanks again for the beta. Working really nice even in my netbook (not the best speed but still, it's working).
Have fun ;)
Quote from: Devilmarkus on 18:48, 20 April 10Please email me a screenshot.
Posting part of the screen here, as an attachment.
Ok I see.
It's normal.
(Perhaps I will move the info a bit later)
BTW:
Here some info about the control panel @ bottom of the JavaCPC-Desktop:
(http://cpc-live.com/controlpanel.png)
You can see the "Resync" button.
Use it when music sounds crappy.
Never had to use the resync button myself...
Btw, it'd be cool to have a tape counter instead of a tape led :D Or maybe (I haven't loaded a tape image so I don't know what it does) the tape led could alternate between two colours (or one colour with two different intensities) for the high and low sounds :)
Quote from: Gryzor on 08:23, 21 April 10
Btw, it'd be cool to have a tape counter instead of a tape led :D Or maybe (I haven't loaded a tape image so I don't know what it does) the tape led could alternate between two colours (or one colour with two different intensities) for the high and low sounds :)
- Tapedrive has a counter. Just open it.
- The emulator itself has a counter. See under the CPC-screen.
About the colours for the LED.
What do you think? If I would load a tape with 1 baud speed, you probably could notice 3 or 4 different colours.
Do the floppy leds work?
I tried yesterday the tape drive, but I tried some games and didn't see the leds flashing.
Quote from: robcfg on 09:25, 21 April 10
Do the floppy leds work?
I tried yesterday the tape drive, but I tried some games and didn't see the leds flashing.
All LEDs should work.
The tape control buttons @ bottom of the desktop app are only additional. (There was empty space and I filled it with control buttons)
They disappear when screen resolution is not high enough.
The counter under the emulator window can be extended to use as control panel, too.
Just hover your mouse above the [<>] button and control panel opens up.
(http://cpc-live.com/minidesktop.png)
So the desktop should also be usable on netbooks ;)
Quickly fixed 2 bugs:
- CRTC 1 bug fixed (not so important, I only know s&koh demo, where it appeared)
- Small Z80 Assembler fix (command CP 'x' was not recognized correctly)
Download:
Whole package:
Downlod here (http://cpc-live.com/javacpc_6_8_beta.zip)
Patched .jar file only (to replace yours):
Downlod here (http://cpc-live.com/javacpc_6_8_beta_patch.rar)
Coded a new palette for GT6x green screen emulation.
The result looks much closer to the original monitor image.
Thanks to Grim, who gave me the new palette values:
0x14580F, 0x165C11, 0x1A6115, 0x1C6417,
0x1E6819, 0x226D1D, 0x277421, 0x297723,
0x2D7C27, 0x33852C, 0x36892F, 0x3A8F33,
0x3C9335, 0x409738, 0x439C3B, 0x48A440,
0x4BA742, 0x4EAC45, 0x54B44B, 0x57B94E,
0x5BBE51, 0x5DC153, 0x60C656, 0x64CB59,
0x68D15D, 0x69D25E, 0x6AD45F,
0x3F9637, 0x297723, 0x6CD761, 0x165C12,
0x58BA4E
(From INK 0 to INK 31)
(http://cpc-live.com/soleilvert1.png)
Same with scanlines:
(http://cpc-live.com/soleilvert2.png)
Used JavaCPC Paint to convert a GIF image to 3 different formats: (Overscan)
(http://cpc-live.com/conversion_colour.png)
(http://cpc-live.com/conversion_monochrome.png)
(http://cpc-live.com/conversion_green.png)
Original image:
(http://cpc-live.com/cheetah-closeup.gif)
Green looks better than ever :)
Game example: Dragon's Lair on emulated GT6x monitor:
(http://cpc-live.com/dl1.png)
(http://cpc-live.com/dl2.png)
A bit washed-out? Needs more contrast...
Remember: the GT6x monitor also had poor contrast!
But you can slide brightness (also in emulator)
Experimenting with 4096 colours:
(http://cpc-live.com/screen.png)
Now I will try to code a routine to find the 16 best matching colours out of an array of 4096 colours to create CPC+ screens, too
(Not so easy because JavaCPC cannot emulate the +!)
Photoshop result would look like:
(http://cpc-live.com/screen2.png)
Thanks to Executioner, Kevin and Bryce I got this fu**ing 'scan' command working in FDC emulation:
(http://cpc-live.com/format_scan.gif)
*happy*
Hahaha! Good for you man :D
Updated BETA:
Download (http://cpc-live.com/javacpc_6_8_beta.zip)
- New green screen emulation
- FDC command SCAN added
- some Z80 Assembler bugfixes
Sources downloadable from SVN repository:
http://javacpc.svn.sourceforge.net/viewvc/javacpc/
Okay, so what am I doing wrong?
I downloaded the source code from here: http://www.cpctech.org.uk/source/shftspr.asm (http://www.cpctech.org.uk/source/shftspr.asm)
I downloaded the JavaCPC Desktop (which I am now realising is a really cool thing to have running on my desktop).
I opened the Z80 Assembler, I pasted in the code from above and pressed Compile, it complains of >600 Errors then if I wait it does a second pass and I just get the 3 errors (as shown in the 2nd screenshot).
Do I need to setup some other configuration settings to be able to compile? (I have Exact Maths checked in the Edit menu)
I don't know, what went wrong.
I did the same, worked with exact maths and also without...
Different compiler version?
Bryce.
Quote from: Bryce on 10:53, 28 April 10
Different compiler version?
I am using exact the latest version as I posted here...
http://cpc-live.com/javacpc_6_8_beta.zip (http://cpc-live.com/javacpc_6_8_beta.zip)
But please make sure you also use it. I updated this zip yesterday!
Edit: just seen this:
QuoteI opened the Z80 Assembler, I pasted in the code from above and pressed Compile, it complains of >600 Errors then if I wait it does a second pass and I just get the 3 errors (as shown in the 2nd screenshot).
JavaCPC's assembler normally ignores all errors in first pass! So I really wonder how it could show about 600 error messages....
and I downloaded it yesterday morning.... oh damn, okay, I just re-downloaded again and it works okay now. How unlucky was I?!
cool, all works nicely now. Thanks!
p.s. it must be too early for me, it now says '6 ERRORS', I swear it said 601 or something earlier - cannot get it to repro now though (typical) - although using the latest latest zip version all works okay
Quote from: ynot.zer0 on 10:45, 28 April 10
Okay, so what am I doing wrong?
Not sure. this is what I did.
I clicked on the link to show the source.
Select All, and then copy.
Opened javacpc.exe
Went to assembler window
create new file
paste
compile
call &1000 in window :)
EDIT: Cool it works now.
The bug was:
Old assembler had a bug in parsing bytes.
In this case the value is negative (-xx)
JavaCPC found 0 as result.
This is fixed in the latest version.
(Internally it was calculated well, but compiler did not remove the minus-sign so it returned 0 as byte)
Another bug was in parsing LD A,(value).
My code "searched" for 'IX' and replaced it by 0.
This was bad because the source contained 'SPR_PIXEL_OFFS'.
So the internal result was 'SPR_P0EL_OFFS' which would be a non-defined label.
I fixed that, too.
Comparing emulated green screen with original GT-65 image:
(The image is a bit too bright here, should be a bit darker)
Working on new screen capturing method.
You are able to store with 50fp/s single frames now!
Then you can convert them to an animated GIF or keep them as single files.
In my test I kept the single files. (18.000 jpg images for 6 minutes video)
Then I used some software to render a video of them. Also mixed audiostream under the video.
Result:
[youtube=hXoIq4mWGhg]hXoIq4mWGhg[/youtube]
Better quality video I can show on request. (PM me)
I saw your vid last night, thanks for that :) I wish it was in higher resolution, it just doesn't do it justice like that... but the recording method is great news :)
In the composition above the screen is too bright indeed, but looking at them side-by-side the emulated one doesn't look to realistic to me... am I the only one?
At 4:12 in your video, an object spins back and forth giving a form of depth perception... does anyone know if this could be done for an end of level boss in a shoot-em-up for the CPC? Hopefully you guys understand what I'm on about, but basically not only would the end of level enemy move up and down to avoid fire, but in and out as well?
Quote from: ukmarkh on 11:02, 04 May 10
At 4:12 in your video, an object spins back and forth giving a form of depth perception... does anyone know if this could be done for an end of level boss in a shoot-em-up for the CPC? Hopefully you guys understand what I'm on about, but basically not only would the end of level enemy move up and down to avoid fire, but in and out as well?
This is a crtc hardware trick. Where the same line of the screen is effectively repeated, and the start address is changed to give the line width.
so this effect could not be used directly in a shoot em up on the cpc.
You would have to simulate it using software.
Quote from: arnoldemu on 12:55, 04 May 10
This is a crtc hardware trick. Where the same line of the screen is effectively repeated and the start address is changed to point to various line widths to give the illusion of 3d. It is done very nicely.
so this effect could not be used directly in a shoot em up on the cpc.
You would have to simulate it using software.
EDIT: I should have used modify there ;)
I really wanna see demo's that show what can be done in a game on the CPC, not what can't be done. Still very interesting stuff.
BETA-update:
http://cpc-live.com/javacpc_6_8_beta.zip (http://cpc-live.com/javacpc_6_8_beta.zip)
New: The emulator is doing some manual patches to CRTC when some demos are found in ram.
This you can disable now.
Also some CRTC improvements (The beta before had many CRTC bugs...)
I still know about the problems with the menu and rest of the GUI. I hope I can fix them all!
(Perhaps a JAVA-coder want to take a look @? ??? )
For the coders:
I updated SVN code on sourceforge:
http://sourceforge.net/projects/javacpc/develop
I updated the beta.
Feel free to download the latest.
It also includes SamDisk GUI...
Important info:
In this beta I added a "soft reset" function - like on a real CPC "ctrl,shift,esc" keys!
Soft reset is ctrl + F9
the normal hard reset is now ctrl + shift + F9!
So don't wonder, when some games/demos/apps dont reset or, for example, "Super Cauldron" returns to menu when pressed reset while playing!
SAMdisk in the emulator? Brilliant... this is an all-around tool now:)
Working on DSKTools...
Sadly for Windows-users only!
A simple java app in cooperation with cpcxfs!
This will help you to transfer files to DSK / files from dSK to your harddrive:
(http://cpc-live.com/disktools.gif)
Hi Markus, one bug I've told you isn't fixed yet:
After opening a DSK in JavaCPC I've got to choose drive a triple!
Quote from: CPCIak on 18:24, 18 May 10
Hi Markus, one bug I've told you isn't fixed yet:
After opening a DSK in JavaCPC I've got to choose drive a triple!
Well triple?
I only saw double yet.
I am working on it... Need to check why a function is called twice or triple...
Yes, three times :(
Quote from: CPCIak on 18:42, 18 May 10
Yes, three times :(
Explain please, when this happens.
Which drives are already feeded with dsk, also a tape in drive etc....
Does this only appear when you open a dsk with JavaCPC.exe?
Does this also appear when you drag & drop a dsk into emulator window?
Please try to explain it as detailled as possible.
JavaCPC status: no tape nor disc loaded
drag&drop -> once
file->open with javacpc-> triple
Quote from: CPCIak on 18:49, 18 May 10
JavaCPC status: no tape nor disc loaded
drag&drop -> once
file->open with javacpc-> triple
I had double when opened a dsk with it... Ok, will check that...
Found the problem:
When no disk stored in drive, I was asked once.
When disk in A and/or B I was asked twice.
When also a tape in drive i was asked triple!
I think I also know where the problem can be found in code.
It's a old code I used in the beginning.
Crappy and bad.
Will code a new load-dsk routine.
Is a lot of work but I think the only way to fix it...
I hopefully fixed this bug by rewiting the complete method to import files:
http://cpc-live.com/javacpc_6_8_beta.zip
Please tell me if it works properly now.
You managed it Markus! Thanx for correcting the bug.
Hopefully fixed some more bugs.
http://cpc-live.com/javacpc_desktop_beta.zip (http://cpc-live.com/javacpc_desktop_beta.zip)
New:
- Manage DSK (replaced format function, you can use it as DSK manager on the fly. Changes on your DSK are immideately updated in emulator, too)
- Fullscreen mode for Desktop (Use Alt & Enter to toggle)
- Self createable style added
- Removed ALL Synthetica styles because no donations and I want it as freeware!
- Default style looks better now
- Fixed the virtual keyboard to work with the styles
- Much more....
Please report bugs, feedback, etc...
(The menu still is not cleaned up!)
I've found some bugs
extras -> key2joy -> nothing happens
settings -> advanced options -> gui is empty
Quote from: CPCIak on 16:51, 24 May 10
I've found some bugs
extras -> key2joy -> nothing happens
settings -> advanced options -> gui is empty
As I said: Menu is not cleared up yet...
Humm Joy2Key should work.
Make sure you have a joystick connected.
For me it tells I should connect a Joystick :D
Working on a help documentation:
http://cpc-live.com/help/ (http://cpc-live.com/help/)
Working on a new fileformat to store keyboard input...
With the new method, also a snapshot is taken, and the disks for drives 0 and 1 are stored, too.
You can watch a preview for playback here:
http://cpc-live.com/keyrecording.html
I am storing all keyboard input and when loading such a SNK snapshot, it's played back...
If someone is interested in the fileformat (header, how I store keystrokes etc) contact me ;)
Quote from: Devilmarkus on 12:36, 27 May 10
Working on a new fileformat to store keyboard input...
We already have one (or is that two?)
Well, I know CPCe and WinAPE can record and playback keystrokes, too.
I am @ beginning on implementing it.
The main problem is accurate timings.
http://cpc-live.com/snptest.html
The playback works almost nice yet.
Recording is not implemented yet.
About timings and ramdomness in games I did not heck out, how to reset all timers etc. to playback those things accurate, too... :(
Grrrrrr this snp format makes me mad!
Recording works about 95% accurate...
Playback is about 89% accurate!
(http://cpc-live.com/data.gif)
Grrrrrrrrrrr!
Quote from: Devilmarkus on 18:55, 28 May 10
Grrrrrr this snp format makes me mad!
Recording works about 95% accurate...
Playback is about 89% accurate!
That's why I created the much more complex SNR format. Starts with a V3 snapshot and has various cycle level checks.
Quote from: Executioner on 01:27, 29 May 10
That's why I created the much more complex SNR format. Starts with a V3 snapshot and has various cycle level checks.
Any docs about this format?
Would be cool to know how it works... ;)
Quote from: Devilmarkus on 16:34, 30 May 10
Any docs about this format?
Would be cool to know how it works... ;)
Err... Not really complete. There is a document on the initial SNA Version 3 format here (http://www.cpctech.org.uk/docs/snapshot.html)
And then the format is very similar to the SNP format but with some extras. I'll have to hunt for any documentation, or failing that analyse the source code to create it.
Here's the headers from WinAPE which define the SNA V3 format:
{ TODO: Save Disc Image names, active ROMs, CPC Plus Raster Int flag }
{ TODO: PS2 Mouse X/Y and Button states in SNR }
const
HeaderSNA: String = 'MV - SNA';
HeaderSNP: String = 'MV - SNP';
HeaderSNR: String = 'RW - SNR';
CRTC_FLAG_VSYNC_ACTIVE = $01;
CRTC_FLAG_HSYNC_ACTIVE = $02;
CRTC_FLAG_HDISP_INACTIVE = $04;
CRTC_FLAG_VDISP_INACTIVE = $08;
CRTC_FLAG_HTOT_REACHED = $10;
CRTC_FLAG_VTOT_REACHED = $20;
CRTC_FLAG_MAXIMUM_RASTER_COUNT_REACHED = $40;
CRTC_FLAG_REG8_BLANKING = $80;
CRTC_FLAG_VTA_ACTIVE = $100;
CRTC_FLAG_WINAPE_ICSR = $8000;
SFormatInvalid: String = 'Snapshot format invalid';
type
TSnapshotType = (SNA, SNR, SNP);
TBankFlag = (c0, c4c7, cccf, d4d7, dcdf, e4e7, ecef, f4f7, fcff);
TBankFlags = set of TBankFlag;
TChunkFlag = ( cfROMs, cfDSCA, cfDSCB, cfBreaks, cfDataAreas );
TChunkFlags = set of TChunkFlag;
TSnapshotHeader = packed record
SnapshotID: packed array[0..7] of char;
pad0 : packed array[0..7] of char;
Version: Byte;
{Registers}
REG_AF,REG_BC,REG_DE,REG_HL: word;
REG_R,REG_I,REG_IFF0,REG_IFF1: byte;
REG_IX,REG_IY,REG_SP,REG_PC: word;
REG_IM: byte;
REG_AF1,REG_BC1,REG_DE1,REG_HL1: word;
GA_Pen: byte;
GA_Inks: packed array[0..16] of byte;
GA_ROM, GA_RAM: byte;
CRTC_Reg: byte;
CRTC_Regs: packed array [0..17] of byte;
UpperRom: byte;
PIO_A,PIO_B,PIO_C,PIO_Control: byte;
PSG_Reg: byte;
PSG_Regs: packed array[0..15] of byte;
MemSize: word;
CPCType: byte;
InterruptNo: byte; // CPCEMU only
MultiMode: packed array[0..5] of byte; // CPCEMU only
// Version 3 only
Empty1: packed array[$75..$9a] of byte;
FDD_Fast: Boolean;
FDD_Motor: Boolean;
FDD_Cyl: packed array[0..3] of byte;
Printer_Data: byte;
Monitor_Line: SmallInt;
CRTC_Type: byte;
Empty3: packed array [$a5..$a8] of byte;
CRTC_HCC: byte;
Empty4: byte;
CRTC_VCC: byte;
CRTC_VLC: byte;
CRTC_VTAC: byte;
CRTC_HSYNC: byte;
CRTC_VSYNC: byte;
CRTC_Flags: word;
GA_DelayCount: byte;
GA_ScanCount: byte;
Z80_IntStat: byte;
Z80_ICSR: byte;
DisablePlus: Boolean;
PlusPPI: Boolean;
Empty5: packed array [$b8..$df] of byte;
EmulatorID: packed array [$e0..$ff] of char;
end;
TDMARegs = packed record
Loop: Word;
Addr: Word;
Pause: Word;
PreScale: byte;
end;
TPlusChunk = packed record
SpriteData: packed array [0..$7ff] of byte;
SpriteAtts: packed array [0..$7f] of byte;
Palette: packed array [0..$3f] of byte;
Regs: packed array [0..5] of byte;
SecROM: Word;
Analogue: packed array [$08..$0f] of byte;
DMA: packed array [0..$f] of byte;
DMARegs: packed array [0..2] of TDMARegs;
GA_Last: byte;
GA_UnLocked: byte;
GA_Sequence: byte;
end;
The SNR file can contain RIFF sections defining the Disk images and ROM images active at the time of recording.
The SNR file ends with an SNR RIFF chunk (ID: 'SNR '). This contains all the keystrokes and timing information as well as Symbiface Mouse and RTC information. The following constants are used to define the ID's of these:
{ Mouse Bits for SNR recording }
SNR_MOUSE = $80;
SNR_MB = $01;
SNR_MX = $60;
SNR_MX_B = $20;
SNR_MX_W = $40;
SNR_MY = $18;
SNR_MY_B = $08;
SNR_MY_W = $10;
SNR_MW = $06;
SNR_MW_B = $02;
SNR_MW_W = $04;
{ Real-Time Clock IDs }
SNR_RTC = $E0;
SNR_MIN = $E1;
SNR_HR = $E2;
SNR_DAY = $E3;
SNR_MTH = $E4;
SNR_YR = $E5;
SNR_MIL = $E6;
The actual SNR format is quite complicated due to limitations of the original SNP format and the work-arounds to get it accurate. This is by no means complete, but I think it's something along the lines of:
Count (Byte) - Number of frames until next change or 00. If 00, then a further word is used to indicate the number of frames. For example:
05 = 5 frames.
00 01 02 = 513 frames.
After that number of frames has passed, the next byte is read (the block length specifier (BLS)). Bit 7 (and #80) determines if there is a synchronisation block. If this is set, the following data (bytes) are contained in the synch block:
+0: Least significant byte of current Z80 PC (Program Counter)
+1: Vertical Line Count of CRTC.
+2: Horizontal Character Count of CRTC.
+3: Least significant byte of the TotalCycles counter (always reset to zero at the start of the SNR file snapshot).
The following 7 bits of the BLS define the number of bytes that follow unless they are all 1 (ie. BLS and #7f == #7f). This has a special meaning, which is to repeat the same changes as the last frame.
Each byte following for (BLS and #7f bytes) represents either a key number or a Mouse or RTC update.
If the byte (call it CHG) is E0..FF it is treated as an RTC update. The number of following bytes is (CHG and #1F) + 1, so, if CHG is SNR_RTC (#E0) only the RTC second is updated (1 following byte), if CHG is SNR_DAY (#E4), the RTC second, minute, hour, day and day of week is updated. The Day of Week is the fourth byte and #07, the Day (1..31) is the same byte SHL 3 (div 8) .
If the CHG is #80 .. #df it is treated as a Mouse Update.
- If (CHG and SNR_MB) <> 0 the Mouse Button byte is read.
- If (CHG and SNR_MX) <> 0 the Mouse X position is updated (if (CHG and SNR_MX_W) then it's a word else a byte).
- If (CHG and SNR_MY) <> 0 the Mouse Y position is updated (if (CHG and SNR_MY_W) then it's a word else a byte).
- If (CHG and SNR_MW) <> 0 the Mouse Wheel position is updated. (if (CHG and SNR_MW_W) then it's a word else a byte).
...
And that's all there is to it. Really simple eh !
Cheers,
Richard
P.S. I would make a Wiki page about the SNR format from this post but I'm useless at Wiki code and I don't have much time. Anyone else feel free to do so.
If you're really astute, you may have noticed that the Mouse and RTC messages overlap. ie. If the SNR_MOUSE (#80), SNR_MX_W (#40) and SNR_MX_B (#20) were all set, then the value would be #E0..#FF. Fortunately, the Mouse X can only be either a Byte (SNR_MX_B) or a Word (SNR_MX_W) so this will never happen, but the SNR processing code MUST ALWAYS check for SNR_RTC first, then not process it as a Mouse change if this is the case.
Working on lightgun emulation:
http://cpc-live.com/lightgun
If someone could help me to improve that, please contact me.
It's done checking x,y RGB value, then comparing them to some further frames painted and if they are different and not black:
Fire!
But need more accuracy here...
But... how would this work?
The technic is quite simple:
When you trigger fire on lightgun:
Joy-Fire is send to CPC.
The screen turns black for about 1 frame.
Next frame a bright square is painted where a target has been.
When lightgun sensor detects this bright colour, it sends Joy-Fire and Joy-Down signal to CPC.
When your lightgun was over a 2nd target:
Bright square is removed in next frame and a 2nd is painted where the 2nd target has been.
When lightgun detects this frame now it sends Joy-Fire and Joy-Down signal to CPC.
Really simple technic in theory.
But not simple to handle (actually)
No - you're explaining how the light gun works, but I knew this. What I'm asking is, how do you use it in an emulator? What's the use?
To play games which were designed for lightgun? ;)
Only for Gunstick too.
Quote from: Devilmarkus on 08:32, 22 June 10
To play games which were designed for lightgun? ;)
Yes, but how?? You'd need a light gun. A CPC light gun or a PC one? And then, you'd need a CRT screen. So, I'm still a bit skeptical about the practical use of it!
Quote from: Gryzor on 07:59, 23 June 10
Yes, but how?? You'd need a light gun. A CPC light gun or a PC one? And then, you'd need a CRT screen. So, I'm still a bit skeptical about the practical use of it!
Well in JavaCPC the lightgun is replaced by a crossfade mouse cursor. You can use your mouse to aim and shoot. That's it.
In theoretical the lightgun should also work on a CRT screen!
It uses a light sensor to detect targets.
Ah! So you use the mouse. Ok then, now it's clear, though it'll make light gun games extremely easy I guess??
Well, yes.
But it's easier to install Windows XP on a CPC 464...
This has all drivers (incl. lightgun plug & pray)
(http://retropower.eu/winxp_on_tape.png)
(http://cpc-live.com/winxp.png)
The drivers are on Cassettes 241 to 318 as far as I recall :D
Bryce.
Quote from: Bryce on 15:17, 23 June 10
The drivers are on Cassettes 241 to 318 as far as I recall :D
Bryce.
Please upload cassette 400 I am missing that one ;)
Quote from: arnoldemu on 15:47, 23 June 10
Please upload cassette 400 I am missing that one ;)
Just play cassette 200 with Double-Speed backwards.
The resulting data is the same as on cassette 400.
Quote from: Leonie on 17:54, 23 June 10
Just play cassette 200 with Double-Speed backwards.
The resulting data is the same as on cassette 400.
Good idea!
In co-operation with Loic Daneels I added command-line arguments.
This will be the syntax:
Possible arguments:
-amsdos <yes/no>
-autotype <"text">
-boot <drive>
-cpctype <cpctype>
-crtc <1 or 0>
-desktop <yes/no>
-drivea <"file">
-driveb <"file">
-tape <"file">
Example for Windows:
JavaCPC.exe -desktop yes -cpctype SYMBOS -drivea "SymbOS.DSK" -driveb "Sym-Apps.DSK" -autotype "|SYM" -amsdos yes
Example for other OS:
java -jar JavaCPC.jar -desktop no -cpctype SYMBOS -drivea "G:\CPC\SymbOS.DSK" -driveb "G:\CPC\Sym-Apps.DSK" -autotype "|SYM" -amsdos yes
Valid cpctypes:
CPC464 CPC464
CPC664 CPC664
CPC6128 CPC6128
SYMBOS CPC6128 with SymbOS
FUTUREOS CPC6128 with Future OS
KCCOMPACT KC COMPACT
CPC464PARA CPC464 with PARADOS rom
PARADOS CPC6128 with PARADOS rom
CPC6128fr CPC6128 with french roms
CPC6128es CPC6128 with spanish roms
COMCPC ;-)
Example for "-boot" argument:
-boot df0
-boot tape
If someone is interested in testing this, please contact me for new beta version...
Latest beta is here:
http://retropower.eu/cpc/download.php?type=-emu&fichier=2010_06_28_JavaCPC_Desktop_BETA.zip
Much fun with it!
(Tested under Windows and Mac OS!)
Windows 7 user must run it with administrator rights! 32bit Java is appreciated.
It managed to crash my work PC this morning :D Tho it's probably not its fault but the PC's or Java's...
So you can be happy that it causes serious crashes to your PC ;)
Check here for updates:
http://retropower.eu/cpc/index.php?dir=-emu
You will see my updated zips on top.
Check the creation date and so you can always try the latest beta.
Working on an "Effectmixer" for JavaCPC-Paint.
It will help you to get the best possible results from converting a photo or an image to CPC.
Example:
Not optimized:
(http://retropower.eu/effect1.png)
The Effectmixer in action:
(http://retropower.eu/effect2.png)
Optimized result:
(http://retropower.eu/effect3.png)
Demonstration:
[youtube=9I1fdpej2SM]demo[/youtube]
Best: Combine the filters + use the MovieMaker:
[youtube=Vv1DG1TN1eg]video[/youtube]
So, it dithers better, right?
Quote from: Devilmarkus on 17:30, 05 July 10(http://retropower.eu/effect3.png)
This picture looks soooo gorgeous.
Nice drawn, nice colours.
I like the facial expression of the girl in this processed version of the picture more compared to the original picture.
Quote from: Devilmarkus on 10:31, 07 July 10
[youtube=Vv1DG1TN1eg]video[/youtube]
Is that really possible on a CPC (with enough memory)?
Mode 0? It looks too fine-pored...
To good to be true somehow...a cheating scandal?
The movie is almost a fake. (No possibility to store/read and playback those large files on a real CPC yet, playback is emulator-internal.)
But the converter is real!
A small slideshow I made:
WebCPC-Link (http://cpc-live.com/emulator.php?system=PARADOS&disc=over1.zip&boot=true)
Today I coded a new GameBrowser for JavaCPC.
[youtube=OyCb6vmHa-g]gamebrowser[/youtube]
You will be able to play thousand of games via this application without downloading them. ;)
Without downloading them? So you're putting all the images (TOSEC or what?) in the emulator distro?
Quote from: Gryzor on 07:48, 12 July 10
Without downloading them? So you're putting all the images (TOSEC or what?) in the emulator distro?
It's an emulator internal download.
You don't see that.
Higher quality video:
http://cpc-live.com/gamebrowser (http://cpc-live.com/gamebrowser)
You can try the new gamebrowser in my latest beta:
Download (http://cpc-live.com/data/download.php?type=-beta&fichier=2010_07_11_JavaCPC_Desktop_BETA.zip)
Ah - so it *does* download :D
What about an offline version then?
Quote from: Gryzor on 08:58, 12 July 10
What about an offline version then?
Offline version: Open your wanted dsk and play it.
Hahahaha :D Ok then...
Quote from: Gryzor on 08:58, 12 July 10
Ah - so it *does* download :D
it's a downloader for lazy people :P
Quote from: Gryzor on 08:58, 12 July 10
What about an offline version then?
CPCGamesCD? :P
CPCGamesCD - exactly what I was driving at. Well, if JavaCPC could be completely integrated in CPCLoader it'd be great...
Quote from: Gryzor on 08:24, 13 July 10
CPCGamesCD - exactly what I was driving at. Well, if JavaCPC could be completely integrated in CPCLoader it'd be great...
Markus wants everything in his emu ;)
Emu dominance ;)
Quote from: arnoldemu on 09:21, 13 July 10
Markus wants everything in his emu ;)
Emu dominance ;)
Well indeed, I want a lot of funstuff ;)
But I don't want dominance.
There are other emulators (Except or 'Arnold') which are much better!
WinCPC FTW!
...even though it messes up the CAT in Color Lines...
Quote from: Gryzor on 11:31, 13 July 10
...even though it messes up the CAT in Color Lines...
This cannot be because bad emulation.
I think you use a bohemian ROM setup.
bohemian? :D But it may have been because I used his custom font rom...
Quote from: Devilmarkus on 10:58, 13 July 10
Well indeed, I want a lot of funstuff ;)
But I don't want dominance.
There are other emulators (Except or 'Arnold') which are much better!
But your emulator is perhaps the most portable. What's the point of implementing cool features in a DOS- or Windows-only emulator? It's too limited IMHO. Computers are now fast enough that a higher-level language like Java makes sense for this kind of task.
And so far everything seems to work great in JavaCPC. In the DOS days I've had much bigger problems getting some games to run. Maybe some very demanding demos can show differences between emulators, but for the average game I'm very happy with JavaCPC so far. (Of course if JavaCPC Desktop would also work under Java v1.5, I'd be even happier.)
Saying that JavaCPC is much better than Arnold may sound like faint praise from me, but I'm mainly on a Mac right now, so I don't have much to compare it to. Still, I think JavaCPC is pretty fantastic!
Martin
Quote from: Gryzor on 08:24, 13 July 10
CPCGamesCD - exactly what I was driving at. Well, if JavaCPC could be completely integrated in CPCLoader it'd be great...
Well, you can change the default emu in the Explorer to JavaCPC (or another emu you like) ;)
Quote from: MiguelSky on 21:51, 13 July 10
Well, you can change the default emu in the Explorer to JavaCPC (or another emu you like) ;)
Important: CPCGameCD only works with JavaCPC up to v.6.7.!
For the upcoming Desktop-version the CPCLoader needs to be updated.
Next JavaCPC will open files and launch them via command-arguments.
This works already nice in the CPC GameBase by L. Daneels.
Quote from: Morn on 19:30, 13 July 10
Computers are now fast enough that a higher-level language like Java makes sense for this kind of task.
Try saying that to my netbook... Even WinCPC runs with frameskip on.
Which reminded me - which is considered the fastest emulator out there?
Quote from: Gryzor on 07:46, 14 July 10
Try saying that to my netbook... Even WinCPC runs with frameskip on.
More or less by definition, a netbook is a computer that is too slow to do anything beyond instant messaging on it. Before the name netbook was coined, such computers were known as paperweights/door stoppers, but apparently they've found a way to make people actually
pay for them. :)
Martin
Quote from: Gryzor on 07:46, 14 July 10
Which reminded me - which is considered the fastest emulator out there?
WinAPE, I think. Shouldn't be too much strain on a netbook, either.
Quote from: mahlemiut on 13:46, 14 July 10
WinAPE, I think. Shouldn't be too much strain on a netbook, either.
Thanks, will try it tonight... I haven't tried it on the netbook.
Quote from: Morn on 12:36, 14 July 10
More or less by definition, a netbook is a computer that is too slow to do anything beyond instant messaging on it. Before the name netbook was coined, such computers were known as paperweights/door stoppers, but apparently they've found a way to make people actually pay for them. :)
You're right about the first half - indeed, it's only supposed to do a little browsing and some lightweight work, not games. But this doesn't mean we shouldn't *try* to.
Oh, btw, I find a netbook the perfect solution for my needs; meaning cheap, light, small factor, good battery, it suits me much better than my laptop when I'm sitting out on my balcony sipping my coffee... so it's not all too bad!
Today I compared Chany's demo "Dreamend Megademo".
Left side are JavaCPC screenshots, right side are WinApe screenshots)
First thing:
Demo did not start on WinApe (CPC 6128 config, no plus/ppi emulation, normal floppy disk emulation, CRTC 1)
This test should'nt be a contest "which emulator is better?" but demonstrate how different CRTC emulations can be.
Especially the 8th image has a logo missing in WinApe. (Because CRTC register 6, which can update vDisplay in almost any case)
(http://cpc-live.com/dreamend01.png) | (http://cpc-live.com/de01.png) |
(http://cpc-live.com/dreamend02.png) | (http://cpc-live.com/de02.png) |
(http://cpc-live.com/dreamend03.png) | (http://cpc-live.com/de03.png) |
(http://cpc-live.com/dreamend04.png) | (http://cpc-live.com/de04.png) |
(http://cpc-live.com/dreamend05.png) | (http://cpc-live.com/de05.png) |
(http://cpc-live.com/dreamend06.png) | (http://cpc-live.com/de06.png) |
(http://cpc-live.com/dreamend07.png) | (http://cpc-live.com/de07.png) |
(http://cpc-live.com/dreamend08.png) | (http://cpc-live.com/de08.png) |
(http://cpc-live.com/dreamend09.png) | (http://cpc-live.com/de09.png) |
(http://cpc-live.com/dreamend10.png) | (http://cpc-live.com/de10.png) |
(http://cpc-live.com/dreamend11.png) | (http://cpc-live.com/de11.png) |
(http://cpc-live.com/dreamend12.png) | (http://cpc-live.com/de12.png) |
Quote from: Gryzor on 14:47, 14 July 10
Oh, btw, I find a netbook the perfect solution for my needs; meaning cheap, light, small factor, good battery, it suits me much better than my laptop when I'm sitting out on my balcony sipping my coffee... so it's not all too bad!
I think netbooks made more sense when they were really inexpensive in the beginning. But somehow prices have gone up so much that they are not that different anymore from regular laptops in terms of price and features.
What I liked about early netbooks were among others their solid-state hard drives, but it looks like regular HDs are the norm for netbooks now. So tablet PCs will probably displace netbooks eventually, because they fill the same niche as (early) netbooks did and are even smaller.
Martin
Not quite, my netbook only cost 300 euros, with a 11.1" wide 1360px screen. Quite cheap AND small AND light.
As for early netbooks having SSDs... are you sure? Because they're still quite expensive, so I can't see how they could do it in *early* netbooks..
from http://en.wikipedia.org/wiki/Asus_Eee_PC#Storage:
"The early model Eee PCs use a solid-state drive for storage (instead of a hard drive), which consumes less power when in use, allows the device to boot faster, generates no noise, and is less susceptible to mechanical shock damage than hard drives."
Of course storage capacity was comparatively limited, so that's probably one reason why they moved to real hard drives.
Maybe the SSD cost was offset by these early netbooks using Linux instead of Windows. As Windows later became the norm, they had to use cheaper electronic components.
Martin
I don't think so... even now the cost difference between a mechanical HDD and an SSD is not offset by the OS cost, much less in the early days. What I'm saying is that I don't think there was a way to have cheap AND SSD-bearing netbooks in the early days :D
I remember the first Eee PCs, their drive was so small it barely sufficed for day-to-day things...
Now back to topic:
I made a little "Flipscreen Slideshow" (For the sceptics and All-Converted-Images-Are-Crap-People: This is a slideshow of converted JPG! Don't watch it! I know, SuperChristmas and other people can make better ones.)
This is a test slideshow for the De-Interlace filter in JavaCPC (And also in WebCPC)
You can watch it online here (http://cpc-live.com/emulator.php?system=PARADOS&disc=flipshow.zip&boot=true&title=Flipscreen%20Slideshow&filter=true)
(WebCPC link! Contains brutal Java! Don't click it, if you don't like coffee!)
Hey, I'm not sure if the filter is supposed to be on or off? Also, what's with the smooth fade action? :)
Quote from: Gryzor on 09:20, 20 July 10
Hey, I'm not sure if the filter is supposed to be on or off? Also, what's with the smooth fade action? :)
The button is still "red" but the filter is on. (I did implement the de-interlace filter quickly into WebCPC)
smooth fade action?
Why?
It's a slideshow to demonstrate the de-interlace filter and not to demonstrate smart screen fading.
But you can adjust your monitor brightness slowly to black, then press space to load the next screen,
then adjust monitor slowly back to normal brightness :P
Quote from: Devilmarkus on 16:50, 19 July 10
You can watch it online here (http://cpc-live.com/emulator.php?system=PARADOS&disc=flipshow.zip&boot=true&title=Flipscreen%20Slideshow&filter=true)
(WebCPC link! Contains brutal Java! Don't click it, if you don't like coffee!)
Very nice! WebCPC now seems to work as it should on the Mac. What's different from the version of a few weeks ago? Have you changed the code to support Java v1.5?
Martin
Quote from: Morn on 10:42, 20 July 10
Very nice! WebCPC now seems to work as it should on the Mac. What's different from the version of a few weeks ago? Have you changed the code to support Java v1.5?
Martin
Well, that's WebCPC.
You tried JavaCPC. It's much more complex.
No, what I see, before the slideshow starts, is that when I type something the letters (and cursor) smoothly fade in and out of the screen instead of appearing instantaneously. Maybe it's my PC?
But it's a nice effect, I have to say!
Quote from: Gryzor on 08:59, 21 July 10
No, what I see, before the slideshow starts, is that when I type something the letters (and cursor) smoothly fade in and out of the screen instead of appearing instantaneously. Maybe it's my PC?
But it's a nice effect, I have to say!
THIS is the de-interlace filter.
How it works?
- CPC sends 50 frames per second
- I catch each even image and paint it with 50% transparency over each odd image
- You see the result.
This gives out "shadowed half-images" as you perhaps know when you pause a movie. (You see 2 images in 1)
The positive aspect is that flipscreens (like Orion Prime title screen) do not flicker.
Ahhh this also explains why I saw a different pic every time I hit Pause!
A really nice effect for text-entry mode :)
New BETA is available!
It has some new features.
Also new is:
You can register JavaCPC (for absolutely free of course) now.
This enables some additional features:
- WebBrowser (Full featured webbrowser with "Favourites" functionality)
- PacMan desktop game
- Tiled Mapeditor
- GameBrowser
It also makes it easier to report a bug.
+ it gives you a desktop clock ;)
I know most applications are just for fun, and many of you think: "Why should I register?" but the answer is simple:
Because I want that ;)
- If a user want to use the additional stuff, it's not too much to register the copy of JavaCPC.
JavaCPC's emulation, Assembler, and all emulator related things work also without registering.
You can download it here:
http://cpc-live.com/data/list.php?dir=-beta
Oh yeah, big brother is watching you. I bet it phones home every time you use it too and let's Steve Markus know what games we are playing. It's a slippery slope you know, next you'll be releasing it under a fruit-base company name or whatever.....
Bryce.... As paranoid as ever.
Almost ;)
Really, I don't collect any sensible data.
Only the bug-report sends me some information.
(Same mail is sent to bug-reporter!)
Example for a bug-report mail:
JavaCPC bug reported by : Markus Hohmann
email address: webmaster@cpc-live.com
[JavaCPC version D.0.9e]
[Tue Aug 10 13:09:59 CEST 2010]
Usermessage:
------------------------------------
blablablabla
------------------------------------
JavaCPC [v.D.0.9e]
[Tue Aug 10 13:09:27 CEST 2010]
executable is true
Avail mem is 240299760
init()
Setting tapelabel:
Frequency=1000000, adder=65536
Memory choosen: TYPE_512K
Path is:*G:\java\JavaCPC\*
Display is 768,544 pixels
resync: start=200
resync: start=2605
G:\java\JavaCPC\system/cpc/rom/OS6128.ROM 16384
Without header
G:\java\JavaCPC\system/cpc/rom/BASIC1-1.ROM 16384
Without header
Your selected Basic ROM is for CPC6128
G:\java\JavaCPC\system/cpc/rom/AMSDOS.ROM 16384
Without header
Computer: CUSTOM - CUSTOM Stopping Zilog Z80
stopping...
resync: start=4810
resync: start=7015
Floppy-motor off
Device connected: Basic 6845
Device connected: Amstrad SSA-1 Speech Synthesizer
Device connected: DK'Tronics Speech Synthesizer
Device connected: Cheetah AmDrum
Device connected: Digiblaster
Device connected: CPC-Printer
Device connected: Amstrad Gate Array
Device connected: 8255 PPI: Port A = write, Port B = read, Port C (Upper) = write, Port C (Lower) = write
Device connected: NEC uPD765AC-2 Floppy Controller
Device connected: AY-3-8910/2/3 Programmable Sound Generator
DEBUG=false, PAUSE=false, LARGE=true
System Set: Computer: CUSTOM - CUSTOM
Audio Enabled
Floppysound Enabled
Notebook Disabled
Autosave Disabled
Volume is set to:1.0
resync: start=9820
resync: start=12025
Floppy-motor off
Display is 768,544 pixels
Display is 768,544 pixels
Window is 779 Pixels with & 603 Pixels height!
Alarm is false
resync: start=14630
resync: start=16835
Floppy-motor off
Floppy-motor off
resync: start=92240
resync: start=126845
Display Focused
Floppy head choosen: Drive 0 - Head 0
Floppy head choosen: Drive 1 - Head 0
Floppy head choosen: Drive 2 - Head 0
Floppy head choosen: Drive 3 - Head 0
JavaCPC is registered to Markus Hohmann
with email account webmaster@cpc-live.com
Reg code is xxxx-xxxx-xxxx-xxxx
Display Lost Focus
Of course, when Java logs an error, it's in this report, too.
AFAIK the webbrowser does not work with Windows 7.
Please report me, which error message appears and also if there's a way to fix that.
Quote from: Bryce on 14:05, 10 August 10
Oh yeah, big brother is watching you. I bet it phones home every time you use it too and let's Steve Markus know what games we are playing. It's a slippery slope you know, next you'll be releasing it under a fruit-base company name or whatever.....
Bryce.... As paranoid as ever.
Hmm.. "Strawberry" is a good name for a company... or were you thinking of "lemon"?
EDIT: I get a crash on Windows XP, Markus knows about it ;)
Yeah I know about this crash.
I hopefully fixed that problem.
http://cpc-live.com/data/list.php?dir=-beta
Quote from: Devilmarkus on 10:57, 11 August 10
Yeah I know about this crash.
I hopefully fixed that problem.
http://cpc-live.com/data/list.php?dir=-beta (http://cpc-live.com/data/list.php?dir=-beta)
For me I installed a new java. Mine was too old :laugh:
Quote from: arnoldemu on 13:33, 11 August 10
For me I installed a new java. Mine was too old :laugh:
Yeah, I updated the emulator.
It now tells you if your Java is too old (I hope)
Please use Sun Microsystems Java!
Just to let you know:
I begun coding a DMP 2000 emulator, too.
This printer should be able later also to "print out" graphics.
It uses "PNG" images as 'paper' and gives a dotted result.
Example:
http://cpc-live.com/dmp2000/ (http://cpc-live.com/dmp2000/)
For this I need your help:
- how many chars did a DMP print in a row? (draft, simple output)
- how many lines per page did it print out?
Original dumped page:
Wow, I love the sound you added to recreate the retro-feel :)
It almost brought nostalgic 8-bit tears to my eyes.
Bryce.
Quote from: Devilmarkus on 16:00, 11 August 10
Please use Sun Microsystems Java!
You mean Oracle Java, yes? ;)
I'm biased and prefer IBM Java 8)
Since Oracle bought Sun: Yes, use Oracle Java.
Markus wants to know what happens when the following is done:
In the DMP2000 manual it says normal width is 80 chars (width with normal sized characters).
Basic has a default width of 132 chars (defined by BASIC's WIDTH command).
So what is the result when a long line >80 is printed to the printer?
a) Does the printer automatically advance to the next line when 80 chars are printed and then print the rest on the next line?
b) does it print 80 chars and stop and ignores the remaining chars, or
c) does it print all the chars and the head goes off the right of the paper and you don't see them?
A picture or best a scan of this result would be great.
From my memories of my LQ printer, it went to the next line and continued the rest of the line there... so "A".
Bryce.
My printer does the same... (But I still need to know more facts)
- how many chars are printed in 1 row (draft) and how many with condensed?
- when you use "mini" function: Is the font half sized or only half height? (Seem to have also a "half height" code)
and so on.... (All ESC codes I only found in French or Spanish... Perhaps someone could translate them to English or German?)
Added a few control codes + You can now also control the weakness for the ribbon!!! :police:
Here's an actual printer-testpage:
http://cpc-live.com/printout_0.png
My goal is a real printer emulation which makes it also possible to printout hardcopies (graphics)
Here's a little "mock-up":
http://cpc-live.com/printout_0b.png (http://cpc-live.com/printout_0b.png)
With NLQ quality:
http://cpc-live.com/printout_0c.png (http://cpc-live.com/printout_0c.png)
So, pleeeeeeeeease help me to figure all controls out ;)
Heh... I can't think of a single use for this feature, but it certainly is awesome! So geeky :D
Quote from: Gryzor on 07:35, 14 August 10
Heh... I can't think of a single use for this feature, but it certainly is awesome! So geeky :D
Why not?
Think: Programs like desktop publishing software or e.g. "Artworx" (link (http://cpc-power.com/index.php?page=detail&num=5166)) can now be used as they had been designed for:
To printout the results.
Here's another dump with a new font:
http://cpc-live.com/dmp2000test.png
Working on proper scaling.
Here you can compare my emulated printout with one I found on g**gle:
(http://cpc-live.com/realselftest.png)
(http://cpc-live.com/emuselftest.png)
2nd is the emulated output. (Font is still not a exact font)
Working on a video recording tool to capture cpc-videos:
(http://cpc-live.com/mov_capture.png)
The output format is .MOV Quicktime video.
384x272 or (in HiRes) 768x544 pixels.
25 or 50 fps!
Chooseable image quality.
Sorry, guys, no sound possible here.
Perhaps I will record YM-file simulteanously while recording...
Nice.... but, mov? Who on earth uses the mov format? :D
Quote from: Gryzor on 08:13, 23 August 10
Nice.... but, mov? Who on earth uses the mov format? :D
Because I did not find any suitable AVI library for Java.
Don't forget: I need to capture the movie picture by picture.
Yeah, I get it... but it's a shame. I haven't installed quicktime (or even Quicktime Alternative) in ages... I hate the format!
Perhaps VLC support it, i think so...
New beta is available!
(http://cpc-live.com/javacpc_09f_t.png) (http://cpc-live.com/javacpc_09f.png)
(Click image to see fullsized screenshot)
Today I uploaded a new and already much more stable version of JavaCPC!
As you can see in the version no. (0.9f) it's the last beta until I'll do the next official release.
You can download your copy here:
http://cpc-live.com/data/list.php?dir=-beta
(The files are sorted by date, so you should be able to find the correct version)
New:
- JavaCPC Paint:
- TGA images are suported for import
- Easier method to change colour of pen: Double click on pen in list to the right side of paint or right click on it to change it's ink
- Small improvements in conversion algorithm and also in EffectMixer.
- Desktop:
- New desktop apps. like JavaCPC Chat or SubPop Radio
- Over 3000 Wallpapers available for direct-to-wallpaper-download in Desktop settings (When JavaCPC is registered)
And soooooooooooooooo much more :D
Please notice:
- JavaCPC Desktop works best with Windows. All external applications like Manage DSK or other commandline based tools don't work on Mac or Linux and also I cannot say how the emulator behaves if you try them.
- You need administrator privileges on your system to let JavaCPC Desktop work properly.
- Registration is ABSOLUTELY free and is not obligatory to use the most important emu features. It's only needed for some "special" applications.
- The menu is already cleared a bit up but still is messy and may not work as you suggest.
Always important:
Please inform me about bugs or problems.
JavaCPC has an internal bug report which may help you:
- Open JavaCPC Console (on desktop)
- Enter command "bug" (without the quotes)
- Fill out the form and send your report
- 2 mails are sent: 1 for me and a copy to your given mail address.
(Registered users don't need to fill out name, mail and security code!)
As you think, I am not sleeping and will add a GFX-Viewer soon to JavaCPC.
For what is it good for?
Simple:
To hack around in the first 64k of the CPC and find game-sprites.
You can also edit them.
It also allows you to export them to your PC!
(as binary with or without AMSDOS header or as PNG file!)
You can also select a range of sprites and export them all with a few mouseclicks!
I attached 2 screenshots:
May the hag be with you :laugh:
You never stop !
Kind respects for your commitment! :)
Quote from: norecess on 04:10, 27 October 10
You never stop !
Yup. He
is impressive, isn't he?
Hehehe thank you!
A test for patching game-sprites:
I edited some sprites for Cauldron (hag and bat), then I exported them as binary.
After this I put the new binaries on the DSK, too.
Then I loaded the gamecode + these new binaries and then I called the game:
(http://cpc-live.com/wip.png)
BTW.: Arnold's and WinApe's graphics viewer inspired me here ;)
Where WinApe's has a vertical order for the cells and JavaCPC has a horizontal order.
Also "Screen-like editing" is not possible in JavaCPC.
Here the same sprites shown in WinApe:
This sprite catcher would be really nice if it works as great as the screenie shows; never had a decent result with Winape, and every time I've needed a piece of gfx (like for my avatar) I've photoshopped it...
Tried it last night on my Atom dual core netbook. A shame it can only handle 9fps (Symbos, desktop). I'll try it on my PC now :)
Quote from: Gryzor on 07:50, 29 October 10
Tried it last night on my Atom dual core netbook. A shame it can only handle 9fps (Symbos, desktop). I'll try it on my PC now :)
Maybe you have bad Graphics drivers. (Or also some strange soundcards make trouble here)
Also make sure that you run it with admin-rights to allow JavaCPC to write it's config.
JavaCPC runs on my system (Intel P-IV, 3ghz dual core, 2gb DDR ram and 256 mb NVidia Geforce 6800GT) with 50 fps and also
with "Turbo" it runs at ca. 500-600%
You can try my latest compiled beta from today. (I added some missing libraries and also fixed the Tiled Mapeditor.)
It also has a slightly better display routine.
Download as usual here:
http://cpc-live.com/data/list.php?dir=-beta (http://cpc-live.com/data/list.php?dir=-beta)
It's not the emulator's problem, but my netbook's. It's got an Atom CPU @1.6GHz, after all - NOT designed to run games or Java apps! :D
A question for all coders who use Debuggers:
I today coded many improvements to JavaCPC's Debugger:
(http://cpc-live.com/new_debugger.png)
New features are:
- You can choose between READ, WRITE or ANY ram (Where you can select RAM bank to show and edit it on the fly)
- Breakpoints list with function to clear them.
When READ ram is selected, you cannot edit it (logical, because it's read-only mem)
Now here's my question:
WinAPE also has a breakpoint list where you can see the type and also edit a condition.
- How does this "condition" field work?
- Is a "condition" or "type" really needed? (JavaCPC stops at a breakpoint you define and fires up the debugger (if was closed))
Your help + suggestions which other features to add, too, are very appreciated here.
Thanks,
Markus
Here's a test for breakpoints (coming from assembler)
(http://cpc-live.com/asmbreakpoint.gif)
:D
Another question I have is Z80 assembler related:
Z80 assembler understands (should) IF/ENDIF conditions.
So my question is: What conditions are allowed in IF?
Example: IF a=b (where a=b is condition)
Example2: IF c
Please show me all possible conditions.
(not the mathematic calculations or values but what conditions are possible here)
In rest, I coded many improvements to my Z80 Assembler today:
http://cpc-live.com/assemblertest/
But IF/ENDIF is still not implemented! (They are ignored and the code between is assembled, too, so IF is always true)
Does there also exist ELSE?
Quote from: Devilmarkus on 14:00, 31 October 10
Z80 assembler understands (should) IF/ENDIF conditions.
Are you sure this isn't a macro of some sort, such as in WinAPE?
In Z80, the simplest IF is to use CP. This subtracts a value from A register (without actually subtracting it for A's preservation) and then sets the Z flag accordingly. So if A is 15, a CP 15 will set the Z(ero) flag true and you can have some simple IF/ELSE code.
For example:
ld a,value ; load A with value
cp 15 ; is it 15
jr z,if_code ; jump here if it is
jr nz,else_code ; go here if it isn't
Quote from: redbox on 19:32, 31 October 10
Are you sure this isn't a macro of some sort, such as in WinAPE?
Yes it's a macro.
But also the good old MAXAM assembler knows it!
(And sadly many coders use it :o )
Example: Pacman source by Richard Wilson:
Above line 3020:
.end1 equ $ and #ff
if end1
ds 256 - end1
endif
Ok I think, I got it working in my homebrew Z80 assembler:
test code:
;; IF-test
ORG &4000
nobody equ 0
leo equ 1
ant equ 2
bob equ 3
; standard:
if nobody
db "nobody is"
endif
if leo
db "leo is"
endif
if leo=ant
db "leo is = ant"
endif
;extended:
if leo < ant
db "leo is smaller"
endif
if ant > bob
db "ant is larger"
endif
Assembler output:
000002 4000 ORG &4000
000004 4000 NOBODY EQU 0
000005 4000 LEO EQU 1
000006 4000 ANT EQU 2
000007 4000 BOB EQU 3
000011 4000 IF NOBODY
000012 4000 DB "nobody is"
000013 4000 ENDIF
000015 4000 IF LEO
000016 4000 DB "leo is" 6C 65 6F 20 69 73
000017 4006 ENDIF
000019 4006 IF LEO=ANT
000020 4006 DB "leo is = ant"
000021 4006 ENDIF
000025 4006 IF LEO < ANT
000026 4006 DB "leo is smaller" 6C 65 6F 20 69 73 20 73 6D 61 6C 6C 65 72
000027 4014 ENDIF
000029 4014 IF ANT > BOB
000030 4014 DB "ant is larger"
000031 4014 ENDIF
_______________________________________________________
Assembled in 0.047s from &4000 to &4014 length is &0014
HEX:
00004000: 6C 65 6F 20 69 73 6C 65 6F 20 69 73 20 73 6D 61 ; leo isleo is sma
00004010: 6C 6C 65 72 ; ller
Quote from: Devilmarkus on 20:16, 31 October 10
.end1 equ $ and #ff
if end1
ds 256 - end1
endif
This looks like self-modifying code...
Small example for the next version of my Z80 Assembler:
http://cpc-live.com/assembler
Hi Markus,
if, else, elseif and endif are not macros. They are simply conditional compilation instructions for the assembler. They don't generate any code themselves, simply tell the assembler which code to generate. The conditions are considered true if they evaluate to non-zero. (Not sure if = works at all).
Conditional breakpoints can be useful. For example, you can set a breakpoint in a loop with a condition of HL = #3fe2
WinAPE uses full evaluation there (with brackets). There are also some additional functions to poke a value into memory or set a palette colour. You could for example have one breakpoint which set the border to green at the start of a section of code, then returned 0. And another breakpoint which set the border back to black.
Cool thing with the conditions...
Perhaps I will add some simple, too.
Actually I am improving the disassembler (Which is REALLY hard for me because I'm an absolute noob with that!)
The goal is to make disassembling as simple as possible to get a suitable result!
Example video:
http://cpc-live.com/disassembler/
Quote from: Devilmarkus on 21:43, 05 November 10
The goal is to make disassembling as simple as possible to get a suitable result!
This project is just getting better and better :)
I like the way you're recoginising firmware calls and labelling them.
Another nice feature of disassembly would be that if you change a tag (i.e. label_83b0 or similar) that there is an option to change them ALL for you - I know editors like Notepad++ can do this but it would be great to do this within the disassembler and make decoding routines much faster.
Quote from: redbox on 15:23, 06 November 10
Another nice feature of disassembly would be that if you change a tag (i.e. label_83b0 or similar) that there is an option to change them ALL for you - I know editors like Notepad++ can do this but it would be great to do this within the disassembler and make decoding routines much faster.
Good idea!
I will add this... ;)
I added a "replace" feature:
You can enter a search string (case sensitive) and all strings in the code field are replaced!
Great stuff, will give it a whirl :)
Could it be possible to have an option that you turn on which recognises you are editing a label tag and then changes them all on the fly (i.e. so you only edit one and whilst doing this all the others change automatically)...? Or would this just be too complex?
Well, that would be much too complex here.
Think:
In the video I used a small sourcecode.
But a code often has more than 2000 lines.
Generating labels for a sourcecode with ca. 10.000 lines takes about 5 minutes!!!
Generating relative labels (rel_label_XXXX+1) takes ~ 20 minutes!
(I am too dumb to code an efficientier routine for that :( )
Replacing firmware addresses takes a few seconds :)
I remember battling with this (http://en.wikipedia.org/wiki/Quicksort) at college to make my routines faster.
Not much fun >:(
Perhaps you see something how to speed this crap up?
for (int c = 0; c < code.length; c++) {
if (code[c].length() < 3) {
continue;
} else {
String codebstr = code[c];
String codestr = code[c].toLowerCase();
if (stop) {
Interface.compileprogress.setValue(0);
Interface.compileprogress.setStringPainted(false);
codeField.setEnabled(true);
codeField.setBackground(Color.white);
stop = false;
jemu.ui.JEMU.debugger.getDebuggerComputer().start();
return;
}
b++;
if (b > 100) {
b = 0;
Interface.compileprogress.setValue(c);
Interface.compileprogress.setString("Line: " + (c + 1)
+ " To do: " + (code.length - c) + " last label: "
+ lastlabel);
}
if (!codestr.contains("org")) {
for (int i = start; i < end; i++) {
String checkLabel = Util.hex((short) i);
if (!depth && codebstr.contains(";" + checkLabel)) {
if (ass.contains("&" + checkLabel)) {
lastlabel = "set:" + label + checkLabel;
Interface.compileprogress.setString("Line: " + (c + 1)
+ " To do: " + (code.length - c) + " last label: "
+ lastlabel);
code[c] = codebstr = codebstr.replace(codebstr, label + checkLabel + "\n" + codebstr);
}
} else if (depth) {
int f = i + 1;
String checkRelLabel = Util.hex((short) f);
if (codebstr.contains(";" + checkRelLabel) && !codebstr.startsWith(label2 + checkRelLabel)) {
if (ass.contains("&" + checkLabel)) {
lastlabel = "set+1:" + label2 + checkLabel;
Interface.compileprogress.setString("Line: "
+ (c + 1) + " To do: " + (code.length - c)
+ " last label: " + lastlabel);
code[c] = codebstr = codebstr.replace(codebstr, label2 + checkRelLabel + "\n" + codebstr);
}
} else {
f = i - 1;
checkRelLabel = Util.hex((short) f);
if (codebstr.contains(";" + checkRelLabel) && !codebstr.startsWith(label2 + checkRelLabel)) {
if (ass.contains("&" + checkLabel)) {
lastlabel = "set-1:" + label2 + checkLabel;
Interface.compileprogress.setString("Line: "
+ (c + 1) + " To do: " + (code.length - c)
+ " last label: " + lastlabel);
code[c] = codebstr = codebstr.replace(codebstr, label2 + checkRelLabel + "\n" + codebstr);
}
}
}
}
for (int h = 0; h < canLabel.length; h++) {
if (codebstr.contains(canLabel[h])) {
if (!depth && !codebstr.contains(";" + checkLabel) && codebstr.contains("&" + checkLabel)) {
if (ass.contains(";" + checkLabel)) {
code[c] = codebstr = codebstr.replace("&" + checkLabel, label + checkLabel);
code[c] = codebstr = codebstr.replace(" ;", ";");
}
} else if (depth) {
int f = i + 1;
String checkass2 = Util.hex((short) f);
if (!codebstr.contains(";" + checkLabel) && codebstr.contains("&" + checkass2)) {
if (ass.contains(";" + checkLabel)) {
code[c] = codebstr = codebstr.replace("&" + checkass2, label2 + checkLabel + "+1");
code[c] = codebstr = codebstr.replace(" ;", ";");
}
} else {
f = i - 1;
checkass2 = Util.hex((short) f);
if (!codebstr.contains(";" + checkLabel) && codebstr.contains("&" + checkass2)) {
if (ass.contains(";" + checkLabel)) {
code[c] = codebstr = codebstr.replace("&" + checkass2, label2 + checkLabel + "-1");
code[c] = codebstr = codebstr.replace(" ;", ";");
}
}
}
}
break;
}
}
}
}
}
}
Could help me much!
Working on linear pixel showing for my gfx viewer.
Many games like Antiriad or Aliens use this.
Mode 0 sprites but 4 colours only...
(http://cpc-live.com/gfxviewer_linear.png)
(http://cpc-live.com/range_9920-A1A8.png)
(http://cpc-live.com/antiriad.gif)
(Mode 1 but stretched!)
Also editing works already in MODE 1 or 2.
(MODE 0 works theoretically, too, but result is crap often...)
Quote from: Devilmarkus on 14:49, 07 November 10
Perhaps you see something how to speed this crap up?
I haven't programmed high-level languages in a loooong time. Well, I write pseudo-code for my Z80 sometimes so I guess this is a bit like Java 8)
I can't see why it would be so slow, or does Java have a problem with recursion?
Quote from: redbox on 15:56, 07 November 10
I can't see why it would be so slow, or does Java have a problem with recursion?
Well I don't think, there's a problem with. But recursion slows down all!
Do you see a way to remove the recursion here?
Quote from: Devilmarkus on 17:08, 07 November 10
Do you see a way to remove the recursion here?
Not off the top of my head, but following the code I can't see why it would be so slow.
Maybe it's just Java...
Im liking this emulator, now I have a PC that is capable of running Java.
Can I make some suggestions for the image editor. First, a grid would be nice. Second, the co-cordinates of the mouse/brush displayed somewhere would be very useful. Also, improving the zoom feature perhaps, stays in the same window (way too many windows get opened in a JavaCPC session) using scroll bars to navigate when zoomed in.
Quote from: EgoTrip on 16:08, 08 November 10
Im liking this emulator, now I have a PC that is capable of running Java.
Can I make some suggestions for the image editor. First, a grid would be nice. Second, the co-cordinates of the mouse/brush displayed somewhere would be very useful. Also, improving the zoom feature perhaps, stays in the same window (way too many windows get opened in a JavaCPC session) using scroll bars to navigate when zoomed in.
Hi,
thanks for your suggestions.
The problem is: I don't have a real scroll area! I am doing pseudo scrolling in the paint field.
To make these things as you suggested, work, I would have to rewrite a complete engine for that, and, this would totally consume my last crumbeled brain cells :(
(Really, it would be lot of work to change the Paint app. like this.... :( )
I also have my own set of tools.
At a time, I thought about making my own image editor.. then finally, just decided to allow import of bitmaps, edited under any external third-party image editor (that will ever be better than a custom solution).
Quote from: norecess on 19:36, 08 November 10
I also have my own set of tools.
That's good.
I think everyone uses his own set of tools to create something for the CPC.
I just combined a few (some are simple, some are very complex) tools to JavaCPC Desktop.
This makes 'some' things easier and is maybe helpful for everyone...
And I just like coding funny things... ;)
Here's the today's beta:
http://cpc-live.com/data/download.php?type=-beta&fichier=2010_11_08_JavaCPC_Desktop_BETA.zip (http://cpc-live.com/data/download.php?type=-beta&fichier=2010_11_08_JavaCPC_Desktop_BETA.zip)
You can access the GFX viewer via debugger or via menu: Help -> GFXViewer
Have fun!
(Test it on your own risk! It's pure beta! Nothing cleaned up yet...)
Edit:
Here's a ASM export example for the GFX-Viewer:
ORG &9920
DB &AA,&A8,&04,&40,&51,&55,&50
DB &AA,&80,&01,&04,&89,&95,&50
DB &AA,&80,&01,&00,&10,&95,&50
DB &AA,&01,&00,&0A,&28,&A5,&50
DB &AA,&00,&00,&04,&08,&65,&50
DB &AA,&04,&10,&14,&41,&89,&50
DB &A8,&05,&00,&10,&40,&29,&50
DB &A8,&14,&00,&10,&40,&89,&50
DB &A8,&14,&00,&10,&00,&59,&50
DB &A8,&05,&00,&00,&00,&42,&50
DB &A0,&04,&00,&00,&01,&06,&50
DB &A0,&01,&00,&00,&A4,&06,&50
DB &A0,&00,&00,&00,&00,&09,&50
DB &A0,&00,&11,&00,&40,&09,&50
DB &A1,&00,&51,&51,&40,&A2,&50
DB &81,&00,&51,&51,&54,&02,&50
DB &84,&00,&51,&51,&A4,&0A,&90
DB &80,&01,&45,&51,&A8,&05,&90
DB &84,&01,&55,&54,&A8,&01,&90
DB &81,&01,&55,&56,&A9,&01,&90
DB &80,&05,&55,&56,&AA,&26,&10
DB &80,&05,&55,&56,&AA,&11,&90
DB &80,&05,&55,&55,&AA,&01,&90
DB &80,&05,&05,&55,&0A,&01,&90
DB &80,&00,&41,&54,&52,&02,&10
DB &80,&01,&50,&51,&56,&04,&10
DB &80,&05,&04,&55,&05,&05,&90
DB &80,&04,&00,&64,&11,&01,&90
DB &80,&04,&10,&68,&11,&00,&90
DB &84,&05,&00,&68,&15,&04,&90
DB &A0,&15,&54,&6A,&A9,&45,&90
DB &A0,&15,&54,&6A,&A9,&4A,&10
DB &A0,&15,&54,&6A,&A9,&40,&50
DB &A0,&15,&54,&6A,&A9,&40,&50
DB &A8,&15,&55,&AA,&A9,&42,&50
DB &A8,&15,&51,&A6,&A5,&41,&50
DB &A8,&15,&51,&A6,&A5,&45,&50
DB &A8,&15,&50,&1A,&A5,&49,&50
DB &A8,&15,&55,&1A,&A9,&49,&50
DB &AA,&15,&55,&9A,&A9,&51,&50
DB &AA,&15,&55,&AA,&A9,&41,&50
DB &AA,&15,&55,&6A,&A9,&41,&50
DB &AA,&45,&50,&06,&A5,&49,&50
DB &AA,&05,&55,&6A,&A5,&09,&50
DB &AA,&45,&55,&56,&A5,&05,&50
DB &AA,&01,&54,&06,&95,&25,&50
DB &AA,&81,&55,&2A,&95,&05,&50
DB &AA,&84,&56,&AA,&94,&15,&50
DB &AA,&84,&56,&AA,&94,&55,&50
DB &AA,&A4,&16,&AA,&50,&55,&50
DB &AA,&A4,&15,&AA,&50,&55,&50
DB &AA,&A4,&05,&55,&40,&55,&50
DB &AA,&A0,&55,&55,&59,&55,&50
DB &AA,&81,&54,&55,&56,&55,&50
DB &AA,&81,&55,&00,&56,&55,&50
DB &AA,&01,&55,&00,&59,&95,&50
DB &AA,&00,&55,&40,&59,&95,&50
DB &A8,&05,&41,&54,&1A,&A5,&50
DB &A8,&05,&04,&54,&15,&A5,&50
DB &A8,&05,&14,&04,&15,&A9,&50
DB &A8,&41,&15,&55,&55,&69,&50
DB &A0,&51,&AA,&AA,&AA,&59,&50
DB &A0,&5A,&AA,&AA,&AA,&99,&50
DB &A0,&5A,&55,&55,&5A,&9A,&50
DB &A0,&65,&00,&00,&01,&6A,&50
DB &A0,&20,&55,&55,&A8,&26,&50
DB &A0,&05,&00,&00,&02,&8A,&50
DB &A0,&10,&00,&00,&00,&26,&50
DB &80,&10,&14,&51,&A0,&0A,&50
DB &80,&41,&55,&11,&A8,&0A,&90
DB &80,&01,&55,&54,&A9,&0A,&90
DB &81,&05,&55,&55,&A9,&0A,&90
DB &81,&05,&55,&55,&6A,&42,&90
DB &81,&05,&55,&55,&6A,&12,&90
DB &80,&05,&55,&55,&6A,&02,&90
DB &80,&15,&01,&54,&06,&02,&90
DB &80,&14,&00,&50,&02,&00,&90
DB &A0,&15,&50,&51,&56,&10,&90
DB &A0,&15,&04,&55,&05,&10,&90
DB &A0,&14,&40,&64,&41,&10,&90
DB &A0,&15,&04,&69,&45,&00,&90
DB &A0,&15,&54,&69,&56,&00,&90
DB &A1,&15,&54,&6A,&5A,&41,&50
DB &A1,&15,&54,&AA,&9A,&41,&50
DB &A1,&05,&55,&AA,&A9,&41,&50
DB &A1,&05,&55,&AA,&A9,&41,&50
DB &A1,&05,&55,&AA,&A9,&45,&50
DB &A1,&05,&51,&A6,&A9,&45,&50
DB &A1,&05,&51,&A6,&A9,&45,&50
DB &A1,&85,&54,&16,&A5,&45,&50
DB &A1,&85,&55,&5A,&A5,&45,&50
DB &A1,&85,&55,&9A,&A5,&45,&50
DB &A1,&85,&55,&9A,&A5,&45,&50
DB &A1,&85,&55,&6A,&A5,&15,&50
DB &A1,&85,&50,&06,&A5,&15,&50
DB &A8,&61,&55,&69,&A5,&15,&50
DB &A8,&61,&55,&56,&95,&15,&50
DB &A8,&51,&54,&06,&95,&15,&50
DB &AA,&10,&69,&6A,&94,&15,&50
DB &AA,&85,&59,&AA,&94,&55,&50
DB &AA,&A0,&01,&AA,&94,&55,&50
DB &AA,&A4,&15,&6A,&50,&55,&50
DB &AA,&A4,&15,&69,&50,&55,&50
DB &AA,&A4,&05,&55,&40,&55,&50
DB &AA,&A8,&04,&4A,&69,&55,&50
DB &AA,&A0,&00,&00,&1A,&55,&50
DB &AA,&80,&00,&01,&4A,&55,&50
DB &AA,&80,&00,&10,&09,&95,&50
DB &AA,&00,&00,&45,&05,&A5,&50
DB &AA,&00,&05,&61,&84,&65,&50
DB &AA,&00,&05,&41,&04,&65,&50
DB &AA,&00,&04,&44,&04,&65,&50
DB &AA,&01,&00,&44,&44,&69,&50
DB &AA,&00,&00,&04,&A8,&99,&50
DB &A8,&00,&00,&00,&A8,&99,&50
DB &A8,&40,&00,&0A,&80,&99,&50
DB &A8,&01,&00,&00,&14,&A9,&50
DB &A8,&01,&54,&01,&55,&29,&50
DB &A8,&01,&55,&55,&55,&09,&50
DB &A8,&45,&55,&55,&55,&09,&50
DB &A8,&45,&55,&55,&55,&19,&50
DB &A8,&45,&55,&55,&95,&19,&50
DB &A8,&05,&55,&55,&A9,&19,&50
DB &A8,&05,&55,&56,&A9,&09,&50
DB &A8,&05,&55,&56,&AA,&09,&50
DB &A8,&05,&55,&56,&AA,&09,&50
DB &A8,&05,&55,&55,&AA,&09,&50
DB &A8,&05,&01,&54,&06,&09,&50
DB &A8,&44,&00,&50,&02,&19,&50
DB &A8,&55,&50,&51,&56,&19,&50
DB &A8,&55,&04,&55,&05,&19,&50
DB &A8,&54,&10,&64,&11,&19,&50
DB &AA,&55,&04,&69,&15,&15,&50
DB &AA,&55,&54,&69,&56,&15,&50
DB &AA,&55,&54,&6A,&5A,&55,&50
DB &AA,&55,&54,&6A,&9A,&55,&50
DB &AA,&55,&55,&6A,&AA,&55,&50
DB &AA,&55,&55,&AA,&AA,&45,&50
DB &AA,&55,&55,&AA,&A9,&45,&50
DB &AA,&05,&51,&AA,&A9,&45,&50
DB &AA,&05,&51,&A6,&A9,&45,&50
DB &AA,&85,&54,&16,&A9,&45,&50
DB &AA,&85,&55,&59,&A9,&45,&50
DB &AA,&85,&55,&99,&A5,&45,&50
DB &AA,&85,&55,&9A,&A5,&45,&50
DB &AA,&85,&55,&6A,&A5,&15,&50
DB &AA,&95,&50,&06,&A5,&15,&50
DB &AA,&91,&45,&69,&A5,&15,&50
DB &AA,&A1,&55,&56,&A5,&15,&50
DB &AA,&A1,&54,&06,&A5,&15,&50
DB &AA,&A0,&55,&6A,&94,&15,&50
DB &AA,&A0,&55,&AA,&94,&55,&50
DB &AA,&A4,&55,&AA,&94,&55,&50
DB &AA,&A4,&15,&6A,&50,&55,&50
DB &AA,&A4,&15,&69,&50,&55,&50
DB &AA,&A4,&05,&55,&40,&55,&50
DB &AA,&AA,&04,&4A,&59,&55,&50
DB &AA,&A8,&00,&00,&0A,&55,&50
DB &AA,&A0,&00,&01,&96,&55,&50
DB &AA,&A0,&04,&20,&45,&15,&50
DB &AA,&80,&00,&95,&60,&95,&50
DB &AA,&84,&01,&09,&60,&95,&50
DB &AA,&00,&00,&00,&62,&A5,&50
DB &AA,&00,&00,&00,&20,&25,&50
DB &AA,&00,&00,&10,&22,&25,&50
DB &A8,&00,&00,&00,&54,&25,&50
DB &A8,&01,&50,&01,&A4,&25,&50
DB &A8,&01,&55,&56,&A8,&29,&50
DB &A8,&01,&55,&5A,&A8,&29,&50
DB &A8,&05,&55,&6A,&AA,&09,&50
DB &A8,&05,&55,&56,&AA,&29,&50
DB &A8,&05,&55,&55,&AA,&09,&50
DB &A8,&05,&55,&55,&AA,&09,&50
DB &A8,&05,&55,&55,&AA,&09,&50
DB &A8,&05,&55,&55,&AA,&09,&50
DB &A8,&05,&55,&56,&AA,&29,&50
DB &A8,&05,&55,&56,&AA,&09,&50
DB &A8,&05,&55,&56,&AA,&09,&50
DB &AA,&05,&55,&5A,&AA,&09,&50
DB &AA,&04,&01,&58,&02,&05,&50
DB &A8,&05,&50,&50,&56,&05,&50
DB &A8,&45,&54,&51,&55,&11,&50
DB &A8,&55,&04,&51,&05,&11,&50
DB &A8,&54,&00,&64,&11,&11,&50
DB &A8,&54,&10,&69,&12,&11,&50
DB &A8,&55,&14,&69,&2A,&11,&50
DB &A9,&55,&54,&6A,&5A,&51,&50
DB &A9,&45,&54,&6A,&9A,&51,&50
DB &A9,&45,&55,&6A,&AA,&51,&50
DB &AA,&45,&55,&AA,&AA,&65,&50
DB &AA,&45,&55,&AA,&A9,&25,&50
DB &AA,&45,&55,&AA,&A9,&25,&50
DB &AA,&05,&51,&A6,&A9,&05,&50
DB &AA,&85,&50,&16,&A9,&15,&50
DB &AA,&85,&55,&5A,&A9,&15,&50
DB &AA,&85,&55,&69,&A5,&15,&50
DB &AA,&95,&55,&69,&A5,&15,&50
DB &AA,&91,&55,&69,&A5,&15,&50
DB &AA,&A1,&55,&56,&A5,&15,&50
DB &AA,&A1,&41,&69,&A5,&15,&50
DB &AA,&A1,&55,&56,&64,&55,&50
DB &AA,&A1,&54,&06,&64,&55,&50
DB &AA,&A4,&55,&6A,&64,&55,&50
DB &AA,&A4,&55,&AA,&64,&55,&50
DB &AA,&A8,&55,&AA,&54,&55,&50
DB &AA,&A8,&55,&6A,&50,&55,&50
DB &AA,&A8,&15,&69,&50,&55,&50
DB &AA,&A8,&05,&55,&40,&55,&50
DB &AA,&A8,&04,&40,&52,&55,&50
DB &AA,&80,&01,&04,&89,&95,&50
DB &AA,&80,&01,&00,&10,&95,&50
DB &AA,&01,&00,&0A,&28,&A5,&50
DB &AA,&00,&00,&00,&08,&65,&50
DB &AA,&00,&0A,&AA,&80,&09,&50
DB &AA,&00,&A5,&55,&68,&15,&50
DB &AA,&05,&50,&00,&56,&85,&50
DB &AA,&05,&0A,&AA,&00,&A9,&50
DB &AA,&14,&55,&55,&AA,&29,&50
DB &A8,&41,&40,&00,&15,&89,&50
DB &A8,&15,&15,&55,&41,&69,&50
DB &A8,&50,&55,&55,&54,&19,&50
DB &A9,&45,&50,&00,&15,&49,&50
DB &A9,&15,&05,&55,&40,&69,&50
DB &A9,&50,&55,&55,&55,&29,&50
DB &A8,&45,&00,&00,&01,&89,&50
DB &A9,&14,&05,&55,&A0,&61,&50
DB &A8,&51,&55,&55,&A8,&29,&50
DB &A9,&41,&55,&56,&A9,&09,&50
DB &A9,&05,&55,&56,&AA,&09,&50
DB &A9,&05,&55,&56,&AA,&01,&50
DB &A8,&05,&55,&55,&AA,&01,&50
DB &A8,&04,&05,&55,&02,&02,&50
DB &A8,&41,&41,&54,&56,&12,&50
DB &A8,&45,&50,&51,&56,&12,&50
DB &A8,&45,&04,&55,&05,&12,&50
DB &A8,&44,&00,&64,&11,&12,&50
DB &A8,&44,&10,&68,&15,&12,&50
DB &A8,&45,&04,&69,&15,&12,&50
DB &A8,&55,&54,&6A,&A9,&52,&50
DB &A8,&55,&54,&6A,&A9,&52,&50
DB &A8,&55,&55,&6A,&95,&52,&50
DB &A8,&55,&55,&AA,&A5,&56,&50
DB &AA,&55,&55,&AA,&A5,&56,&50
DB &AA,&15,&51,&A6,&A9,&46,&50
DB &AA,&15,&51,&66,&A9,&49,&50
DB &AA,&85,&54,&1A,&A9,&49,&50
DB &AA,&85,&55,&5A,&A9,&49,&50
DB &AA,&85,&55,&9A,&A9,&49,&50
DB &AA,&85,&55,&AA,&A9,&49,&50
DB &AA,&85,&55,&6A,&A9,&49,&50
DB &AA,&95,&50,&06,&A5,&4A,&50
DB &AA,&95,&55,&6A,&A5,&1A,&50
DB &AA,&A5,&55,&56,&A5,&1A,&50
DB &AA,&A5,&54,&06,&A5,&1A,&50
DB &AA,&A1,&55,&2A,&94,&1A,&50
DB &AA,&A1,&56,&AA,&94,&42,&90
DB &AA,&A4,&56,&AA,&94,&42,&90
DB &AA,&A4,&56,&AA,&50,&40,&90
DB &AA,&A4,&15,&A9,&50,&40,&A0
DB &AA,&A4,&05,&55,&40,&50,&20
DB &AA,&AA,&80,&0A,&69,&55,&50
DB &AA,&A8,&00,&00,&0A,&55,&50
DB &AA,&A0,&00,&01,&42,&95,&50
DB &AA,&A0,&00,&00,&01,&15,&50
DB &AA,&80,&00,&00,&89,&95,&50
DB &AA,&80,&00,&00,&01,&95,&50
DB &AA,&00,&00,&00,&05,&65,&50
DB &AA,&00,&00,&00,&00,&65,&50
DB &AA,&00,&00,&00,&21,&65,&50
DB &A8,&00,&00,&00,&14,&A5,&50
DB &A8,&00,&00,&00,&44,&A5,&50
DB &A8,&00,&00,&01,&09,&65,&50
DB &A8,&00,&00,&02,&18,&99,&50
DB &A8,&00,&00,&04,&A5,&99,&50
DB &A8,&00,&00,&10,&00,&19,&50
DB &A8,&01,&50,&01,&54,&09,&50
DB &A8,&05,&55,&55,&64,&19,&50
DB &A8,&05,&55,&55,&A9,&19,&50
DB &A8,&05,&55,&55,&AA,&11,&50
DB &A9,&05,&55,&56,&AA,&11,&50
DB &A9,&05,&55,&56,&AA,&11,&50
DB &A9,&15,&55,&56,&AA,&01,&50
DB &A9,&15,&55,&5A,&AA,&01,&50
DB &A9,&15,&01,&58,&0A,&01,&50
DB &A9,&14,&50,&50,&52,&01,&50
DB &A8,&41,&54,&51,&55,&11,&50
DB &A8,&55,&04,&51,&05,&11,&50
DB &A8,&54,&40,&64,&41,&11,&50
DB &A8,&55,&04,&69,&46,&11,&50
DB &A8,&55,&54,&69,&6A,&11,&50
DB &A9,&55,&54,&6A,&5A,&51,&50
DB &A9,&45,&54,&6A,&9A,&51,&50
DB &A9,&45,&55,&6A,&AA,&51,&50
DB &AA,&45,&55,&AA,&AA,&65,&50
DB &AA,&45,&55,&AA,&A9,&25,&50
DB &AA,&45,&51,&AA,&A9,&25,&50
DB &AA,&05,&51,&A6,&A9,&05,&50
DB &AA,&05,&54,&1A,&A9,&05,&50
DB &AA,&85,&55,&1A,&A9,&05,&50
DB &AA,&85,&55,&69,&A5,&15,&50
DB &AA,&85,&55,&69,&A5,&15,&50
DB &AA,&81,&55,&69,&A5,&15,&50
DB &AA,&A1,&50,&16,&A5,&15,&50
DB &AA,&A1,&55,&69,&A5,&15,&50
DB &AA,&A1,&55,&56,&A4,&55,&50
DB &AA,&A1,&54,&06,&A4,&55,&50
DB &AA,&A4,&55,&6A,&A4,&55,&50
DB &AA,&A4,&55,&AA,&A4,&55,&50
DB &AA,&A4,&55,&AA,&54,&55,&50
DB &AA,&A4,&15,&6A,&50,&55,&50
DB &AA,&A4,&15,&69,&50,&55,&50
DB &AA,&A4,&05,&55,&40,&55,&50
DB &FF,&FF,&FF,&7F,&FF,&FF,&F5
DB &FF,&FF,&FD,&DF,&FF,&FF,&F5
DB &FF,&FF,&F6,&F7,&FF,&FF,&F5
DB &FF,&FF,&F5,&D7,&FF,&FF,&F5
DB &FF,&FF,&D6,&F5,&FF,&FF,&F5
DB &FF,&FF,&D5,&D5,&FF,&FF,&F5
DB &FF,&FF,&56,&F6,&7F,&FF,&F5
DB &FF,&FF,&55,&D6,&7F,&FF,&F5
DB &FF,&FF,&56,&F6,&7F,&FF,&F5
DB &FF,&FF,&55,&D6,&7F,&FF,&F5
DB &FF,&FD,&56,&F5,&9F,&FF,&F5
DB &FF,&FD,&56,&F5,&9F,&FF,&F5
DB &FF,&FD,&55,&D5,&9F,&FF,&F5
DB &FF,&FD,&56,&F5,&9F,&FF,&F5
DB &FF,&FD,&59,&F5,&5F,&FF,&F5
DB &FF,&FD,&59,&FE,&5F,&FF,&F5
DB &FF,&FD,&59,&BE,&5F,&FF,&F5
DB &FF,&FD,&59,&BE,&5F,&FF,&F5
DB &F5,&FD,&65,&6F,&9F,&D7,&F5
DB &F5,&7D,&65,&6F,&9F,&57,&F5
DB &F9,&7D,&65,&5B,&9F,&5B,&F5
DB &F9,&7D,&95,&5B,&EF,&5B,&F5
DB &FA,&5D,&95,&5B,&ED,&6F,&F5
DB &FA,&5D,&95,&5B,&ED,&6F,&F5
DB &FA,&5D,&95,&5B,&FD,&6F,&F5
DB &FA,&56,&55,&5B,&FD,&6F,&F5
DB &FE,&96,&55,&5B,&F5,&BF,&F5
DB &FE,&96,&55,&5B,&F5,&BF,&F5
DB &FE,&96,&55,&5B,&F5,&BF,&F5
DB &FE,&96,&55,&56,&F5,&BF,&F5
DB &FE,&96,&55,&56,&F5,&BF,&F5
DB &FE,&96,&55,&56,&75,&BF,&F5
DB &FE,&96,&55,&56,&75,&BF,&F5
DB &FE,&95,&95,&55,&D5,&BF,&F5
DB &FE,&95,&95,&55,&D5,&BF,&F5
DB &FE,&BD,&95,&55,&DF,&7F,&F5
DB &FE,&E9,&7F,&FF,&5B,&7F,&F5
DB &FD,&E9,&D5,&55,&DA,&DF,&F5
DB &FD,&E9,&7F,&FF,&5A,&DF,&F5
DB &FD,&E9,&7F,&FF,&5A,&DF,&F5
DB &FD,&E9,&FF,&FF,&DA,&DF,&F5
DB &FD,&E9,&DF,&FD,&DA,&DF,&F5
DB &FD,&79,&DF,&FD,&DB,&6F,&F5
DB &FA,&7A,&77,&F7,&6B,&6F,&F5
DB &FA,&7A,&75,&57,&6B,&6F,&F5
DB &E9,&7A,&75,&57,&6B,&6B,&F5
DB &E9,&5E,&7D,&5F,&AD,&5B,&F5
DB &A5,&5E,&9F,&FD,&AD,&5A,&F5
DB &A5,&5E,&9F,&F9,&AD,&56,&F5
DB &95,&57,&95,&55,&B5,&56,&B5
DB &95,&57,&95,&56,&B5,&55,&B5
DB &95,&55,&A5,&5A,&95,&55,&A5
Just do this:
open the Assembler, load this file in, and assemble it.
Then open the GFX viewer, set it's address to &9920 (without &) and set: width to 7, height to 52 and zoom to 1.
The sprites are linear!
WinAPE's GFXviewer can show these sprites, too...
no full release yet!
But here's another new beta:
http://cpc-live.com/data/download.php?type=-beta&fichier=2010_11_12_JavaCPC_Desktop_BETA.zip (http://cpc-live.com/data/download.php?type=-beta&fichier=2010_11_12_JavaCPC_Desktop_BETA.zip)
New: Multiface 2 emulation.
(To enable check system-settings)
(http://cpc-live.com/mf2.png)
Demo:
http://cpc-live.com/mf2 (http://cpc-live.com/mf2)
Have fun!
Btw.: "HOME" or "POS 1" is the multiface button!
Great work!!!
Working on CPC-plus image conversion in JavaCPC-Paint:
(http://cpc-live.com/plus_source.png)
(http://cpc-live.com/plus_result.png)
So you will be able to edit / create SCR files for the CPC+.
Also, when JavaCPC cannot emulate the + ;)
One more: (http://cpc-live.com/overscanpaint_plus.png)
The screens are also saveable as .SCR and fully ConvImgCPC compatible...
They also load well in WinAPE :D
Thanks to Kevin, I added "Stack" info to JavaCPC's debugger:
(http://cpc-live.com/debugger.png)
So I think the debugger is almost complete...
Or should I add more features?
That looks quite well done! ;D
JavaCPC's next release becomes "Donationware".
This means:
The emulator is full freeware.
You can register, if you want. (This is also absolutely free)
And you can donate a fee for my work. (via Paypal, Button is shown in register form and about dialog)
Why?
Simple:
I spend much time in adding things, improving features etc...
When I get enough donations, I also of course will share the money with all project helpers, co-developers etc...!
Also your name will appear in future releases in the donors list!
You can download the newest beta from today here:
http://cpc-live.com/data/list.php?dir=-beta (http://cpc-live.com/data/list.php?dir=-beta)
Small workaround for Windows users with a fast PC and Win XP with SP3....
Perhaps JavaCPC runs slow on your system.
(FPS are around 30 fps but emulation seem to work ok)
I figured out something:
When you have DXDIAG.EXE running in background, the emulator has full 50 fps!
How?
Click START -> RUN
Enter dxdiag.exe and press return.
When dialog is opened completely (loaded all drivers etc) you should have ~50 FPS in JavaCPC!
Please keep me informed if you can confirm this!
(Perhaps there is a way to preload Direct-Draw DLL's from Java?)
I can confirm that, so long as dxdiag is run first. Not sure if it really improves performance or not though, 30-40fps doesn't seem to be much different than 50fps. But I do remember it being slow before, though. Weird.
Quote from: mahlemiut on 22:25, 05 February 11
I can confirm that, so long as dxdiag is run first. Not sure if it really improves performance or not though, 30-40fps doesn't seem to be much different than 50fps. But I do remember it being slow before, though. Weird.
Well, 50 fps means smooth scrolling ;)
New features:
- CPC-speaker emulation (Let's squeak on 1 channel! 1w 5cm speaker power!!! Can you boost it? I really like nostalgia thats why I coded it!)
- Low pass audio filter (perhaps some people like it)
Selectable in Audio-settings...
(http://cpc-live.com/filtertest/FirstFrame.png)
You'll find the download (http://cpc-live.com/data/download.php?type=-beta&fichier=2011_02_08_JavaCPC_Desktop_BETA.zip) <<<<< here! :D
Quote from: Devilmarkus on 23:04, 08 February 11
New features:
- CPC-speaker emulation (Let's squeak on 1 channel! 1w 5cm speaker power!!! Can you boost it? I really like nostalgia thats why I coded it!)
That must be perfect for Orion Primes ESX sound system, which is specially made for the internal speaker ;D
Quote from: TFM/FS on 23:06, 08 February 11
That must be perfect for Orion Primes ESX sound system, which is specially made for the internal speaker ;D
I don't know, but I'm sure, you'll report soon how it sounds ;)
Quote from: Devilmarkus on 23:07, 08 February 11
I don't know, but I'm sure, you'll report soon how it sounds ;)
Damn! How can you be that quick in posting... the JavaCPC still boots ,-)
Quote from: TFM/FS on 23:13, 08 February 11
Damn! How can you be that quick in posting... the JavaCPC still boots ,-)
I don't know, which JavaCPC boots for you, but the one I uploaded today has 0 downloads yet... :P
Quote from: Devilmarkus on 23:15, 08 February 11
I don't know, which JavaCPC boots for you, but the one I uploaded today has 0 downloads yet... :P
Well, you may should provide a link... sorry, but you got toooo much homepages ;-)
Quote from: TFM/FS on 23:17, 08 February 11
Well, you may should provide a link... sorry, but you got toooo much homepages ;-)
Here is the direct download link:
http://cpcwiki.eu/forum/index.php/topic,484.msg19303.html#msg19303
Quote from: Devilmarkus on 23:17, 08 February 11
Here is the direct download link:
http://cpcwiki.eu/forum/index.php/topic,484.msg19303.html#msg19303 (http://cpcwiki.eu/forum/index.php/topic,484.msg19303.html#msg19303)
Ah, thanks, now I found it. Hard to see under that giant picture...
Working on new Debugger-UI:
(http://cpc-live.com/debugger1.png)
(http://cpc-live.com/debugger2.png)
Any ideas, which infos to add, too?
Are you sure, that the PPI registers are shown correct. I doubt the values of A and B. But C and control seem to be ok. Have to check that in more detail.
Quote from: TFM/FS on 19:28, 10 February 11
Are you sure, that the PPI registers are shown correct. I doubt the values of A and B. But C and control seem to be ok. Have to check that in more detail.
Fixed the panel...
Quote from: Devilmarkus on 09:58, 11 February 11
Fixed the panel...
Great! Keep us posted when you release the next beta :)
Does JavaCPC run at all under Linux, or did I just imagine reading that? It just waits forever while loading for me. Runs fine under WinXP, but that crusty old PC isn't all that fast... ;)
I don't think, it runs under Linux... :-[
In next "beta" I will disable internal Java-console by default so we could check which errors are caused on startup.
But I really don't give it a chance that it works with Linux.
(We tried it on Mac, too, and there it worked...)
Quote from: Devilmarkus on 10:14, 14 February 11
I don't think, it runs under Linux... :-[
I'm sure I had JEMU working on Linux at some stage. Will try it on my FC12 box later this week (when I get back from Melbourne).
Quote from: Executioner on 12:01, 14 February 11
I'm sure I had JEMU working on Linux at some stage. Will try it on my FC12 box later this week (when I get back from Melbourne).
Much luck! ;) (JEMU I think works well under linux, except of bad performance because Linux's bad sound implementation)
My other "small" Emu (Based on JEMU, too) should work fine under Linux:
http://cpcwiki.eu/forum/index.php/topic,1871.0.html (http://cpcwiki.eu/forum/index.php/topic,1871.0.html)
But JavaCPC I think is quite too complex and sure has some bad written routines, which fail on Linux systems...
(It also copies windows resources like CPCXFS, SamDisk etc...) into C:\Documents & Settings\Username\JavaCPC or different path for Win Vista/7 which logically work only with Windows OS.)
Also it's strongly recommended that you run JavaCPC with full administrator rights!!!
Perhaps you remember that I wanted to use some Java styles which need a license.
I now implemented these styles, too, but they only work, when you have the libraries needed.
(JavaCPC detects if you got them or not)
They use my private license but I will never distribute the licensed .JAR libs which you need.
(You can license them for free when you use them on your private PC, then you get a DL-Link and you can download them and add them to JavaCPC's install_dir\libs)
B'coz it's Valentine's day I compiled the actual state and offer it for download:
(X-tra large because TFM's little eyes)
Download (http://cpc-live.com/data/download.php?type=-beta&fichier=2011_02_14_JavaCPC_Desktop_BETA.zip)
No synthetica files or license included!
To get them, visit: http://www.jyloo.com/synthetica/ (http://www.jyloo.com/synthetica/)
JavaCPC asks you for license name and key, when you select a synthetica style.
Thanks baby! ;)
Quote from: Devilmarkus on 12:51, 14 February 11
But JavaCPC I think is quite too complex and sure has some bad written routines, which fail on Linux systems...
(It also copies windows resources like CPCXFS, SamDisk etc...) into C:\Documents & Settings\Username\JavaCPC or different path for Win Vista/7 which logically work only with Windows OS.)
This bit works (the copying, at least), they are copied to ~/JavaCPC (~ = the user's home folder, Documents and Settings\User is the Windows equivalent to that). Does it attempt to run any of the Windows apps while loading?
No... The Win apps are only called when you need them.
(DiskUtil, Wav2CDT, etc...)
Please edit javacpc.ini and change this entry:
console=true change to:
console=false
Then, please run JavaCPC.jar from a command line.
java -Xmx512m -jar JavaCPC.jar
Please send me the console output as mail if possible (or in MSN).
(webmaster[at]cpc-live.com)
just a dirty little preview:
http://cpc-live.com/topsecret/ (http://cpc-live.com/topsecret/)
Don't expect too much!
Actually it's the only game which works :laugh:
Perhaps I will finish the rest in 10 or 20 years :police:
I guess you just started ASIC implementation ?
Great thing... good luck !! :D
Looks promising :-)))
Oooohhh... ahhhhhH!
Well so far:
(http://cpc-live.com/plus/plus1.png)
(http://cpc-live.com/plus/plus2.png)
(http://cpc-live.com/plus/plus3.png)
(http://cpc-live.com/plus/plus4.png)
(http://cpc-live.com/plus/plus5.png)
(http://cpc-live.com/plus/plus6.png)
Only working games are:
Barbarian 2,
Tin Tin on the moon
and Mystical.
Need to add much more (DMA, plus raster interrupts, etc....)
There also seem to be a bug in memory itself... Still working on it...
Working on it......
(Just want to keep you updated)
(http://cpc-live.com/spritetest2.png)
Menu is crap but the game plays OK....
(http://cpc-live.com/spritetest.png)
Call &BD'N'OEUF works nice now...
A small oversight of what is working and what not:
http://cpc-live.com/crapandworking/index.html
Much more emulation is needed to get the other things working, too...
And I still have this memory leaking issue :'(
Mate, are you aiming at a 100% working Plus emu or is it a side-project? :)
Quote from: Gryzor on 19:27, 27 February 11
Mate, are you aiming at a 100% working Plus emu or is it a side-project? :)
First...
Why not JavaCPC with + emulation?
But I'm still far far away from something releasable....
Oh no! I didn't say you shouldn't - of course you should!!! It's just that, IIRC, you had once said it wasn't going to happen... :)
Actually I am working on CRT phosphor matrix emulation...
(http://cpc-live.com/rgb_mask3.png)
I need to improve the framerate (It's still 50fps internally but when the blur-filter is active, the image flickers when here is any motion)
Well, I agree, technical improvements are wonderfull, but without 50 fps pretty needless.
Looking very cool, though I think that a little more transparency on the matrix would be better? I also like the screen glare :)
Also working on a Eagle-like filter like Mame has:
Without filter:
(http://cpc-live.com/eagle0.png)
With filter:
(http://cpc-live.com/eagle1.png)
(http://cpc-live.com/eagle2.png)
Quote from: Devilmarkus on 10:25, 03 May 11
Also working on a Eagle-like filter like Mame has:
[screenshots removed]
Which Spanish adventure game do the first two screenshots come from? I don't recognise it. ???
Nich, it is Leyend :) http://amstrad.es/juegosamstrad/zonadeaventura/aventuras/leyend.php (http://amstrad.es/juegosamstrad/zonadeaventura/aventuras/leyend.php)
I want send to you in the next package of games :D
On FaceBook I uploaded a little overview for the upcoming video filters of JavaCPC.
http://www.facebook.com/media/set/?set=oa.129199530488265
Small update with great new feature:
Today I uploaded my latest build which contains a "Favourite-Browser".
This is to be used as little internal application which can store up to 1000 files in a desktop-style window.
You can simply add the actual DSK from JavaCPC's drive 0 or 1 to it, or also select a file from a filechooser.
You can also drag & drop 1 or more files together into the browser window.
(http://cpc-live.com/favbrowser.png)
The point is that you now don't need to search your most used media on your PC.
Each icon is stored in a config file and you quickly can open each file by double click on it.
On DSK files you can select the drive by right clicking on it and choose to load it to DF0 or DF1.
A few more screens:
(http://cpc-live.com/favbrowser1.png)
Here you can add your files or cleanup the window by rightclick into empty area of the browser.
(http://cpc-live.com/favbrowser2.png)
Typical right-click menu for a DSK file.
You can try the actual beta here:
Download JavaCPC (http://cpc-live.com/data/download.php?type=-beta&fichier=2011_05_15_JavaCPC_Desktop_BETA.zip)
Actually the fav.-browser is only reachable when desktop is choosen.
Played with a few video effects today:
RGB2x filter, scanlines, fullscreen, SuperPAL filter and Monitor mask painted:
http://cpc-live.com/javacpc_rgbfilter.png (http://cpc-live.com/javacpc_rgbfilter.png)
I love what you do with your emulator.
I long for the day i'll have the beast that will allows me to run at full FPS with every option turned on :D
Quote from: remax on 18:10, 16 May 11
I love what you do with your emulator.
I long for the day i'll have the beast that will allows me to run at full FPS with every option turned on :D
Well I have a simple dual core CPU @ 2,8 ghz.
64Bit Windows 7 BUT 32 bit Java!
(I quote somebody well known here: 'javax.sound API sucks') ;)
Worked on the favourite browser: You can add/remove user defined icons now:
(http://cpc-live.com/usericons.png)
(My fav.-browser actually contains 480 files just for a test)
When you add new icons and you already have so many, it takes some seconds, but once defined it works fast enough ;)
New display routines come cuter...
http://cpc-live.com/desktop2.png (http://cpc-live.com/desktop2.png)
I like this way of display painting... ;)
Looks nice, although the play key on the cassette looks like it is broken.
Well it's state is "pressed" so it appears darker than the others ;)
All tape keys which you "press" (click) appear darker then to see which button is pressed down...
No, when you press a key on a real CPC tape deck, the key goes down at an angle whereas your key goes straight down as if it were not connected by a metal bar to the rest of the tape drive.
Quote from: steve on 21:40, 17 May 11
No, when you press a key on a real CPC tape deck, the key goes down at an angle whereas your key goes straight down as if it were not connected by a metal bar to the rest of the tape drive.
In a real tape deck I also don't load a CDT or TZX or CSW or WAV or MP3 :P
I suppose it does not matter whether it looks right or not.
Well, Steve, everything has it's limitations. Also Java and designing GUIs.
But I tried my best to keep it as detailled as possible.
And: Dear Steve, only for your eyes:
A little virtual-tape-drive-mechanics-demonstration:
http://cpc-live.com/steve_demonstration (http://cpc-live.com/steve_demonstration)
Don't worry, when the sound fu**s up... I enabled the drive turbo somewhere.
Also my recorder is not the best with Win 7 ;)
As I said, It looks nice.
I quickly updated the beta download...
Download (http://cpc-live.com/data/download.php?type=-beta&fichier=2011_05_17_JavaCPC_Desktop_BETA.zip)
Fixed a few bugs.
- Major bugfix in paint
- Major bugfix in GateArray emulation and display routines
- A few minor bugfixes
- Replaced monitor mask 1 by a new one (nicier style)
- Fixed Advanced Mame 2x and Eagle 2x display filters (not MODE 0 optimized (yet))
Looks fantastic... Thumbs up! :)
Still working on + emulation like a geek! 8)
Missing:
- Still a bug somewhere in memory! :'(
- Split screen (by ASIC)
- DMA - Sound
- Who knows?!?
JavaCPC - CPC+ emulation (Work in progress) (http://www.youtube.com/watch?v=7rWHtJWMMoU#)
Live-test for you:
http://retropower.eu/CPCInAJar/cpcplus.php?large=true (http://retropower.eu/CPCInAJar/cpcplus.php?large=true)
http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=Panza.zip (http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=Panza.zip)
http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=CrazyCars.zip (http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=CrazyCars.zip)
http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=Enforcer.zip (http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=Enforcer.zip)
http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=Operation.zip (http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=Operation.zip)
http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=Robocop.zip (http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=Robocop.zip)
http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=NavySeals.zip (http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=NavySeals.zip)
Keys: Numberpad 1-9 = F-keys (F0 does not work because I use it for local usage)
Joystick is mapped to:
HOME = Up
END = Down
DEL = Left
PG DWN = Right
INSERT = Fire 1
PG UP = Fire 2
And don't expect something very special! It's still in a very early progress...
Ooh yeah! Plus is the new black ;)
A few more:
http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=NoExit.zip (http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=NoExit.zip)
http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=WildStreets.zip (http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=WildStreets.zip)
http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=Tintin.zip (http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=Tintin.zip)
http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=Switchblade.zip (http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=Switchblade.zip)
http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=ProTennis.zip (http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=ProTennis.zip)
http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=Plotting.zip (http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=Plotting.zip)
http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=Mystical.zip (http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=Mystical.zip)
http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=FireForget.zip (http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=FireForget.zip)
http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=Batman.zip (http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=Batman.zip)
And, as a joke:
http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=JukeBox.zip (http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=JukeBox.zip)
Not working... (yet)
Sadly (because bugs in memory emulation) I can only present you a very few disc-games:
http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=CallBD10noeuf.zip&cpr=Plus.zip&boot=disc (http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=CallBD10noeuf.zip&cpr=Plus.zip&boot=disc)
http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=Fluff.zip&cpr=Plus.zip&boot=fluff (http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=Fluff.zip&cpr=Plus.zip&boot=fluff)
A few gfx bugs but playable:
http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=Frogger.zip&cpr=Plus.zip&boot=frogger (http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=Frogger.zip&cpr=Plus.zip&boot=frogger)
2 simple demos:
http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=Redbox.zip&cpr=Plus.zip&boot=blob (http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=Redbox.zip&cpr=Plus.zip&boot=blob)
http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=Xmas2010.zip&cpr=Plus.zip&boot=xmas2010 (http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=Xmas2010.zip&cpr=Plus.zip&boot=xmas2010)
Quote from: Devilmarkus on 15:23, 29 May 11
2 simple demos:
Yay! Cool to see them working in your emu :)
Quote from: redbox on 12:18, 30 May 11
Yay! Cool to see them working in your emu :)
:D :)
Well, in fact, getting the correct sprite coordinates (Especially the values between FF00 and FFFF) is the pure horror!!!
But I hope I got it now working properly.
This demo almost broke my brain:
http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=stb.zip&cpr=Plus.zip&boot=-stb (http://retropower.eu/CPCInAJar/cpcplus.php?large=true&dsk=stb.zip&cpr=Plus.zip&boot=-stb)
Quote from: Devilmarkus on 19:39, 30 May 11
Well, in fact, getting the correct sprite coordinates (Especially the values between FF00 and FFFF) is the pure horror!!!
Tell me about it...
I thought to myself it would be a nice idea to use the hardware sprites for a scroller as I could keep the 16x16 MODE 1 resolution over a MODE 0 background. But then I had a tough time because I wanted to make them to move in a sinus, and because the sprite on the left is recycled to be the sprite on the right I had to calculate where it should be in the sinus wave when it reappeared...
In the end I cheated and made the whole sinus a multiple of 4 (I think) because I ran out of time to release it before Xmas, and that's why the scroller is much more rough and jumpy than I had wanted it to be.
But you're emu does a great job of showing off my poor and rushed coding in it's full glory! ;)
Well I took my infos from this piece of website:
http://www.cpctech.org.uk/docs/cpcplus.html (http://www.cpctech.org.uk/docs/cpcplus.html)
Sad:
Missing emulation:
- DMA sound
- Accurate!!! + interrupts
- hardware + rasters
- repeating of sprites linewise
- hardware scrolling
And much more...
Working:
- Sprites (very simple routine, may not be accurate)
- Line splitting
- + interrupts (perhaps inaccurate but ok for many games)
- Accurate CPR reading
Known bugs:
- A bug in memory emulation, mapping is not correct
- crap code (for all + features)
- ASIC maybe is incomplete, some CPR don't even boot up, but this maybe is because mem.-bug
No CRTC 3 emulation done yet... (I am using CRTC 0 with some patches)
Quote from: Devilmarkus on 20:23, 30 May 11
Well I took my infos from this piece of website:
http://www.cpctech.org.uk/docs/cpcplus.html (http://www.cpctech.org.uk/docs/cpcplus.html)
Good work so far!!
Keep in mind: Kevin's infos are very condensed with almost no redundancy. That's ok for someone who has a working knowledge of the CPCs, but hardly a learner's guide to the hardware.
Here's the world's first Amstrad Cartridge Demonstrator online:
http://cpc-live.com/jukebox/index.php?large=true&dsk=jukebox.zip (http://cpc-live.com/jukebox/index.php?large=true&dsk=jukebox.zip)
And today I added the next useful internal application to JavaCPC:
I asked McKlain, what could be a useful tool.
His reply: "A way to transfer files from DSK directly to CDT"
Well, I coded this little app. quickly and it works fine.
You just can select the files from DSK in drive 0 in the order you need and write them directly into a CDT file.
Example:
http://cpc-live.com/dsk2cdt/ (http://cpc-live.com/dsk2cdt/) Don't worry because crap sound. I used tape turbo and I recoded a screen area of 1920x1040 pixels!
(No release yet... Still coding...)
Do you have a way to transfer from CDT to DSK too? That would be far more useful!
Quote from: TFM/FS on 05:08, 27 June 11
Do you have a way to transfer from CDT to DSK too? That would be far more useful!
No... Until I can't extract the files from a CDT its not possible ;)
But one day I'll find a solution :D
Working on JavaCPC Paint GUI + features:
- Adding real Zoom-functionality:
http://cpc-live.com/painttest/ (http://cpc-live.com/painttest/)
When Paint is finished, and also a bug in Z80 assembler is removed, I'll roll out a new official release!
(Without + Emulation then! Because it's still too buggy)
Congratulations ! There is lots of work involved here. 8)
I've been testing JavaCPC (6.7) lately on Mac OSX (Snow Leopard), works quite well. It has shown an extremely nice - and feature packed - emulator so far.
I guess the only reason the readme.txt mentions 'Windows PC' in the requirements it the two .exe files in the tools folder? Is the jar on SourceForge current?
I did have some smaller freezes / lockups when loading a tape directly from a .WAV which got generated and regenerated from another program (I'm currently doing a Python port of the TZX2Wav C++ utility, a bit like the CDT2WAV Java version).
Thanks for your feedback, chrd.
Version 6.7 is already very old & outdated.
Since I applied a complete desktop system and many new features, the emulator is not longer hosted on Sourceforge.
Also the actual version is meant to be used on Windows systems only, because it uses a few command line based Windows-Tools.
(It could work also on Mac OS when you start the .jar file! but will not support the features like DSKUtil, CDT/DSK transfer tools etc...)
You should also make sure, that you launch it with -xms set.
e.g. java -Xms768m -jar javacpc.jar
You can download and test the actual beta here:
Download 2011-07-14 beta (http://cpc-live.com/data/download.php?type=-beta&fichier=2011_07_14_JavaCPC_Desktop_BETA.zip)
Quote from: Devilmarkus on 21:55, 22 July 11
Thanks for your feedback, chrd.
Version 6.7 is already very old & outdated.
Since I applied a complete desktop system and many new features, the emulator is not longer hosted on Sourceforge.
Also the actual version is meant to be used on Windows systems only, because it uses a few command line based Windows-Tools.
(It could work also on Mac OS when you start the .jar file! but will not support the features like DSKUtil, CDT/DSK transfer tools etc...)
You should also make sure, that you launch it with -xms set.
e.g. java -Xms768m -jar javacpc.jar
You can download and test the actual beta here:
Download 2011-07-14 beta (http://cpc-live.com/data/download.php?type=-beta&fichier=2011_07_14_JavaCPC_Desktop_BETA.zip)
Thanks!
I can confirm that this JavaCPC version is working perfectly fine (apart from the missing features) on OS X 10.6.8.
java -version:
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07-334-10M3326)
Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02-334, mixed mode)
Quote from: Devilmarkus on 20:45, 13 July 11
No... Until I can't extract the files from a CDT its not possible ;)
Some applications as Spectrum Taper can do it. Perhaps you could start to seek there ;)
Quote from: MiguelSky on 01:19, 23 July 11
Some applications as Spectrum Taper can do it. Perhaps you could start to seek there ;)
I already searched there.
But no tool is good for my requirements...
Update on running Java CPC under Linux...
Uninstalled Pulseaudio, now it will run at 51(?) FPS. But only if it is to 44100Hz. Any other setting goes back to 5FPS. Also, there is no AY output. Drive noises, SP0256 output, and so on do work well.
When running slow, either with or without Pulseaudio, the console output shows constant "resync: start = 0" messages.
A few people have shown me a link to an emulator, which has a "screen lens effect" (Forgot the link, sorry...)
Well I tried to code that, too, but with only 1-2fps it's not really fun!
(http://cpc-live.com/Screen_Effect.png)
Mmmm...not very realistic I'm afraid... Maybe the lack of scanlines?
You lack the border, and the screen lens effect is not as big on a monitor as shown in your example.
I also don't think that such an effect is justified as it adds little value to the retro quality of the CPC image, especially since such algorithms are quite costly on the java platform. The OS X terminal emulation in the other thread is compiled natively for sure.
Well, give him a break, it was a first effort :)
Don't need a break because I already abandoned this crap...
But the CTM-phosphor emulation I like:
(http://cpc-live.com/CTM-emulation.png)
Of course it's not the closest result but it's coded in pure java without any accelerators!
Yes, good phosphor emulation is definitely more important. By default the CPC screen has such wide borders that the curvature effect is fairly minimal anyway.
And I suspect Cathode uses a textured OpenGL surface for the curved screen, so of course its frame rate is much better--the "screen bending" effect is not done by the CPU but the GPU. And yet the program is still a total CPU hog according to the YouTube comments.
Quote from: Morn on 23:04, 20 August 11
And I suspect Cathode uses a textured OpenGL surface for the curved screen, so of course its frame rate is much better--the "screen bending" effect is not done by the CPU but the GPU. And yet the program is still a total CPU hog according to the YouTube comments.
I can imagine that. It expects a better graphics chip in the Mac, so the Intel-chips and even some better ones won't work.
The effect looks very nice, but I need a responsive system.
You could try fiddling with the HLSL effects in MESS, you can get some nice output from that, provided you have a reasonably powerful video card (Pixel Shaders 3.0 or later recommended, Windows only, but runs well under Wine).
Those HLSL-based CRT effects look pretty nice indeed! Here's an example with MAME, not MESS. Could really have fooled me into thinking this was filmed off an arcade CRT.
This is also good news for arcade enthusiasts, because finding replacement CRTs is becoming more and more problematic for them apparently.
The biggest problem to realize such effects is:
The emulated systems have a screen resolution of 320x240 (or so) so it's easy to resize this screen to a triple size.
There you can add easily new rendered dots, lines etc...
But the CPC uses at least 768x272 pixels.
There it's much harder to add additional pixels.
I am doing the same method as its used in DosBox.
I also use just 384x272 pixels, and stretch them to double (768x544)
So I can re-render each pixel to a new 2x2 dot.
{R}{G}
{B}{L}
This demonstrates a single CPC dot in MODE 1.
I split this pixel into R,G, B and also L (RGB as its by default)
Thus, a MODE 2 screen looks more weird of course.I also can't use any hardware accelerators (jogl, or similar) to improve the speed, so really just some tricky algorithms can do the effects I made in JavaCPC.
WinApe for example:
I am sure, the PAL effect is done with usage of Direct-X accelerated routines...
Unfortunately that MAME filter doesn't come near the real stuff... I hope my arcade cab's CRT lasts for many years to come!
Thanks to Antonio Villena, JavaCPC will be able soon, to playback a modified .TAP format as tape image:
I will also add a converter which can convert CDT images to .TAP format.
Sadly the .TAP work only with unprotected CDTs...
Quote from: Devilmarkus© on 10:48, 02 September 11
Thanks to Antonio Villena, JavaCPC will be able soon, to playback a modified .TAP format as tape image:
I will also add a converter which can convert CDT images to .TAP format.
Sadly the .TAP work only with unprotected CDTs...
Maybe a silly question and maybe it's been answered before (did a short search), but: how were tapes protected? It *was* just sound after all... No damaged sectors, no weird layouts, no strange disk formats...
They can be protected by binary routines.
Speedlock for example resets your CPC when the tape speed it a few µS too slow or too fast.
But there are several protection methods...
So, for instance, if you got a really hi-end double-decker you can copy a Speedlock protection theoretically?
Sure, why not?
Ok, I see. I realised MacDeath has put together a nice category (http://cpcwiki.eu/index.php/Category:Copy_Protection (http://cpcwiki.eu/index.php/Category:Copy_Protection)) but there's not much info... maybe an interesting topic!
Quote from: Devilmarkus© on 18:01, 21 August 11
WinApe for example:
I am sure, the PAL effect is done with usage of Direct-X accelerated routines...
Nah, just RGB averaging with alternate half-bright for scan lines.
Quote from: Executioner on 04:24, 05 September 11
Nah, just RGB averaging with alternate half-bright for scan lines.
Humm yes...
It's a quite fast rendering method.
Thanks to demoniak, who told me how this can be done, I adapted it:
Quote from: Gryzor on 10:56, 02 September 11
So, for instance, if you got a really hi-end double-decker you can copy a Speedlock protection theoretically?
I did it all the time :laugh:
Quote from: Devilmarkus on 20:58, 05 September 11
Humm yes...
It's a quite fast rendering method.
Thanks to demoniak, who told me how this can be done, I adapted it:
Yeah, that's the idea.
Is more realism with a few lines of code possible?
(http://cpc-live.com/ultra_realistic_pal.png)
Quote from: Devilmarkus on 22:19, 07 September 11
Is more realism with a few lines of code possible?
(http://cpc-live.com/ultra_realistic_pal.png)
This looks quite GREAT :-)
Added TV-snow distortion (adjustable in intensity)
(http://cpc-live.com/pal_snowy.png)
(High intensity)
Another screenshot:
(http://cpc-live.com/ultra_realistic_pal2.png)
(http://cpc-live.com/pal_snow.gif)
Medium snow intensity + PAL emulation ;)
What's that? My CTM never showed such a bad pic! :P
Quote from: TFM/FS on 17:44, 08 September 11
What's that? My CTM never showed such a bad pic! :P
But a TV with MP2 surely does...
Now you need to simulate failed tape loads with realistic loading times! :laugh:
Quote from: Devilmarkus on 21:59, 08 September 11
But a TV with MP2 surely does...
Don't forget to add emulation of a broken TV that doesn't even switch on :D
Joking apart, i really like your filter but i suspect i won't be able to use it soon as even with no effects, your emu runs barely at full speed on my computer
Well, the PAL-Filter itself shouldnt slow down the speed too much I think.
The Blur-Filter and also the chooseable RGB2x, Adv. Mame 2x and Eagle2x filters would slow-down it more I think.
But if you like, I can send you a compiled .jar (You then can replace it in your JavaCPC-Folder)
You can find me in Skype or MSN ;)
(Just ask me for account)
Tell me more about your system-specs.
Quote from: steve on 23:04, 08 September 11
Now you need to simulate failed tape loads with realistic loading times! :laugh:
Well, the broken tapes you can produce simply! Just damage a .WAV file ;)
The loading speed for CDT is the same than for a real tape.
Quote from: Devilmarkus on 18:44, 09 September 11
Well, the PAL-Filter itself shouldnt slow down the speed too much I think.
The Blur-Filter and also the chooseable RGB2x, Adv. Mame 2x and Eagle2x filters would slow-down it more I think.
But if you like, I can send you a compiled .jar (You then can replace it in your JavaCPC-Folder)
You can find me in Skype or MSN ;)
(Just ask me for account)
Tell me more about your system-specs.
Fine :)
I'll do it that week end
Quote from: Devilmarkus on 18:44, 09 September 11
Well, the broken tapes you can produce simply! Just damage a .WAV file ;)
The loading speed for CDT is the same than for a real tape.
But the user will know that a program is not going to load successfully, you need to introduce a random element to the load function so the user does not know when a load will fail.
Quote from: steve on 19:17, 09 September 11
But the user will know that a program is not going to load successfully, you need to introduce a random element to the load function so the user does not know when a load will fail.
You mean something like a virtual tape-head adjustment? Which de-adjusts itself after a while? :laugh: :laugh: :laugh:
Excellent idea, you could add a tape head alignment program for users to use to get the load function working again.
Quote from: steve on 19:23, 09 September 11
Excellent idea, you could add a tape head alignment program for users to use to get the load function working again.
Well, I'm afraid, but I think only 1 user would like this then... His nick is "steve" ;)
:laugh: :laugh: :laugh: :laugh: :laugh:
TODO-list for steve's CPC emulator:
- tape head alignment (tape head must de-align itself)
- floppy belt weakness after ~200DSK images (You need to change the virtual belt with a virtual screwdriver... Don't forget the virtual write-protection-pin must fall out, and you need to find it using a virtual lens)
- Explosive capacitators in monitor-emulation and also a weak flyback emulation which produces flashes, smoke and thunder
- breaking virtual plastic case which makes it hard to build-in virtual reset switches, or other virtual crap
- broken tapedoor which does open automatically when you press Enter
- overheating high-power-transistor in monitor emulation, which burns, produces smoke and causes also a high-voltage-flush into the emulated CPC
- crackling noise, when you change the CPC's volume (Best: just turn on the audio-output @ 3 fixed positions for the volume slider!)
Well, what else?
If you do implement all these "features" in your emulator then I will use a real CPC as it gives me a lot less trouble ;D
Once a while I wish to have just a very fast emulator...
Could you add a tape counter that is completely non-linear and randomly resets itself too? That would be great :) But I think the read-error should be completely random and even happen on known good wav files, like the real CPC likes to do. Knowing that the wav is corrupt takes the "fun" out of it.
Oh, and a sticky Enter key would really make me feel like it's a real CPC :)
Bryce.
Never seen a self-resetting counter, does this happen for reals?
I'd love a virtual srewdriver to align the deck with. I have fond memories of doing that, actually (for some masochistic reason), with that classic tape with the chopper test game...
I like the virtual screwdriver, care to make it work with the Wii Remote via bluetooth?
Just for the authentic taste ;D ;D ;D ;D ;D
Working and experimenting with emulating the screen-curvature!
Using Java3D here... And the result already has 50fps!
Quote from: Devilmarkus on 18:00, 19 October 11
Working and experimenting with emulating the screen-curvature!
Using Java3D here... And the result already has 50fps!
Nice Helloween effect, also good for a demo effect - short before the CRT explodes. ...
But honestly... have you ever seen a real CPC screen?
I wrote that I am experimenting ;)
This is not the final result!
Never mind :D
I think the outer curve is very pronounced, but the screen itself looks about right :)
But why 3D?
Java 2d is too slow...
So I create a 3d sphere, and set the CPC display as texture...
Few more shots:
Markus, IMHO you should make your emulator faster instead of wasting time with surealistic experiments. That's just IMHO and you can kick my butt if you feel better then. But that's my 9 Cents ;-)
Well, for me it's fast enough ;)
Perhaps you can reduce the texturesize from 1024x1024 to 512x512 later, when I release this...
(3D Display will be optional then!)
I think my curvature is almost accurate!
Let's compare...
(thanks to SyX for this nice screenshot!)
(http://www.cpcwiki.eu/forum/index.php?action=dlattach;topic=2821.0;attach=2453;image)
(http://cpc-live.com/javacpc_curvature.png)
You are welcome Markus :)
I have my CPC attached to a 14" Samsung TV by scart and my TV has "heavy round corners" ;D
Notice that in this configuration, my CPC show 2 scanlines more, 272 instead 270, it's very clear in the TotO signature ;)
Yes I know about the 272 lines ;)
JavaCPC hides them because the monitor mask... Will pixel a new mask (just rounding the edges) for the 3d panel, soon.
Quote from: Devilmarkus on 13:46, 20 October 11
Well, for me it's fast enough ;)
Ok, if my one year old $4000 Laptop with 3.6 GHz has serious problems to hold 50fps and drops more often down to 20fps (for reasons I still can't understand) then it's not fast enough for me. But if you are lucky with it then it's all good :)
I have no speed issues on my Intel Quad Core. I like the way Java CPC focuses on different things to other emulators - means you have a choice instead of them all being the same!
Quote from: redbox on 18:22, 20 October 11
I have no speed issues on my Intel Quad Core. I like the way Java CPC focuses on different things to other emulators - means you have a choice instead of them all being the same!
You miss the point here.
Quote from: TFM/FS on 18:19, 20 October 11
Ok, if my one year old $4000 Laptop with 3.6 GHz has serious problems to hold 50fps and drops more often down to 20fps (for reasons I still can't understand) then it's not fast enough for me. But if you are lucky with it then it's all good :)
Quote from: TFM/FS on 22:46, 18 October 11
Since the update it's all good!!!! Thanks!
Hmmmmm!?!?!? :D
Well anyway...
I pixeled a new mask and now the result looks more realistic:
http://cpc-live.com/screen_curvature (http://cpc-live.com/screen_curvature)
Sadly the display sometimes flickers... need to check out, why....
With half texture size it's stable!
Markus, nimm das jetzt bitte mal nicht ernst, ich sag's mit einem lächelnden Auge: Langsam wird mir klar wie ich die Leute mit meinen andauernden Kommentaren über FutureOS genervt haben könnte. Manchmal ist weniger eben mehr ;) :laugh:
Och Du nervst net ;) Ich weiss ja, von wems kommt :P
Quote from: Devilmarkus on 18:45, 20 October 11
Och Du nervst net ;) Ich weiss ja, von wems kommt :P
Da spricht wahre Weisheit aus Dir 8)
Quote from: Devilmarkus on 18:39, 20 October 11I pixeled a new mask and now the result looks more realistic
Nice job. The mask size allow to use it in full screen ? (1280x960 4/3 ratio ?)
Also, I think your mask is a bit too much blurry compared to a real CTM.
Well the mask is not blurry ;) It's the enabled PAL effect but can be disabled.
Later the screen will be with the correct aspect ratio also on widescreen monitors (I'm also using 1920x1080 pixels here)
Actually I'm fiddling out, why JavaCPC denies it's work on TFM's PC ;)
Seems that he has 64 bit Java installed.
Please make sure you use 32 bit Java!
http://javadl.sun.com/webapps/download/AutoDL?BundleId=56697 (http://javadl.sun.com/webapps/download/AutoDL?BundleId=56697)
Quote from: DevilmarkusWell the mask is not blurry ;) It's the enabled PAL effect but can be disabled.
PAL effect is nonsense. In 50Hz the picture is not blurred, but the lines are more closed than 60Hz display. That all.
Nobody using a "PAL" CPC get that ? :P
Quote from: DevilmarkusLater the screen will be with the correct aspect ratio also on widescreen monitors (I'm also using 1920x1080 pixels here)
Great ! :-*
without PAL effect it's much clearer!
Let's compare the screens: (Too less FPS actually because I'm still rendering both the same time: 2d and 3d display, will change that soon...
OK, so the "problem" is not the PAL filter, but the scanline mode with too much space between lines. (unlike on NTSC)
So, if you use both effects, you got a blurry NTSC and not a fake PAL screen.
This looks wonderful, Markus! I actually like the slight blurriness. If anything, on-screen characters in emulators always look unrealistically crisp. And dithered graphics in games were meant to be seen a little blurred. That's also the main reason for emulating arcade monitors in MAME I think.
Quote from: Devilmarkus on 18:39, 20 October 11
Well anyway...
I pixeled a new mask and now the result looks more realistic:
http://cpc-live.com/screen_curvature (http://cpc-live.com/screen_curvature)
Sadly the display sometimes flickers... need to check out, why....
With half texture size it's stable!
Quote from: Morn on 13:30, 24 October 11
That's also the main reason for emulating arcade monitors in MAME I think.
You mean the filters they have incorporated to it?
Yeah, nothing beats my Hantarex...
Quote from: Gryzor on 21:05, 30 October 11
You mean the filters they have incorporated to it?
Are those deliberate filters? I always thought this was just some unavoidable analog blurriness in those monitors. But it does look rather nice for games. As does the 1084 Amiga monitor.
It's also really sad how low color saturation on LCDs is, compared to those old CRTs. I think this is especially true for orange-red hues—just terrible gamut on LCDs for those warmer hues.
Nonono, I was talking about MAME. Old machines didn't have any filters, of course, devs worked with the equipment limitations to do nice stuff...
Speaking of gamuts, back in 2005 I saw the technical data for Sony's TVs. Lots of nice charts. I went for a CRT :D
Does registration work? I've now registered several times, but those extras (like Pacman) that require registration still don't work...
Also, some video options (filters, size...) seem stuck no matter what I check/uncheck... how can I enforce changes?
Cheers
G
1) Perhaps your firewall blocks access for JavaCPC to the internet. Use the Offline-registration.
2) Dunno?!? Perhaps you have bad/beta graphics drivers installed?
1. I have tried offline registration too. No firewall. The funny thing is registration appears to work in the registration dialog (the key is filled in), but no extra features are enabled...
2. I don't think so... the thing is, I can turn the options on, and they work, but turning them off and on again is very erratic. It's not like the options don't work due to a bad driver, it's just that I can't disable them most of the time. I just ran it again and seems to be working now, whereas it didn't work an hour ago :D
Perhaps you are running Windows in an absolutely non-admin mode?
Launch JavaCPC.exe with admin rights and retry...
(Should also work without but just try)
Another tipp:
When the console is openend (The DOS-Box like command console) enter "bug" without "" and fill out the form.
So I can perhaps check what happens...
Edit:
Or click "Save" in the console.
Then store it's output as .txt file and email it to me...
I did try running it as admin, but will also try the debug output and let you know. Thanks :)
You can also zip & send me these files:
C:\Users\XXXXX\JavaCPC\javacpc.ini
C:\Users\XXXXX\JavaCPC\desktopsettings.xml
C:\Users\XXXXX\JavaCPC\romsettings.xml
(Where XXXXX is your username)
Edit:
javacpc.ini should contain the reg. info like this:
usercode=xxxx-xxxx-xxxx-xxxx
usermail=webmaster@cpc-live.com
username=Markus Hohmann
Because SyX told me, I'm fiddling on the GFX-Ripper:
I'm adding a "Skip bytes" feature to the sprite viewer... This makes it possible to easier edit sprites for games like Army Moves...
Screenshot:
[attach=2]
Well done Markus!!! :D :D :D
I love this new feature :) A lot of games have an extra few bytes after each sprite/tile (size, attributes or similar things), and it was superboring and super annoying going from one to one for making graphics hacks :)
Quote from: Devilmarkus on 16:19, 21 August 13
Because SyX told me, I'm fiddling on the GFX-Ripper:
Fiddling? You get a golden fiddle if you (or somebody else) is capable of hacking a sprite from Cyber Huhn with such a tool.[nb]Hacking sprites from screen doesn't count here. However it's usually the most easy way [/nb]
No time to check CH now...
Working on a game map viewer:
[attach=2]
Few maps I exported on the fly:
Builderland:
[attach=2]
Vixen, Level 1:
[attach=3]
Vixen, Level 2:
[attach=4]
Vixen, Level 3:
[attach=5]
AMAZING WORK MARKUS!!! :D :D :D
Bruno is going to love this feature for filling CPC-Power with maps without need to save screen to screen :)
that's what i was going to say! :D
Another test:
Level 1, The Last V8
Info:
start tiles:
&3200
width:
2
height:
8
map:
start address:
&4600
map width:
128
map height:
60
Reverse X:
selected
Result:
[attach=2]
How i got this map:
I started the game and stopped it with the debugger.
Then I opened the GFX-ripper.
There I found out the position of the tiles, their width and height:
[attach=2]
I made sure, that the first tile is at first position and clicked it once with left mouse button.
Then I marked the last tile with the right mousebutton thus I got a range of tiles:
[attach=3]
Last, I clicked "Generate Map", and the map window pops out.
There I guessed the width (128) and played with address and height.
Result:
[attach=4]
The Stormlord I maps:
[attach=2]
[attach=3]
[attach=4]
[attach=5]
Into the Eagles nest:
[attach=2]
WoW!!! Unbelievable, that it works with so much games!!! Great work!!!
Markus, you know how to have fun ;)
The people is going to love tinkering when it's available :)
PD: In case you don't know, Eagle's Nest has a few floors (using the elevator)... but you need to leave maps to explore by us, jajaja.
I know, SyX ;)
Also The Last V8 has 2 levels...
:P
Will add the feature to export map info:
tiles start address, tile width, tile height, # of total tiles, address of map in ram, map raster x and y...
(Just to annoy SyX):
Last V8 level 2:
[attach=2]
Prohibition:
[attach=3]
What a great tool, good work :)
Markus: Now I got a harder task for you: Get the Giana Sisters Maps... 8) Why? :o You will need to explore Expansion RAM in addition. ;)
A question can you tell us how these maps are usually constructed? I mean the games like Prohibition f.e. Is it a simple map or more complex?
It's quite simple:
That is, what my tool actually does:
First you find the tiles, and mark them. (Important: First tile needs to be in the upper left corner of the GFXViewer)
If you don't mark them, 256 tiles are used.
Then, when you start the "Map Generation", the tool copies all tiles as single bitmaps into an array.
tile[0], tile[1],.....tile[255]
256 tiles are max. possible. (8bit)
Now the GameMap Ripper opens and you can play around with the start address, width and height of the map you search.
It then simply does a for-next loop through X and Y and draws the tiles to a large bitmap.
Pseudo-Code:
address=&4600
maxtile=256
width=128
height=60
offset=0
for x=0 to width:for y=0 to height
drawTile(x,y,tile[PEEK(address+offset) % maxtile])
offset=offset+1
next y: next x
This is fucking magic ;D
Now: To make things round like a circle (don't expect me to tell you some sense here), like a dog that bites his tail - only one thing is left.... An export function for for Tiles and Maps to the CPC format (ManageDSK can put them to a DSK then, or maybe JavaCPC can do it already :-))
BTW: For developing Maps on the CPC you can use this one (German only):
[/color]http://futureos.cpc-live.com/files/GSEd_German_Release.zip
You can export the selected tile range in GFXViewer as raw binary.
It's stored then in JavaCPC's folder with startaddress and length in filename.
I took a short video of how I ripped the map for "Into the eagles nest"
Erstellt von Camtasia Studio 8 (http://cpc-live.com/gamemapripper/)
(I already searched the tiles in the GFXViewer, they are easy to find)
He found the MATRIX!
Little contest:
Who will be the first posting a ripped game map here?
Tip: Rip the game "Street Machine"...
Info:
TileAddress= &7D40
TilesNumber= 148
TilesWidth = 4
TilesHeight= 16
MapAddress = &3880
MapWidth = 160
MapHeight = 110
Working on new features:
- 16bit encoded maps
- Skippable lines for games like Cybernoid (Cybernoid has collision data between the lines)
- Mapper (To create gamemaps for games like Cybernoid)
Screenshot and video:
[attach=2]
Erstellt von Camtasia Studio 8 (http://cpc-live.com/maptest/)
I'll be copying this map export feature in the future ;)
Quote from: arnoldemu on 15:06, 23 August 13
I'll be copying this map export feature in the future ;)
In future? Wait ... these are my words! ;-) :-D
Good idea to copy it ;)
Here a few more maps:
@arnoldemu: Your first step should be an import function for such textfiles:
Example for Cybernoid 1:
TileAddress= &8323
TilesNumber= 170
TilesWidth = 4
TilesHeight= 16
MapAddress = &BA80
MapWidth = 16
MapHeight = 10
ScreenMode = 0
ModeLinear = 0
16BitMap = 1
SkipLines = 1
It feeds my GFXViewer and GameMap Ripper with required informations.
Of course the infos for the GFXViewer are compatible to WinApe's GFXViewer: (TileAddress, TileWidth and TileHeight)
Quote from: Devilmarkus on 16:39, 23 August 13
Of course the infos for the GFXViewer are compatible to WinApe's GFXViewer: (TileAddress, TileWidth and TileHeight)
This also tells me that a lot of good programmers didn't use exactly fast tile printing routines (back in the day).
Otherwise the tiles would have their lines in a different order...
That would work for certain screen ( x * y ) modes only anyway.
The most time consuming part is always to move sprites and not that much shifting tiles in from the side.
Further if a game has no scrolling, the difference remains in the ms region, so the user wouldn't mind.
OK, who is the first to patch a level in such a game?
You can't edit such a map (yet)
I did not implement writing tile indexes into ram.
Where are the R-Type (128K) maps!!! ;D
Quote from: TotO on 20:07, 23 August 13
Where are the R-Type (128K) maps!!! ;D
Inside R-Type? :P
Added keyboard relocation from CPC window to GameMapper window.
So now you can create gamemaps on the fly, while playing:
CTRL + Arrow keys: Append new map screen to game map (at choosen direction)
Just arrow keys: move position marker around in game map
Space: Put actual screen to choosen position in game map
Delete: Erase actual choosen position in game map
Erstellt von Camtasia Studio 8 (http://cpc-live.com/gamemapper/)
Quote from: Devilmarkus on 19:50, 23 August 13
You can't edit such a map (yet)
I did not implement writing tile indexes into ram.
That all can be done by hand. JavaCPC shows all needed addresses.
Quote from: TFM on 21:58, 23 August 13
That all can be done by hand. JavaCPC shows all needed addresses.
Thats true...
Well at least when you get the maps directly from ram.
Actually working on off-screen mapping...
(Capture gamemaps from CPC screen)
You can select an area on the CPC screen which will be the "Capture Area".
Then you can create a gamemap directly from screen in the same way, as the regular ram mapper already works.
Example: (No, I did not play the whole game! Just a quick & dirty test)
Hi Markus,
Very impressive :D .
Now no excuse from user to sending map from game to cpc-power ;D
But if you work on game not mapped by me it's more interesting LOL
Kukulcan
It's simple to find maps in ram...
I just finished coding the ScreenMapper (Capture game maps directly from CPC screen)
With this feature even every noob can create game maps.
Video:
JavaCPC GameMapper (Screen capturing) (http://cpc-live.com/screenmapper/)
The ScreenMapper is directly accessible from JavaCPC menu and does not need the GFXViewer or the RAM-mapper active.
Just start it, define a rectangle on CPC screen, and start mapping.
Define screen area is key controlled in CPC display:
- Arrow up -> move rectangle up about 1 pixel
- Arrow down -> move rect. down about 1 pixel
- Arrow left/right -> move rect. left/right about 1 pixel
+ SHIFT:
move rectangle about 8 pixels
- CTRL + Arrows: change rectangle width/height about 1 pixel
+ SHIFT:
change rectangle width/height about 8 pixels
Mapping is key controlled in CPC display:
- CTRL + arrow keys: Append actual screen at choosen direction
- SPACE: Put actual screen to actual position
- DELETE: Remove screen from actual position
- Just arrow keys: Change position
Quote from: redbox on 17:50, 23 August 13
This also tells me that a lot of good programmers didn't use exactly fast tile printing routines (back in the day).
Otherwise the tiles would have their lines in a different order...
Well I tend to think a lot of good programmers back in the day were good
spectrum programmers, first and foremost. ;)
But in this case, I can see that a number of the tiles (loot drops, missiles & the green guardians between pillars) all need to move vertically in pixel steps, so optimising tile line order to the screen characters perhaps wouldnt be practical without having an even greater number of printing routines than it already does.
Can't help thinking these would make awesome posters!
As you know, I like useless stuff:
Thanks to McKlain, who had the idea:
Make animated GIFs from sprites in RAM:
(http://cpc-live.com/gfxviewer_gif.png)
(http://cpc-live.com/gifmaker.png)
(http://cpc-live.com/testoutput.gif)
Will finish it tomorrow and release :P
Hohoho... ;D
Few more:
(http://cpc-live.com/hag1.gif) (http://cpc-live.com/hag2.gif) (http://cpc-live.com/hag3.gif) (http://cpc-live.com/hag4.gif) (http://cpc-live.com/skull.gif)
If your emu can understand the Barbarian GFx scheme, it will be nice to convert it from 2bit to 4bit and improve the warriors too. ;D
That's not an emulator problem.
I can make the player sprites visible, but you'd need much code to make them 4bit...
Can someone tell me when the Push'N'Pop music stream will be back online?
In the next release of JavaCPC Desktop I replaced the Push'N'Pop player with an icon for the GFXViewer...
(http://cpc-live.com/javacpc_desktop_2013t.png) (http://cpc-live.com/javacpc_desktop_2013.png)
Oh my, this is an excellent feature! I see a deluge of new avatars coming on :D
I think we should open a new thread to share sprites we make...
And it's very simple to use, if you know, how WinApe's GFXViewer works, you will also be able to use the GFXViewer in JavaCPC...
Quick guide to create GIFs:
- Make sure, first sprite is in upper left corner in GFXViewer
- Left click on it once
- Right click on last sprite to select a range (The Sprites inside the range are grayed out then)
- Click "Create GIF"
In theory that's all you need to know.
Oh and the sprites you select must be in a range... Would be too much work now to select single sprites only...
The GIFMaker should be self explaining.
To change transparent color, just click on a color in the GFXViewer window's palette.
Quote from: Devilmarkus on 15:41, 31 December 13(http://cpc-live.com/javacpc_desktop_2013t.png) (http://cpc-live.com/javacpc_desktop_2013.png)
Love the backdrop... ;D
Quote from: mahlemiut on 22:52, 31 December 13
Love the backdrop... ;D
Here you go:
http://cpc-live.com/232104.jpg (http://cpc-live.com/232104.jpg)
Quote from: Devilmarkus on 23:05, 31 December 13
Here you go:
http://cpc-live.com/232104.jpg (http://cpc-live.com/232104.jpg)
Awesome, thanks! :D