Test: Difference between revisions

From OniGalore
Jump to navigation Jump to search
m (→‎HexRow: backed up Oni 2D just in case)
m (oops)
Tag: Manual revert
 
(26 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{lowercase|test}}
==Sick markup==
"And now for a lesson in [ttttttttttttemplate] mmmmmmmmmanagement... [wikiwikiwiki] llllllllllllet's begin..."
:Linkin Park, Cure for the Itch
:[[User:Geyser|geyser]], deprived of laptop and ICQ for a while ^^ ... which explains the "born to nag" attitude.
;Foreach
{| border="1" cellspacing="0" cellpadding="0" style="empty-cells:show;"
| colspan="29" | 29 Bit CAN-ID
|-
{{foreach |29|||||||22|  pc1=1=yellow  |call=ProtokollTabelleBit|pv=2}}
{{foreach |21|            pc1=1=fuchsia |call=ProtokollTabelleBit|pv=2}}
{{foreach |20|||||||||11| pc1=1=lime    |call=ProtokollTabelleBit|pv=2}}
{{foreach |10|||||||||1|  pc1=1=aqua    |call=ProtokollTabelleBit|pv=2}}
|-
| {{ProtokollTabelleDef|yellow|8|Port}}
| {{ProtokollTabelleDef|fuchsia|1|3==0}}
| {{ProtokollTabelleDef|lime|10|Ziel-Adresse}}
| {{ProtokollTabelleDef|aqua|10|Absender-Adresse}}
|}
:That solution is universal, and sorta authoritative, but it takes ''ages'' for the engine to evaluate : in any given situation, one should probably prefer a lighter, more specific solution.




