Add the rest of source code and doc

Added folder for C++ code. Added shaders, user manual, wxwidget files
and VS files
This commit is contained in:
mkwong98 2014-06-25 22:40:29 +08:00
parent e107b6cc78
commit 5ae36cc2c7
69 changed files with 16910 additions and 0 deletions

BIN
hdnes.doc Normal file

Binary file not shown.

20
hdnes.sln Normal file
View file

@ -0,0 +1,20 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual C++ Express 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hdnes", "hdnes\hdnes.vcxproj", "{CB764762-DEBC-4773-8E5A-B7A30155B70A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{CB764762-DEBC-4773-8E5A-B7A30155B70A}.Debug|Win32.ActiveCfg = Debug|Win32
{CB764762-DEBC-4773-8E5A-B7A30155B70A}.Debug|Win32.Build.0 = Debug|Win32
{CB764762-DEBC-4773-8E5A-B7A30155B70A}.Release|Win32.ActiveCfg = Release|Win32
{CB764762-DEBC-4773-8E5A-B7A30155B70A}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View file

View file

View file

35
shader/hdnesBGF.glsl Normal file
View file

@ -0,0 +1,35 @@
#version 330
uniform sampler2D textureb;
uniform usampler1D flags;
smooth in vec3 texcoord;
smooth in vec2 realcoord;
out vec4 fColor;
void main(void)
{
uint f = texture(flags, realcoord.y).r;
if(realcoord.x < (-120.0 / 128.0) && ((0x01u & f) == 0x00u)){
discard;
}
vec4 c = texture2D(textureb, texcoord.xy);
c.r = c.r * texcoord.z;
c.g = c.g * texcoord.z;
c.b = c.b * texcoord.z;
if((0x20u & f) != 0x00u){
c.r = (c.r + c.g + c.b) / 3.0;
c.g = c.r;
c.b = c.r;
}
if(((0x04u & f) != 0x00u) || ((0x08u & f) != 0x00u)){
c.b = c.b * 0.746;
}
if(((0x04u & f) != 0x00u) || ((0x10u & f) != 0x00u)){
c.g = c.g * 0.746;
}
if(((0x08u & f) != 0x00u) || ((0x10u & f) != 0x00u)){
c.r = c.r * 0.746;
}
fColor = c;
}

26
shader/hdnesBGV.glsl Normal file
View file

@ -0,0 +1,26 @@
#version 330
in vec3 position;
in vec3 textCoord;
smooth out vec3 texcoord;
smooth out vec2 realcoord;
uniform usampler1D xOffset;
void main()
{
vec2 a;
vec2 b;
if(position.z == 0 || position.z == 1){
b.y = -(position.y - 0.5) / 256.0;
}
else{
b.y = -(position.y + 0.5) / 256.0;
}
a.x = ((position.x - float(texture(xOffset, b.y).r)) / 128.0) - 1.0;
a.y = (position.y / 120.0) + 1.0;
b.x = a.x;
gl_Position = vec4(a.xy, 0.5, 1.0);
texcoord = textCoord;
realcoord = b;
}

39
shader/hdnesSPF1.glsl Normal file
View file

@ -0,0 +1,39 @@
#version 330
uniform sampler2D textureb;
uniform usampler1D flagsSP1;
smooth in vec4 texcoord;
smooth in vec2 realcoord;
out vec4 fColor;
void main(void)
{
if(texcoord.z < 0.5) discard;
uint f = texture(flagsSP1, realcoord.y).r;
if((realcoord.x < (-120.0 / 128.0)) && ((0x02u & f) == 0x00u)){
discard;
}
vec4 c = texture2D(textureb, texcoord.xy);
c.r = c.r * texcoord.w;
c.g = c.g * texcoord.w;
c.b = c.b * texcoord.w;
if((0x20u & f) != 0x00u){
c.r = (c.r + c.g + c.b) / 3.0;
c.g = c.r;
c.b = c.r;
}
if(((0x04u & f) != 0x00u) || ((0x08u & f) != 0x00u)){
c.b = c.b * 0.746;
}
if(((0x04u & f) != 0x00u) || ((0x10u & f) != 0x00u)){
c.g = c.g * 0.746;
}
if(((0x08u & f) != 0x00u) || ((0x10u & f) != 0x00u)){
c.r = c.r * 0.746;
}
fColor = c;
if(fColor.a == 0.0) discard;
gl_FragDepth = texcoord.z - 0.5;
}

40
shader/hdnesSPF2.glsl Normal file
View file

@ -0,0 +1,40 @@
#version 330
uniform sampler2D textureb;
uniform usampler1D flagsSP2;
smooth in vec4 texcoord;
smooth in vec2 realcoord;
out vec4 fColor;
void main(void)
{
if(texcoord.z > 0.5) discard;
uint f = texture(flagsSP2, realcoord.y).r;
if((realcoord.x < (-120.0 / 128.0)) && ((0x02u & f) == 0x00u)){
discard;
}
vec4 c = texture2D(textureb, texcoord.xy);
c.r = c.r * texcoord.w;
c.g = c.g * texcoord.w;
c.b = c.b * texcoord.w;
if((0x20u & f) != 0x00u){
c.r = (c.r + c.g + c.b) / 3.0;
c.g = c.r;
c.b = c.r;
}
if(((0x04u & f) != 0x00u) || ((0x08u & f) != 0x00u)){
c.b = c.b * 0.746;
}
if(((0x04u & f) != 0x00u) || ((0x10u & f) != 0x00u)){
c.g = c.g * 0.746;
}
if(((0x08u & f) != 0x00u) || ((0x10u & f) != 0x00u)){
c.r = c.r * 0.746;
}
fColor = c;
if(fColor.a == 0.0) discard;
gl_FragDepth = texcoord.z;
}

20
shader/hdnesSPV.glsl Normal file
View file

@ -0,0 +1,20 @@
#version 330
in vec3 position;
in vec3 textCoord;
smooth out vec4 texcoord;
smooth out vec2 realcoord;
void main()
{
vec2 a;
a.x = (position.x / 128.0) - 1.0;
a.y = (position.y / 120.0) + 1.0;
gl_Position = vec4(a.xy, position.z / 20.0, 1.0);
texcoord = vec4(textCoord.xy, position.z / 20.0, textCoord.z);
realcoord = vec2(a.x, -position.y / 256.0);
}

1408
wxwidget/formHDNes.cpp Normal file

File diff suppressed because it is too large Load diff

15013
wxwidget/formHDNes.fbp Normal file

File diff suppressed because it is too large Load diff

309
wxwidget/formHDNes.h Normal file
View file

@ -0,0 +1,309 @@
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Oct 8 2012)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#ifndef __FORMHDNES_H__
#define __FORMHDNES_H__
#include <wx/artprov.h>
#include <wx/xrc/xmlres.h>
#include <wx/string.h>
#include <wx/stattext.h>
#include <wx/gdicmn.h>
#include <wx/font.h>
#include <wx/colour.h>
#include <wx/settings.h>
#include <wx/filepicker.h>
#include <wx/sizer.h>
#include <wx/button.h>
#include <wx/panel.h>
#include <wx/bitmap.h>
#include <wx/image.h>
#include <wx/icon.h>
#include <wx/choice.h>
#include <wx/radiobut.h>
#include <wx/textctrl.h>
#include <wx/checkbox.h>
#include <wx/radiobox.h>
#include <wx/listbox.h>
#include <wx/listctrl.h>
#include <wx/spinctrl.h>
#include <wx/notebook.h>
#include <wx/frame.h>
#include <wx/dialog.h>
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
/// Class fraHDNes
///////////////////////////////////////////////////////////////////////////////
class fraHDNes : public wxFrame
{
private:
protected:
wxNotebook* m_notebook2;
wxPanel* panBasic1;
wxStaticText* m_staticText5;
wxFilePickerCtrl* m_filePicker1;
wxButton* m_button2;
wxPanel* m_panel6;
wxStaticText* m_staticText6;
wxStaticText* lblP1;
wxChoice* cbo1UP;
wxStaticText* lblP11;
wxChoice* cbo1DOWN;
wxStaticText* lblP12;
wxChoice* cbo1LEFT;
wxStaticText* lblP121;
wxChoice* cbo1RIGHT;
wxStaticText* lblP122;
wxChoice* cbo1A;
wxStaticText* lblP123;
wxChoice* cbo1B;
wxStaticText* lblP124;
wxChoice* cbo1SELECT;
wxStaticText* lblP125;
wxChoice* cbo1START;
wxStaticText* m_staticText7;
wxStaticText* lblP126;
wxChoice* cbo2UP;
wxStaticText* lblP127;
wxChoice* cbo2DOWN;
wxStaticText* lblP128;
wxChoice* cbo2LEFT;
wxStaticText* lblP129;
wxChoice* cbo2RIGHT;
wxStaticText* lblP1210;
wxChoice* cbo2A;
wxStaticText* lblP1211;
wxChoice* cbo2B;
wxStaticText* lblP1212;
wxChoice* cbo2SELECT;
wxStaticText* lblP1213;
wxChoice* cbo2START;
wxStaticText* m_staticText8;
wxStaticText* lblP14;
wxChoice* cboEndGame;
wxStaticText* lblP13;
wxChoice* cboSaveState;
wxStaticText* lblP15;
wxChoice* cboLoadState;
wxStaticText* lblP151;
wxChoice* cboScreenCap;
wxStaticText* lblP1511;
wxChoice* cboDataCap;
wxStaticText* lblP15111;
wxChoice* cboPause;
wxStaticText* lblP15112;
wxChoice* cboRunFrame;
wxStaticText* m_staticText62;
wxChoice* cboContCap;
wxPanel* panVideo1;
wxStaticText* m_staticText1;
wxRadioButton* m_radioBtn1;
wxRadioButton* m_radioBtn2;
wxRadioButton* m_radioBtn3;
wxRadioButton* m_radioBtn4;
wxStaticText* m_staticText2;
wxTextCtrl* txtwidth;
wxStaticText* m_staticText4;
wxStaticText* m_staticText3;
wxTextCtrl* txtheight;
wxCheckBox* chkUsePack;
wxRadioBox* rbxGenerateData;
wxCheckBox* chkNearEdge;
wxCheckBox* chkCHRRamEdit;
wxPanel* panAudio1;
wxCheckBox* chkUseAudioPack;
wxPanel* m_panel7;
wxButton* btnLoadPack;
wxButton* btnSavePack;
wxStaticText* m_staticText27;
wxRadioButton* optPackScale1;
wxRadioButton* optPackScale2;
wxRadioButton* optPackScale4;
wxStaticText* m_staticText25;
wxChoice* cboScreen;
wxButton* btnOptimizeScreenEdit;
wxStaticText* m_staticText32;
wxListBox* lstScreenTiles;
wxPanel* pnlScreen;
wxStaticText* m_staticText31;
wxStaticText* m_staticText26;
wxChoice* cboImage;
wxFilePickerCtrl* m_filePicker2;
wxButton* btnRemoveImage;
wxStaticText* m_staticText33;
wxStaticText* m_staticText28;
wxStaticText* m_staticText29;
wxTextCtrl* txtMapX;
wxStaticText* m_staticText30;
wxTextCtrl* txtMapY;
wxStaticText* m_staticText63;
wxTextCtrl* txtBrightness;
wxStaticText* m_staticText64;
wxCheckBox* chkDefaultTile;
wxButton* btnConfirmTile;
wxButton* btnCancelSelection;
wxButton* m_button6;
wxButton* btn_Swap;
wxButton* btn_MapDarkPalette;
wxPanel* pnlImage;
wxPanel* m_panel8;
wxButton* btnLoadAudioPack;
wxButton* btnSaveAudioPack;
wxStaticText* m_staticText50;
wxListCtrl* lstMusic;
wxStaticText* m_staticText56;
wxSpinCtrl* spinMusicPriority;
wxStaticText* m_staticText57;
wxCheckBox* chkGotoNext;
wxStaticText* m_staticText51;
wxTextCtrl* txtMusicRAMAddress;
wxStaticText* m_staticText55;
wxTextCtrl* txtMusicRAMValue;
wxStaticText* m_staticText581;
wxStaticText* m_staticText59;
wxTextCtrl* txtConditions;
wxStaticText* m_staticText60;
wxStaticText* m_staticText58;
wxTextCtrl* txtMusicRAMNewValue;
wxStaticText* m_staticText571;
wxRadioBox* rbxMusciPlayType;
wxStaticText* m_staticText54;
wxChoice* cboMP3file;
wxFilePickerCtrl* m_filePicker4;
wxButton* btnAddMP3;
wxButton* btnConfirmMP3;
wxButton* btnCancelMP3;
wxPanel* m_panel11;
wxStaticText* m_staticText61;
wxListCtrl* lstMemory;
// Virtual event handlers, overide them in your derived class
virtual void powerButtonClicked( wxCommandEvent& event ) { event.Skip(); }
virtual void input1UP( wxCommandEvent& event ) { event.Skip(); }
virtual void input1DOWN( wxCommandEvent& event ) { event.Skip(); }
virtual void input1LEFT( wxCommandEvent& event ) { event.Skip(); }
virtual void input1RIGHT( wxCommandEvent& event ) { event.Skip(); }
virtual void input1A( wxCommandEvent& event ) { event.Skip(); }
virtual void input1B( wxCommandEvent& event ) { event.Skip(); }
virtual void input1SELECT( wxCommandEvent& event ) { event.Skip(); }
virtual void input1START( wxCommandEvent& event ) { event.Skip(); }
virtual void input2UP( wxCommandEvent& event ) { event.Skip(); }
virtual void input2DOWN( wxCommandEvent& event ) { event.Skip(); }
virtual void input2LEFT( wxCommandEvent& event ) { event.Skip(); }
virtual void input2RIGHT( wxCommandEvent& event ) { event.Skip(); }
virtual void input2A( wxCommandEvent& event ) { event.Skip(); }
virtual void input2B( wxCommandEvent& event ) { event.Skip(); }
virtual void input2SELECT( wxCommandEvent& event ) { event.Skip(); }
virtual void input2START( wxCommandEvent& event ) { event.Skip(); }
virtual void inputEndGame( wxCommandEvent& event ) { event.Skip(); }
virtual void inputSaveState( wxCommandEvent& event ) { event.Skip(); }
virtual void inputLoadState( wxCommandEvent& event ) { event.Skip(); }
virtual void inputScreenCap( wxCommandEvent& event ) { event.Skip(); }
virtual void inputDataCap( wxCommandEvent& event ) { event.Skip(); }
virtual void inputPause( wxCommandEvent& event ) { event.Skip(); }
virtual void inputRunFrame( wxCommandEvent& event ) { event.Skip(); }
virtual void inputContCap( wxCommandEvent& event ) { event.Skip(); }
virtual void screen1x( wxCommandEvent& event ) { event.Skip(); }
virtual void screen2x( wxCommandEvent& event ) { event.Skip(); }
virtual void screen4x( wxCommandEvent& event ) { event.Skip(); }
virtual void screenxx( wxCommandEvent& event ) { event.Skip(); }
virtual void screenWidth( wxKeyEvent& event ) { event.Skip(); }
virtual void screenHeight( wxKeyEvent& event ) { event.Skip(); }
virtual void toggleGraphicsPack( wxCommandEvent& event ) { event.Skip(); }
virtual void toggleEditPack( wxCommandEvent& event ) { event.Skip(); }
virtual void toggleEdgeData( wxCommandEvent& event ) { event.Skip(); }
virtual void toggleCHRRamEdit( wxCommandEvent& event ) { event.Skip(); }
virtual void toggleAudioPack( wxCommandEvent& event ) { event.Skip(); }
virtual void loadPackData( wxCommandEvent& event ) { event.Skip(); }
virtual void savePackData( wxCommandEvent& event ) { event.Skip(); }
virtual void setPackScale( wxCommandEvent& event ) { event.Skip(); }
virtual void showScreenShot( wxCommandEvent& event ) { event.Skip(); }
virtual void optimizeScreenEdit( wxCommandEvent& event ) { event.Skip(); }
virtual void screenTileSelected( wxCommandEvent& event ) { event.Skip(); }
virtual void showCustomImage( wxCommandEvent& event ) { event.Skip(); }
virtual void addImageToPack( wxFileDirPickerEvent& event ) { event.Skip(); }
virtual void removeImageFromPack( wxCommandEvent& event ) { event.Skip(); }
virtual void confirmImgSelection( wxCommandEvent& event ) { event.Skip(); }
virtual void cancelSelection( wxCommandEvent& event ) { event.Skip(); }
virtual void genHDPack( wxCommandEvent& event ) { event.Skip(); }
virtual void addBatchMapping( wxCommandEvent& event ) { event.Skip(); }
virtual void AddDarkMapping( wxCommandEvent& event ) { event.Skip(); }
virtual void ImageTileSelected( wxMouseEvent& event ) { event.Skip(); }
virtual void loadAudioPack( wxCommandEvent& event ) { event.Skip(); }
virtual void saveAudioPack( wxCommandEvent& event ) { event.Skip(); }
virtual void musicSelected( wxListEvent& event ) { event.Skip(); }
virtual void addMP3ToPick( wxFileDirPickerEvent& event ) { event.Skip(); }
virtual void addMP3( wxCommandEvent& event ) { event.Skip(); }
virtual void changeMP3( wxCommandEvent& event ) { event.Skip(); }
virtual void deleteMP3( wxCommandEvent& event ) { event.Skip(); }
public:
fraHDNes( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 700,600 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL );
~fraHDNes();
};
///////////////////////////////////////////////////////////////////////////////
/// Class batchMap
///////////////////////////////////////////////////////////////////////////////
class batchMap : public wxDialog
{
private:
protected:
wxStaticText* m_staticText25;
wxChoice* cboImage;
wxStaticText* m_staticText32;
wxListBox* lstFirstTile;
wxStaticText* m_staticText62;
wxListBox* lstLastTile;
wxPanel* pnlOldImg;
wxStaticText* m_staticText621;
wxListBox* lstNewPalette;
wxStaticText* m_staticText26;
wxChoice* cboNewImage;
wxFilePickerCtrl* m_filePicker2;
wxStaticText* m_staticText33;
wxStaticText* m_staticText28;
wxStaticText* m_staticText29;
wxTextCtrl* txtMapX;
wxStaticText* m_staticText30;
wxTextCtrl* txtMapY;
wxStaticText* m_staticText65;
wxTextCtrl* txtBrightness;
wxStaticText* m_staticText66;
wxButton* btnAddMappings;
wxButton* btnCancel;
wxPanel* pnlNewImage;
// Virtual event handlers, overide them in your derived class
virtual void loadImage( wxCommandEvent& event ) { event.Skip(); }
virtual void firstTileSelected( wxCommandEvent& event ) { event.Skip(); }
virtual void lastTileSelected( wxCommandEvent& event ) { event.Skip(); }
virtual void showNewPalette( wxCommandEvent& event ) { event.Skip(); }
virtual void showNewImage( wxCommandEvent& event ) { event.Skip(); }
virtual void addImageToPack( wxFileDirPickerEvent& event ) { event.Skip(); }
virtual void addMappings( wxCommandEvent& event ) { event.Skip(); }
virtual void cancel( wxCommandEvent& event ) { event.Skip(); }
virtual void ImageTileSelected( wxMouseEvent& event ) { event.Skip(); }
public:
batchMap( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 761,537 ), long style = wxDEFAULT_DIALOG_STYLE );
~batchMap();
};
#endif //__FORMHDNES_H__