Cannonball:OutRun rewrite σε C++

Οτιδήποτε εκτός θέματος εδώ.

Συντονιστές: Nemo, Maddog, Whacker, BraiNKilleR

Άβαταρ μέλους
Nemo
Moderator
Moderator
Δημοσιεύσεις: 4798
Εγγραφή: 15 Απρ 2004 22:55
Τοποθεσία: Θεσσαλονίκη

Cannonball:OutRun rewrite σε C++

Δημοσίευση από Nemo »

OutRun Decompilation.

Stage 1: A full line-by-line commented decompilation of the OutRun arcade binaries.
Stage 2: Rewrite the engine in C++ and add optional improvements.
Stage 3: Release source code. Add optional improvements not present in original game.

Start: August 2009
Stage 1: Complete - October 2010
Stage 2: In Progress - Q3 2011

http://reassembler.blogspot.com/

Εικόνα
if" Imitation is the sincerest flattery",
imagine emulating ....
Άβαταρ μέλους
Maddog
Master Modelator
Master Modelator
Δημοσιεύσεις: 3768
Εγγραφή: 26 Μάιος 2004 14:44
Τοποθεσία: Κάποιο beach bar στο Ντουμπάι
Επικοινωνία:

Re: Μεταφορα Outrun engine σε C++ project

Δημοσίευση από Maddog »

Ακούγεται ενδιαφέρον, μακάρι να το τελειώσει. Και να δούμε μετά κανένα remake κοντά στο στυλ του παλιού, ίσως με μερικές βελτιώσεις.
Αν και αμφιβάλλω αν μπορεί να βελτιωθεί πραγματικά αυτό το αριστούργημα. :wink:
Παππού όλος ο κόσμος ανησυχεί μήπως η σχέση σου με την πιτσιρίκα αποβεί μοιραία.
-Τι να κάνουμε παιδί μου...αν πεθάνει - πέθανε...
Άβαταρ μέλους
pooky(1)
Mame Maniac
Mame Maniac
Δημοσιεύσεις: 572
Εγγραφή: 09 Ιούλ 2006 14:45
Τοποθεσία: Skyrim.

Re: Μεταφορα Outrun engine σε C++ project

Δημοσίευση από pooky(1) »

Και τιμονιέρα να βάλουν, εσύ θα θες το παλιό καλό κομπρεσέρ που είχε η καμπίνα!!!!!!!!! :mrgreen: :mrgreen: :lol: :lol:
14-06-1984 ----- 14-06-2011. 27 years of gaming!
Άβαταρ μέλους
Fotis_KFOR
Mame Maniac
Mame Maniac
Δημοσιεύσεις: 748
Εγγραφή: 13 Οκτ 2004 00:55
Τοποθεσία: Αθήνα
Επικοινωνία:

Re: Μεταφορα Outrun engine σε C++ project

Δημοσίευση από Fotis_KFOR »

Πάντως γούσταρα τρελά που το ξαναέπαιξα στην GameOn μετά από τόσα χρόνια, αυθεντική αίσθηση :wink:
Άβαταρ μέλους
Nemo
Moderator
Moderator
Δημοσιεύσεις: 4798
Εγγραφή: 15 Απρ 2004 22:55
Τοποθεσία: Θεσσαλονίκη

Re: Μεταφορα Outrun engine σε C++ project

Δημοσίευση από Nemo »

OutRun Conversion Update
I haven't written about the OutRun conversion to C++ for some time. That's because I put it on hold whilst I focused on the anniversary edition, amongst other projects. Having a break was sensible and necessary, as it's such intense work.

Compared with other 68k conversions I've worked on professionally, this is much tougher, due to the sheer complexity and in some cases poor quality of the original code. Even after a first draft, a huge amount of refactoring will be needed so that the codebase can be extended.