;How about this?
[[Category:Test pages]]
{|{{TightTable}}
|colspan=4| 29-Bit CAN-ID
|-
|
{{ProtoBits|29|120|22|Port|yellow}}
|
{{ProtoBits|21|0|0|<nowiki>=</nowiki>0|fuchsia}}
|
{{ProtoBits|20|160|11|Ziel-Adresse|lime}}
|
{{ProtoBits|10|160|1|Absender-Adresse|aqua}}
|}
:Note how 1-bit, 2-bit and 3-plus-bit chunks are all handled by the same (small) template ^^
:TightTable takes "optional" arguments called '''align''' and '''color'''. They're not really specified as optional, but when not provided, the relevant syntax gets screwed up "the smart way".
:The "skipped bits" span of every chunk is specified in pixels, which can be handy in case one wants a more compact layout. The non-breaking space can then be replaced with a "..." to avoid confusion.
:I think the skipped widths are best let custom, as well as the "header". Apart from arbitrarily shrinking the skip fields, one may want to rephrase the header, or omit it, or make it a caption :
{|{{TightTable}}
|+'''29-Bit CAN-ID
|
{{ProtoBits|29|40|22|Port|yellow}}
|
{{ProtoBits|21|0|0|<nowiki>=</nowiki>0|fuchsia}}
|
{{ProtoBits|20|40|11|Ziel-Adresse|lime}}
|
{{ProtoBits|10|40|1|Absender-Adresse|aqua}}
|}
:(again, maybe a "..." in the skip fields would look nicer)
:(and a non-breaking space in front of the description, in the template)
 
 
;Arithmetics (will only show fine when and if ''#expr'' parsing works OK...)
:One can calculate the width of the "skipped bits" internally, only feeding two bit IDs to the template.
:The template would then evaluate the difference, and decide upon a 1-bit, or on a 2-plus-bit layout with an adequate skip.
:However, the markup is a bit heavier, and makes a few assumptions about e.g. the order in which the bits are listed (unless one wants to emulate '''abs''', which is a little bit heavier still).
:Right now, it produces a fatal error parsing '''Expr.php''' (then again, so does <nowiki>{{#expr:2+2}}</nowiki>, so there ''is'' a problem), but it would look something like this :
<nowiki>{|{{</nowiki>TightTable|color={{{4}}}}}
|-align=center
|width=18|{{{1}}}
|-
<nowiki>|width={{#ifexpr:{{{1}}}>{{{2}}}|{{#expr:18*({{{1}}}-{{{2}}}-1)}}|0}}|{{#ifexpr:{{{1}}}>{{{2}}}+1|...|}}</nowiki>
<nowiki>|width={{#ifexpr:{{{1}}}>{{{2}}}|18|0}}|{{#ifexpr:{{{1}}}>{{{2}}}|{{{2}}}|}}</nowiki>
|colspan=3|{{{3}}}
|}
 
 
;CAN-ID table
:It ''could'' be possible to embed the chunk tables into a big template table specific to the "29-Bit CAN-ID" usage, but most components would have to be in HTML. Bad idea.
 
 
----
----
 
==OBD file types==
{|cellspacing="0"
|0x000 :
|style="background:fuchsia"|26||style="background:fuchsia"|00||style="background:lime"|33||style="background:lime"|00
|style="background:aqua"|40||style="background:aqua"|00||style="background:yellow"|4D||style="background:yellow"|00
|style="background:#888888"|5A||style="background:#888888"|00||style="background:fuchsia"|67||style="background:fuchsia"|00
|style="background:lime"|74||style="background:lime"|00||style="background:aqua"|81||style="background:aqua"|00
|style="background:yellow"|8E||style="background:yellow"|00||style="background:#888888"|9B||style="background:#888888"|00
|style="background:fuchsia"|A8||style="background:fuchsia"|00||style="background:lime"|B5||style="background:lime"|00
|style="background:aqua"|C2||style="background:aqua"|00||style="background:yellow"|CF||style="background:yellow"|00
|style="background:#888888"|DC||style="background:#888888"|00||style="background:fuchsia"|E9||style="background:fuchsia"|00
|-
|0x020 :
|style="background:lime"|F6||style="background:lime"|00||style="background:aqua"|03||style="background:aqua"|01
|style="background:yellow"|10||style="background:yellow"|01||style="background:fuchsia"|5F||style="background:fuchsia"|45
|style="background:fuchsia"|F9||style="background:fuchsia"|3D||style="background:fuchsia"|B6||style="background:fuchsia"|FA
|style="background:fuchsia"|09||style="background:fuchsia"|5F||style="background:fuchsia"|45||style="background:fuchsia"|F9
|style="background:fuchsia"|3D||style="background:fuchsia"|B6||style="background:fuchsia"|FA||style="background:lime"|18
|style="background:lime"|39||style="background:lime"|1B||style="background:lime"|34||style="background:lime"|88
|style="background:lime"|77||style="background:lime"|09||style="background:lime"|18||style="background:lime"|39
|style="background:lime"|1B||style="background:lime"|34||style="background:lime"|88||style="background:lime"|77
|}
Heh.
 
 
{| border="1" cellpadding="1" cellspacing="0" style="background:#ffeedd; white-space:nowrap"
|-style="background:#ffddbb"
!Type
!Description
!Notes
|style="background:#FFFFFF"|
!Type
!Description
!Notes
|style="background:#FFFFFF"|
!Type
!Description
!Notes
|-
|<strike>3CLA</strike>
|RGB Color Array
|style="background:black"|
|style="background:#FFFFFF"|
|[[OBD:KeyI|KeyI]]
|Key Icons
|style="background:lime"|L0
|style="background:#FFFFFF"|
|[[OBD:StNA|StNA]]
|String Array
|style="background:lime"|L0
|}
 
{|
|
{| border="1" cellpadding="1" cellspacing="0" style="background:#ffeedd"
|-style="background:#ffddbb"
!Type
!Description
!Notes
|-
|<strike>3CLA</strike>
|RGB Color Array
|style="background:black"|
|-
|[[OBD:ABNA|ABNA]]
|BSP Tree Node Array
|style="background:fuchsia"|L
|-
|[[OBD:AGDB|AGDB]]
|Gunk Quad Debug Array
|style="background:fuchsia"|L
|-
|[[OBD:AGQC|AGQC]]
|Gunk Quad Collision Array
|style="background:fuchsia"|L
|-
|[[OBD:AGQG|AGQG]]
|Gunk Quad General Array
|style="background:fuchsia"|L
|-
|<strike>AGQM</strike>
|Gunk Quad Material
|style="background:black"|
|-
|[[OBD:AGQR|AGQR]]
|Gunk Quad Render Array
|style="background:fuchsia"|L
|-
|[[OBD:AISA|AISA]]
|AI Character Setup Array
|style="background:fuchsia"|L
|-
|[[OBD:AITR|AITR]]
|AI Script Trigger Array
|style="background:fuchsia"|L
|-
|<strike>AIWA</strike>
|AI Imported Waypoint Array
|style="background:black"|
|-
|[[OBD:AKAA|AKAA]]
|Adjacency Array
|style="background:fuchsia"|L
|-
|[[OBD:AKBA|AKBA]]
|Side Array
|style="background:fuchsia"|L
|-
|[[OBD:AKBP|AKBP]]
|BSP Node Array
|style="background:fuchsia"|L
|-
|[[OBD:AKDA|AKDA]]
|Door Frame Array
|style="background:fuchsia"|L
|-
|[[OBD:AKEV|AKEV]]
|Akira Environment
|style="background:fuchsia"|L
|-
|[[OBD:AKOT|AKOT]]
|Oct Tree
|style="background:fuchsia"|L
|-
|[[OBD:AKVA|AKVA]]
|BNV Node Array
|style="background:fuchsia"|L
|-
|[[OBD:BINA|BINA]]
|Binary Data
|style="background:silver"|S
|-
|[[OBD:CBPI|CBPI]]
|Character Body Part Impacts
|style="background:yellow"|C
|-
|[[OBD:CBPM|CBPM]]
|Character Body Part Material
|style="background:yellow"|C
|-
|[[OBD:CONS|CONS]]
|Console
|style="background:lime"|L0
|-
|[[OBD:CRSA|CRSA]]
|Corpse Array
|style="background:fuchsia"|L
|-
|[[OBD:DOOR|DOOR]]
|Door
|style="background:lime"|L0
|-
|[[OBD:DPge|DPge]]
|Diary Page
|style="background:lime"|L0
|-
|<strike>EDIA</strike>
|Edge Index Array
|style="background:black"|
|-
|[[OBD:ENVP|ENVP]]
|Env Particle Array
|style="background:fuchsia"|L
|-
|[[OBD:FILM|FILM]]
|Film
| -
|-
|<strike>FXLR</strike>
|FX Laser Effect
|style="background:black"|
|-
|<strike>GMAN</strike>
|Geometry Animation
|style="background:black"|
|-
|[[OBD:HPge|HPge]]
|Help Page
|style="background:lime"|L0
|-
|[[OBD:IDXA|IDXA]]
|Index Array
| -
|-
|[[OBD:IGHH|IGHH]]
|IGUI HUD Help
|style="background:lime"|L0
|-
|[[OBD:IGPA|IGPA]]
|IGUI Page Array
|style="background:aqua"|M
|-
|[[OBD:IGPG|IGPG]]
|IGUI Page
|style="background:aqua"|M
|-
|[[OBD:IGSA|IGSA]]
|IGUI String Array
|style="background:aqua"|M
|-
|[[OBD:IGSt|IGSt]]
|IGUI String
|style="background:aqua"|M
|-
|[[OBD:Impt|Impt]]
|Impact Tree
|style="background:yellow"|C (0B)
|-
|[[OBD:IPge|IPge]]
|Item Page
|style="background:aqua"|M
|}
|
{| border="1" cellpadding="1" cellspacing="0" style="background:#ffeedd"
|-style="background:#ffddbb"
!Type
!Description
!Notes
|-
|[[OBD:KeyI|KeyI]]
|Key Icons
|style="background:lime"|L0
|-
|[[OBD:M3GA|M3GA]]
|Geometry Array
| -
|-
|[[OBD:M3GM|M3GM]]
|Geometry
| -
|-
|<strike>M3TA</strike>
|Triangle Array
|style="background:black"|
|-
|[[OBD:Mtrl|Mtrl]]
|Material
|(0B)
|-
|<strike>NMSA</strike>
|Network Spawn Point Array
|style="background:black"|
|-
|[[OBD:OBAN|OBAN]]
|Object Animation
| -
|-
|[[OBD:OBDC|OBDC]]
|Door Class Array
|style="background:fuchsia"|L
|-
|<strike>OBLS</strike>
|Object LS Data
|style="background:black"|
|-
|[[OBD:OBOA|OBOA]]
|Starting Object Array
|style="background:fuchsia"|L
|-
|[[OBD:OFGA|OFGA]]
|Object Furn Geom Array
|style="background:lime"|L0
|-
|[[OBD:ONCC|ONCC]]
|Oni Character Class
|style="background:yellow"|C
|-
|[[OBD:ONCP|ONCP]]
|Oni Character Particle Array
|style="background:yellow"|C ?!
|-
|[[OBD:ONCV|ONCV]]
|Oni Character Variant
|style="background:yellow"|C (0B) ?!
|-
|[[OBD:ONFA|ONFA]]
|Imported Flag Node Array
|style="background:fuchsia"|L
|-
|[[OBD:ONGS|ONGS]]
|Oni Game Settings
|style="background:lime"|L0
|-
|[[OBD:ONIA|ONIA]]
|Oni Character Impact Array
|style="background:yellow"|C ?!
|-
|[[OBD:ONLD|ONLD]]
|Oni Game Level Descriptor
|style="background:lime"|L0
|-
|[[OBD:ONLV|ONLV]]
|Oni Game Level
|style="background:fuchsia"|L
|-
|[[OBD:ONMA|ONMA]]
|Imported Marker Node Array
|style="background:fuchsia"|L
|-
|[[OBD:ONOA|ONOA]]
|Object Gunk Array
|style="background:fuchsia"|L
|-
|[[OBD:ONSA|ONSA]]
|Imported Spawn Array
|style="background:fuchsia"|L
|-
|[[OBD:ONSK|ONSK]]
|Oni Sky Class
|style="background:fuchsia"|L
|-
|[[OBD:ONTA|ONTA]]
|Trigger Array
|style="background:fuchsia"|L ?!
|-
|[[OBD:ONVL|ONVL]]
|Oni Variant List
|style="background:lime"|L0 ?!
|-
|[[OBD:ONWC|ONWC]]
|Oni Weapon Class
|style="background:fuchsia"|L (0B)
|-
|[[OBD:OPge|OPge]]
|Objective Page
|style="background:aqua"|M
|-
|[[OBD:OSBD|OSBD]]
|Oni Sound Binary Data
|style="background:lime"|L0
|-
|[[OBD:OTIT|OTIT]]
|Oct Tree Interior Node Array
|style="background:fuchsia"|L
|-
|[[OBD:OTLF|OTLF]]
|Oct Tree Leaf Node Array
|style="background:fuchsia"|L
|-
|[[OBD:PLEA|PLEA]]
|Plane Equation Array
|style="background:fuchsia"|L
|-
|[[OBD:PNTA|PNTA]]
|3D Point Array
| -
|-
|[[OBD:PSpc|PSpc]]
|Part Specification
|style="background:aqua"|M
|-
|[[OBD:PSpL|PSpL]]
|Part Specification List
|style="background:lime"|L0
|-
|[[OBD:PSUI|PSUI]]
|Part Specifications UI
|style="background:lime"|L0
|-
|[[OBD:QTNA|QTNA]]
|Quad Tree Node Array
|style="background:fuchsia"|L
|-
|<strike>QUDA</strike>
|Quad Array
|style="background:black"|
|-
|[[OBD:SNDD|SNDD]]
|Sound Data
| -
|}
|
{| border="1" cellpadding="1" cellspacing="0" style="background:#ffeedd"
|-style="background:#ffddbb"
!Type
!Description
!Notes
|-
|[[OBD:StNA|StNA]]
|String Array
|style="background:lime"|L0
|-
|[[OBD:SUBT|SUBT]]
|Subtitle Array
|style="background:lime"|L0
|-
|<strike>TMFA</strike>
|Float Array
|style="background:black"|
|-
|<strike>TMRA</strike>
|Template Reference Array
|style="background:black"|
|-
|[[OBD:TRAC|TRAC]]
|Animation Collection
|style="background:yellow"|C
|-
|[[OBD:TRAM|TRAM]]
|Totoro Animation Sequence
|style="background:yellow"|C
|-
|[[OBD:TRAS|TRAS]]
|Totoro Aiming Screen
|style="background:yellow"|C
|-
|[[OBD:TRBS|TRBS]]
|Totoro Body Set
|style="background:yellow"|C
|-
|[[OBD:TRCM|TRCM]]
|Totoro Quaternion Body
|style="background:yellow"|C
|-
|<strike>TRFT</strike>
|Totoro Facing Table
|style="background:black"|
|-
|[[OBD:TRGA|TRGA]]
|Totoro Quaternion Body Geometry Array
|style="background:yellow"|C
|-
|[[OBD:TRGE|TRGE]]
|Trigger Emitter
|style="background:lime"|L0
|-
|[[OBD:TRIA|TRIA]]
|Totoro Quaternion Body Index Array
|style="background:yellow"|C
|-
|[[OBD:TRIG|TRIG]]
|Trigger
|style="background:lime"|L0
|-
|[[OBD:TRMA|TRMA]]
|Texture Map Array
|style="background:yellow"|C
|-
|[[OBD:TRSC|TRSC]]
|Screen (Aiming) Collection
|style="background:yellow"|C
|-
|[[OBD:TRTA|TRTA]]
|Totoro Quaternion Body Translation Array
|style="background:yellow"|C
|-
|[[OBD:TSFF|TSFF]]
|Font Family
|style="background:aqua"|M (0B)
|-
|[[OBD:TSFL|TSFL]]
|Font Language
|style="background:lime"|L0
|-
|[[OBD:TSFT|TSFT]]
|Font
|style="background:lime"|L0
|-
|[[OBD:TSGA|TSGA]]
|Glyph Array
|style="background:lime"|L0
|-
|[[OBD:TStr|TStr]]
|String
|style="background:lime"|L0
|-
|[[OBD:TURR|TURR]]
|Turret
|style="background:lime"|L0
|-
|[[OBD:TXAN|TXAN]]
|Texture Map Animation
| -
|-
|[[OBD:TXCA|TXCA]]
|Texture Coordinate Array
| -
|-
|[[OBD:TXMA|TXMA]]
|Texture Map Array
|style="background:fuchsia"|L
|-
|[[OBD:TXMB|TXMB]]
|Texture Map Big
| -
|-
|[[OBD:TXMP|TXMP]]
|Texture Map
| -
|-
|<strike>TXPC</strike>
|Texture Procedure Data
|style="background:black"|
|-
|[[OBD:TxtC|TxtC]]
|Text Console
|style="background:aqua"|M
|-
|<strike>UUEA</strike>
|Error Binding Array
|style="background:black"|
|-
|<strike>UVDL</strike>
|UV Data List
|style="background:black"|
|-
|[[OBD:VCRA|VCRA]]
|3D Vector Array
| -
|-
|[[OBD:WMCL|WMCL]]
|WM Cursor List
|style="background:lime"|L0
|-
|[[OBD:WMDD|WMDD]]
|WM Dialog Data
|style="background:lime"|L0
|-
|[[OBD:WMM_|WMM_]]
|WM Menu
|style="background:lime"|L0
|-
|[[OBD:WMMB|WMMB]]
|WM Menu Bar
|style="background:lime"|L0
|-
|[[OBD:WPge|WPge]]
|Weapon Page
|style="background:lime"|L0
|}
|}
 
==Templates==
*[[Template:Data screen]]
 
{{OBD_File_Header|type=BINA|prev=AKVA|next=CBPI|name=Binary data|family=Start|extra=[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/oni_bina.htm Overview @ Oni Stuff]}}
 
{{OBD_File_Footer|type=BINA|prev=AKVA|next=CBPI|name=Binary data}}
 
 
==HexRow==
{|border=1 cellspacing=0
{{HexRow
|0x00|
|01|51|02|00|01|00|00|06|AD|DE|AD|DE|AD|DE|AD|DE|
|FF|FF|FF|FF|FF|FF|FF|FF|00|00|00|00|00|00|00|00|
|00|00|00|00|FF|FF|FF|FF|FF|FF|FF|FF|FF|FF|FF|FF|
|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|
|Who needs this?°}}
{{HexRow
|0x10|
|AD|DE|AD|DE|AD|DE|AD|DE|AD|DE|AD|DE|AD|DE|AD|DE|
|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|
|FF|FF|FF|FF|FF|FF|FF|FF|FF|FF|FF|FF|FF|FF|FF|FF|
|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|
}}
|}
 
 
----
==Oni 2D==
http://mukade.bungie.org/iB_html/uploads/post-1-51268-Karen_integet.gif
http://mukade.bungie.org/iB_html/uploads/post-1-35337-TSTF.gif
http://mukade.bungie.org/iB_html/uploads/post-1-28275-Gordon.gif
 
==Motivation==
It all started with Prince of Persia. I mean the really old one, with monochrome graphics.
 
Then there have been great 2D shooters like Flashback and Abuse and Super Metroid, as well as melee-oriented beat-them-up platformers, more or less inspired by Street Fighter gameplay.
 
Right now, be it on PC, big consoles or even little portable ones, we just don't see any platformers. 3D action is all the rage.
 
Oni 2D is about reviving the 2D platformer genre. Flashback was great (and had much in common with Oni, actually). Super Metroid and Abuse were great. There was a great action/quest mix for Flashback and Super Metroid. Abuse was pure action, very much like the DOOM of 2D platformers, and it had a really nice mouse-aiming system.
 
Take Flashback, add Abuse's mouse-aiming gunplay and an Oni-like melee component, throw in hi-res graphics and the power of today's hardware, and you'll have a little retro-revolution. Fast, playable and beautiful.
 
===Feasibility===
*Platformers are relatively easy to code, they run fast, and can readily use Oni's resources
*Recording Oni's animations live against a transparent background can be done pretty fast.
*Same for the background: it won't take much to create a 2D world with textures extracted from Oni.
 
For a start, we can just reproduce some of Oni's levels in side view. But 2D level design is, again, much easier than 3D level modeling, so we can get totally new content (close to an actual game) really fast.
 
[[KonokoPayne]] may be great, Oni++ and [[Oni2:Oni 2|Oni 2]] may be great, but Oni 2D, properly managed, may give us the first actual opportunity ever to fight an [[Iron Demon]].
 
===Wanted===
*Resource extractors. Level textures are piece of cake. The major work is on character animations : rendering them in side view from within KonokoPayne is an option, but the easiest way is to do it from within Oni, with standardized perspective and resolution, and no background.
*Game content. Levels, mostly. And character interaction. The way combos and throws are handled in Oni (range, damage etc) must be carefully analyzed and made to fit 2D gameplay (relatively easy).
*The engine/code, of course. Well, I'm looking into that right now. I'm looking into a lot of things right now.

Latest revision as of 19:12, 3 February 2024