Re: Cannonball:OutRun rewrite σε C++
Δημοσιεύτηκε: 17 Μάιος 2013 05:00
Το κατεβαζετε απο εδω http://massdestruction.co.uk/outrun/can ... 19-w32.zip .Cannonball 0.19 - OpenGL Rendering
I've updated Cannonball to support OpenGL rendering. This means:
Large performance improvement, especially when using full-screen mode.
Scanlines can now be used in both full-screen and stretch modes.
Filtering can be toggled in the config.xml for a softer look, similar to MAME.
The old software renderer will still be supported, but is toggled at compile time by unsetting the OPENGL flag in your build.cmake file.
There are a few other improvements rolled into this build:
A minor bug was fixed in the road rendering. This occasionally caused road pixels furthest into the horizon to be displayed at the wrong position.
In widescreen mode, sprite clipping is now correct, so sprites close to the camera aren't deactivated so aggressively. This is most noticeable on levels with wide grassy strips etc.
I'd consider this build beta for now. Please try it out and let me know if you spot any problems. If I haven't broken anything along the way, I will update the main page. Then it's back to LayOut, which has been neglected a little lately.
Προοδος .....Nemo έγραψε:
Το πρωιμο αποτελεσμα της αποπειρας μεσω emscripten το οποιο ~μετατρεπει C++ code σε Javascript. (LLVM bitcode σε Javascript) να το κανει port σε javasript αρα playable μεσω browser .
Για περισσοτερες technicalities εδω >>>> http://reassembler.blogspot.gr/2013/07/ ... owser.html
14th July: I fixed the colours, and it is now running and playable:
Unfortunately, it's using the software renderer for now. The OpenGL renderer would need a rewrite to make it WebGL compatible. It doesn't just work out of the box.
The speed is reasonable at 30fps currently, although a little choppy in places. I'm not sure what kind of improvement I could expect if I rewrote the renderer...
If anyone is desperate to work on this further, I can check my work into git for them to mess around with. I may work further on this in the short-term or I may switch back to LayOut again!
I also tested on my Samsung Galaxy S3 phone. It runs pretty well on the Firefox Beta browser (maybe at around 20fps). There's no way to actually control the game though! It runs like a dog on Chrome.
Nemo έγραψε:Προοδος .....Nemo έγραψε:
Το πρωιμο αποτελεσμα της αποπειρας μεσω emscripten το οποιο ~μετατρεπει C++ code σε Javascript. (LLVM bitcode σε Javascript) να το κανει port σε javasript αρα playable μεσω browser .
Για περισσοτερες technicalities εδω >>>> http://reassembler.blogspot.gr/2013/07/ ... owser.html
14th July: I fixed the colours, and it is now running and playable:
Unfortunately, it's using the software renderer for now. The OpenGL renderer would need a rewrite to make it WebGL compatible. It doesn't just work out of the box.
The speed is reasonable at 30fps currently, although a little choppy in places. I'm not sure what kind of improvement I could expect if I rewrote the renderer...
If anyone is desperate to work on this further, I can check my work into git for them to mess around with. I may work further on this in the short-term or I may switch back to LayOut again!
I also tested on my Samsung Galaxy S3 phone. It runs pretty well on the Firefox Beta browser (maybe at around 20fps). There's no way to actually control the game though! It runs like a dog on Chrome.
15th July: I realised that using the emscripten_set_main_loop was causing the performance problems. Rewrote the main loop, so that the frame timing is done in pure JavaScript, with a call to the external C++ tick function. This is a similar approach to the port of Snes9x.
The results are outstanding. Unthrottled, the engine runs in widescreen at 80fps in Firefox on my desktop PC.
On my Samsung Galaxy S3, the engine now runs at a solid 30 fps in the Firefox browser (I haven't tried it unthrottled yet). Given that most elements of the game only update at 30fps in the original arcade game, this means you can run OutRun at full-speed. Pretty impressive for Javascript running in a phone's web browser!
και τα ακομα νεωτερα ....Nemo έγραψε:Nemo έγραψε:Προοδος .....Nemo έγραψε:
Το πρωιμο αποτελεσμα της αποπειρας μεσω emscripten το οποιο ~μετατρεπει C++ code σε Javascript. (LLVM bitcode σε Javascript) να το κανει port σε javasript αρα playable μεσω browser .
Για περισσοτερες technicalities εδω >>>> http://reassembler.blogspot.gr/2013/07/ ... owser.html
14th July: I fixed the colours, and it is now running and playable:
Unfortunately, it's using the software renderer for now. The OpenGL renderer would need a rewrite to make it WebGL compatible. It doesn't just work out of the box.
The speed is reasonable at 30fps currently, although a little choppy in places. I'm not sure what kind of improvement I could expect if I rewrote the renderer...
If anyone is desperate to work on this further, I can check my work into git for them to mess around with. I may work further on this in the short-term or I may switch back to LayOut again!
I also tested on my Samsung Galaxy S3 phone. It runs pretty well on the Firefox Beta browser (maybe at around 20fps). There's no way to actually control the game though! It runs like a dog on Chrome.
>>>>>>>>>>
15th July: I realised that using the emscripten_set_main_loop was causing the performance problems. Rewrote the main loop, so that the frame timing is done in pure JavaScript, with a call to the external C++ tick function. This is a similar approach to the port of Snes9x.
The results are outstanding. Unthrottled, the engine runs in widescreen at 80fps in Firefox on my desktop PC.
On my Samsung Galaxy S3, the engine now runs at a solid 30 fps in the Firefox browser (I haven't tried it unthrottled yet). Given that most elements of the game only update at 30fps in the original arcade game, this means you can run OutRun at full-speed. Pretty impressive for Javascript running in a phone's web browser!
24th July: After some experimentation, I now have relatively solid audio working on the PC. Unfortunately, directly porting the SDL audio code didn't lead to good results. Instead I replaced the SDL code with custom Javascript using the WebAudio API and an interface into the C++ code.
The results are decent on a fast enough PC with Chrome or Firefox Nightly.
Kαι συνεχιζει να βγαζει λογους απο το καπελο του CannonBall - Javascript VersionYes, now you can play OutRun directly from a modern web browser at 60fps with sound and no plugins.
You may remember that one of my goals was to bring OutRun to every modern platform and this takes us another step closer. Here's the Javascript version of CannonBall.
It would be even more seamless if I could bundle the ROMs, but sadly you will have to provide these yourself for obvious reasons.
It runs on mobile devices, although it's not playable yet due to a lack of controls. I recommend the Firefox Beta browser on Android. I can run the engine at 40fps on a Samsung Galaxy S3 phone, so 30fps mode works fine.
Technically, the core engine is converted from C++ using Emscripten, which is an amazing piece of technology. I also wrote a wrapper around the C++ engine in Javascript to handle timing and audio. Audio uses the new WebAudio API.
It's clearly "very beta" at the moment. For example, full-screen mode works only in Firefox. Audio only works in Firefox Nightly and Chrome. Getting things running nicely has been a bit of a frustrating balancing act.
The source code is currently forked and can be found here. It's quite hacky at the moment, as my main focus has been to simply get this running.
Exactly how much I support this will depend on the level of interest. I want to get back to LayOut, amusing as this project was. You are welcome to embed it in your webpage if you provide a link back to my blog.
προέλευση >>>> http://reassembler.blogspot.gr/2013/07/ ... rsion.html
Realtime Level Preview
Full visualisation of the stage you are editing. All changes are shown in realtime. This uses a special widget that is an enhanced version of the core OutRun rendering engine from CannonBall.
Full Import of OutRun Data
Import and edit existing OutRun levels including unused/hidden levels.
Full road path editor
Define the path of the road, set the number of lanes and split the road into two.
Height Map Editor
Create 2D height maps, apply them to any section of road and preview your work in realtime. Every option is configurable, including options available in the original engine but not used by OutRun's levels.
Scenery Pattern Editor
Define your own scenery patterns. All options are configurable: shadows, sprite positioning, horizontal flipping, palettes, the internal engine draw/collision routine to use, repeat properties etc.
Palette Editor
Change the road, sky and ground colours. I will also implement sprite palette editing in the future so you can change the colours of everything in-game.
Level Mapping
Easily change the order of your levels, and map them to the 15 stages available in OutRun.
Multiple Export Options
Easily export to CannonBall. I'm simultaneously working on a new version of CannonBall to handle the exported level data. Shortly after release, I will work on an exporter that allows you to write directly to the original arcade ROM images. Yes, you'll be able to play your levels on arcade hardware.
Cross platform & Open Source
Coded using QT, the editor will function on Windows, Mac and Linux. The editor will be released under a similar non-commercial license to MAME.
>>>>>>> http://reassembler.blogspot.gr/2013/09/ ... pdate.htmlCommon questions I tend to get asked, that I will cover here:
1/ What about other games?
Whoooa one step at a time fella! Super Hang On uses a very similar track format so it wouldn't be inconceivable for me, or you, to add support in the future. But let's get OutRun to a good place first.
2/ What about sprite editing?
Yes definitely, in a future version. It's more complicated than you might think to do this properly.
3/ When will this be released?
I would expect November 2013 at the latest. Followed by a series of frantic updates.
I’m also thinking that we probably need to get a forum setup for discussion once the editor is released. Does anyone fancy hosting that?
[/quote]Nemo έγραψε:OutRun Anniversary Update
Mια και προκειται για την 27th anniversary του OutRun και θα ηθελε ο δημιουργος να εχει ετοιμο τον LayOut editor ,ενα εργαλειο για δημιουργια και μεταβολη υπαρχουσων διαδρομων ,οι οποιες νεες διαδρομες θα μπορουν να παιχθουν οχι μονο στο Cannonball ,αλλα και στο πραγματικο arcade (και εννοειται και σε αλλους εξομοιωτες συνεπακολουθα ,- αλλα οι υποχρεωσεις του δημιουργου δεν του το επετρεψαν -μας δινει μια προγευση τι να περιμενουμε μεσα στον Νοεμβριο ,οταν και περιμενει να ειναι ετοιμο .
Realtime Level Preview
Full visualisation of the stage you are editing. All changes are shown in realtime. This uses a special widget that is an enhanced version of the core OutRun rendering engine from CannonBall.
Full Import of OutRun Data
Import and edit existing OutRun levels including unused/hidden levels.
Full road path editor
Define the path of the road, set the number of lanes and split the road into two.
Height Map Editor
Create 2D height maps, apply them to any section of road and preview your work in realtime. Every option is configurable, including options available in the original engine but not used by OutRun's levels.
Scenery Pattern Editor
Define your own scenery patterns. All options are configurable: shadows, sprite positioning, horizontal flipping, palettes, the internal engine draw/collision routine to use, repeat properties etc.
Palette Editor
Change the road, sky and ground colours. I will also implement sprite palette editing in the future so you can change the colours of everything in-game.
Level Mapping
Easily change the order of your levels, and map them to the 15 stages available in OutRun.
Multiple Export Options
Easily export to CannonBall. I'm simultaneously working on a new version of CannonBall to handle the exported level data. Shortly after release, I will work on an exporter that allows you to write directly to the original arcade ROM images. Yes, you'll be able to play your levels on arcade hardware.
Cross platform & Open Source
Coded using QT, the editor will function on Windows, Mac and Linux. The editor will be released under a similar non-commercial license to MAME.
Κατεβαζετε τον Layout track/level editor 0.1 απο εδω
LayOut: A Track Editor For OutRun
It's finally here. Create your own OutRun tracks and edit the original ones.
Features:
Track Editing: Create your own OutRun tracks from scratch
Import: Edit original OutRun tracks and supporting data
Scenery Pattern editor
Height Pattern editor
Road, Sky & Ground Palette editing
Realtime Preview
Export and play tracks using CannonBall.
Export to original arcade ROMs coming soon.
Το CannonBall 0.22 -φτανοντας στην εκδοση 0.22 το οποιο συνεχιζει να ανανεωνεται ,να βελτιωνεται απο τον δημιουργο τουCannonBall 0.22 - Continuous Mode
This release features a number of new features, important fixes and other changes.
Features:
Continuous Mode
Play all 15 stages sequentially. This mode features its own high-score table.
Ability to toggle the fixed audio rom in the settings menu. It should be named opr-10188.71f and be placed in the roms directory. The fixed rom can be generated using bspatch and the relevant patch file from the enhanced edition pack.
Fixed split axis support. XBox 360 pads should now work.
The FAQ has some basic configuration advice. Thanks to baritonomarchetto for donating the pad. Rumble will also be supported in the future, but it means I'll have to upgrade the project to SDL 2. So it's a little more work than might be expected.
Core Engine Fixes:
Fixed a vehicle sprite bug that affected the angle of certain traffic sprites. Info here.
Fixed two audio bugs that caused traffic noise to stutter under some circumstances, or not play correctly.
Corrected the pitch of PCM samples, they were played too quickly before.
Other Minor Enhancements:
Ability to use controllers on other ports. This is configured in config.xml.
Support for arcade cabinets with a separate switch for high and low gear. This can be enabled in the gear options.
The High Score table can display longer times to support Continuous Mode.
Added two handy game modes to toggle between 'original arcade' and 'enhanced' presets.