Things are slowly coming together. Don't hold your breath whilst waiting for this; I'm doing it at a very steady pace. I've taken a screenshot of my desktop, which shows that much of the level data is now being parsed. Underlying this, many of the sprite rendering routines are ported. I've included a MAME screenshot for comparison so you can see what's currently missing.
Το project που ηταν προσωρινα στον "παγο" ,ξαναπηρε ....μπρος.

Εικόνα
if" Imitation is the sincerest flattery",
imagine emulating ....
Άβαταρ μέλους
Nemo
Moderator
Moderator
Δημοσιεύσεις: 4798
Εγγραφή: 15 Απρ 2004 22:55
Τοποθεσία: Θεσσαλονίκη

Re: Μεταφορα Outrun engine σε C++ project

Δημοσίευση από Nemo »

Finally, after years of hard labour, here's a technical demo of the OutRun C++ port. The demo showcases recent work porting the core level rendering engine. The benefit of rewriting the engine, is that it will facilitate modifications and enhancements to the original game that Yu Suzuki only dreamed of.


The keys for the demo are:
Space: Toggle automatic movement through level
Cursor Up: Advance slowly
Cursor Left/Right: Move camera left/right
A/Z: Adjust horizon
Escape: Quit
Requirements:
OutRun Revision B ROMs. They must be named correctly and placed in the roms subdirectory. No other set will work. Although you can use the patched set from OutRun Enhanced Edition. I would recommend running the demo from the console to see any error messages.
Microsoft Visual C++ runtime libraries.
Other Notes:
Having control over the rendering engine surfaces glitches and limitations present in the original code. Using unpatched roms, the sprite zoom bug mentioned in this post is evident. You can use patched roms to eliminate this.
There is a bug where a random shadow pops into view dependent on the camera x coordinate. This is present in MAME as well, but is hard to reproduce when you're actually racing through the level. I need to get this verified on hardware to help track down a solution and determine whether it's a video emulation issue or a bug in the original codebase.
http://www.massdestruction.co.uk/outrun ... _demo1.zip
http://reassembler.blogspot.com/
if" Imitation is the sincerest flattery",
imagine emulating ....
Άβαταρ μέλους
Nemo
Moderator
Moderator
Δημοσιεύσεις: 4798
Εγγραφή: 15 Απρ 2004 22:55
Τοποθεσία: Θεσσαλονίκη

Upd: OutRun C++ Engine

Δημοσίευση από Nemo »

Εικόνα

From this point onwards, the fun begins and we can start to include extra functionality and enhancements. It will also be a good point to port the code to a variety of platforms.
UPDATE: Tantalisingly close... bonus points code done, bonus sequence AI done, bonus track control done. Just the animation sequences now.
και απο την σημειολογια της εικονας στο τελος της διαδρομης ειναι κοντα ...

:arrow: http://reassembler.blogspot.gr/
if" Imitation is the sincerest flattery",
imagine emulating ....
Άβαταρ μέλους
Nemo
Moderator
Moderator
Δημοσιεύσεις: 4798
Εγγραφή: 15 Απρ 2004 22:55
Τοποθεσία: Θεσσαλονίκη

Re: Upd: OutRun C++ Engine Tech Demo

Δημοσίευση από Nemo »

Εικόνα
the engine is now complete (minus sound and test mode). Expect a test release in the next week!
http://reassembler.blogspot.gr/2012/08/ ... -bugs.html
if" Imitation is the sincerest flattery",
imagine emulating ....
Άβαταρ μέλους
Nemo
Moderator
Moderator
Δημοσιεύσεις: 4798
Εγγραφή: 15 Απρ 2004 22:55
Τοποθεσία: Θεσσαλονίκη

Re: Upd: OutRun C++ Engine Tech Demo

Δημοσίευση από Nemo »

At last, here's a new demo of the OutRun engine. The entire game is ported, aside from sound and the service mode.

In terms of functionality, this release is bare bones. There is no menu system yet, all options are hardcoded and you have to play the game windowed.

