//Pascal &or the FreePascal use of nintendo 2ds, 3ds regime
//
// Copyright (c) 2013, 2015, 2017 Kenneth Dwayne Lee Bsc.
// all rights reserved.
//

{$ifndef NO_SMART_LINK}
{$smartlink on}
{$endif}

unit n3ds;

interface

{$IFDEF FPC}
{$PACKRECORDS C}
{$ENDIF}

uses ctypes;

{$linklib ctru}
{$linklib m}
{$linklib Parx}

{$define 3dsintf}
{$i 3ds/3dstypes.inc}
{$i poll.inc}
{$i 3ds/svc.inc}
{$i 3ds/srv.inc}

{$.i 3ds/linear.inc}
{$.i 3ds/vram.inc}

{$i 3ds/allocator.inc}

{$i 3ds/os.inc}
{$i 3ds/gfx.inc}
{$i 3ds/env.inc}
{$i 3ds/console.inc}
{$i 3ds/services/ac.inc}
{$i 3ds/services/apt.inc}
{$i 3ds/services/boss.inc} //1.2 added
{$i 3ds/services/y2r.inc} //0.7 added
{$i 3ds/services/cam.inc} //0.7 added
{$i 3ds/services/cfgnor.inc}
{$i 3ds/services/csnd.inc}
{$i 3ds/services/dsp.inc}  //1.2 added
{$i 3ds/services/fs.inc}
{$i 3ds/services/am.inc} //1.2 added
{$i 3ds/services/ampxi.inc} //1.2 added

{.$i 3ds/services/gsp.inc}
{$i 3ds/services/gspgpu.inc}
{$i 3ds/services/hb.inc}
{$i 3ds/services/hid.inc}
{.$i 3ds/services/httpc.inc}
{$i 3ds/services/irrst.inc}
{$i 3ds/services/httpc.inc}
{$i 3ds/services/ir.inc}
{$i 3ds/services/ps.inc}
{$i 3ds/services/ptm.inc}
{$i 3ds/services/ptmu.inc} //1.2 added
{$i 3ds/services/ptmsysm.inc} //1.2 added
{$i 3ds/services/pxidev.inc} //1.2 added
{$i 3ds/services/qtm.inc}
{$i 3ds/services/soc.inc}
{$i 3ds/services/srvpm.inc} //1.2 added
{$i 3ds/services/sslc.inc} //1.2 added

{$i 3ds/services/mic.inc}
{$i 3ds/services/mvd.inc}
{$i 3ds/services/ns.inc}  //1.2 added
{$i 3ds/services/nim.inc}  //1.2 added
{$i 3ds/services/ndm.inc}  //1.2 added
{$i 3ds/services/nfc.inc}  //1.2 added
{$i 3ds/services/nwmext.inc}  //1.2 added
{$i 3ds/services/news.inc}  //1.2 added

{$i 3ds/ndsp/ndsp.inc}  //1.2 added
{$i 3ds/ndsp/channel.inc}  //1.2 added

{$i 3ds/gpu/gx.inc}
{$i 3ds/gpu/gpu.inc}
{$i 3ds/gpu/shbin.inc}
{$i 3ds/gpu/shaderProgram.inc}

{$i 3ds/util/rbtree.inc}
{$i 3ds/util/utf.inc}
{$i 3ds/sdmc.inc}

{$i 3ds/ipc.inc}
{$i 3ds/applets/swkbd.inc} //1.4 added
{$i 3ds/errf.inc} //1.3 added
{$i 3ds/return.inc} //1.3 added
{$.i 3ds/synchronization.inc} //1.2 added
{$i 3ds/thread.inc} //1.2 added
{$i 3ds/romfs.inc} //0.6 added
{.$i 3ds/sdmc.inc} //0.6 added
{$undef 3dsintf}

{$i "3ds/parx/parx_inf.inc"}

implementation

{$i "3ds/parx/parx.inc"}

{$define 3dsimpl}
{$i 3ds/3dstypes.inc}
{$i 3ds/os.inc}
{$i 3ds/ipc.inc} //1.2 added

{$i 3ds/applets/swkbd.inc} //1.4 added

{$i 3ds/services/apt.inc}
{.$i 3ds/services/gsp.inc}
{$i 3ds/services/gspgpu.inc}
{$i 3ds/services/fs.inc}

{$i 3ds/services/y2r.inc} //0.7 added
{$i 3ds/services/pxidev.inc} //1.2 added

{$i 3ds/ndsp/channel.inc}  //1.2 added

{$i 3ds/return.inc} //1.3 added

{$i 3ds/gpu/gx.inc}
{$i 3ds/gpu/gpu.inc}
{$i 3ds/util/rbtree.inc}
{$undef 3dsimpl}

end.