It would be great if you could report bugs (and I'm sure there will be plenty) in the comments below. Please verify any subtleties against MAME for reference.


Keys:

Cursors: Steering
Z: Accelerate
X: Brake
Space: Gear Change
5: Insert Coin
1: Start
F1: Pause
F2: Advance a frame when paused (useful for observing visual problems)
F3: Toggle/Freeze timers. (i.e. infinite time)
In a future revision, there will be options to custom the controls and the analogue sensitivity. I find MAME's default setup too twitchy, so you'll find the steering a little more heavy in comparison.


Enhancements over original:

60 frames a second. The original game runs at 30fps.
Ability to render more level objects. Levels render as originally designed.
Erroneous shadow fix
Sprite zoom fix
Correct millisecond value shown on passing checkpoint
Steering bug
Misplaced tile on music selection screen fixed
In a future revision, enhancements will be optional and there will be a menu toggle to enable/disable them.


Requirements:

OutRun Revision B ROMs. They must be named correctly and placed in the roms subdirectory. No other set will work. Although you can use the patched set from OutRun Enhanced Edition. I would recommend running the demo from the console to see any error messages.

Microsoft Visual C++ runtime libraries.

Προέλευση: http://reassembler.blogspot.gr/

Χωρις ηχο προς το παρων :( αλλα που θα παει κι αυτος :wink: ....

D/load >>>>>> http://massdestruction.co.uk/outrun/out ... _demo2.zip
if" Imitation is the sincerest flattery",
imagine emulating ....
Άβαταρ μέλους
Nemo
Moderator
Moderator
Δημοσιεύσεις: 4798
Εγγραφή: 15 Απρ 2004 22:55
Τοποθεσία: Θεσσαλονίκη

Re: Upd: OutRun C++ Engine Tech Demo

Δημοσίευση από Nemo »

Cross Platform Support
Thanks to everyone who tried the recent Visual Studio based build for Windows. The plan is to ensure this becomes a true cross platform project, not tied to a particular operating system or architecture. I like to think of it as "OutRun Everywhere", making the world a better place ;) Thanks to some work from a friend, who knows far more about this sort of thing than me, this is close to becoming a reality.

The code now successfully compiles and runs on both a Mac with XCode IDE support and the Windows MinGW compiler. Other platforms will shortly follow, including Linux and the Raspberry PI if performance allows.

We're using CMake, the cross platform, open-source build system. This automates the creation of build files for a whole range of target platforms. We're able to generate builds for a whole host of platforms and configurations.

The C++ libraries have been switched to Boost. This provides an open-source cross platform alternative to facilitate portability.

I can't take credit for the above, but I have started decompilation work on the Z80 code that controls the sound hardware (both the custom Sega PCM sample player and the Yamaha YM2151). This is my main area of focus and will take some time. So far, I've commented the code that triggers the PCM samples. Ultimately, I'd love to give players the choice of emulating the original sound hardware or streaming audio from disk, similar to the approach used by the Sega Saturn conversion.
:arrow: http://reassembler.blogspot.gr/2012/09/ ... pport.html
if" Imitation is the sincerest flattery",
imagine emulating ....
Άβαταρ μέλους
Nemo
Moderator
Moderator
Δημοσιεύσεις: 4798
Εγγραφή: 15 Απρ 2004 22:55
Τοποθεσία: Θεσσαλονίκη

Re: Upd: OutRun C++ Engine Tech Demo

Δημοσίευση από Nemo »

Here's a screenshot of the OutRun engine running on a Raspberry Pi. The display is being output on X11 via SSH. It hasn't been tried on the native Pi display yet.


I've decided to name the OutRun engine Cannonball, after the 1981 Cannonball Run film that Yu Suzuki was inspired by.
Εικόνα
http://reassembler.blogspot.gr/2012/09/ ... gress.html
if" Imitation is the sincerest flattery",
imagine emulating ....
Άβαταρ μέλους
Nemo
Moderator
Moderator
Δημοσιεύσεις: 4798
Εγγραφή: 15 Απρ 2004 22:55
Τοποθεσία: Θεσσαλονίκη

Re: Upd: OutRun C++ Engine Tech Demo

Δημοσίευση από Nemo »

Here's a quick and dirty tool to view sprites stored in Sega's System 16 format. I searched for something similar, but couldn't find anything, so coded my own.
Εικόνα
Εικόνα

......

One thing to note is that the sprite data does not contain palette information. By default the tool displays the files using a pseudo-greyscale palette.
.............
However, for OutRun I've extracted the sprite palettes from the 68000 program files. And you can toggle through all 255 palettes by using cursor left and cursor right. Unfortunately, there is no automatic way of determining which palette goes with which sprite. This information is hardcoded by the game at runtime. Some sprites can use more than one palette.
Εικόνα
Εικόνα
.....



Download here: S16_Sprite_Viewer_v02.zip

Page Up/Page Down: Scroll Page
Cursor Up/Cursor Down: Fine Scroll
Cursor Left/Cursor Right: Change Palette (OutRun palettes only)
Space: Save a BMP
http://reassembler.blogspot.gr/2012/11/ ... iewer.html
if" Imitation is the sincerest flattery",
imagine emulating ....
Άβαταρ μέλους
Nemo
Moderator
Moderator
Δημοσιεύσεις: 4798
Εγγραφή: 15 Απρ 2004 22:55
Τοποθεσία: Θεσσαλονίκη

Re: Upd: OutRun C++ Engine Tech Demo

Δημοσίευση από Nemo »

This is just the beginning. Future releases will include a full menu, proper control, video & audio configuration plus an array of options and game modes not present in the original game.

I'm hoping to find OutRun enthusiasts who will port Cannonball to a variety of platforms. I'd love to see Linux, Mac, Wii, Raspberry Pi and other platforms supported. I will facilitate serious offers of help. We can ensure that any changes make it into the master branch, so it's easy to keep ports up to date.

The codebase isn't perfect; the original code from 1986 can prove messy and inconsistent. Some of this is naturally carried through to the rewrite. For now, the focus has been on the accuracy of the conversion, at the expense of serious refactoring. But that's not to say this isn't a viable future goal. And I've been working on this long enough, it's time to release.

Why do this? Because I love OutRun, and no one else would have done. Thanks to those who have followed the project up to this point. Any questions - post them below!

Cannonball - The Enhanced OutRun Engine
Cannonball is a program which allows you to play an enhanced version of Yu Suzuki's seminal arcade racer, OutRun, on a variety of systems.




Cannonball is not an emulator; it is a complete rewrite of the original game into portable C++. Cannonball requires the original data files which contain the graphics, sound and level data. Please note that no portions of the original game are included in this package.

Controls:
Cursors: Steering
Z: Accelerate
X: Brake
Space: Gear Change
5: Insert Coin
1: Start
F1: Pause
F2: Advance a frame when paused (useful for observing visual problems)
F3: Toggle/Freeze timers. (i.e. infinite time)

Enhancements:
60 frames a second. The original game runs at 30fps.
Ability to render more level objects. Levels render as originally designed
Erroneous shadow fix
Sprite zoom fix
Correct millisecond value shown on passing checkpoint
Steering bug
Misplaced tile on music selection screen fixed


Requirements:
OutRun Revision B ROMs. They must be named correctly and placed in the roms subdirectory. No other set will work. Although you can use the patched set from OutRun Enhanced Edition. I would recommend running the demo from the console to see any error messages.
Microsoft Visual C++ runtime libraries.
Μπλε αμάνικο & το άσπρο παντελόνι Δεκεμβρη μηνα???
Θελει και ρωτημα ...

Προελευση:
:arrow: http://reassembler.blogspot.co.uk/p/can ... ngine.html
:arrow: http://reassembler.blogspot.gr/2012/12/ ... lease.html

Download : :pac: :arrow: cannonball-v01-win32.zip :bub:



Υ.Γ. τωρα γιατι Cannonball ???

Aπο τις γνωστες 80ς ταινιες ...
if" Imitation is the sincerest flattery",
imagine emulating ....
Άβαταρ μέλους
Maddog
Master Modelator
Master Modelator
Δημοσιεύσεις: 3768
Εγγραφή: 26 Μάιος 2004 14:44
Τοποθεσία: Κάποιο beach bar στο Ντουμπάι
Επικοινωνία:

Re: Upd: OutRun C++ Engine Tech Demo

Δημοσίευση από Maddog »

Nemo έγραψε:Υ.Γ. τωρα γιατι Cannonball ???

Aπο τις γνωστες 80ς ταινιες ...
Δεν είναι τυχαίο. Ο ίδιος ο Yu Suzuki έχει δηλώσει ότι εμπνεύστηκε το OutRun από αυτές τις ταινίες! Που ήταν απολαυστικές και έχω να τις δω χρόνια ολόκληρα. Μάλλον πρέπει να τις ψάξω... :pac:
Παππού όλος ο κόσμος ανησυχεί μήπως η σχέση σου με την πιτσιρίκα αποβεί μοιραία.
-Τι να κάνουμε παιδί μου...αν πεθάνει - πέθανε...
Άβαταρ μέλους
Nemo
Moderator
Moderator
Δημοσιεύσεις: 4798
Εγγραφή: 15 Απρ 2004 22:55
Τοποθεσία: Θεσσαλονίκη

Re: Upd: OutRun C++ Engine Tech Demo

Δημοσίευση από Nemo »

Εντωμεταξυ στηνOutrun Virtual Machine ο τυπος(Chris White) εχει κανει θαυματα ,οσων αφορα τις προσθηκη νεων features

60 fps gameplay (smoother than the original game)
True widescreen mode (extend the play area by 25%)
High Resolution mode (improves sprite scaling)
Time Trial Mode
Cheats
Customisable Music
High Score Saving
Western, Japanese & prototype track support
Analog & Digital controllers supported
Force Feedback / Haptic support (Windows only)
Fixes bugs present in the original game


,οπως και στα πραγματακια που βρισκει ψαχνωντας στο ενδελεχως τον κωδικα του arcade
Tελος φτιαχνει ενα track editor ,ναι καλα ακουσατε ,το οποιο θα εχει τα παρακατω χαρακτηριστικα Features :
Plan for the initial release is as follows:
The editor will be a separate application from Cannonball.
The editor will be developed in C++ and QT. This will support a solid cross-platform GUI.
The editor will use Cannonball to preview the final level in some kind of debug mode.
The editor will output to a format compatible with Cannonball, and the original OutRun hardware. So you could potentially play the best levels on original hardware.
The following features will be supported: Road path/direction, road width, road height, scenery & track debris placement, road palettes.

Future releases could include additions like:
Road texture editor.
Sprite editor.
Sprite palette editor.
Kαι στο παρακατω video βλεπετε την Wip λειτουργικοτατη εκδοση του editor αν και WIP ακομα, το οποιο μπορεις να εισαγεις και να μεταβαλεις κατατο δοκουν πιστες του Outrun ,τις οποιες κατοπιν μπορειτε να παιξετε στο Cannonball την OUTRUN Virtual Machine .

ΔΕΙΤΕ ΤΟ Video KAI ΠΑΘΕΤΕ


http://www.youtube.com/watch?feature=pl ... 46whTziLJo#!
LayOut - WIP Video
Here's a quick video showing the latest progress with LayOut. You will want to view this full-screen to see the detail and turn the quality level up. As a bonus, there's some dodgy narration from myself, so turn the sound on.

Current Features:
Edit Road path, width and height.
Import existing OutRun levels for editing and refinement.
Export to Cannonball. Levels are fully playable.
if" Imitation is the sincerest flattery",
imagine emulating ....
Απάντηση